Skip to main content

Developer guide

Free OCR API: free tiers and limits compared

Most hosted OCR APIs need an account and an API key before you can use them in production. What differs is the free allowance and its limits. Google Cloud Vision gives 1,000 units a month, Azure Document Intelligence 500 pages (2 pages per document), OCR.space 25,000 small requests, and FastOCR 20 PDF pages. For no per-page cost at all, self-host Tesseract.

Published July 3, 2026 · Updated October 20, 2026 · 6 min read

Free OCR API tiers compared

Limits as of November 2026, taken from each provider's documentation and pricing pages. The free tiers count different things: Vision counts units (one per PDF page), Textract and Azure count pages, and OCR.space counts requests whatever the page count.

Free OCR API tiers, output, searchable PDF, setup, files and languages
FastOCRDocument OCR APIGoogle Cloud VisionDocument Text DetectionAmazon TextractDetect Document TextAzure Document IntelligenceRead modelOCR.spaceOCR API
What you get backPlain text and a searchable PDF, ready to useJSON. The text sits in fullTextAnnotation next to bounding boxes for every word, and you parse it yourselfJSON. A list of Block objects (pages, lines, words) with their geometry, which you stitch back into textJSON with the text, lines, words and their positionsJSON with the plain text, plus a searchable PDF when you ask for one
Searchable PDFYes, for every PDF and imageNoNoYes, for PDF input, with the Read model on API version 2024-11-30. No extra chargeYes, on every plan. Free-plan PDFs carry an OCR.space watermark
SetupSign in and create one API key. No cloud account, card or storage bucketA Google Cloud project with billing on, the Vision API enabled and credentials. Longer PDFs go through async batch annotation, which reads from and writes JSON to a Cloud Storage bucketAn AWS account with billing and IAM credentials. Multi-page PDFs go through the async API, which reads the file from an S3 bucketAn Azure subscription and a Document Intelligence resource, then its key and endpointRegister for a free API key by email
Free tier20 pages a month for every accountFirst 1,000 units a month, on a billing-enabled accountNew AWS customers only, through AWS Free Tier credits. See providerF0: 500 pages a month, and only the first 2 pages of each document25,000 requests a month; 1 MB files, 3 PDF pages
Files and languagesPDF, PNG, JPG, JPEG, GIF, WebP and BMP; 100+ languages, detected automaticallyImages, PDF and TIFF; see the provider for its language listJPEG, PNG, PDF and TIFF; English, French, German, Italian, Portuguese and SpanishPDF, JPEG, PNG, BMP, TIFF, HEIF and Office files; hundreds of printed languagesPNG, JPG, GIF, TIFF, BMP and PDF; 33 languages on Engine 2
Source
As of November 2026, from each provider's own documentation and pricing pages. Providers change their products, so check the source before you choose.

Which free OCR API to pick

If you needStart with
Under 1,000 pages a month, images or PDFs, JSON is fineGoogle Cloud Vision: 1,000 free units every month, not only for new accounts.
Many small images, low quality barOCR.space: 25,000 free requests, but each file must be under 1 MB and PDFs stop at 3 pages.
Long scanned PDFs, want a searchable PDF backFastOCR: 20 free pages a month, then Page Packs. PDF input only.
Already on AWS or AzureTextract or Document Intelligence Read: both list $1.50 per 1,000 pages at low volume.
No per-page cost at all, or documents must stay on your serversSelf-host Tesseract. You pay in servers and setup time instead.

Code: OCR a PDF with the FastOCR API

Any signed-in FastOCR account can create an API key and start right away. Install the Python SDK with pip install fastocr-sdk and set FASTOCR_API_KEY:

from fastocr_sdk import FastOCR

# Reads the key from the FASTOCR_API_KEY environment variable.
with FastOCR() as client:
    text = client.extract_text("scan.pdf")
    print(text)

Without the SDK, the same job is five HTTP calls: create, upload to a presigned URL, start, poll, download.

export FASTOCR_API_KEY="your_api_key"

# 1. Create a document
RESPONSE=$(curl -sS --fail-with-body -X POST https://api.fastocr.org/v1/documents \
  -H "Authorization: Bearer $FASTOCR_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"filename":"scan.pdf","size_bytes":'$(wc -c < scan.pdf | tr -d ' ')'}')
DOCUMENT_ID=$(echo "$RESPONSE" | jq -r .id)
UPLOAD_URL=$(echo "$RESPONSE" | jq -r .upload_url)

# 2. Upload the file to the presigned URL
curl -sS --fail-with-body -X PUT "$UPLOAD_URL" \
  -H "Content-Type: application/pdf" \
  --data-binary @scan.pdf

# 3. Start processing
curl -sS --fail-with-body -X POST https://api.fastocr.org/v1/documents/$DOCUMENT_ID/start \
  -H "Authorization: Bearer $FASTOCR_API_KEY"

# 4. Poll until the status is completed, partial, or failed
while true; do
  BODY=$(curl -sS --fail-with-body https://api.fastocr.org/v1/documents/$DOCUMENT_ID \
    -H "Authorization: Bearer $FASTOCR_API_KEY") || exit 1
  STATUS=$(echo "$BODY" | jq -r .status)
  case "$STATUS" in completed|partial|failed) break;; esac
  sleep 2
done
echo "Final status: $STATUS"

# 5. Get the download link, then download the text (a failed document has no output)
RESULT_URL=$(curl -sS --fail-with-body "https://api.fastocr.org/v1/documents/$DOCUMENT_ID/output?format=text" \
  -H "Authorization: Bearer $FASTOCR_API_KEY" | jq -r .url)
curl -sS --fail-with-body "$RESULT_URL" -o result.txt

Swap format=text for format=pdf to get a searchable PDF. The full reference is in the API docs.

Self-hosting Tesseract

Tesseract is the best-known open-source OCR engine (Apache 2.0). It has no per-page cost and keeps documents on your machines. The trade-off is setup, language packs, image clean-up and the servers to run it.

  1. Install it: apt install tesseract-ocr or brew install tesseract.
  2. Add languages: apt install tesseract-ocr-ara tesseract-ocr-hin.
  3. Read an image to out.txt: tesseract scan.png out, or make a searchable PDF with tesseract scan.png out pdf.

Tesseract reads images, not PDFs, so scanned PDFs need converting to images first. See FastOCR vs Tesseract for how the two differ.

Try the FastOCR API

The Free plan includes 20 free pages per month, shared with PDFs on the website. Paid plans share their Document OCR allowance with the API too. No code? The web tool reads images and PDFs on the website.