Document translation APIs compared: DeepL, Google, Azure, Amazon and Polytranslator
Maxim Enis · co-creator of Polytranslator · author of From LLM to NMT (125+ citations)Updated September 23, 2026

Five APIs translate whole files and return a translated file. They differ most on scanned pages and photos, on which languages they cover, on how large a file can be, and on what you must set up before the first request. Every vendor fact below comes from the vendor's developer documentation or pricing page, read on September 23, 2026.
File types in
Polytranslator: PDF, DOCX, PPTX, XLSX, EPUB, PNG, JPG, WEBP, HEIC; DOC, ODT, RTF, TXT, MD, HTML, SRT, VTT, XLS, ODS, CSV, PPT, ODP, Pages, Numbers, Key, MOBI, AZW3, FB2 converted on upload
DeepL API: DOCX, PPTX, XLSX, PDF, HTML, TXT, XLIFF, SRT, IDML, XML, JSON and more; JPG/PNG in beta
Google Cloud Translation: DOC, DOCX, PDF, PPT, PPTX, XLS, XLSX
Azure AI Translator: Batch: PDF, Office, OpenDocument, HTML, Markdown, TXT, CSV, MSG, XLIFF, images (preview). Synchronous: no PDF or images
Amazon Translate: DOCX, PPTX, XLSX, HTML, TXT, XLIFF. No PDF
Scanned PDFs and photos
Polytranslator: Yes, translated in the original layout; photos return as PNG, PDFs as PDF
DeepL API: PDF supported; JPG and PNG in beta
Google Cloud Translation: Scanned PDFs yes (20 pages per synchronous request); mixed scanned and digital PDFs translate only the digital text; no image input
Azure AI Translator: Scanned PDFs in batch only; mixed PDFs translate only the digital text; OCR covers fewer languages than text
Amazon Translate: No
Size per document
Polytranslator: 50 MB, 1,000 PDF pages, 1,000,000 characters
DeepL API: Pro: 100 MB for DOCX/PPTX/PDF, 1,000,000 characters. Free: 10 MB
Google Cloud Translation: 20 MB; 300 pages for digital PDFs
Azure AI Translator: Synchronous 10 MB; batch 40 MB
Amazon Translate: Synchronous 100 KB; batch 20 MB
Languages
Polytranslator: 475, including Ancient Greek, Latin, Coptic, Old English, Old Norse, Aramaic, Akkadian and Sumerian
DeepL API: About 120 language codes (regional variants listed separately), including Latin and Sanskrit
Google Cloud Translation: About 130, including Latin
Azure AI Translator: Same list as its text API; no Latin
Amazon Translate: 72; no Latin
Ancient Greek, Old English, Coptic
Polytranslator: Yes
DeepL API: No
Google Cloud Translation: No
Azure AI Translator: No
Amazon Translate: No
Pricing for documents
Polytranslator: Prepaid credits ($9.99 for 300 to $99.99 for 5,000). Free quote per file; charged exactly the quote
DeepL API: Character-based, same rate as text
Google Cloud Translation: $0.08 per page (standard model)
Azure AI Translator: Per million characters, separate from text
Amazon Translate: $15 per million characters (synchronous DOCX $30)
Minimum charge
Polytranslator: None beyond the quote
DeepL API: 50,000 characters per DOCX, PPTX, XLSX or PDF
Google Cloud Translation: None documented
Azure AI Translator: None documented
Amazon Translate: None documented
Free tier for documents
Polytranslator: Free quotes; translation uses purchased credits
DeepL API: Yes, with smaller file limits
Google Cloud Translation: No (XLSX only, within the text credit)
Azure AI Translator: No; the free tier excludes documents
Amazon Translate: 2 million characters a month for 12 months
Getting started
Polytranslator: An API key; no cloud project. Agents can create an account and buy credits headlessly
DeepL API: An API key
Google Cloud Translation: A Google Cloud project, billing account and service credentials
Azure AI Translator: An Azure subscription, a Translator resource with a custom domain, and Blob Storage for batch
Amazon Translate: An AWS account, an IAM role and S3 buckets for batch
Job model
Polytranslator: Upload, then a signed webhook or long-poll status (up to 60 s per request); download the file or a PDF
DeepL API: Upload, poll status, download
Google Cloud Translation: Long-running operation, poll
Azure AI Translator: Blob Storage containers, poll
Amazon Translate: S3 buckets, poll or EventBridge events
Completion webhooks
Polytranslator: Yes: HMAC-signed, retried for about 24 hours
DeepL API: Not documented
Google Cloud Translation: Not documented
Azure AI Translator: Not documented
Amazon Translate: EventBridge events
Retry safety
Polytranslator: Idempotency-Key: a retried upload never creates or charges a second job
DeepL API: Not documented
Google Cloud Translation: Not documented
Azure AI Translator: Not documented
Amazon Translate: Required ClientToken
Sources, read on September 23, 2026: DeepL document API, DeepL limits, DeepL document billing, DeepL languages, Google document translation, Google pricing, Google languages, Azure document translation, Azure limits, Azure languages, Amazon Translate formats, Amazon limits, Amazon pricing. Language counts are the vendors' published lists; regional variants are counted as the vendor lists them.
Choose Google Cloud Translation when…
You translate modern-language Office files and digital PDFs at volume and already run on Google Cloud. At $0.08 a page its price is simple to forecast and, for ordinary business documents, lower than Polytranslator's.
Choose DeepL when…
Your pairs are among DeepL's languages and your files are long Office documents. Short files are billed at least 50,000 characters each, so a one-page memo is billed like about twenty pages of text.
Choose Azure or Amazon when…
Your documents already live in Blob Storage or S3 and your languages are modern ones. Amazon publishes completion events through EventBridge, but it does not accept PDF at all.
Choose Polytranslator when…
Your documents are scans or phone photos, or they are in languages the other four do not offer: Ancient Greek, Old English, Coptic, Old Norse, Aramaic, Akkadian, Sumerian and more than 200 other low-resource languages. It also suits agents and small teams: one API key, prepaid credits, a free quote before every job, a max_credits cap per request, safe retries and signed completion webhooks. As measured examples, a one-page scanned court filing on the fast tier costs 19 credits and a short Word document costs 1 credit.
A first request
Upload the file; the response is a document id. Poll GET /v1/documents/{id}?wait=60 and download /file when it completes.
curl https://www.polytranslator.com/api/v1/documents \
-H "Authorization: Bearer $POLYTRANSLATOR_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-F file=@contract.pdf \
-F tgt=spa_LatnLimits of this comparison
Quality is not compared in the table: it depends on the language pair and the document, and every API above should be tried on your own files. Machine translation is not a certified translation, and names, numbers and dates should be checked against the original. See also Polytranslator vs DeepL for document translation.