See exactly where it read.
Typed blocks, pixel-accurate boxes, parsed tables and clean markdown from one API call. Drop a file and watch it work. No account, no card.
Every run accounted for
An account comes with a console, not just a key. Watch your quota, chart thirty days of traffic, and open any request by its id when something looks wrong, with the error code and latency already next to it.
- Usage and errors per day, exportable as CSV
- Keys you can issue and revoke without emailing anyone
- GST invoices the moment a payment clears
| 07-29 14:02 | /api/v1/ocr | 12 | 402 ms | ok |
| 07-29 13:58 | /api/v1/ocr/stream | 3 | 188 ms | ok |
| 07-29 13:51 | /api/v1/ocr | 0 | 9,140 ms | 500 |
| 07-29 13:44 | /api/v1/ocr | 7 | 355 ms | ok |
One call, two ways to receive it
Same endpoint, same response shape, same price. Stream when someone is watching; wait for the whole thing when nobody is.
One response, fully structured. The right choice for a job queue.
curl -X POST https://ocr.run/api/v1/ocr \
-H "Authorization: Bearer $KEY" \
-F "file=@invoice.pdf"
# {
# "pages": 1,
# "blocks": [
# { "type": "title", "text": "ACME CORPORATION",
# "bbox": { "x": 74, "y": 91, "width": 515, "height": 49 } }
# ],
# "markdown": "## ACME CORPORATION ..."
# }First text in ~0.34s. Deltas can split mid-token; the structured answer arrives once, at the end.
curl -N -X POST https://ocr.run/api/v1/ocr/stream \
-H "Authorization: Bearer $KEY" \
-F "file=@invoice.pdf"
# -N disables buffering, or you get the whole
# thing at once and lose the point.
# data: {"type":"meta","id":"ocr_3fa2","pageCount":1}
# data: {"type":"delta","delta":"ACME","page":1}
# data: {"type":"delta","delta":" CORPORATION","page":1}
# data: {"type":"result","result":{ ... }}
# data: [DONE]Every response carries its rate-limit and quota headers, so your code can see its own position without guessing. Read the docs →
Pricing, GST included
The figure you see is the figure you pay. Start free, upgrade when the daily limit starts to bite.
Signed out you get 50 credits a day at up to 5 MB, 10 pages a run. The rate is 1 credit per page, plus 1 credit per 100 output tokens, so that is a few short documents. Billing questions →