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.
| FastOCRDocument OCR API | Google Cloud VisionDocument Text Detection | Amazon TextractDetect Document Text | Azure Document IntelligenceRead model | OCR.spaceOCR API | |
|---|---|---|---|---|---|
| What you get back | Plain text and a searchable PDF, ready to use | JSON. The text sits in fullTextAnnotation next to bounding boxes for every word, and you parse it yourself | JSON. A list of Block objects (pages, lines, words) with their geometry, which you stitch back into text | JSON with the text, lines, words and their positions | JSON with the plain text, plus a searchable PDF when you ask for one |
| Searchable PDF | Yes, for every PDF and image | No | No | Yes, for PDF input, with the Read model on API version 2024-11-30. No extra charge | Yes, on every plan. Free-plan PDFs carry an OCR.space watermark |
| Setup | Sign in and create one API key. No cloud account, card or storage bucket | A 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 bucket | An AWS account with billing and IAM credentials. Multi-page PDFs go through the async API, which reads the file from an S3 bucket | An Azure subscription and a Document Intelligence resource, then its key and endpoint | Register for a free API key by email |
| Free tier | 20 pages a month for every account | First 1,000 units a month, on a billing-enabled account | New AWS customers only, through AWS Free Tier credits. See provider | F0: 500 pages a month, and only the first 2 pages of each document | 25,000 requests a month; 1 MB files, 3 PDF pages |
| Files and languages | PDF, PNG, JPG, JPEG, GIF, WebP and BMP; 100+ languages, detected automatically | Images, PDF and TIFF; see the provider for its language list | JPEG, PNG, PDF and TIFF; English, French, German, Italian, Portuguese and Spanish | PDF, JPEG, PNG, BMP, TIFF, HEIF and Office files; hundreds of printed languages | PNG, JPG, GIF, TIFF, BMP and PDF; 33 languages on Engine 2 |
| Source |
Which free OCR API to pick
| If you need | Start with |
|---|---|
| Under 1,000 pages a month, images or PDFs, JSON is fine | Google Cloud Vision: 1,000 free units every month, not only for new accounts. |
| Many small images, low quality bar | OCR.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 back | FastOCR: 20 free pages a month, then Page Packs. PDF input only. |
| Already on AWS or Azure | Textract 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 servers | Self-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.txtSwap 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.
- Install it:
apt install tesseract-ocrorbrew install tesseract. - Add languages:
apt install tesseract-ocr-ara tesseract-ocr-hin. - Read an image to
out.txt:tesseract scan.png out, or make a searchable PDF withtesseract 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.
Related Articles & Resources
OCR APIs compared
What each OCR API returns and what it takes to set up.
Google Cloud Vision API alternative
How the FastOCR API differs from Google Cloud Vision.
Best Free OCR Tools and APIs
Free OCR tools and APIs compared.
OCR SDK for Python
fastocr-sdk, and how a cloud SDK compares with on-premise OCR SDKs.