FastOCR Developer REST API
Programmatic text extraction for general documents and structured transaction parsing for bank statements. Cloud-native 5-step asynchronous pipeline with support for 100+ languages, searchable PDFs, and automated balance verification.
Two Dedicated Engines. One Unified Architecture.
Choose the dedicated endpoint tailored to your data structure. Both run on the same asynchronous 5-step REST pipeline.
Document OCR API
/v1/documents
Designed for general documents, scanned books, contracts, receipts, invoices, and multi-lingual records. Preserves logical reading order, columns, and structural layout.
format=text) and dual-layer searchable PDF with invisible text layer overlay (format=pdf).Bank Statement API
/v1/bank-statements
Built specifically for financial statements. Extracts ledger transactions with clean debit/credit classification, account metadata, and automatic mathematical balance tie-out checks.
format=json), delimited CSV (format=csv), or Excel workbook (format=xlsx).API Quickstart
Copy-pasteable cURL examples for both Document OCR and Bank Statement endpoints.
# 1. Create a Document OCR job
curl -s -X POST https://api.fastocr.org/v1/documents \
-H "Authorization: Bearer $FASTOCR_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"filename":"invoice_scan.pdf","size_bytes":1048576}'
# Response contains: "id" and "upload_url"
# 2. Upload file directly to the presigned S3 URL
curl -s -X PUT "$UPLOAD_URL" \
-H "Content-Type: application/pdf" \
--data-binary @invoice_scan.pdf
# 3. Start OCR processing
curl -s -X POST https://api.fastocr.org/v1/documents/$DOCUMENT_ID/start \
-H "Authorization: Bearer $FASTOCR_KEY"
# 4. Poll job status until "completed"
curl -s https://api.fastocr.org/v1/documents/$DOCUMENT_ID \
-H "Authorization: Bearer $FASTOCR_KEY"
# 5. Download output (format: text, markdown, or pdf)
curl -s "https://api.fastocr.org/v1/documents/$DOCUMENT_ID/output?format=text" \
-H "Authorization: Bearer $FASTOCR_KEY"https://api.fastocr.org/v1The 5-Step REST Architecture
To handle large files without browser timeouts or proxy payload caps, both Document OCR and Bank Statement APIs follow the same asynchronous workflow.
Create Job
POST to /v1/documents or /v1/bank-statements with filename and file size to receive a Job ID and presigned S3 URL.
Upload File
PUT file bytes directly to the presigned S3 upload URL. No gateway payload bottlenecks.
Start Processing
POST to /start on your Job ID to enqueue processing across cloud worker clusters.
Poll Status
GET the job status until it returns completed. Fast jobs finish in seconds.
Download Output
GET /output with your desired format (text, markdown, pdf, json, csv, or xlsx).
How to Get Allowlisted for the API
Public API access is admin-gated to ensure dedicated throughput and infrastructure capacity. Getting allowlisted is straightforward and takes less than a day:
Sign Up for FastOCR
Create your free account at fastocr.org/signin using your development or work email.
Email Support
Send an email to support@fastocr.org with subject “FastOCR API Access Request”.
Get 50 Free Pages
Once approved, our team enables your account and credits 50 free pages to your balance to build and test.
• Primary Use Case: [Document OCR / Bank Statement extraction]
• Estimated Monthly Volume: [e.g. 500 pages / month]
API Documentation & Specifications
Everything you need to integrate FastOCR into your backend, workflows, and automated ETL pipelines.
API Developer Guide
Authentication headers, idempotency keys, pagination cursors, and standard error handling.
Document OCR Reference
Job creation schema, presigned S3 upload, multi-page PDFs, language parameters, and text/PDF exports.
Bank Statements Reference
Transaction schema, opening/closing balance tie-outs, JSON/CSV/XLSX downloads, and review signals.
OpenAPI 3.0 Specification
Machine-readable JSON schema for Postman, Insomnia, Swagger UI, or automated client SDK generation.
Technical Specifications
| Authentication | Bearer Authorization: Bearer fok_live_... |
| Supported File Formats | PDF, PNG, JPG, JPEG, WebP, TIFF |
| File Size Limits | Up to 1 GB for Document OCR; up to 50 MB for Bank Statements |
| Output Formats | Text, Markdown, Searchable PDF (Documents); JSON, CSV, XLSX (Bank Statements) |
| Request Idempotency | Supported on all create requests via Idempotency-Key header |
| Security & Storage | 256-bit encryption in transit (TLS 1.3) and at rest (AES-256). Files automatically purged after 30 days. |
| Allowlist Developer Quota | 50 free pages included on approval. Additional pages can be topped up as prepaid credit packs. |
Frequently Asked Questions
Why is public API access admin-gated?
During private beta, gating ensures guaranteed worker capacity, dedicated throughput, and direct developer support for every team integrating FastOCR.
What happens after I use the 50 free pages?
Once your 50 free pages are consumed, you can top up your account with prepaid page credit packs in the developer console. Credits never expire and draw down on a per-page basis.
How does Bank Statement balance tie-out verification work?
Our engine extracts the stated opening balance, transaction debits/credits, and closing balance, verifying that: Opening Balance + Total Deposits - Total Withdrawals = Closing Balance. The verification result is returned as tie_out_verified (true/false) in the JSON payload.
Can I download both raw text and a searchable PDF from the same Document job?
Yes. Once a Document OCR job reaches completed status, you can call the /output endpoint multiple times requesting format=text or format=pdf without reprocessing.
Does the API require webhook endpoints?
No webhooks are required. The API uses a simple, reliable polling model (GET /v1/documents/<id>). Most single-page documents complete in seconds.
Ready to integrate FastOCR?
Send us a quick note to get your account allowlisted with 50 free pages.