* * * PENNYOCR × CREWAI * * *

PennyOCR with CrewAI.

A research crew that can't open PDFs isn't much of a crew. Give every agent a read_document tool — ten lines with @tool and pip install pennyocr, or zero lines via our MCP server — with the exact cost of every read reported back into the crew's context.

START FREE — 100 PAGES
$0.75 / 1,000 PAGES
1,333 PAGES PER DOLLAR · NO CREDIT CARD
01 / TRY IT

ONE ENDPOINT.

POST a file, get JSON back — the extracted text, per page and joined. PDF, PNG, JPEG, WebP or TIFF.

curl https://api.pennyocr.com/v1/ocr \
  -H "Authorization: Bearer $PENNYOCR_API_KEY" \
  -F "file=@report.pdf"

# $0.75 per 1,000 pages, first 100 free
02 / USE CASES

TOOLING UP A CREW.

THE @TOOL
@tool("read_document") · def read_document(path_or_url: str) -> str: return PennyOCR().ocr(path_or_url).text — every agent in the crew can now read.
VIA MCP
CrewAI supports MCP tool servers: point it at https://mcp.pennyocr.com and read_document + estimate_cost appear with no code.
BUDGET DISCIPLINE
estimate_cost first, read second: crews reason about '$0.15 for 200 pages' instead of discovering it on the invoice.
ANALYST CREWS
Researcher reads filings page-by-page with citations; writer quotes page numbers; reviewer checks them. Documents stay traceable.
03 / PRICE CHECK

HALF THE PRICE OF THE BIG CLOUDS.

Per 1,000 pages, public list prices, first tier.

PENNYOCR$0.75
AWS TEXTRACT$1.50
GOOGLE CLOUD VISION$1.50
AZURE DOC INTELLIGENCE$1.50
YOU KEEP50%
DOES THE WHOLE CREW SHARE ONE KEY?
Yes, simplest: one pk_live key, one prepaid balance, one usage graph. Mint separate keys per crew if you want per-crew accounting.
WHAT STOPS A RUNAWAY CREW?
Prepaid credits are a hard ceiling, max_cost_usd caps each call, and cardless accounts stop at the free 100 pages. Worst case is bounded by design.
LOCAL FILES OR URLS?
Both — the SDK posts local files; /v1/ocr/url and MCP handle links. Same output either way.