Skip to main content
Developer REST APIPrivate Beta Allowlist

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

100+ Languages

Designed for general documents, scanned books, contracts, receipts, invoices, and multi-lingual records. Preserves logical reading order, columns, and structural layout.

Supported Inputs: PDF files (up to 1 GB), JPG, PNG, WebP, TIFF images.
Multi-Language: Latin, Arabic, Chinese, Cyrillic, Devanagari, Japanese, Korean, Urdu, and more.
Export Formats: Raw plain text (format=text) and dual-layer searchable PDF with invisible text layer overlay (format=pdf).
Document OCR Docs
POST
/v1/documents

Bank Statement API

/v1/bank-statements

Financial Verified

Built specifically for financial statements. Extracts ledger transactions with clean debit/credit classification, account metadata, and automatic mathematical balance tie-out checks.

Supported Inputs: Bank account statements in PDF, JPG, or PNG (up to 50 MB).
Automated Balance Check: Mathematical verification comparing opening balance + deposits − withdrawals against closing balance.
Export Formats: Structured JSON (format=json), delimited CSV (format=csv), or Excel workbook (format=xlsx).
Bank Statement Docs
POST
/v1/bank-statements

API Quickstart

Copy-pasteable cURL examples for both Document OCR and Bank Statement endpoints.

Full Reference Guide →
# 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"
Base URL: https://api.fastocr.org/v1
Bearer Token
Standard Authentication

The 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.

1
POST

Create Job

POST to /v1/documents or /v1/bank-statements with filename and file size to receive a Job ID and presigned S3 URL.

2
PUT

Upload File

PUT file bytes directly to the presigned S3 upload URL. No gateway payload bottlenecks.

3
POST

Start Processing

POST to /start on your Job ID to enqueue processing across cloud worker clusters.

4
GET

Poll Status

GET the job status until it returns completed. Fast jobs finish in seconds.

5
GET

Download Output

GET /output with your desired format (text, markdown, pdf, json, csv, or xlsx).

Admin-Gated Private Beta

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:

Step 1

Sign Up for FastOCR

Create your free account at fastocr.org/signin using your development or work email.

Step 2

Email Support

Send an email to support@fastocr.org with subject “FastOCR API Access Request”.

Step 3

Get 50 Free Pages

Once approved, our team enables your account and credits 50 free pages to your balance to build and test.

Step 4

Generate Your Key

Go to /developers/keys to generate your secret fok_live_... Bearer token.

Quick Request Template
Draft in Mail Client
To: support@fastocr.org
Subject: FastOCR API Access Request
---
Hi FastOCR Team,
Please enable API access for my account:
• Account Email: [your account email]
• Primary Use Case: [Document OCR / Bank Statement extraction]
• Estimated Monthly Volume: [e.g. 500 pages / month]
Thanks!

API Documentation & Specifications

Everything you need to integrate FastOCR into your backend, workflows, and automated ETL pipelines.

Technical Specifications

Authentication
Bearer
Authorization: Bearer fok_live_...
Supported File FormatsPDF, PNG, JPG, JPEG, WebP, TIFF
File Size LimitsUp to 1 GB for Document OCR; up to 50 MB for Bank Statements
Output FormatsText, Markdown, Searchable PDF (Documents); JSON, CSV, XLSX (Bank Statements)
Request IdempotencySupported on all create requests via
Idempotency-Key
header
Security & Storage256-bit encryption in transit (TLS 1.3) and at rest (AES-256). Files automatically purged after 30 days.
Allowlist Developer Quota50 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.