8 Best Unstructured.io Alternatives for Document Parsing in 2026

Moving an Unstructured prototype to production often means replacing the parser, the chunker, the connectors, or all three. This guide compares 8 alternatives, including Foxit PDF Services API, LlamaParse, Reducto, and Docling, by cost, table handling, chunking, and file coverage. You also get the element mappings, billing math, and test plan you need before you switch.
If your prototype uses the unstructured library, moving to production raises a practical question: what needs to change? Unstructured describes the library in its own docs as “Not designed for production scenarios.” Costs on long reports or table errors in a RAG index may also prompt a switch from the library or Transform API.
Those are the 3 moments that send engineers looking. In Moda’s 6 Sep 2026 run of Unstructured OSS 0.27.5 on a 48-page NIST AI RMF PDF, the library kept 36 of 40 checked statements and missed 4 table-row continuations. One document, one run, but it illustrates the failure mode.
“Unstructured” now names several products. The open-source unstructured library partitions and chunks on your machines. The Transform API parses single documents via POST. Pipelines connects sources, partitions, chunks, embeds, and writes to destinations. Business adds dedicated infrastructure. Replacing Unstructured can mean replacing the parser, the chunker, the connectors, or all three.
In this article, we compare 8 alternatives (our PDF Services API, LlamaParse, Reducto, Docling, Marker and Datalab, Mistral OCR, Azure Document Intelligence, and Google Document AI Layout Parser) by what they replace, their capabilities and costs, and the work involved in switching.
What Unstructured gives you today
What does unstructured.io do? Its parsing layer produces typed elements such as Title, NarrativeText, ListItem, Table, and Image, with metadata including page numbers, coordinates, parent_id, and text_as_html for tables. Unstructured Pipelines adds the managed workflow for chunking, enrichment, embedding, and delivery to a destination.
Unstructured’s home page.
Is unstructured.io free? The open-source library is free under Apache-2.0. The Transform API includes 10,000 pages once per account, then costs $0.015 a page, and Transform requests fail after the free pages until you upgrade to pay as you go.
Unstructured product | What it does | Price | Limits |
Open-source library (unstructured, Apache-2.0) | Partitions documents into elements and chunks them on your own machines | Free. You run the dependencies (Poppler, Tesseract) and models | Intended for quick prototyping and “Not designed for production scenarios.” No VLM, no fine-tuned OCR, no by-page or by-similarity chunking, no embeddings in the core library |
Transform API (POST /api/v2/parse) | Returns Markdown or elements, with optional schema extraction | 10,000 pages free once per account, then $0.015 a page | 9 extensions (.bmp, .docx, .heic, .jpeg, .jpg, .pdf, .png, .pptx, .tiff), 100 MB, 1 document per request, balanced or best profile only, rate limits not published |
Transform MCP server | Partitions, enriches, chunks, and embeds files from an AI tool | Same per-page rate | 49 extensions, including .eml, .msg, .html and .xlsx; 50 MB per file |
Pipelines | Connects sources, partitions with Auto, VLM, High Res or Fast, then chunks, enriches, embeds, and writes to destinations | Pay as you go at the same per-page rate | Workflows and jobs; 40+ connectors |
Business | Dedicated instance, in-VPC on AWS, Azure or GCP, or bare metal | Custom | Multi-user workspaces |
Under Transform billing, each PDF page, PPTX slide, or TIFF image counts as 1 page. DOCX files use page metadata when available, otherwise file size divided by 100 KB, and most other files count 1 page per 100 KB.
The library is deprioritized, not discontinued. Unstructured no longer actively recommends or promotes the library, Ingest, the JavaScript SDK, and the partition endpoint. The library still ships on PyPI (0.27.36 on 30 Oct 2026, after 6 releases between 19 and 27 Oct) and no end-of-life date is published.
File-type coverage depends on which product you call. The Transform API accepts 9 extensions, the Transform MCP server accepts 49, and the open-source library 27. The Transform API also documents an Extract endpoint for schema-based extraction.
The strengths are real. Pipelines brings 40+ connectors with change detection and incremental processing, chunking by character, title, page, or similarity plus contextual chunking, and embeddings from providers such as OpenAI, Bedrock, VoyageAI, and IBM. Compliance coverage includes SOC 2 Type 2, ISO 27001, and HIPAA, listed in its trust center, plus FedRAMP High, authorized 12 Dec 2025.
Before you compare anything, list what your pipeline actually uses today, including connectors, chunking strategy, element metadata, file types, and embeddings. That list decides which alternative can replace it.
Each alternative replaces a different slice of Unstructured’s pipeline. Only the partition stage is covered by every tool.
Our top picks by reason for switching
The right alternative depends on which part of Unstructured you’re replacing (the parser, the chunker, or the connectors) and where your documents can be processed.
For financial PDFs with broken tables, shortlist parsers that return table structure as cell grids or HTML tables with spans, such as Reducto r-1, LlamaParse on Cost-effective or higher, Azure Document Intelligence Layout, our PDF Structural Extraction, and Docling’s TableFormer, then test on your own worst pages.
If you’re leaving Unstructured because… | Pick | Why it fits |
Per-page fees add up on long PDFs | Foxit PDF Services API | 1 credit per successful request regardless of page count within supported limits; PDF to Markdown, PDF Structural Extraction (Trial) and OCR on a single credit pool |
You want a managed ingestion service with connectors | LlamaParse | 130+ formats, 4 parse tiers from $1.25 to $31.25 per 1,000 pages on Pro, Google Drive, SharePoint, S3 and Confluence connectors on paid plans, 10,000 free credits a month |
Complex tables, and chunks straight from the parser | Reducto | r-1 Parse at $10 per 1,000 pages (r-1 mini at $1), 6 chunk modes and embedding-optimized table summaries |
You want an open-source library you run yourself | Docling | MIT-licensed, reads PDF, Office, HTML and .eml or .msg email, HybridChunker, Docling Serve REST API with chunk endpoints |
Local Markdown conversion with a hosted fallback | Marker and Datalab | Marker code is Apache-2.0 with separately licensed weights. Hosted Convert from $0.50 (lite) to $10 (accurate) per 1,000 pages, with chunks output |
Low-cost Markdown with layout blocks at volume | Mistral OCR | OCR 4.1 at $4 per 1,000 pages, or $2 with the Batch API. Per-page Markdown with blocks, boxes and confidence |
Your stack runs on Azure | Azure Document Intelligence | Layout returns Markdown with HTML tables at $10 per 1,000 pages, reads PDF, images, DOCX, XLSX, PPTX and HTML, and offers Read and Layout containers |
You want chunking inside the parser on Google Cloud | Google Document AI Layout Parser | $10 per 1,000 pages including initial chunking, with chunk size in tokens and ancestor headings |
These are starting points, not exclusive use cases. The feature tables show what each tool covers, and the “Moving from Unstructured” rows explain the output mappings and integration changes to plan for.
Create a free Foxit developer account and turn your first PDF into Markdown or structured JSON with the PDF Services API.
Foxit PDF Services API
Our PDF Services API product page.
Our PDF Services API handles the PDF parsing step, with Markdown, plain text, and typed JSON through PDF Structural Extraction (Trial). Parsing shares a credit pool with conversion, OCR, redaction, and other PDF operations.
Feature | Details |
Covers | Parsing step for PDFs, including PDF to Markdown, PDF Structural Extraction (Trial) for typed JSON, PDF to Text, and an OCR endpoint for scans. No chunking, embeddings, or connectors. |
Inputs | Parsing endpoints take PDFs. Word (.doc, .docx), Excel, PowerPoint (.ppt, .pptx), images (JPEG, PNG, TIFF, BMP, GIF), text, HTML, web pages by URL, and Markdown convert to PDF first on the same account. Uploads up to 100 MB. No email route. |
Outputs | PDF to Markdown with tables as Markdown pipes (default) or HTML tables, and page headers and footers only when requested. Structural Extraction returns a ZIP with JSON (schema v1.0.7), extracted images and table renditions, 12 element types with reading order, bounding boxes and table cell relationships. |
Scans and tables | The OCR endpoint takes language codes and makes scanned PDFs searchable. Structural Extraction returns no text on image-only PDFs, so OCR them first. Tables keep cell structure in Structural Extraction. |
Chunking | The API includes no chunking. Title, head, and paragraph elements arrive in reading order, so split on them in your own code or framework. |
Pricing | 1 credit per successful request, regardless of file size or page count within supported limits. Startup costs $1,750 a year for 5,000 credits; Business costs $4,500 a year for 15,000. The free Developer plan includes 500 credits a year. Uploads, task polling, and downloads use no credits, and failed requests are not billed. |
Limits and deployment | Asynchronous: submit, poll the task, download. 15 requests a minute per application in sandbox, 100 in production. Cloud only. A delete endpoint permanently removes uploaded and generated files, and no retention period is published. Our cloud-hosted PDF APIs are covered by SOC 2 Type II audits, and we support HIPAA BAAs. |
Moving from Unstructured |
|
Where our PDF Services API stands out.
A successful parsing call costs 1 credit for either a 200-page annual report or a 2-page invoice, within supported limits.
Whether that costs less than a per-page API depends on the competing tier and how much of your annual credit pool you use. Conversion, OCR, and redaction use the same pool, but each processing call consumes a separate credit.
Our PDF Structural Extraction API is currently in trial and uses schema version v1.0.7. The API may change, so validate responses against the schema your application expects. Structural Extraction returns a ZIP archive containing JSON, extracted images, and table renditions, so your pipeline needs an unzip step before parsing the JSON.
Prerequisites. To run the example below, you need:
- A shell : Bash or zsh, which macOS and Linux include. On Windows, use WSL.
- curl : macOS, most Linux distributions, and Windows 10 and later include it. If
curl --versionfails, install curl. - jq : Download jq, or install it with Homebrew on macOS or apt on Debian and Ubuntu. Check it with
jq --version. - A Foxit developer account : Sign up for the free Developer plan, which includes 500 credits a year.
Create a working folder for the script’s temporary files and output:
mkdir foxit-parse && cd foxit-parse If jq --version fails, install jq first. On macOS with Homebrew, run this command:
brew install jq On Debian or Ubuntu, run this one instead:
sudo apt-get install -y jq Create your account. Enter your email on the sign-up page to activate the free Developer plan, which needs no credit card.

Our sign-up form activates the free Developer plan.
Get your credentials. After you sign up, open the console and copy the client ID and client secret from the Make your first call panel. The script reads both from environment variables.

The console after sign-up, with credentials pre-filled for a first call.
What a run looks like. Every parsing call follows the same asynchronous pattern, so you can see it end to end with curl and jq. This block sets your credentials, defines 3 small helpers, and converts our sample invoice PDF to Markdown.
Run this command from your terminal:
export FOXIT_CLIENT_ID="your_client_id"
export FOXIT_CLIENT_SECRET="your_client_secret"
API=https://na1.fusion.foxit.com/pdf-services/api
foxit() { curl -s -H "client_id: $FOXIT_CLIENT_ID" -H "client_secret: $FOXIT_CLIENT_SECRET" "$@"; }
submit() {
foxit -w "\nHTTP %{http_code}\n" -H "Content-Type: application/json" -d "$2" "$API/documents/$1" > submit.txt
cat submit.txt
TASK=$(head -1 submit.txt | jq -r '.taskId // empty' 2>/dev/null)
[ -n "$TASK" ] || { echo "Submit failed. Check your credentials and credit balance."; return 1; }
while true; do
foxit "$API/tasks/$TASK" > task.json && jq -c . task.json
STATUS=$(jq -r '.status // "ERROR"' task.json 2>/dev/null || echo ERROR)
case "$STATUS" in
COMPLETED) return 0 ;;
FAILED|ERROR) echo "Task did not complete."; return 1 ;;
esac
sleep 5
done
}
download() { foxit -o "$1" "$API/documents/$(jq -r .resultDocumentId task.json)/download"; }
curl -sL -o invoice.pdf https://github.com/lucienchemaly/foxit-demo-templates/raw/main/invoice_table_test.pdf
UPLOAD=$(foxit -F "[email protected]" "$API/documents/upload")
DOC=$(echo "$UPLOAD" | jq -r '.documentId // empty' 2>/dev/null)
[ -n "$DOC" ] && echo "documentId: $DOC" || echo "Upload failed: $UPLOAD"
[ -n "$DOC" ] && submit convert/pdf-to-markdown "{\"documentId\": \"$DOC\"}" && download invoice.md
The foxit helper sends your credentials as headers. submit posts the operation, prints its response and HTTP status, then polls GET /tasks/{taskId} every 5 seconds until COMPLETED.
It stops if no taskId is returned, the task reports FAILED, or a poll response has no status. The script uploads the sample PDF, submits pdf-to-markdown, then downloads the result using resultDocumentId.
Only the processing call uses a credit. This example has no overall polling timeout, so add one before using it in an unattended pipeline.
The expected output should look like the following:
documentId: 6aecea9c9036bb553d572b55
{"taskId":"6aecea9d4c382b4f0d060b10"}
HTTP 202
{"taskId":"6aecea9d4c382b4f0d060b10","status":"COMPLETED","progress":100,"resultDocumentId":"6aecea9ec07a611874a472e8"} The script prints the documentId from the upload, the submit response with its HTTP 202 status, and each poll result until the task reports COMPLETED with a resultDocumentId. Your IDs will differ, and a slower task prints one or more IN_PROGRESS lines before the final one.
The default output renders tables as Markdown pipes. The downloaded invoice.md should look like the following:
# INVOICE
Foxit DocGen API Sample Template
Bill To: Meridian Financial Group
Invoice Number: INV-00471
Invoice Date: 01/15/2024
| # | Description | Qty | Unit Price | Line Total |
| --- | --- | --- | --- | --- |
| 1 | API Integration Consulting | 10 | $ 150.00 | $1,500.00 |
| 2 | Compliance Review | 5 | $ 200.00 | $1,000.00 |
| | | | Subtotal: | $2,500.00 |
## Total Due: $2,500.00
Thank you for your business. Payment is due within 30 days of the invoice date.
Common mistakes. These are the failures a first run most often hits:
- Wrong client ID or secret : The upload returns
"allow":falsewith a reason such as Invalid credentials, and the script printsUpload failedand stops. Copy both values again from the console, without surrounding spaces or quotes, and re-run theexportlines. - No credits left: If the sample upload returns
"allow":false, the script printsUpload failedand stops. Check Credits Remaining in the dashboard. Credit-consuming processing calls pause when the balance reaches 0; restore credits through an upgrade, a purchased top-up, or the annual reset. Error responses can differ by endpoint. - jq not installed : The script prints
Upload failed:followed by a response that contains adocumentId, then stops. The upload worked, but the script can’t read the JSON without jq. Runjq --version, and install jq from the Prerequisites if it fails.
What to consider. There is no chunking, embedding, or connector layer in the API. Office files and scans each take 2 API calls (convert or OCR, then parse). Credits are sold as a yearly pool rather than pay as you go, so unused credits raise your effective per-request cost. Email is not supported. The 15 requests-per-minute sandbox rate limit will constrain bulk testing.
Best for. PDF-heavy pipelines with long documents that also convert, OCR, or redact files, and where per-request billing improves the economics over per-page pricing.
Getting started. Create a free Foxit developer account and turn your first PDF into Markdown or structured JSON with the PDF Services API. The free Developer plan includes 500 credits a year, no credit card required. See our PDF Structural Extraction tutorial and invoice extraction guide to get started.
LlamaParse

LlamaParse’s product page on the LlamaIndex site.
LlamaParse (by LlamaIndex, formerly LlamaCloud) is a managed parsing service with 130+ supported formats, 4 price tiers, and source connectors on paid plans.
It covers more of Unstructured’s pipeline than a parser-only API, including an optional managed Index that chunks and embeds.
Feature | Details |
Covers | Parsing (plus Extract, Classify, and Split), a managed Index that chunks and embeds, and connectors on paid plans. |
Inputs | 130+ formats, including PDF, DOCX, PPTX, XLSX, HTML, images, and audio. No email format is documented. |
Outputs | Per-page and full-document Markdown and text, plus a typed items tree (text, heading with level, table, image, list, code, link, header, footer) with bounding boxes in page points. Tables are available as HTML with merged cells, CSV, or Markdown, and an XLSX of all tables. |
Scans and tables | OCR runs automatically on pages without a text layer, with more than 80 language codes. Tables keep cell structure, with an option to merge tables that continue across pages. The Fast tier runs no AI model. |
Chunking | Parse includes no chunking. Index v2 chunks and embeds for you with fixed settings (sentence-based, 1,024 tokens, 200-token overlap) and cannot write to your own vector store. |
Pricing | $1.50 per 1,000 credits on pay as you go and $1.25 on Pro. Parse tiers: Fast 1, Cost-effective 3, Agentic 10, and Agentic Plus 25 credits a page, or about $1.25, $3.75, $12.50, and $31.25 per 1,000 pages at the Pro rate. Pro costs $500 a month for 400,000 credits. Free: 10,000 credits a month. Enriched forms output (Beta) adds 10 credits per page containing a form on Cost-effective, is included in the page price on Agentic and Agentic Plus, and is unavailable on Fast. |
Limits and deployment | Parse takes 512 MB and 10,000 pages per job by default. Concurrent jobs: 5 on pay as you go, 20 on Pro, 100 on Enterprise. SaaS in AWS us-east-1 and eu-central-1. BYOC and self-hosted on Enterprise. Source files and the parse cache are kept 48 hours. SOC 2 Type II and HIPAA compliant, with a BAA on Enterprise. |
Moving from Unstructured |
|
Where LlamaParse stands out. Tiers let you route easy pages down a cheap path (Fast at $1.25 per 1,000 on Pro) and complex pages up an expensive one (Agentic Plus at $31.25 per 1,000 on Pro), which can reduce cost on mixed corpora. Connectors plus the managed Index cover more of Unstructured’s pipeline than any parser-only API in this list. LlamaIndex launched its own OCRia-1 model on 22 Oct 2026, and it now runs Cost-effective and Agentic jobs at the same prices.
What to consider. The Fast tier runs no AI model and returns raw text or layout-preserving spatial text, so pick Cost-effective or higher when you need clean Markdown. Index v2 chunking cannot be configured or pointed at your own vector store. Email formats are not documented. The HIPAA BAA scope is Enterprise only, so teams with PHI must confirm the plan level before sending protected documents.
Best for. Teams that want a managed service to replace parsing and part of the ingestion plumbing, especially with Google Drive or SharePoint sources.
Getting started. LlamaParse pricing and sign-up. The free plan includes 10,000 credits a month.
Reducto

Reducto’s home page.
Reducto is a parsing API with built-in chunking and an r-1 model for complex documents. Parse, Extract, Split, Classify, and Edit all sit behind one API and one authentication credential.
Feature | Details |
Covers | Parse with built-in chunking, plus Extract, Split, Classify, and Edit on the same API. No connectors. |
Inputs | 30+ file types, including PDF, DOCX, DOC, TXT, XLSX, XLS, CSV, PPTX, PPT, HTML, and common image formats. Email (.eml and .msg) is documented for on-premises deployments only. |
Outputs | Chunks with Markdown content, an embedding-optimized version, and blocks ( |
Scans and tables | r-1 targets scans, handwriting, merged cells, and nested headers. Legacy Parse’s standard OCR engine lists 60+ languages, while r-1 publishes no language count. |
Chunking | 6 modes: disabled (default), variable (recommended for RAG, where a chunk_size of 1000 yields 750 to 1,250 characters), section, page, page_sections, and block, with optional overlap and embedding-optimized table summaries. |
Pricing | Per 1,000 pages: r-1 Parse $10 with OCR data and citations included, and r-1 mini Parse $1 (OCR data and citations add $1). Legacy Parse $15 standard and $30 complex (2x in agentic modes), with OCR included. Extract $20 including parsing (over 100 fields per page may incur a surcharge), and the batch queue takes 20% off Parse and Extract. Prompted blocks and custom regions on r-1 and r-1 mini cost $5 per 1,000 blocks. Free: $150 of usage on the Standard plan. |
Limits and deployment | 100 MB direct upload, 5 GB with a presigned upload. No page limit on Standard. Up to 1,000 requests a second per key (300 for job-status polling). Synchronous calls time out at 15 minutes, and results are generally available for 12 hours. SaaS on AWS. EU residency from Growth. Hybrid VPC, full VPC, and on-premises on Enterprise. SOC 2 Type II and HIPAA compliant on all tiers, with a BAA and no training on customer data from Growth up. |
Moving from Unstructured | Chunks replace chunk-by-title output, and blocks replace elements ( |
Where Reducto stands out. Chunks and embedding-ready table summaries come back from the parse call itself, removing a separate chunking step. The r-1 model targets complex layouts including handwriting, merged cells, and nested headers, and r-1 mini offers a lower-cost path at $1 per 1,000 pages. Qualified new customers moving from another provider can apply to Reducto for up to $5,000 in migration credits.
What to consider. When settings.model is unset, Parse runs legacy Parse until 7 Dec 2026 and r-1 after that, so set settings.model to "legacy" if you need the old pipeline’s output to stay stable. No managed source-sync connectors or LangChain/LlamaIndex loaders are documented.
Best for. RAG pipelines with complex PDFs that want chunks and embedding-optimized table summaries returned from the parser itself.
Getting started. Sign up on the Reducto site. The free grant covers your first documents, and Reducto’s docs cover the r-1 model and chunking methods.
Docling

Docling’s documentation home page.
Docling, an LF AI and Data project started at IBM Research, is an open-source option for replacing the unstructured library.
Docling Serve adds a REST API with chunk endpoints. Check the release history when choosing a version to pin.
Feature | Details |
Covers | Open-source replacement for the unstructured library, covering conversion, layout, tables, OCR, and chunking, with Docling Serve as a REST API. Connectors available through Docling Jobkit. |
Inputs | PDF, DOCX, XLSX, and PPTX (legacy DOC, XLS, PPT, and RTF need LibreOffice), HTML and MHTML, .eml and .msg email, EPUB, Markdown, AsciiDoc, LaTeX, CSV, images, audio and video (with the asr extra), and XML formats such as USPTO and JATS. |
Outputs | Markdown, HTML, text, DocTags, lossless JSON (DoclingDocument) with bounding boxes and provenance, and chunks as JSONL. Labels include |
Scans and tables | Pluggable OCR engines (RapidOCR, EasyOCR, Tesseract, macOS Vision, and others); TableFormer in accurate (default) or fast mode; an optional VLM pipeline with GraniteDocling and other presets. Remote services run only with |
Chunking | HybridChunker (token-aware, on top of hierarchical chunking, repeats table headers), HierarchicalChunker (one chunk per element, merging list items by default), and LineBasedTokenChunker; Docling Serve exposes hybrid and hierarchical chunk endpoints. |
Pricing | Free under the MIT license, with model licenses kept separate (Heron and GraniteDocling Apache-2.0, TableFormer CDLA-Permissive-2.0). Docling for IBM watsonx, a managed service, starts at $4 per 1,000 pages pay as you go. |
Limits and deployment | Python 3.10 or later on macOS, Linux, and Windows. Docling Serve ships CPU and CUDA images with async endpoints and no default file-size or page cap. Runs air-gapped with prefetched models. The IBM service caps files at 500 MB. |
Moving from Unstructured | LangChain’s DoclingLoader and LlamaIndex’s Docling Reader and Node Parser replace Unstructured’s loaders. Labels and the document tree differ (body vs. furniture, groups), and tables arrive as cell grids rather than |
Where Docling stands out. Its support for .eml and .msg email, EPUB, and legacy Office files with LibreOffice is useful for mixed-format corpora. Documents stay on your infrastructure when you use local models. LangChain and LlamaIndex integrations provide a starting point for replacing your loader, but you still need to adapt the output schema.
What to consider. You run and scale it. Legacy Office formats (.doc, .xls, .ppt, .rtf) need LibreOffice installed alongside. Default settings may need tuning for scans and charts; in Moda’s 6 Sep 2026 untuned run on its synthetic test set, Docling missed some chart labels. Pin versions, since that release pace can change output between upgrades.
Best for. Teams leaving the unstructured library that want to keep document processing on their own machines, especially with email or legacy Office formats.
Getting started. Docling on GitHub and the Docling Serve docs. Free and MIT-licensed; install with pip install docling.
Marker and Datalab

Datalab’s home page, with a parsed sample document.
Marker is an open-source document converter with Apache-2.0 code and separately licensed model weights.
Datalab provides a hosted Convert API using Chandra and other models. Chandra 2.6 runs the hosted fast, balanced, and accurate modes; lite is a separate lower-cost mode at $0.50 per 1,000 pages.
Feature | Details |
Covers | An open-source converter (Marker) and a hosted Convert API (Datalab) that return Markdown, JSON, HTML, or chunks. Datalab Collections supports S3 sync. |
Inputs | Marker reads PDF, images, PPTX, DOCX, XLSX, HTML, and EPUB (non-PDF files need the full install), and the hosted API adds ODT, ODS, ODP, XLSM, and more. No email formats. |
Outputs | Markdown, a JSON block tree with block types ( |
Scans and tables | Marker 2.0 runs layout, OCR, and tables through a surya VLM (vLLM on NVIDIA GPUs, llama.cpp elsewhere), with an optional LLM pass. Hosted fast, balanced, and accurate modes run Chandra 2.6, and hosted OCR covers 90+ languages. |
Chunking | A chunks output format only, with no chunk-size settings. |
Pricing | Hosted Convert per 1,000 pages: lite $0.50 (CPU OCR, added 22 Oct 2026), fast and balanced $4, accurate $10; EU processing adds 25%. Team costs $400 a month. Free usage: $20 a month on a work email or $10 on a personal email. Commercial self-hosted use requires a license above $5M in prior-year gross revenue or total funding for Marker ($2M for Chandra), or for competing products, with personal/research exceptions applying to the financial thresholds. |
Limits and deployment | Hosted: 200 MB per file, 7,000 pages per request, 15,000 pages in flight per team by default, and results deleted about 1 day after processing. VPC, on-premises, and air-gapped on Enterprise. SOC 2 Type II compliant, with BAAs on Team and Enterprise. |
Moving from Unstructured | Chunks replace chunk-by-title output only loosely (no size control); LlamaIndex has a PDFMarkerReader for local Marker. Basic conversion uses Convert. The custom processor endpoints were deprecated with a 31 Oct 2026 sunset, so run custom processors through /api/v1/agent. |
License history. Marker 2.0.0 code is Apache-2.0, while marker-pdf 1.x on PyPI was GPL-3.0-or-later. The hosted Chandra 2.6 model differs from open-source Chandra 0.2.0, so a local test does not predict hosted output.
Where Marker and Datalab stand out. You can choose local conversion or a hosted API, with Markdown, JSON, and chunks available in both. Shared format names do not make the integrations interchangeable: check the response schema and output on your documents before switching. Lite offers a $0.50-per-1,000-page path for straightforward scans.
What to consider. The weights license thresholds and competing-product clause apply to commercial self-hosting, so review them if you run your own infrastructure at scale. Lite mode drops images and can lose complex table structure. The chunks output format has no size control.
Best for. Markdown-first conversion pipelines that need a choice between self-hosting and a hosted per-page price, especially for straightforward scanned documents.
Getting started. Sign up on the Datalab site. The free tier includes $20 a month on a work email.
Mistral OCR

Mistral’s Document AI and OCR page.
Mistral OCR (OCR 4.1) converts documents to per-page Markdown with blocks, bounding boxes, and confidence scores.
The Batch API halves the price for non-latency-sensitive workloads. OCR 4.0 retired on 30 Sep 2026, so pin model names.
Feature | Details |
Covers | OCR and document structure to Markdown, with optional schema annotations. No chunking or connectors in the OCR API. |
Inputs | PDF, DOCX, DOC, PPTX, PPT, XLSX, CSV, TXT, EPUB, RTF, ODT, and images (JPEG, PNG, AVIF, TIFF, GIF, HEIC, BMP, WebP). No HTML or email in the OCR API. |
Outputs | Per-page Markdown plus images, tables, hyperlinks, header and footer; optional blocks in reading order with labels ( |
Scans and tables | OCR on scans and images. OCR 4 supports 170 languages and performs strongly in more than 40. |
Chunking | The OCR API includes no chunking. Mistral’s separate Search Toolkit (beta, v0.2.0) adds Markdown and token splitters plus HTML and EML or MSG extractors. |
Pricing | OCR 4.1: $4 per 1,000 pages, $2 with the Batch API, $5 per 1,000 annotated pages. OCR 3 (mistral-ocr-2512) is still GA at $2 and $3. Regional inference endpoints exclude the Batch and Files APIs. No free page allowance is published. |
Limits and deployment | 50 MB and 1,000 pages per document. OCR 4 is not intended for “real-time/latency-sensitive processing”. Hosted API plus Amazon SageMaker and Microsoft Foundry; self-managed deployment for enterprise customers. Uploaded files are kept 30 days unless deleted; zero data retention on the OCR endpoint excludes the Files API and batch files; Free mode may use inputs for training. |
Moving from Unstructured | Per-page Markdown replaces partition output; map block labels to element types; chunk in your own code or with the Search Toolkit. Pin model names on every request since OCR 4.0 retired on 30 Sep 2026. |
Where Mistral OCR stands out. One page price already includes blocks, boxes, and confidence at $4 per 1,000 pages, halved to $2 with the Batch API. That makes large batch conversions to Markdown competitive with Azure Layout and Google Layout Parser for teams that already own chunking and orchestration.
What to consider. The API includes no chunking. HTML and email are not supported as inputs. OCR 4 is not designed for latency-sensitive calls. Models retire quickly, so pin model on every request. Zero data retention requires an approved request and has scope limits. No free page allowance is published.
Best for. Large batch conversions to Markdown where you already own chunking and orchestration, and want block-level structure with confidence scores.
Getting started. Mistral API pricing and sign-up. Credits are pay as you go with no free OCR page allowance.
Azure Document Intelligence

Azure Document Intelligence’s product page.
Azure Document Intelligence in Foundry Tools (API v4.0, 2024-11-30), previously called Form Recognizer, is now part of Azure Content Understanding. The Layout model returns Markdown with HTML tables and is the primary pick for RAG pipelines on Azure.
Feature | Details |
Covers | Layout parsing to Markdown, plus Read OCR. No chunking or connectors in the service. |
Inputs | PDF, JPEG, PNG, BMP, TIFF, HEIF, DOCX, XLSX, PPTX, and HTML for Layout; Office and HTML text is extracted as is, without embedded images. No email. |
Outputs | Markdown output ( |
Scans and tables | OCR covers 300 printed-language/script entries and 12 handwritten languages; high-resolution, font, and formula add-ons cost $6 per 1,000 pages; tables that span pages need splitting and stitching; tables in XLSX files are not analyzed. |
Chunking | The service includes no chunking. Microsoft’s RAG guide pairs AzureAIDocumentIntelligenceLoader with LangChain’s MarkdownHeaderTextSplitter. |
Pricing | East US, per 1,000 pages: Layout $10 (batch costs the same), Read $1.50, then $0.60 above 1 million pages; Azure cloud commitment tiers start at $190 a month for 20,000 prebuilt pages. Free F0 tier: 500 pages a month, analyzing only the first 2 pages of each document. |
Limits and deployment | S0: 500 MB and 2,000 pages per analysis; 15 analyze requests a second by default (adjustable); asynchronous. Inputs and results are deleted 24 hours after you submit the analyze request. Read and Layout v4.0 containers, including disconnected containers on commitment plans. |
Moving from Unstructured | Layout Markdown replaces partition output for RAG; paragraph roles map to |
Where Azure Document Intelligence stands out. Markdown with HTML tables arrives straight from the service, with no post-processing needed for merged cells and multirow headers. DOCX, XLSX, PPTX, and HTML inputs expand the file coverage beyond PDF. Read and Layout v4.0 containers let environments that cannot call a cloud API run the models on-premises.
What to consider. The service includes no chunking, and tables that span pages need stitching in post-processing. The free tier reads only the first 2 pages of each document, which limits its usefulness for testing complex layouts.
Best for. RAG pipelines on Azure that want Markdown and HTML tables without running models, and need container deployment for data-residency requirements.
Getting started. Azure Document Intelligence pricing. The free F0 tier includes 500 pages a month.
Google Document AI Layout Parser

Google Cloud’s Document AI product page.
Google Document AI Layout Parser parses documents into a layout tree and chunks them for RAG in the same call. The stable version is v1.0 (2024-06-03).
Gemini-powered versions are available as release candidates or previews, so choose the processor version explicitly.
Feature | Details |
Covers | Layout parsing with built-in chunking for RAG; Enterprise Document OCR for images and scans. No connectors. |
Inputs | PDF, HTML, DOCX, PPTX, XLSX, and XLSM (GA and charged; other types are in free preview). Enterprise Document OCR takes PDF, GIF, TIFF, JPEG, PNG, BMP, and WebP. No email. |
Outputs | A document layout tree and chunked_document.chunks; PDF elements are figure, paragraph, table, title, heading, page header, and page footer (HTML adds lists); optional bounding boxes and image or table annotations. |
Scans and tables | Enterprise Document OCR reads printed and handwritten text in more than 200 languages; PDF tables that span pages “might be split in two tables”; nested DOCX tables are not supported. |
Chunking | chunkingConfig with chunkSize in tokens and includeAncestorHeadings; chunks carry ancestor headings and table headers; re-chunking parsed documents costs $0.02 per 1,000 billable pages (up to 3,000 characters each). |
Pricing | Layout Parser $10 per 1,000 pages including initial chunking, or $9 and $8 on 1- and 3-year savings plans. Enterprise Document OCR: first 1,000 pages free, then $1.50 per 1,000 up to 5 million. |
Limits and deployment | Online: 20 MB and 15 pages per PDF (30 in imageless mode). Batch: 500 pages and 1 GB per PDF; jobs still running after 24 hours are canceled. US and EU multi-regions. Document AI is FedRAMP High and HIPAA compliant, and Google does not use customer content to improve its models. |
Moving from Unstructured | Chunk by title maps most closely to chunkSize with includeAncestorHeadings. Only v1.0 (2024-06-03) is stable; the Gemini versions are release candidates or preview, and the v1.6 versions use a global endpoint that does not meet data-residency standards. LangChain’s DocAIParser is OCR-oriented. |
Where Google Document AI Layout Parser stands out. Chunking with ancestor headings is included in the $10 per 1,000 pages parse price. That token-aware chunking with inherited heading context removes a separate chunking step for pipelines on Google Cloud.
What to consider. The Gemini processor versions are not stable. Online requests allow only 15 pages (30 in imageless mode), which rules them out for long document analysis outside batch. Layout Parser runs as a Google Cloud processor in the US and EU multi-regions, so if documents must stay on your own infrastructure, shortlist the tools with documented container or self-hosted deployment.
Best for. RAG pipelines on Google Cloud that want token-aware chunks with ancestor headings.
Getting started. Document AI Layout Parser docs and Document AI pricing. Layout Parser has no free page allowance, while Enterprise Document OCR includes the first 1,000 pages free.
What changes when you move off Unstructured
Picking a parser is the easy part. Everything downstream that expects Unstructured’s element types, chunk boundaries, file coverage, and billing math changes when you switch.
How elements and metadata map across tools
Every alternative uses different element types, different field names, and different coordinate systems.
The mapping table below uses our PDF Structural Extraction as the worked example, because its reference documents every element type. The same mapping exercise applies to every tool in this list.
Unstructured | Foxit PDF Structural Extraction | What changes |
|
| Heading depth comes from |
|
| Same role; paragraphs also carry styling |
| No list type among the 12 documented types | No list type among the 12 documented types. Check how lists appear in your output and add list-detection logic where needed. |
|
| Read the cell grid, or ask PDF to Markdown for HTML_TABLE output |
|
| One type for page furniture; PDF to Markdown drops it unless |
|
| Images arrive as files referenced from the JSON |
|
| Same role |
|
| Map the different form representations explicitly |
| A bounding box per element | Normalize coordinate systems before you store citations |
|
| Rebuild parent links from |
One JSON list of elements | A ZIP with JSON (schema v1.0.7), images and table renditions | Unzip, then parse |
The closest equivalents elsewhere are LlamaParse items (heading, text, list, table, header, footer), Reducto blocks (Section Header, Text, List Item, Table, Key Value), Docling labels (section_header, text, list_item, table, page_header), Azure paragraph roles (title, sectionHeading, pageHeader, pageFooter), Mistral block labels (title, text, list, table, header, footer), and Datalab block types (SectionHeader, Table, Form, PageHeader, PageFooter).
Moda’s 6 Sep 2026 output-contract test shows what this means in practice. On its synthetic mixed-layout page, Unstructured returned checklist lines as NarrativeText while Docling labeled them checkbox_selected or checkbox_unselected, so any code that branches on element type behaves differently after the switch.
Build an explicit type map and a table adapter before switching. A find-and-replace on field names is a rename, not a migration.
Where chunking lives in each tool
Unstructured chunks elements by character, title, page, or similarity, with contextual chunking available in Pipelines. The open-source library lacks by-page and by-similarity chunking. Each alternative puts chunking somewhere different.
Tool | Where chunking happens | Closest to chunk by title |
Foxit PDF Services API | Your code or framework, on Markdown or ordered elements | Split PDF to Markdown output on headings |
LlamaParse | Index v2 with fixed settings, or your code | Your code on per-page Markdown |
Reducto | The parse call, using variable, section, page, page_sections, or block mode | section mode |
Docling | HybridChunker, HierarchicalChunker, or LineBasedTokenChunker, also in Docling Serve | HybridChunker |
Marker and Datalab | A chunks output format, no size settings | chunks output |
Mistral OCR | Your code, or the Search Toolkit splitters (beta) | The toolkit’s Markdown splitter |
Azure Document Intelligence | Your code; Microsoft’s guide uses MarkdownHeaderTextSplitter | MarkdownHeaderTextSplitter |
Google Document AI Layout Parser | The processor: chunkSize in tokens, includeAncestorHeadings | chunkSize with ancestor headings |
Sizes are measured differently across tools. Unstructured and Reducto use characters, Google uses tokens, and Docling’s HybridChunker works through a tokenizer, so the same number produces different chunks depending on the tool.
Chunk boundaries and IDs change with any parser switch, so plan a full re-index rather than mixing old and new chunks in one index.
If chunk-by-title quality is why you chose Unstructured, shortlist the tools that chunk on document structure (Reducto, Docling, Google Layout Parser), or keep your own chunker and swap only the parser.
Which file types each alternative reads
The unstructured library supports more file types than the Transform API. Before choosing, count your files by extension.
Tool | PDF and images | Word, PowerPoint, Excel | HTML | Email (.eml, .msg) |
Unstructured library (baseline) | Yes | Yes, including .doc, .ppt and .xls | Yes | Yes |
Unstructured Transform API (baseline) | Yes | .docx and .pptx only | No | No (the Transform MCP server accepts both) |
Foxit PDF Services API | Yes; images convert to PDF first | Convert to PDF first | Convert to PDF first | No |
LlamaParse | Yes | Yes | Yes | Not documented |
Reducto | Yes | Yes | Yes | On-premises deployments only |
Docling | Yes | Yes; legacy formats need LibreOffice | Yes | Yes |
Marker and Datalab | Yes | Yes | Yes | No |
Mistral OCR | Yes | Yes | No | No (Search Toolkit extractors only) |
Azure Document Intelligence (Layout) | Yes | .docx, .pptx and .xlsx | Yes | No |
Google Document AI Layout Parser | PDF; images through Enterprise Document OCR | .docx, .pptx, .xlsx and .xlsm | Yes | No |
Our convert-then-parse route costs 2 credits per non-PDF file. Azure counts Word and HTML files at 1 page per 3,000 characters. Unstructured counts most files other than PDF, PPTX, TIFF, and DOCX with page metadata at 1 page per 100 KB, so by our calculation a 2,000 KB JPEG bills as 20 pages.
For formats the 8 tools handle poorly, 2 libraries are useful references rather than picks. Apache Tika (4.2.0, Apache-2.0) reads “over a thousand different file types,” and Microsoft MarkItDown (v0.1.9, MIT) is a lighter option to compare against.
One folder of emails or legacy Office files can decide the pick on its own.
Per page or per request
Billing units differ across every tool in this list. Per-request billing favors long PDFs and per-page billing favors short files.
Tool | Billing unit | Example list price | Free allowance |
Unstructured Transform Pay-As-You-Go (baseline) | Page; most non-PDF files by 100 KB of size | $0.015 a page, or $15 per 1,000 pages | 10,000 pages once per account |
Foxit PDF Services API | Request (1 credit), any page count within limits | Business: $4,500 a year for 15,000 credits, or $0.30 per request when all are used | 500 credits a year |
LlamaParse | Credits per page by tier | Cost-effective: $3.75 per 1,000 pages on Pro | 10,000 credits a month |
Reducto | Pages, priced per product | r-1 Parse: $10 per 1,000 pages; r-1 mini: $1 | $150 of usage |
Docling | No charge when self-hosted | Your compute; IBM’s managed service $4 per 1,000 pages | Unlimited on your hardware |
Marker and Datalab | Pages, priced per mode | Balanced: $4 per 1,000 pages; lite: $0.50 | $20 a month on a work email |
Mistral OCR | Pages | OCR 4.1: $4 per 1,000 pages, or $2 with batch | None published |
Azure Document Intelligence | Pages, priced per model | Layout: $10 per 1,000 pages | 500 pages a month, 2 pages per document |
Google Document AI Layout Parser | Pages, priced per processor | $10 per 1,000 pages, chunking included | First 1,000 OCR pages |
Worked example, long document. A 200-page PDF costs $3.00 on Unstructured Transform and 1 credit on our API, allocated at $0.30 with full use of the Business plan’s 15,000 annual credits or $0.35 on Startup. The same file costs $0.75 on LlamaParse Cost-effective at the Pro rate, $2.00 on Reducto r-1, Azure Layout, or Google Layout Parser, and $0.80 on Mistral OCR 4.1 or Datalab balanced, or $0.40 with Mistral’s Batch API. These are list-price calculations, not comparisons of equivalent output or parsing quality.
Worked example, short document. A 2-page PDF costs $0.03 on Unstructured Transform and still 1 credit on our API, against $0.0075 on LlamaParse Cost-effective, $0.008 on Mistral OCR 4.1, and $0.02 on Reducto r-1, Azure, or Google.
Where the lines cross. At $0.30 a request, our API matches Unstructured Transform at 20 pages, Reducto r-1, Azure Layout, and Google Layout Parser at 30 pages, Mistral OCR at 75 pages, and LlamaParse Cost-effective at 80 pages. We calculated these crossovers from list prices, assuming full use of the annual credit pool. Unused credits raise the effective cost.

List-price arithmetic for one document. The flat line assumes full use of the Business plan’s annual credits.
Our paid plans are yearly credit pools. Most per-page APIs in this list are pay as you go. If your volume is unpredictable, that commitment structure changes the economics. See Credits Explained for the precise billing rules, including which calls are not billed.
Estimate cost from your real page-count distribution.
What stays behind in Unstructured
A new parser doesn’t replace Pipelines. These are the layers you keep owning yourself, or keep paying Unstructured for, after the parser changes.
Connectors and sync. Pipelines reads from sources such as S3, SharePoint, Google Drive, and Confluence, with change detection and incremental processing. Among the picks, LlamaParse has 4 connectors that sync about once a day on paid plans, IBM’s managed Docling service lists its own connectors, Docling Jobkit supports sources, and Datalab Collections supports S3 sync. Parser-only routes need your own orchestration for everything else.
Embeddings and enrichment. Unstructured Pipelines embeds with providers such as OpenAI, Bedrock, VoyageAI, and IBM, and can describe tables and images. Most alternatives stop at parsed output. LlamaParse’s Index v2 embeds only into its own managed store.
Scheduling, retries, and monitoring. Pipelines runs workflows as jobs with built-in scheduling. With a parser-only API, your orchestrator owns retries and alerts.
Compliance scope. Unstructured’s SOC 2 Type 2, ISO 27001, HIPAA, and FedRAMP High coverage, listed earlier, may not carry over to the tool you pick. Compare each alternative’s claims for the plan you would actually buy, not the enterprise tier.
When to keep Unstructured
Keep Unstructured Pipelines if you rely on its source sync from systems such as SharePoint, Confluence, or Slack, or on its enrichment and embedding workflow and a replacement would leave those needs unmet. Check email and legacy-format support before switching, and confirm that the replacement meets your compliance requirements, including FedRAMP High where needed. Replace the layer that fails, not the pipeline that works.
Building a parsing pipeline on the PDF Services API
If the parser is the layer that fails, the PDF Services API slots in at the parsing step and leaves the rest of your pipeline in place. Each file follows the same path.
Upload it, convert or OCR it first if it isn’t a text-layer PDF, submit PDF to Markdown or PDF Structural Extraction (Trial), poll the task, download the Markdown or ZIP, and hand the result to your chunker.

Only the operation calls use credits. Uploads, polling, and downloads are free.
Parsing shares a credit pool with other PDF operations. Convert Office files, images, HTML, and Markdown to PDF before parsing, split long files, and redact sensitive content using text matching, rectangle regions, or form-field targeting before it reaches an index. That covers the pre-processing pipeline without switching APIs or billing systems. Our conversion walkthrough shows the DOCX-to-PDF path, and our text extraction tutorial covers the text extraction route.
The API has no chunking, embedding, or connector layer, so pair the output with your own chunker and orchestrator. Elements arrive in reading order, which means heading-based splitting on title and head elements works without reordering. Our structured JSON tutorial shows how to work with the Structural Extraction output.
Our MCP server exposes structural analysis, extraction, and OCR tools to agents. Our MCP server walkthrough covers the 30+ PDF tools it gives AI agents and the integration details.
Plans and credits. The free Developer plan needs no credit card. See Foxit API pricing for plan details, or Credits Explained for how credits are counted.
What else to know before you switch from Unstructured
This section answers 3 practical questions that come up in the transition.
Which LangChain and LlamaIndex loaders replace UnstructuredLoader?
UnstructuredLoader ships in the langchain-unstructured package. Docling has an official DoclingLoader for LangChain and a Docling Reader and Node Parser for LlamaIndex. Azure has AzureAIDocumentIntelligenceLoader. Google has DocAIParser, which is OCR-oriented. For LlamaParse, the documented pattern wraps each parsed page in a LangChain Document using the llama-cloud SDK.
Reducto, Datalab, and our PDF Services API have no documented LangChain or LlamaIndex loader. For those tools, and for Mistral OCR, check your framework’s integration list or call the SDK or REST API and build Document objects yourself.
How to run multiple parsers in the same pipeline?
You can route by file type or page complexity, sending emails and legacy Office files to Docling or Unstructured, long PDFs to a per-request API, and hard scans to a VLM tier. Normalize every output into one element schema, and chunk in one place so retrieval behaves consistently. Maintaining multiple parsers adds real cost and complexity, but so does forcing all your documents through a single parser that handles some of them poorly.

One router, one element schema, and one chunker keep retrieval consistent across parsers
How to test an alternative against your current Unstructured output?
Published results only go so far. Moda ran 4 synthetic PDFs and the 48-page NIST AI RMF PDF on 6 Sep 2026, and Unstructured OSS 0.27.5 reached 98.3% macro literal recall on the synthetic set, alongside the NIST result described in the introduction. A March 2025 Procycons test of an older Unstructured version measured 75% cell accuracy on 1 sampled complex table. Both are single-run observations with specific dates and document sets, not general benchmarks, so build your own test set.
Keep 20 to 50 of your hardest documents, especially ones that already fail. Run them through Unstructured and 1 or 2 candidates. Compare element types, table cells, chunk boundaries, and answers to a fixed set of questions, plus cost at your real page counts. That comparison on your actual documents is more reliable than any synthetic benchmark
8 Best Amazon Textract Alternatives for Document Data Extraction

Leaving Amazon Textract? First check whether a cheaper Textract API already solves your cost problem. This guide compares 8 AWS Textract alternatives on pricing, language coverage, limits, and data terms, so you can match each API to the calls your pipeline makes.
If your Textract bill is higher than expected, check which API you’re calling before switching vendors.
For invoice fields, AnalyzeExpense costs $0.01 per page, compared with $0.07 for AnalyzeDocument with Forms, Tables, and Queries enabled.
At 100,000 single-page invoices a month, that’s $1,000 vs. $7,000 (our arithmetic from AWS list prices, US East). Check that AnalyzeExpense returns the fields your pipeline needs before changing APIs.
There are real reasons to leave, though. Textract reads printed text in more than 40 languages, but Forms key-value extraction covers only 6 of them, and handwriting, Queries, AnalyzeExpense, and AnalyzeID are English only.
AnalyzeID reads only US passports and US driver’s licenses. Synchronous calls take a single page, and Amazon Augmented AI (A2I), the human-review integration for Textract, closed to new customers on 30 Jul 2026. Some teams also want schema-based extraction, a specific data-residency posture, or pricing that doesn’t compound by feature combination.
In this article, we compare 8 Amazon Textract alternatives based on their extraction features, pricing, usage limits, deployment options, and migration requirements.
Some return document structure; others extract named fields. The right replacement depends on which Textract APIs your pipeline uses.
Our top picks by reason for switching
The best alternatives to Amazon Textract depend on why you’re leaving.
Azure Document Intelligence and Google Document AI cover the broadest set of Textract workflows, with prebuilt models at $10 per 1,000 pages on Azure and the Custom Extractor at $30 per 1,000 pages on Google, while the Foxit PDF Services API, Mistral OCR, and Amazon Bedrock Data Automation offer different billing models that favor long documents, high volume, or staying on AWS.
For teams that can’t move documents off their own infrastructure, Docling is the only open-source option here you can run with no vendor contract.
Because AnalyzeExpense already matches or undercuts most options here on 1-page invoices, the strongest arguments for switching are language coverage, schema extraction, data terms, or long-document pricing rather than invoice cost reduction.
Each API appears once, under the reason it fits best. List prices in US regions at first pricing tier.
If you are leaving Textract because… | Pick | Why it fits |
Long PDFs get billed per page at the selected feature-combination rate | 1 credit per successful PDF Services processing call within supported limits; scans need OCR before structural extraction. Credits are shared with other Foxit APIs, but eSign uses 5 credits per envelope. | |
You want comparable models for common Textract workflows | Prebuilt invoice, receipt, ID, bank statement, tax and mortgage models at $10 per 1,000 pages, query fields, and about 300 printed languages | |
Your documents are handwritten, or need field extraction beyond English | OCR for more than 200 languages including handwriting and a generative Custom Extractor at $30 per 1,000 pages | |
You want to stay on AWS | Blueprint fields with confidence scores at $0.04 a page for up to 30 fields, through your AWS account, with IAM and Amazon S3 integration | |
Per-page cost at high volume | OCR 4.1 at $4 per 1,000 pages, or $2 with the Batch API, with schema annotations at $5 per 1,000 annotated pages | |
Every extracted value needs evidence for review | Per-field citations with bounding boxes (except Turbo) and 0-1 confidence scores, from 8 credits a page (about $0.012 on pay-as-you-go) | |
Mixed document packets, or extraction inside your own VPC | Extract at $20 per 1,000 pages including parsing, Split and Classify endpoints, hybrid and full VPC deployments on Enterprise | |
Documents cannot leave your own servers | MIT-licensed, runs locally or air-gapped, Docling Serve REST API, schema extraction through DocumentExtractor |
If per-request pricing could work for your document mix, you can test it on a free Foxit developer account before deciding.
What Amazon Textract gives you today
The table below uses US East (N. Virginia) list prices from the AWS Price List API feed published 27 Oct 2026. Synchronous and asynchronous calls cost the same.
Textract API or feature | What it returns | Per 1,000 pages, first 1M a month | Above 1M pages a month | Free tier, first 3 months |
DetectDocumentText | Lines and words with confidence and geometry | $1.50 | $0.60 | 1,000 pages a month |
AnalyzeDocument Tables | Tables, cells, merged cells, table titles and footers | $15 | $10 | 100 pages a month |
AnalyzeDocument Forms | Key-value pairs and selection elements | $50 | $40 | 100 pages a month |
AnalyzeDocument Queries | Answers to questions you write (English) | $15 | $10 | 100 pages a month |
Forms and Tables together | Key-value pairs, selection elements and tables in a single call | $50 | 100 pages a month | |
Forms, Tables and Queries together | All 3 in a single call | $70 | $55 | 100 pages a month |
Layout | Titles, headers, paragraphs, lists, figures | $4, free with Forms, Tables or Queries | $3 | 100 pages a month |
Signatures | Signature locations | $3.50, free with Forms, Tables, Queries or Layout | $1.40 | 1,000 pages a month (Signatures only) |
AnalyzeExpense | Invoice and receipt fields and line items (English) | $10 | $8 | 100 pages a month |
AnalyzeID | US passports and US driver’s licenses (English) | $25 for the first 100,000 pages | $10 above 100,000 | 100 pages a month |
AnalyzeLending | Mortgage packages classified, split and extracted | $70 | $55 | 2,000 pages a month |
Custom Queries (adapters) | Queries tuned on your own documents | $25 | $15 | Not available |
How billing works. AnalyzeDocument bills each page at the rate for the feature combination you request, and Forms with Tables bills as the sum of the 2 feature rates, $65 per 1,000 pages. Every AnalyzeDocument response includes OCR. The free tier covers new AWS customers for 3 months.
What are the limitations of Amazon Textract? Synchronous calls take a single-page PDF or TIFF up to 10 MB. Asynchronous PDF/TIFF jobs read up to 3,000 pages and 500 MB from Amazon S3, announce completion on Amazon SNS, and keep results for 7 days by default.
Text detection, Tables, Signatures, and Layout support more than 40 languages, including Arabic, Chinese, Japanese, Korean, and Hindi. Forms covers only English, German, French, Spanish, Italian, and Portuguese.
Handwriting, Queries, AnalyzeExpense, and AnalyzeID are English only, and AnalyzeID reads only US passports and US driver’s licenses. Textract reads horizontally aligned text only, and XFA PDFs and password-protected PDFs are unsupported. Default quotas in US East (N. Virginia) are 10 transactions a second for AnalyzeDocument, 25 for DetectDocumentText, and 5 for AnalyzeExpense.
Data use. AWS may store and use Textract document inputs to improve Textract and other AWS AI services, and may store some of that content in another region, unless you set an AWS Organizations AI services opt-out policy. Textract is HIPAA eligible and compliant with PCI, ISO, and SOC, available in 18 regions including both AWS GovCloud (US) regions.
Human review. Amazon A2I is no longer open to new customers as of 30 Jul 2026, and existing users can keep it. Textract itself is unaffected by that announcement, and AWS shipped a text-detection model update for DetectDocumentText and AnalyzeDocument on 30 Jun 2025.
Before comparing alternatives, list the Textract APIs your pipeline calls, with monthly pages for each. That list tells you whether a cheaper Textract API (often AnalyzeExpense in place of AnalyzeDocument) already solves the cost problem, and if not, which alternative can replace each call and what it will cost.
The 8 Amazon Textract alternatives in detail
In each entry’s feature table, the Covers row maps the API to Textract’s jobs (OCR, Tables, Forms, Queries, Signatures, Layout, AnalyzeExpense, AnalyzeID, AnalyzeLending), and the Moving from Textract row names the biggest change you’ll make in your code.
Foxit PDF Services API

Our PDF Services API product page, which covers conversion, extraction and optimization from one REST API.
The Foxit PDF Services API is our REST API for PDF conversion, OCR, extraction, redaction and form handling.
Feature | Details |
Covers | OCR (Perform OCR endpoint), layout and tables through PDF Structural Extraction (Trial), tables to Microsoft Excel workbooks (XLSX) through PDF to Excel, fillable-form values through Export PDF Form Data, plus Markdown through PDF to Markdown and PDF to text. No counterpart for Queries, Signatures, AnalyzeExpense, AnalyzeID or AnalyzeLending. |
Field extraction | No schema-based extraction and no prebuilt invoice or ID models. Structural Extraction returns 12 element types in reading order (title, head, paragraph, table, image, headerFooter, form, hyperlink, footnote, sidebar, annotation, formula), where text elements carry an 8-number bounding polygon and a confidence score, and table elements carry their polygon under regions and their confidence under scores, returned as cell grids. Export PDF Form Data returns JSON keyed by the PDF’s form field names, reading interactive fields rather than key-value pairs printed on a scan. |
OCR and languages | The Perform OCR endpoint takes a list of OCR language codes in its languages setting, such as en-US. Structural Extraction returns no text on image-only PDFs unless you run the OCR endpoint first, so scanned documents take 2 credits in total. Handwriting support is not documented. |
Pricing | 1 credit per successful request, regardless of page count or file size within supported limits (Credits Explained). Developer (plan pricing): 500 credits/year (free). Startup: $1,750/year (5,000 credits, $0.35/credit). Business: $4,500/year (15,000 credits, $0.30/credit). Volume: by quote. Credits reset yearly with no rollover. |
Free allowance | 500 credits a year on the Developer plan. |
Limits | 100 MB upload. Per application: 15 requests a minute in sandbox, 100 in production. Asynchronous: upload, start the operation, poll the task, download the result. Page limit per request is not published. |
Deployment and data | Cloud only, through one global API gateway. A delete endpoint removes uploaded and generated files. Our cloud-hosted PDF APIs are covered by SOC 2 Type II audits, and we support HIPAA BAAs. Our MCP server (v1.1.2), built on the Model Context Protocol, exposes pdf_structural_analysis, pdf_extract and pdf_ocr tools. |
Moving from Textract | Upload the file instead of pointing at S3, poll the task instead of waiting for SNS, parse an elements array instead of Blocks and Relationships, and send your client ID and client secret as request headers instead of signing requests with IAM. |
Where Foxit PDF Services API stands out is per-request pricing. A 50-page digital statement costs 1 credit where Textract bills all 50 pages at the selected feature-combination rate.
On the Business plan with all 15,000 annual credits used, that works out to $0.30 per request, which is less than Textract Tables above roughly 20 pages and less than Forms with Tables from about 5 pages (our arithmetic from list prices, not an equivalent-output benchmark).
Extraction also sits on the same credit pool as conversion, redaction, eSign and document generation, so a pipeline that already converts, signs or redacts consolidates billing in one place. For fillable PDFs, Export PDF Form Data returns exact field values without any OCR layer.
What to consider. Our PDF Structural Extraction API is currently in Trial and uses schema version v1.0.7. The API may change, so validate responses against the schema your application expects. There’s no key-value detection on scanned forms, no Queries counterpart and no prebuilt invoice or ID model, so a team replacing AnalyzeExpense or AnalyzeID will need to pick a different option.
Scanned documents take 2 credits (OCR then extraction), equivalent to $0.60 to $0.70 at full use of the Business or Startup annual credit pool, respectively. That is 60 to 70 times AnalyzeExpense’s $0.01 per page, without the same prebuilt invoice fields.
Credits reset annually with no rollover; mid-cycle top-ups are available and expire at the same reset date. Our retention period for uploaded files is not published, so call the delete endpoint after each job. We don’t use the documents you submit to train AI models unless you authorize it.
Best for. Long, structured PDFs (statements, contracts, reports) and fillable forms in pipelines that also convert, OCR, redact or sign documents.
Getting started. A free Foxit developer account includes 500 credits a year, enough to test PDF Structural Extraction on a few of your own long documents.

Our developer sign-up page, where a new account comes with live API credentials and 500 free credits a year.
Azure Document Intelligence

Azure Document Intelligence product page, now listed under Foundry Tools and Azure Content Understanding.
Azure Document Intelligence (first Form Recognizer, then Azure AI Document Intelligence) is Microsoft’s document analysis service in Foundry Tools (API v4.0, 2024-11-30), now part of Azure Content Understanding.
Feature | Details |
Covers | Read (OCR), Layout (tables, selection marks, key-value pairs with keyValuePairs feature), prebuilt invoice, receipt, ID, bank statement, check, pay stub, contract, US tax and US mortgage models, query fields, and custom classification for splitting packets. Counterparts exist for OCR, Tables, Forms, Queries, AnalyzeExpense, AnalyzeID and AnalyzeLending workflows. Signature detection is supported by custom neural and custom template models. |
Field extraction | Prebuilt models return named fields with confidence scores and polygons. Custom template, custom neural and custom generative models cover layouts the prebuilt models miss. Query fields extend Layout and most prebuilt models, similar to Textract Queries. |
OCR and languages | Read and Layout cover about 300 printed languages and 12 handwritten languages in v4.0 (language support). |
Pricing | East US pay-as-you-go, per 1,000 pages (from the Azure Retail Prices API, checked 5 Nov 2026): Read $1.50, then $0.60 above 1 million. Layout and prebuilt models cost $10, custom extraction or custom generative extraction costs $30, add-ons cost $6, and query fields cost $10. Batch costs the same as standard. Azure cloud commitment tiers start at $190/month for 20,000 prebuilt pages. |
Free allowance | 500 pages/month on the F0 tier, which analyzes only the first 2 pages of each document (4 MB cap, 1 request/second). |
Limits | S0: 500 MB and 2,000 pages per analysis; 15 analyze requests/second by default, adjustable. Submit, then poll the operation, plus a batch API. |
Deployment and data | Azure regions. v4.0 containers cover Read and Layout only, including disconnected tiers (prebuilt invoice, receipt and ID containers are supported in v3.1). Inputs and results are deleted 24 hours after analysis completes, or earlier through the Delete Analyze Result API. |
Moving from Textract | Forms become Layout key-value pairs or a prebuilt model; Queries become query fields; AnalyzeExpense becomes the invoice and receipt models; AnalyzeID becomes the ID model; Custom Queries adapters become custom models. S3 and SNS give way to URL or Azure Blob Storage input and polling. |
Where Azure Document Intelligence stands out is the breadth of prebuilt counterparts for Textract’s most-used workflows. The prebuilt invoice and receipt models price at $10 per 1,000 pages, matching AnalyzeExpense.
Handwriting covers 12 languages where Textract reads handwriting only in English, and the prebuilt invoice model supports many locales where AnalyzeExpense is English only. For teams that can’t call a cloud API from every environment, v4.0 containers cover Read and Layout without a network connection.
What to consider. The v4.0 container images cover only Read and Layout, so if you need containerized invoice, receipt or ID extraction, you’re on v3.1.
The free tier reads only 2 pages per document, which means a 20-page invoice returns 2 pages during evaluation. Content Understanding‘s LLM-powered analyzers (GA with API 2025-11-01, from $5 per 1,000 pages for Standard content extraction plus contextualization and model tokens) are worth evaluating alongside the prebuilt models.
Best for. Teams moving invoices, receipts, IDs and tax forms off Textract that want like-for-like prebuilt models, or that already run on Azure.
Getting started. Azure Document Intelligence quickstart.
Google Document AI

Google Document AI product page, which positions it as a processor platform for extracting, classifying and splitting documents.
Google Document AI is Google Cloud’s document understanding platform, with a range of prebuilt parsers, a Layout Parser, a Form Parser and a generative Custom Extractor built on Gemini. Its OCR reads more than 200 languages, including handwriting.
Feature | Details |
Covers | Enterprise Document OCR, Layout Parser, Form Parser (key-value pairs, checkboxes, tables), Custom Extractor, prebuilt Invoice, Expense, Bank statement, Pay slip, W2, US driver license, US passport and ID proofing parsers, and custom classifiers and splitters. Counterparts for OCR, Tables, Forms, Queries, AnalyzeExpense, AnalyzeID and lending packets. |
Field extraction | Custom Extractor defines up to 150 labels by schema (generative with Gemini, or trained), at the same prediction price. Versions v1.5 and v1.5-pro are GA, while v1.5.1, v1.6, v1.6-pro, v3.1-lite and v3.5 are Public Preview. Prebuilt parsers and Form Parser return entities and key-value pairs with confidence and bounding boxes. |
OCR and languages | Enterprise Document OCR reads printed and handwritten text in more than 200 languages, and handwriting support varies by language. |
Pricing | Per 1,000 pages (Document AI pricing, checked 5 Nov 2026): OCR $1.50 (then $0.60 above 5 million); Layout Parser $10; Form Parser and Custom Extractor $30 (then $20 above 1 million). Invoice and Expense parsers cost $0.10 per document (up to 10 pages); ID parsers $0.10 per document; Bank statement $0.75 per document; Pay slip and W2 $0.30 per document. |
Free allowance | The first 1,000 Enterprise Document OCR pages are free. |
Limits | Online requests: up to 15 pages (30 in imageless mode where supported, 10 for Expense, 2 for ID parsers) and 40 MB. Batch caps pages per document by processor (OCR and Layout 500, Custom Extractor and Invoice 200, Form Parser 100, Bank statement 30). Most batch jobs finish 12 to 24 hours after they start running, excluding queue time. |
Deployment and data | US and EU multi-regions plus limited-access regions; VPC Service Controls and customer-managed keys. Online document data is processed in memory and not persisted to disk, and batch documents are deleted after processing, with a 1-day failsafe TTL. Document AI models are not trained on customer data. Custom Extractor v1.6 and v1.6-pro use the Vertex AI global endpoint and are not data-residency compliant, while v3.1-lite supports US and EU multi-region endpoints. |
Moving from Textract | Queries and Custom Queries become Custom Extractor fields; AnalyzeExpense becomes the Invoice or Expense parser; S3 input becomes Cloud Storage for batch; SNS gives way to long-running operation polling. Google deprecated Document AI’s human-in-the-loop review on 16 Jan 2024, so you’ll need to build your own review step. |
Where Google Document AI stands out is handwriting in many languages, where Textract reads handwriting only in English, plus a generative Custom Extractor that defines fields by schema without training data.
What to consider. Per-document parser pricing means a 1-page invoice costs $0.10 through the Invoice parser, which is 10 times AnalyzeExpense. Online page limits vary by processor (up to 15 pages, or 30 in imageless mode where supported), so longer documents go through batch with 12-24 hour turnaround. The newest Custom Extractor versions (v3.5, v3.1-lite) are Preview, and data-residency support varies by version. Human review is deprecated, so budget for your own queue.
Best for. Multilingual or handwritten documents, or pipelines already on Google Cloud.
Getting started. Document AI quickstart.
Amazon Bedrock Data Automation

Amazon Bedrock Data Automation product page, part of Amazon Bedrock and covering documents, images, audio and video.
Amazon Bedrock Data Automation (BDA) is an AWS-managed service for extracting structured data from documents.
It lets teams add schema-defined fields while reusing IAM and S3 rather than moving to another cloud provider.
Feature | Details |
Covers | Standard output (text, Markdown, HTML or CSV tables at page, element or word level, with bounding boxes and summaries) and custom output through blueprints, plus document splitting and routing across up to 40 document blueprints per project. Blueprints can stand in for Forms, Queries, AnalyzeExpense, AnalyzeID and AnalyzeLending. AWS catalog blueprints reference a US driver license and a W-2. |
Field extraction | Blueprints define typed fields (strings, numbers, booleans, arrays and tables) with natural-language normalization and validation instructions. Document fields return confidence scores and page references. Up to 100 leaf fields per blueprint. |
OCR and languages | English, German, Spanish, French, Italian and Portuguese, printed and handwritten. Vertical text is not supported. |
Pricing | Standard output $0.010/page, custom output $0.040/page for 1 to 30 fields, plus $0.0005/page for each field above 30, and blueprint optimization $0.010 per example page. |
Free allowance | No BDA-specific free tier published as of 5 Nov 2026. |
Limits | Asynchronous: PDF, TIFF, JPEG, PNG, DOC and DOCX up to 500 MB, up to 3,000 pages with splitting on; 25 concurrent document jobs by default in most regions, 5 in Mumbai, Singapore, Canada (Central), Spain and London. Synchronous: up to 10 pages and 50 MB, 60 requests/minute. |
Deployment and data | AWS-managed service available through your account, including in GovCloud (US-West). Asynchronous output goes to S3, and synchronous JSON can be inline or S3. BDA requires cross-region inference profiles, so requests and results may move outside your primary region while stored data stays there. Bedrock inputs and outputs are not used to train Amazon Nova, Amazon Titan or third-party models. |
Moving from Textract | IAM, S3 and your account stay the same. The Block parser gives way to blueprint JSON. Custom Queries adapters become blueprints. A2I is closed to new customers, so route low-confidence fields to your own review queue. |
Amazon Bedrock Data Automation lets you keep IAM and S3 while adding schema-defined fields with confidence scores. Custom output costs $0.04 per page for up to 30 fields, with an additional charge for each field above 30.
An AWS Builder Center guide to choosing an IDP service points to BDA for “net-new IDP projects” and to Textract with foundation models for “extending an existing Textract implementation.”
What to consider. Custom output at $0.04/page costs 4 times AnalyzeExpense per invoice page. The cross-region inference requirement adds a layer to residency reviews. BDA reads 6 languages, the same set as Textract Forms and far fewer than the 40-plus Textract supports for printed text, though unlike Textract it reads handwriting in all 6.
Best for. AWS-native teams starting a new extraction workload or adding document types without training adapters.
Getting started. What is Bedrock Data Automation, in the Amazon Bedrock user guide.
Mistral OCR

Mistral OCR product page, with sample tabs for contracts, tables, invoices and handwriting.
Mistral OCR is a dedicated OCR and document annotation API from Mistral AI. OCR 4.1 (mistral-ocr-latest, released 16 Jul 2026) returns per-page Markdown at $4 per 1,000 pages, with schema-based field extraction available through document annotations.
Feature | Details |
Covers | OCR to per-page Markdown, tables as Markdown or HTML, header and footer extraction, and blocks with bounding boxes and labels (including a signature label). Document AI annotations return JSON in your schema. Stands in for DetectDocumentText, Tables, Layout and, through annotations, Queries and AnalyzeExpense. Extraction uses a supplied schema. |
Field extraction | document_annotation fills a JSON schema for the whole document; bbox_annotation describes extracted figures. A second model, mistral-small-2603, generates the annotations after OCR. Per-field confidence is not documented for annotations; OCR confidence can be set at page, block or word level. |
OCR and languages | Reads more than 40 languages, and image input works even from low-quality or handwritten sources. |
Pricing | OCR 4.1: $4 per 1,000 pages standard, or $2 per 1,000 pages with the Batch API. Annotations: $5 per 1,000 annotated pages. OCR 3 remains available at $2 per 1,000 pages. OCR 4.0 retired 30 Sep 2026. |
Free allowance | A free mode is available with organization-level rate limits, and it may use inputs and outputs for training unless you opt out. |
Limits | 50 MB and 1,000 pages per document. Rate limits are set per organization. |
Deployment and data | Mistral API, Amazon SageMaker and Microsoft Foundry. Single-container self-hosting for enterprise customers. Zero data retention on /v1/ocr requires approved paid access and excludes batch files and /v1/files. Pay-as-you-go customers can opt out of training. |
Moving from Textract | Rewrite Queries as a JSON schema and line items as a schema array, parse Markdown and blocks instead of Blocks, and use the Batch API for asynchronous volume. |
Where Mistral OCR stands out is cost for OCR with tables. OCR 4.1 returns Markdown with tables at $4 per 1,000 pages, or $2 through the Batch API, well under Textract’s $15 per 1,000 pages for Tables. Annotations then add schema-based extraction to the same API call.
What to consider. OCR 4 is designed for high-throughput processing rather than real-time or latency-sensitive use, which matters if you currently call Textract synchronously. Models retire quickly (OCR 4.0 shipped 23 Jun 2026 and retired 30 Sep 2026, about 3 months later), so plan for version updates. Free mode may train on your documents unless you opt out.
Best for. High-volume invoice or form extraction where per-page cost is the primary constraint and a schema can replace Queries.
Getting started. Mistral OCR API documentation.
LlamaExtract (by LlamaIndex)

LlamaExtract product page, which maps a custom schema to extracted fields.
LlamaExtract is the hosted schema extraction service on LlamaIndex’s LlamaParse platform. Optional citations and confidence scores support field-level review; citation bounding boxes are available on the primary tiers, but not Turbo.
Feature | Details |
Covers | Schema extraction with JSON Schema or Pydantic (Zod in TypeScript), schemas generated from a prompt or a sample file, and a spreadsheet mode. Stands in for Forms, Queries and AnalyzeExpense through your schema. Extract v2 uses schemas you supply or generate. |
Field extraction | Up to 3,200 leaf fields on Cost-effective, Agentic and Agentic Plus, with large schemas on Cost-effective and Agentic requiring version 2.1 or later. Citations return the page, verbatim text and bounding boxes for each field (except Turbo, which has text-level citations only). Confidence is a 0-1 score per field. Both citations and confidence are off by default in the API and slow processing. |
OCR and languages | Primary tiers use LlamaParse OCR with more than 80 OCR language codes. Turbo prepares inputs without a separate Parse step. |
Pricing | $1.50 per 1,000 credits on pay-as-you-go ($0/month), or $1.25 per 1,000 on Pro ($500/month). Credits per page with default parsing: Cost-effective 8 (about $0.012, or $0.010 on Pro), Agentic 25 (about $0.0375, or $0.031), Agentic Plus 60 ($0.09, or $0.075), Turbo 35 (about $0.0525, or $0.044). |
Free allowance | 10,000 free credits a month on pay-as-you-go, about 1,250 Cost-effective pages (our arithmetic). |
Limits | 100 MB and 500 pages per extraction job. Concurrent extract jobs: 5 on pay-as-you-go, 20 on Pro, 100 on Enterprise. |
Deployment and data | Managed SaaS in North America or the EU. Enterprise deployments add single-tenant SaaS, bring-your-own-cloud (AWS, Azure or GCP) and self-hosting. Files are cached 48 hours unless you set do_not_cache. No training on customer data by default. SOC 2 Type II audited, with a HIPAA BAA for Enterprise. |
Moving from Textract | Queries become schema fields, Block geometry becomes per-field citations with boxes on the primary tiers, and confidence moves from Textract’s 0-100 scale to 0-1. |
Where LlamaExtract stands out is the field-level evidence model on the primary tiers, providing a citation box plus a confidence score per field. The Cost-effective tier costs about $0.012 a page on pay-as-you-go and $0.010 on Pro, close to AnalyzeExpense’s $0.01, so teams migrating invoice extraction pay a similar rate and gain citation support.
What to consider. The 500-page cap per extraction job is a real constraint for long documents. Citations and confidence scores are off by default in the API and can add processing time. Enable them when your review workflow needs the evidence, then measure the latency on your documents. Concurrency caps (5 concurrent extract jobs on pay-as-you-go) matter for burst workloads. You’ll need to supply or generate an extraction schema, which adds an upfront build step.
Best for. Teams replacing Queries or AnalyzeExpense with a schema that need field-level evidence for review queues.
Getting started. LlamaExtract documentation.
Reducto

Reducto home page, which presents it as a single platform for every document task.
Reducto is a document extraction API that includes parsing in the extraction price and supports mixed-document packets through its Split and Classify endpoints. Per-product pricing launched on 1 Sep 2026, with pay-as-you-go accounts moving on 1 Oct 2026.
Feature | Details |
Covers | Extract (JSON in your schema, parsing included), Deep Extract, Parse, Split, Classify and Edit. Stands in for Forms, Queries and AnalyzeExpense through schemas, and for AnalyzeLending-style packets through Split and Classify. You define the extraction schema. |
Field extraction | With citations on: normalized 0-1 page boxes for PDFs and images (the same convention as Textract’s BoundingBox), a high or low confidence label, and numeric extract and parse confidence. Some values have empty citation arrays. Extractions over 100 fields per page may carry a per-field surcharge that is not published. |
OCR and languages | Parsing reads scanned documents, and agentic mode handles handwritten or degraded text. Standard OCR covers 60+ languages. |
Pricing | Per 1,000 pages: Extract $20 and Deep Extract $40, both with parsing included; Parse r-1 $10 and Parse r-1 mini $1; Split $20; Classify $7.50. The batch queue takes 20% off Parse and Extract (12-hour completion), not Deep Extract. |
Free allowance | The Standard plan includes $150 in free usage, then list rates apply. Reducto also offers up to $5,000 in migration credits to teams switching processors (vendor offer). |
Limits | 100 MB direct upload (5 GB through presigned upload), no page limit on Standard, synchronous calls have a 15-minute hard timeout, and up to 1,000 requests/second per key (300 for job-status polling). Standard concurrency baselines of 500 pages in the US and 250 in the EU for r-1. |
Deployment and data | SaaS, with EU and Australian endpoints from Growth. Hybrid VPC and full VPC or on-premises on Enterprise. Results are generally available for 12 hours. From Growth up, zero data retention purges API artifacts within 24 hours (except Studio jobs and persist_results) and data is never used for training. The Standard plan training policy is not stated. Has completed a SOC 2 Type II audit and HIPAA BAAs on Growth and Enterprise. |
Moving from Textract | Normalized citation boxes need no coordinate conversion for PDFs and images. Queries become schema fields. AnalyzeLending-style packets map to Split, Classify and Extract. |
Where Reducto stands out is that parsing is included in the extraction price, so you’re not paying separately for a Parse step and an Extract step. Citation boxes use the same 0-1 normalized coordinates as Textract’s BoundingBox, which reduces the coordinate-conversion work during migration. The hybrid VPC option keeps files in your own storage while processing runs on Reducto’s GPUs.
What to consider. An unpublished per-field surcharge above 100 fields per page adds pricing risk for complex schemas. The Standard plan’s training policy is not stated, so confirm training terms before sending regulated documents.
Best for. Long or mixed packets (lending, insurance, logistics) that need splitting and extraction with citations, possibly inside a VPC.
Getting started. Reducto API documentation.
Docling

The Docling home page, which leads with a one-line pip install and local, offline use.
Docling is an open-source document parsing library from IBM Research, now an LF AI & Data project. Its MIT license allows production use at no cost.
Feature | Details |
Covers | Open-source parsing of PDF, Office, HTML and image files to Markdown and lossless JSON with layout, tables and reading order, plus schema extraction through DocumentExtractor. Docling Serve exposes a REST API. Stands in for DetectDocumentText, Tables, Layout and simple Queries-style fields. You supply the field-extraction template. |
Field extraction | DocumentExtractor takes a JSON, dict or Pydantic template and returns extracted data per page, using a vision-language model, on PDFs and images only. DocumentExtractor returns no per-field confidence or bounding boxes. |
OCR and languages | Pluggable OCR engines (RapidOCR, EasyOCR, Tesseract, OcrMac, Nemotron-OCR). Language coverage depends on the engine you choose. |
Pricing | Free under the MIT license (models carry their own licenses). You pay for compute; a GPU helps with the vision-language pipeline. |
Free allowance | Unlimited on your own hardware. |
Limits | Set by your hardware and configuration. |
Deployment and data | Runs locally or air-gapped. Docling Serve (v1.38.2) runs in containers. Docling for IBM watsonx is the managed option. An LF AI & Data project started at IBM Research. |
Moving from Textract | You replace a managed API with a service you run, so you own scaling, monitoring, OCR quality and model updates. |
Where Docling stands out is that with local models and remote services disabled, documents stay in your infrastructure, and there is no per-page software fee.
What to consider. You run and scale it yourself. DocumentExtractor works per page without built-in per-field confidence scores, so quality depends on the models and hardware you choose. Frequent releases mean pinning versions keeps production stable.
Best for. Documents that cannot leave your own servers or network.
Getting started. Docling on GitHub.
What changes when you move off Amazon Textract
Switching changes what you pay per document and which parts of your pipeline you rewrite, starting with cost.
What one document costs on each API
List prices as of November 5, 2026, using US regions and the first pricing tier where applicable. Each invoice is 1 page. These are calculations from list prices, not equivalent-output benchmarks: OCR-only rows do not include named invoice fields, and the statement column uses the mode shown in each cell.
API and mode | 1-page scanned invoice | 50-page digital statement | 100,000 invoices a month |
Amazon Textract, AnalyzeExpense | $0.01 | $0.075 (DetectDocumentText) | $1,000 |
Amazon Textract, Forms, Tables and Queries | $0.07 | $3.50 | $7,000 |
Foxit PDF Services API (Business) | 2 credits (OCR then Structural Extraction), or $0.60 on Business | 1 credit, or $0.30 on Business | Volume pricing by quote: 2.4 million credits a year for scanned invoices, or 1.2 million for digital PDFs, before any additional processing calls |
Azure Document Intelligence, prebuilt invoice | $0.01 | $0.50 (Layout) | $1,000, or $900 on the 100,000-page commitment tier |
Google Document AI, Invoice parser | $0.10 (Custom Extractor prediction $0.03) | $0.50 (Layout Parser) | $10,000 (Custom Extractor $3,000; custom-model hosting extra) |
Amazon Bedrock Data Automation, custom output | $0.04 | $0.50 (standard) | $4,000 (custom) |
Mistral OCR 4.1, OCR only | $0.004 | $0.20 | $400 |
LlamaExtract, Cost-effective (pay-as-you-go) | $0.012 | $0.60 | $1,200, or $1,000 on Pro |
Reducto, Extract | $0.02 | $1.00 | $2,000, or $1,600 with batch |
Docling, self-hosted | Your compute | Your compute | Your compute |
Foxit figures assume full use of the yearly credit pool (Business is $4,500 for 15,000 credits, $0.30 per credit; Startup works out to $0.35). Each successful PDF Services processing call costs 1 credit within supported limits, and each separate call in a batch uses 1 credit.
Invoices. At list price, AnalyzeExpense costs $0.01 per invoice page, matching or undercutting most options here. Azure’s prebuilt invoice model matches it at $0.01, and LlamaExtract’s Cost-effective tier comes close at about $0.012 on pay-as-you-go ($0.010 on Pro). Mistral’s OCR-only rate comes in lower still. Google’s Invoice parser costs 10 times more on 1-page invoices because it bills per document.
Long documents. Per-request billing changes the calculation. On digital PDFs, Foxit at $0.30 per request costs less than Textract Tables above roughly 20 pages and less than Forms with Tables from about 5 pages. On scanned documents (2 credits at $0.30 each), the crossovers shift to roughly above 40 pages and from about 10 pages. That comparison is price only, since Foxit returns document structure and form-field values, while Textract’s Forms feature detects key-value pairs on printed and scanned pages.

List-price arithmetic only. A digital PDF on Foxit costs less than both Forms lines from 5 pages and less than Tables above 20 pages; a scan costs less from 9 pages (Forms, Tables and Queries), 10 pages (Forms and Tables) and above 40 pages (Tables).
Volume. At 100,000 invoices/month, 1-page invoices consume 1.2 million credits/year for digital PDFs or 2.4 million for scans. Both are far beyond the 15,000 credits on the Business plan, so a Volume quote applies. At this scale, per-page APIs like AnalyzeExpense, Azure’s prebuilt models, or Mistral OCR are better matched to 1-page invoice volumes.
Commitment structure. Our credits reset annually and do not roll over. Top-ups expire on the same reset date. The examples here use annual plan prices at full credit utilization; the effective cost rises when credits go unused.
Price your real document mix before deciding, taking into account pages per document, scanned or digital, and which fields you need. Per-page billing favors short documents at high volume; per-request billing favors long ones.
Every migration rewrites the same parts

The 6 rewrite points every migration hits, from input and async plumbing to output parsing, coordinates and confidence, auth, human review and Custom Queries adapters.
Input and async plumbing. Textract’s asynchronous APIs read from S3 and announce completion on an SNS topic, with results kept 7 days unless you set an output bucket. Most alternatives take an upload or a URL and expect you to poll or receive a webhook. Foxit uses task polling, Azure uses operation polling, Google batch reads from Cloud Storage, and BDA keeps S3. Review your S3 paths, completion notifications, and output handling for the destination API. BDA keeps S3, but its job workflow still needs to be integrated.
Output parsing. Code that walks Blocks and Relationships (KEY_VALUE_SET to its value and words, TABLE to CELL, QUERY to QUERY_RESULT) gets replaced entirely. Schema extractors return named fields. Layout parsers return element trees. The parsing logic is new code in every case.
Coordinates and confidence. Textract’s BoundingBox values are ratios of page size (0 to 1), and Confidence runs from 0 to 100. Reducto’s citation boxes use the same 0-1 convention. LlamaExtract’s primary tiers return x, y, width, and height with page dimensions. Foxit’s Structural Extraction returns an 8-number polygon with page size reported in points. Confidence scales differ too, with LlamaExtract using 0-1 and Reducto adding high or low labels, so re-tune your review thresholds after migration.
Auth. Hosted alternatives commonly use API keys or OAuth client credentials instead of IAM and SigV4. BDA retains AWS authentication. For a self-hosted deployment, configure authentication for the service you expose.
Human review. A2I is closed to new customers. Google deprecated Document AI’s human-in-the-loop on 16 Jan 2024. For any destination, budget for your own review queue driven by confidence scores.
Custom Queries adapters. Adapters (5 to 2,500 training documents, at most 10 per account) stay in AWS. Rebuild them as schemas, blueprints, or custom models depending on your destination. There’s no export path.
The safest migration approach is to run both pipelines on the same sample of documents and compare fields one by one before cutting over.
Mapping Textract calls to the Foxit PDF Services API
To see those rewrite points on a real destination, this section maps Textract calls to our own API, then runs an extraction on a sample invoice. The mapping is conceptual, since Textract output doesn’t carry over automatically.

A digital PDF takes 1 billable call; a scanned PDF adds the OCR call first, for 2 credits in total.
Amazon Textract | Foxit PDF Services API | What changes |
DetectDocumentText | Perform OCR on PDF, then PDF to Text or PDF Structural Extraction | OCR returns a searchable PDF; text and structure come from a second call (1 credit each) |
AnalyzeDocument with Tables | PDF Structural Extraction (Trial) table elements, or PDF to Excel | Tables come back as cell grids with row and column indexes, or as an XLSX file |
AnalyzeDocument with Layout | PDF Structural Extraction, or PDF to Markdown | One call returns 12 element types in reading order; filter them in your code |
AnalyzeDocument with Forms, on fillable PDFs | Export PDF Form Data | JSON keyed by form field names, with no OCR involved |
Forms on scanned pages, Queries, AnalyzeExpense | No direct equivalent | Map elements to your fields in code, as our invoice extraction tutorial shows |
Signatures, AnalyzeID, AnalyzeLending | No equivalent | Keep them on Textract or choose another API from this list |
S3 input and SNS notification | Upload, start the operation, poll the task | Polling, uploads and downloads use no credits |
Blocks with ratio geometry and 0-100 confidence | An elements array where text elements carry a page, an 8-number polygon and a score, and table elements carry them under regions and scores | Convert coordinates and re-tune thresholds |
IAM and SigV4 | client_id and client_secret request headers | No request signing; the same 2 headers authenticate every PDF Services call |
Billed per page at the selected feature-combination rate | 1 credit per request | Within supported limits; scanned PDFs take 2 calls |
Prerequisites
To try the flow on your own account, you need:
- A bash shell: bash ships with macOS and Linux; on Windows, use WSL
- curl: the command-line HTTP client that makes every API call
- jq: the JSON processor that reads the API responses
- unzip: UnZip, which opens the result ZIP
- A Foxit developer account: a free Foxit developer account, whose Developer plan includes 500 credits a year
Once you’re signed in, the Make your first call card on the console dashboard shows your client ID and client secret, with a copy button beside each.

The Make your first call card, where the copy buttons beside CLIENT ID and CLIENT SECRET give you the 2 values the script reads.
The same dashboard tracks how many of your yearly credits you’ve used.
Run this block to create a working folder, download our extraction script, the sample digital invoice, the image-only scan of the same invoice and the fillable form, and export your credentials:
mkdir textract-foxit && cd textract-foxit
B=https://github.com/lucienchemaly/foxit-demo-templates/raw/main/textract-alternatives
curl -LO $B/foxit_extract.sh -LO $B/invoice_table_test.pdf -LO $B/scanned_invoice.pdf -LO $B/fillable_test.pdf
chmod +x foxit_extract.sh
export FOXIT_CLIENT_ID="your_client_id"
export FOXIT_CLIENT_SECRET="your_client_secret" The code above creates a textract-foxit folder, downloads the script and the 3 sample PDFs into it from our demo repository, makes the script executable, and sets the 2 environment variables the script reads to authenticate every request.
Run this command from your terminal to extract the digital invoice:
./foxit_extract.sh structure invoice_table_test.pdf The expected output should look like the following:
uploaded invoice_table_test.pdf as 6aecea0a69750a7eaa41a4a1
started pdf-structural-extract (task 6aecea0becfabd07d2ee482d)
zip contents: page_p0.pdf_0.png StructureInfo.json
{"version":{"schema":"1.0.7","software":"FoxitPDFAnalyzer","model":"idp-analysis"}}
{"pages":[{"pageNumber":1,"state":"success","messages":null}]}
{"elementTypes":{"head":1,"paragraph":5,"table":1,"title":1}}
{"textChars":220}
{"firstParagraph":{"text":"Foxit DocGen API Sample Template","page":1,"boundingBox":[90,113,268,113,268,127,90,127],"score":0.8891659975051880}}
{"firstTable":{"rows":4,"columns":5,"scores":[0.9757168889045715],"image":"page_p0.pdf_0.png","firstCells":[{"rowIndex":0,"columnIndex":0,"text":"#"},{"rowIndex":0,"columnIndex":1,"text":"Description"},{"rowIndex":0,"columnIndex":2,"text":"Qty"}]}} Text elements carry an 8-number boundingBox in points and a score. Table elements leave region empty and carry their polygon under regions and their confidence under scores, and they come back as a row and column grid with a PNG crop of the table region. The script saves the full extraction to out/StructureInfo.json, the table crop to .out/page_p0.pdf_0.png and the original ZIP to result.zip, all in your working folder.

The table crop from the result ZIP holds only the line-item table region, not a render of the whole page.
The same script covers the other routes. Run this command from your terminal to extract the image-only scan of the same invoice, which runs OCR before extraction:
./foxit_extract.sh ocr-structure scanned_invoice.pdf The expected output should look like the following:
uploaded scanned_invoice.pdf as 6aecea16e5e7ff0dd225d2db
started analyze/pdf-ocr (task 6aecea17ecfabd07d2ee4ee6)
started pdf-structural-extract (task 6aecea1fecfabd07d2ee5341)
zip contents: page_p0.pdf_0.png StructureInfo.json
{"version":{"schema":"1.0.7","software":"FoxitPDFAnalyzer","model":"idp-analysis"}}
{"pages":[{"pageNumber":1,"state":"success","messages":null}]}
{"elementTypes":{"head":1,"paragraph":5,"table":1,"title":1}}
{"textChars":220}
{"firstParagraph":{"text":"Foxit DocGen API Sample Template","page":1,"boundingBox":[89,112,268,112,268,128,89,128],"score":0.8857628107070923}}
{"firstTable":{"rows":4,"columns":5,"scores":[0.9737526178359985],"image":"page_p0.pdf_0.png","firstCells":[{"rowIndex":0,"columnIndex":0,"text":"#"},{"rowIndex":0,"columnIndex":1,"text":"Description"},{"rowIndex":0,"columnIndex":2,"text":"Qty"}]}} The 2 started lines are the 2 billable calls, OCR then Structural Extraction, so this run costs 2 credits. The OCR result document becomes the extraction input, and the scan comes back with the same 220 text characters and the same table grid as the digital PDF, with slightly different coordinates and scores.
The script has 2 more modes. form-data returns a fillable form’s values as JSON keyed by the PDF’s own field names, with every value as a string, and excel converts the tables to an Excel workbook. Each costs 1 credit.
Common mistakes
Each of these failures came up while running the script above, and each one stops the run with a specific message.
- Missing exports in a new terminal: the environment variables only last for the shell session that set them, so a fresh terminal stops at the first check with
./foxit_extract.sh: line 8: FOXIT_CLIENT_ID: set FOXIT_CLIENT_IDto the client ID from your Foxit API console. Run the 2 export lines again in that terminal. - Wrong client ID or secret: a mistyped or swapped value fails on the first request, the upload, with HTTP 401 and
{"allow":false,"reason":"Invalid credentials or access token"}. Copy both values again from the Make your first call card. - No credits left: Check Credits Remaining before a batch run. The sample handles an upload response with “allow”:false and “Access denied or insufficient quota”. Our current credit reference documents HTTP 429 with QUOTA_EXCEEDED for exhausted processing credits, so handle the response returned by the endpoint you use. Restore credits through an upgrade, a purchased top-up, or the annual reset.
structureon an image-only scan: the task still completes, but the page comes back with"state":"fail"and the messageNo element tag or tag element less than 50%.Tag Failed!, with no elements and 0 text characters, and the call still costs a credit. Useocr-structurefor scanned PDFs so OCR adds a text layer before extraction.
Where your documents go after you upload them
Retention, training, and region terms can rule out an API before price does. The table summarizes the vendor terms reviewed; “not published” and “not stated” mean the relevant terms were not verified, not that no policy exists.
| API | Default retention | Training on your data | Private deployment |
| Amazon Textract (baseline) | Async results kept 7 days in a Textract-owned bucket unless you set your own output bucket | Inputs may be stored and used to improve AWS AI services, possibly in another region, unless you set an AI services opt-out policy | AWS PrivateLink and GovCloud; no on-premises option |
| Foxit PDF Services API | Delete endpoint available; retention period not published | Not used to train AI models unless you authorize it | Cloud only |
| Azure Document Intelligence | Inputs and results deleted 24 hours after analysis | Not published | Read and Layout containers (v4.0), including disconnected tiers; prebuilt model containers in v3.1 |
| Google Document AI | Online document data not persisted to disk; batch documents deleted after processing, 1-day failsafe TTL | Never | Google Cloud; VPC Service Controls and customer-managed keys, subject to processor-version support |
| Amazon Bedrock Data Automation | Async output goes to your S3; sync JSON can be inline or S3 | Not used to train Nova, Titan, or third-party models | AWS-managed with IAM and S3; cross-region inference is required |
| Mistral OCR | Zero data retention on /v1/ocr with approved paid access; batch files excluded | Free mode may train; free and pay-as-you-go users can opt out | Single-container self-hosting for enterprise |
| LlamaExtract | Files cached 48 hours unless do_not_cache is set | No, by default | Single-tenant, bring-your-own-cloud or self-hosted |
| Reducto | Default job results: about 12 hours; zero data retention from Growth purges API artifacts within 24 hours, except Studio jobs and persisted results | Never from Growth up; Standard not stated | Hybrid VPC or full VPC on Enterprise |
| Docling | Your infrastructure | Not applicable | Self-hosted, including air-gapped |
Textract’s opt-out. Use an AWS Organizations AI services opt-out policy if you need to prevent Textract content from being used or stored for service improvement. This does not prevent the processing or storage required to provide the service.
“Our documents cannot leave our cloud.” A requirement to process data in a particular region is different from a rule that documents must stay inside your own environment. Zero data retention and no training do not, by themselves, satisfy either requirement. Check where processing happens and who operates the infrastructure.
If documents must stay in your environment. Docling (MIT) runs fully self-hosted or air-gapped. Azure Document Intelligence v4.0 containers cover Read and Layout, including disconnected tiers; prebuilt model containers require v3.1.
Reducto’s full VPC keeps infrastructure in your environment, though the hybrid tier keeps storage local while processing runs on Reducto’s GPUs. LlamaExtract offers bring-your-own-cloud deployment (AWS, Azure, or GCP) and self-hosting for enterprise customers.
Mistral offers a single-container self-hosted option for enterprise customers. Amazon Bedrock Data Automation stays in your AWS account but requires cross-region inference profiles, which may move requests outside your primary region. Most private deployment options require enterprise contracts rather than self-serve plans.
For regulated documents, check retention, training, and deployment before accuracy, because those determine whether you can use the API at all. Price and accuracy comparisons are only relevant after that gate.
Which accuracy claims you can trust
Who ran the tests. Businessware Technologies, a software services firm, published an invoice accuracy test in January 2025 that covers Textract’s AnalyzeExpense, Azure’s invoice model and GPT-4o. LlamaIndex runs ParseBench (published April 2026), Reducto runs RD-TableBench (November 2024 results), and anyformat publishes its own Textract comparison, last updated 27 Jul 2026. In each vendor-run benchmark, the publisher wins, so vendor-run results are not independent validation. Businessware, LlamaIndex and Reducto don’t publish the Textract, Azure or Google model versions they tested, so a result may predate the current release.
How good is Amazon Textract? In Businessware’s January 2025 invoice test, AnalyzeExpense scored approximately 78% field accuracy and 82% on line items, behind Azure’s invoice model (93% field accuracy, 87% on line items) and GPT-4o with a separate OCR step (98% field accuracy).
AWS shipped a text-detection model update on 30 Jun 2025, after that test, and the Businessware page doesn’t state a sample size. Treat these dated results as context, not a definitive ranking: the report does not specify the sample size or tested model versions.
Is Google Document AI better than Amazon Textract for OCR? It depends on the job. Google reads more than 200 languages including handwriting against Textract’s 40-plus printed languages and English-only handwriting.
In Businessware’s January 2025 invoice test, Google scored 82% on fields but only 40% on line items, against Textract’s 78% and 82%. On LlamaIndex’s ParseBench, a LlamaIndex-run test from April 2026, Google’s Layout Parser scored 50.4 and Textract scored 47.9, with neither result a clear win across all document types.
Benchmark scores. On LlamaIndex’s ParseBench (April 2026, run by LlamaIndex), LlamaParse Agentic scored 84.9, Azure 59.6, Docling 50.6, Google Document AI Layout Parser 50.4 and Amazon Textract 47.9. On Reducto’s RD-TableBench (November 2024, run by Reducto), Azure scored 82.7%, Textract 80.9% and Google 64.6%.
Other vendor claims. On LlamaIndex’s ExtractBench (2 Sep 2026, run by LlamaIndex on 370 enterprise documents), LlamaExtract Agentic Plus scored 95.6% overall at 8.1 cents a page. anyformat’s 78.1% vs. 65.4% combined parse score against Textract comes from anyformat’s own 2026 benchmark.
The only reliable way to compare accuracy is to run 50-100 of your own documents through Textract and 2 shortlisted alternatives, then compare fields one by one against values you’ve checked by hand. Use your own mix (scans, multi-page tables, handwriting, your most common vendor invoice layouts) rather than published benchmarks alone.
How to choose an Amazon Textract alternative
Work through the decision in this order:
- Residency first. If documents can’t leave your environment, start with Docling, or with the private deployments from Azure (Read and Layout containers), Reducto, LlamaExtract and Mistral, which mostly need enterprise contracts.
- AWS or not. If you’re staying on AWS, check whether AnalyzeExpense covers what you now pay AnalyzeDocument for, then look at Amazon Bedrock Data Automation for schema-defined fields inside IAM and S3.
- Main reason for switching. Prebuilt invoice, receipt and ID models point to Azure Document Intelligence, non-English or handwritten documents to Google Document AI, per-page OCR cost at volume to Mistral OCR, field-level evidence to LlamaExtract, mixed packets to Reducto, and long PDFs billed per page to the Foxit PDF Services API.
- Price your document mix. Run your pages per document, scanned-to-digital ratio and required fields through each shortlisted pricing model, then test 50-100 of your own documents before cutting over.
Where Foxit fits
Our PDF Services API gives you 4 extraction routes. PDF Structural Extraction (Trial) returns typed JSON with 12 element types, bounding polygons and confidence scores, plus table cell grids. PDF to Excel converts the PDF, tables included, to an XLSX workbook. Export PDF Form Data reads interactive form field values from fillable PDFs and returns JSON keyed by field name. PDF to Markdown converts structured PDFs to Markdown for LLM pipelines.
Teams running contract extraction or invoice parsing alongside other document operations can use the same Foxit account and credit pool. The billing unit still depends on the service: PDF Services processing calls cost 1 credit each, while eSign uses 5 credits per envelope.
Per-request pricing favors long documents. A 50-page digital statement costs 1 credit, where Textract Tables bills all 50 pages. The same model works against short documents, so teams that mainly process 1-page invoices at volume get a better rate from a per-page API such as AnalyzeExpense. Where there’s no prebuilt model, our structured JSON tutorial shows how to map extracted elements to your own fields.
For prebuilt invoice or ID fields, Azure Document Intelligence and Google Document AI are the better fit. For an in-depth feature comparison with Google Document AI, see How Foxit compares to Google Document AI for document data extraction.
Our free Developer plan gives you 500 credits a year, enough for up to 500 extraction requests on digital PDFs, or 250 on scans. That’s room to price and test your own document mix, the step every section above comes back to, before you commit to a paid plan.
Create a free Foxit developer account and turn your first PDF into structured JSON with the PDF Structural Extraction API.
What else to know before you replace Amazon Textract
The answers below cover Rekognition, free and open-source options, and LLM-based extraction.
What are the key differences between Rekognition and Textract?
Amazon Rekognition‘s DetectText finds up to 100 words in an image or video frame, designed for signs, labels, and captions in scene images. Textract reads documents, including multi-page PDFs and TIFFs up to 3,000 pages asynchronously, and returns forms, tables, queries, layout, signatures, invoices, receipts, and IDs. For document data extraction, Rekognition addresses a different problem entirely.
Is there a free or open-source alternative to Amazon Textract?
Docling (MIT) and PaddleOCR (Apache-2.0, v3.7.0, with PaddleOCR-VL) run on your own hardware with no per-page software fee. MinerU and Marker are other open-source options; check model licenses before commercial use, because some open OCR models require a commercial license above certain revenue thresholds.
For hosted options with free allowances, LlamaExtract gives you 10,000 free credits a month on pay-as-you-go (about 1,250 Cost-effective pages). Azure Document Intelligence offers 500 pages/month on the F0 tier, with a 2-page-per-document limit. Google Document AI gives you the first 1,000 Enterprise Document OCR pages free. Reducto’s Standard plan includes $150 in free usage. Our Developer plan gives you 500 credits/year. Textract has a 3-month free tier for new AWS customers; eligibility depends on the current AWS Free Tier program.
Can an LLM replace Amazon Textract?
For field extraction, often yes, with trade-offs. In Businessware’s January 2025 invoice test, GPT-4o with a separate OCR step reached 98% field accuracy, ahead of AnalyzeExpense’s 78%, though the test doesn’t provide a reliable latency comparison. Amazon Bedrock Data Automation, LlamaExtract, Reducto, and Mistral’s annotations all package an OCR-plus-model pattern behind one API call. Per-field confidence and citation support vary by service. Mistral documents OCR confidence but not annotation confidence, LlamaExtract’s primary tiers return 0-1 confidence per field, and Reducto returns high or low labels plus numeric confidence. The main practical trade-off is that LLM-based approaches add latency and a schema-design step that Textract’s prebuilt models skip.
eSignature API Pricing Compared: Foxit eSign vs DocuSign vs Dropbox Sign vs Adobe Sign vs PandaDoc (2026)

Monthly list prices can hide what an eSignature API costs to run. This guide compares Foxit, DocuSign, Dropbox Sign, Adobe Acrobat Sign, and PandaDoc by billing unit, embedded-signing access, and cost at 40 to 2,000 requests a month. Use it to price the plan you’ll ship before you talk to sales.
Our Foxit eSign API, DocuSign, Dropbox Sign, Adobe Acrobat Sign, and PandaDoc use different billing units, allowances, and access rules. Comparing monthly prices alone can hide what your application will actually cost to run.
An eSignature API lets your application send documents for electronic signature, track their status, and retrieve signed files. Before comparing prices, decide whether signers can use a vendor-hosted page or need to sign inside your app. Embedded signing can change the plan you need.
In this article, we compare 5 eSignature APIs based on plan prices, billing units, allowances, embedded-signing gates, and free or test use. All prices are US list prices in USD.
eSignature API pricing at a glance
How much does an API subscription cost for eSignature? Our Foxit eSign API starts at $1,750 a year on Startup for 5,000 shared credits, enough for up to 1,000 envelopes if no credits go to other operations. Embedded signing is included.
PandaDoc API Developer starts at $40 a month for 40 documents, and DocuSign Starter starts at $50 a month billed annually for 40 envelopes. Dropbox Sign’s embedded-signing plans start at $250 a month billed yearly. DocuSign and Adobe require sales-led plans for embedded signing, and Adobe publishes no API price.
API | Billing unit | Lowest published paid API plan | Embedded signing starts on | Largest published self-serve allowance |
Foxit eSign API | Envelope created, 5 credits from a shared yearly pool | Startup: $1,750 a year for 5,000 credits (up to 1,000 envelopes) | Every plan, including the free Developer plan’s eSign trial | Business: $4,500 a year for 15,000 credits (up to 3,000 envelopes, about 250 a month) |
DocuSign eSignature REST API | Envelope, counted when sent | Starter: $50 a month billed annually, or $75 billed monthly; 40 envelopes a month | Enhanced plans only (sales-led, 5-user minimum) | 100 envelopes a month on Intermediate or Advanced |
Dropbox Sign API | Signature request (one bundle, any number of signers), counted when sent | Essentials 50: $75 a month billed yearly, or $100 billed monthly | Standard, from $250 a month billed yearly (100 requests a month) | 500 requests a month on Standard 500 or Essentials 500 |
Adobe Acrobat Sign API | Transaction (each agreement sent, with bulk sends counted once per recipient) | No published API price. Free Developer Edition available for testing. | Through sales. Embedding in a product you sell goes through the Embed partner program. | No published allowance |
PandaDoc API | Document, counted when created | API Developer: $40 a month after a 14-day trial; 40 documents a month | Free and API Developer | 40 documents a month included; API Developer cap not stated |
Past these published allowances, confirm higher-volume pricing with each vendor directly. PandaDoc does not state an API Developer volume cap.
To test our side of this comparison before you budget, create a free Foxit developer account, click Get started with eSign on the dashboard, and follow our eSignature API tutorial to send a TEST-mode envelope.
How we compared the pricing
We compare API plans only. Web-app seat plans appear only where vendors mix them into API pricing.
The vendors bill by envelope, signature request, transaction, or document. Compare what each unit includes and when it counts, not just its name. We compare 2 modes: hosted signing, where signers use the vendor’s page, and embedded signing, where they stay inside your app.
Where a vendor offers annual billing, we use that rate. PandaDoc shows only a monthly price, so its yearly figure is $40 × 12.
What each eSignature API charges, plan by plan
Foxit eSign API

Our eSign API product page.
Our credit model covers the whole account. The same yearly pool covers eSign (5 credits per envelope created) and our PDF Services API or Document Generation API (1 credit per operation), so a team that generates PDFs and signs them draws from a single pool instead of separate billing relationships.
Pricing fact | Details |
Plans and list prices | Developer: free (500 shared credits a year, plus a 30-day eSign Business trial in TEST mode with up to 25 envelopes). Startup: $1,750 a year (5,000 credits). Business: $4,500 a year (15,000 credits). Volume: custom. These figures use annual list prices. |
Billing unit | Envelope created, through the API or the eSign UI: 5 credits, including a draft that’s never sent. Status checks, webhooks, and other eSign API calls use no credits. |
Allowance and rollover | One yearly pool shared with PDF Services and Document Generation (1 credit per operation). Credits reset when they renew rather than rolling over. |
Over the allowance | Credit-consuming calls pause at zero. Restore credits through renewal, an upgrade, or a purchased top-up. Top-ups expire at the same reset date as the base plan. We send alerts before credits run out. |
Embedded signing | Embedded signing and embedded sending on every plan, including the free Developer plan’s eSign trial. |
Paid add-ons | None. We charge no per-feature fees. |
Free and test use | Activating eSign on the free Developer plan creates an eSign Sandbox account and starts a 30-day Business trial in TEST mode with up to 25 envelopes. TEST-mode envelopes are watermarked. Activation asks for an eSign company name and a document storage region (US, EU, or Canada) that can’t be changed afterward. |
Above the self-serve tiers | Volume, through sales. Our pricing estimator recommends Volume above 250 envelopes a month (15,000 credits) when no other operations use credits. |
Where Foxit eSign API stands out
Embedded signing is on every plan, including the free Developer plan’s eSign trial. For teams building a product where signers sign inside the app, there’s no plan jump and no extra conversation with sales, so you can test the full embedded flow before committing to any paid tier.
Generating a document uses 1 credit, and creating its signing envelope uses another 5, for 6 credits total from the shared pool. Additional PDF processing operations use extra credits.
What to consider
At its annual list price of $1,750, Startup has the highest paid entry cost in this comparison for low-volume hosted signing. At 40 envelopes a month, PandaDoc at $480 a year, DocuSign at $600 a year, and Dropbox Sign at $900 a year all cost less.
Credits don’t roll over. At zero, credit-consuming calls pause until the pool is restored through renewal, an upgrade, or a purchased top-up.
Envelopes are billed at creation, whether or not they’re signed. PandaDoc also counts at creation, while DocuSign, Dropbox Sign, and Adobe count at send. Assuming all credits go to eSign, the per-envelope price at full use is $1.75 on Startup and $1.50 on Business (our arithmetic).
Best for. Products that generate or process PDFs before embedded signing, with a plan sized for both PDF operations and envelopes. Getting started. Sign up for a free developer account, then click Get started with eSign on the dashboard.
Activation needs a last name on your Foxit Account profile, so add one to your profile first if you signed up without it.

The eSign activation form in our console, with the 3 document storage regions.
DocuSign eSignature REST API

The DocuSign for Developers home page, where the free developer account starts.
How much does DocuSign API cost? DocuSign’s developer plans start at $50 a month billed annually (Starter, $600 a year), and the first plan that includes embedded signing requires a sales conversation. DocuSign separates its developer API plans from its web-app plans, and the two have different terms.
Pricing fact | Details |
Plans and list prices | Starter: $50 a month billed annually ($600 a year), or $75 billed monthly. Intermediate: $300 a month billed annually ($3,600 a year), or $450 billed monthly. Advanced: $480 a month billed annually ($5,760 a year), or $720 billed monthly. Enhanced: by quote with a 5-user minimum. Additional tax may apply. |
Billing unit | Envelope: one or more documents sent to one or more recipients. Consumed when sent, whether or not the envelope is signed. A PowerForm counts when accessed. Bulk sends through the API count per envelope. |
Allowance and rollover | “Starting amount” of 40 envelopes a month on Starter; 100 envelopes a month on Intermediate and Advanced. Allowances expire at the end of the order term and don’t roll over unless the order form says otherwise. |
Over the allowance | API-plan overage: not published. The $3.00 to $7.80 per-envelope figures in DocuSign’s overage FAQ cover the Standard and Business Pro web-app plans only. Personal plans have no overage billing, and the developer API plans are not covered. |
Embedded signing | Enhanced plans only. Embedded sending is included on all 4 plans. Embedding DocuSign features in your own product for your customers is an “Embedded integration” that requires ISV Embed partner licensing, and the classification chosen at go-live changes how envelopes are billed. |
Paid add-ons | SMS and phone authentication through sales on Advanced and Enhanced. Multi-channel delivery and ID verification through sales on Enhanced. ID verification costs from $2.40 per attempt on web-app plans, and no developer-plan price is published. |
Free and test use | Free developer account in a demo environment. Envelopes sent from a DocuSign demo account aren’t legally binding. Going live requires a paid production account and integration-key promotion. Eligible integrations may qualify for automatic promotion, while manual reviews typically take 24 to 48 hours. |
Above the self-serve tiers | Enhanced plans for higher send volumes. No price published for 2,000 envelopes a month. |
Where DocuSign stands out
DocuSign publishes a clear entry price for hosted signing at low volume, $600 a year for 40 envelopes a month on Starter. For teams whose procurement process already requires DocuSign, the developer plans provide a path to production without opening a new vendor relationship.
Embedded sending is available on every self-serve developer plan, so you can build most of a signing workflow before the billing question for embedded signing forces a conversation with sales. Status webhooks through DocuSign Connect start on the Advanced plan, so budget for that tier if your integration depends on them.
What to consider
Does DocuSign have a free API? Not for production use. DocuSign offers a free developer account in a demo environment, but envelopes sent from that account aren’t legally binding, so it serves integration testing only. Sending live envelopes needs a paid production account.
The plan progression from Starter through Advanced covers hosted signing only, so if your product needs signers to sign inside your app, the budget starts at Enhanced, which requires a quote and a 5-user minimum.
Bulk send through the eSignature REST API is included on Advanced and Enhanced, so a workflow built around bulk sending starts at $5,760 a year.
For products that embed DocuSign features inside your app and serve them to your customers, the go-live classification as an Embedded integration changes how envelopes are billed and requires ISV Embed partner licensing. That classification can shift the budget more than the plan price does, so settle it before writing any numbers into a roadmap.
Best for. Hosted signing at up to 100 envelopes a month, or engineering teams already standardized on DocuSign infrastructure. Getting started. DocuSign developer plans and pricing.
Dropbox Sign API

The Dropbox Sign API product page, with a form for sending yourself a sample document.
Dropbox Sign API (formerly HelloSign) publishes a detailed self-serve pricing ladder. Every tier is priced, and the plan that unlocks embedded signing is clearly named and costed.
Pricing fact | Details |
Plans and list prices | Yearly price (monthly-billing price in parentheses): Essentials 50 $900 ($100/mo); Essentials 100 $1,500 ($165/mo); Essentials 250 $3,300 ($365/mo); Essentials 500 $5,400 ($600/mo); Standard 100 $3,000 ($300/mo); Standard 250 $5,400 ($540/mo); Standard 500 $7,500 ($750/mo). Premium: custom quote. |
Billing unit | Signature request: documents sent together in one bundle count as 1 request regardless of the number of signers. API calls that count include send, send with template, create embedded, create embedded with template, and bulk send with template. Drafts count when the sender clicks Continue or Request Signature. |
Allowance and rollover | Monthly quota by default. On yearly billing plans, the yearly allotment is divided into monthly amounts. A yearly refresh is available for an additional cost, and that price is not published. |
Over the allowance | Sending never stops because of quota. At the limit, the subscription is automatically upgraded to the next tier and stays there from that point forward. An alert goes out at 80% of the quota. |
Embedded signing | Standard plans and above. Embedded templates and white-label branding require Premium. |
Paid add-ons | SMS Tools available on Standard or higher as an additional-cost add-on through sales. eID and Qualified Electronic Signature (QES) under the EU’s eIDAS regulation require a per-request subscription. Advanced signing tools are Premium features. |
Free and test use | Test mode is free, produces watermarked documents, is not legally binding, and does not count against quota. Rate limit: 10 requests a minute. |
Above the self-serve tiers | 750 or more requests a month: contact sales. Premium: custom quote. |
Where Dropbox Sign stands out
For teams that need a budgetable number before going to procurement, the published ladder answers the question without a sales call, up to 500 requests a month and including the price of the tier that unlocks embedded signing.
A bundle of documents sent to multiple signers counts as 1 signature request. For example, a request containing 3 documents has a lower effective cost per document than the request price alone suggests.
Test mode doesn’t count against quota at all, so you can run integration testing freely without burning through a monthly allowance.
What to consider
Moving from hosted to embedded signing doubles the annual cost at 100 requests a month, with Essentials 100 at $1,500 a year versus Standard 100 at $3,000 a year. That’s a meaningful step, and it’s worth costing both modes during scoping rather than after the integration is half-built.
Yearly plans still hand out a monthly allotment by default. If your volume is seasonal, say 400 requests in December and 50 in January, the monthly cap applies anyway. A yearly refresh costs extra and that price isn’t published, so a Dropbox Sign annual plan doesn’t give you an annual pool you can draw from unevenly. The automatic upgrade at the cap stays in place from that point forward, so a busy month can move your plan tier for the rest of the contract.
Templates are capped at 5 on Essentials plans and 15 on Standard. If your use case relies on many templates, verify the count before choosing a tier.
Best for. Steady volume between 50 and 500 signature requests a month where a published, tiered price is a procurement requirement. Getting started. Dropbox Sign API pricing.
Adobe Acrobat Sign API

The Adobe Sign Developer home page and its Getting Started links.
Adobe Acrobat Sign API (formerly Adobe Sign) does not publish API prices. Adobe routes all API buyers through sales, so the table below holds billing rules rather than prices.
Pricing fact | Details |
Plans and list prices | No published API price. API access is reserved for enterprise and developer tier accounts, and Acrobat Sign Solutions are sold through Adobe sales. Acrobat Sign API licensing is separate from Adobe PDF Services API licensing. |
Billing unit | Transaction: each electronic document or collection of related documents sent to one or more recipients. Agreements sent through the API count. Send in Bulk counts 1 transaction per recipient agreement. Web Form submissions count. Drafts and template creation do not count. |
Allowance and rollover | Plans sold as user licenses include 150 transactions per user per year by default, unless a contract specifies otherwise. High-volume customers can purchase a total transaction volume with unlimited users (a site license). |
Over the allowance | Not published; set by contract. |
Embedded signing | Through sales. Embedding Acrobat Sign in a product you sell to your customers requires the Embed (OEM) partner program, where partners may resell transactions, and pricing is not published. |
Paid add-ons | Knowledge-based, phone, and government ID authentication, and the Notarize integration, are metered separately from transactions. |
Free and test use | Free Developer Edition with no commitments. Test documents carry a “test” label. |
Above the self-serve tiers | Everything is sales-led, and no price is published for any volume. |
Where Adobe Acrobat Sign stands out
Adobe Acrobat Sign fits companies that already hold an Adobe enterprise agreement. If your organization licenses Acrobat Sign at the enterprise level, the API may already be covered by your existing contract, removing the need to open a separate budget line.
A site license can remove per-user transaction caps entirely, replacing them with a total transaction volume across unlimited users. For large organizations running high document throughput, that model can be more predictable than per-user caps.
What to consider
There’s no published number to budget from until sales responds. Unlike the other 4 APIs compared here, Adobe doesn’t publish API list prices, so you need a quote before budgeting.
License plans cap transactions per user (150 per user per year by default), and that cap is easy to hit if even a few users send documents regularly. Acrobat Standard and Pro list unlimited e-signatures in the app, but API access is explicitly separate.
Best for. Organizations already on an Adobe enterprise agreement that covers Acrobat Sign. Getting started. Acrobat Sign Developer Edition for testing. Contact Adobe for production licensing.
PandaDoc API

The PandaDoc API product page, where the 14-day API trial starts.
PandaDoc’s API covers document creation (templates, pricing tables, approval workflows) as well as signing, so its “document” unit is distinct from a signing-only envelope.
A document that goes through generation, review, and signing counts once. That broader scope makes PandaDoc useful for quote-to-sign workflows, though direct per-unit comparisons with the other 4 APIs need that context.
Pricing fact | Details |
Plans and list prices | Free: $0 (60 documents a year, 2 recipients per document, 5 templates). API Developer: $40 a month after a 14-day trial; 40 documents a month; the published plan scales with volume at an unpublished rate. No annual price or seat count is shown for API Developer. Enterprise: custom. |
Billing unit | Document, counted when created. Status checks and audit trails are free. |
Allowance and rollover | 40 documents a month on API Developer. Rollover: not published. |
Over the allowance | PandaDoc’s April 10, 2026 blog states $4 per additional document sent on API Developer; its current pricing page does not list that rate. Confirm the current terms and whether charges apply at creation or sending. On Starter and Business web-app plans, API document creation pauses when usage credits run out rather than generating an overage. |
Embedded signing | Embedded signing is available on Free and API Developer, which includes all Free features. Your organization must be a PandaDoc client to implement embedding. |
Paid add-ons | None listed on the API pricing page. |
Free and test use | API calls with the Sandbox key are not charged. Sandbox documents are watermarked, carry a [DEV] prefix, and can only go to your own email domain. Rate limit: 10 requests a minute per endpoint. |
Above the self-serve tiers | Enterprise, with “Custom document volume”. Free and API Developer are self-serve, and Enterprise is for custom volume. |
Where PandaDoc stands out
At $40 a month ($480 a year), PandaDoc API Developer has the lowest published paid entry price in this comparison. For low-volume use cases where 40 documents a month is sufficient, that’s $120 a year less than DocuSign Starter, the next-lowest.
The combination of document generation and signing in the same API is useful for products that handle quotes, proposals, or contracts. You can build a template, populate it with data, and route it for signature through the same integration instead of a separate signing API.
What to consider
PandaDoc’s April 10, 2026 blog gives a $4 rate for each additional document sent, but that rate is absent from the current API pricing page. For 100 or 250 documents a month, confirm the applicable rate and billing event in writing before budgeting.
For a wider look at PandaDoc’s position, our PandaDoc API alternatives comparison covers 6 other APIs for the same workloads.
Best for. Low-volume, template-heavy documents such as quotes and proposals at up to 40 a month. Getting started. PandaDoc API pricing.
What the same workload costs on each API
The individual pricing pages don’t answer 3 questions side by side, namely when each unit is charged, which plan unlocks embedded signing, and what a given monthly volume costs. The sections below take them in turn.
Each API bills a different unit at a different moment
API | Billing unit | Charged when | Allowance resets | Past the allowance |
Foxit eSign API | Envelope (5 credits) | Created, through the API or the UI | Yearly, no rollover | Credit-consuming calls pause until renewal, an upgrade, or a purchased top-up restores credits |
DocuSign | Envelope | Sent, signed or not | Monthly (“starting amount”) | API-plan overage not published |
Dropbox Sign | Signature request (one bundle) | Sent, with drafts counting when the sender clicks Continue or Request Signature | Monthly by default, with a yearly refresh available at an additional cost (price not published) | Automatic upgrade to the next tier, which stays in place |
Adobe Acrobat Sign | Transaction | Sent, with bulk sends counted once per recipient agreement | Per user per year on license plans (150 by default) | Set by contract |
PandaDoc | Document | Created | Monthly | Current pricing page omits the rate; an April 2026 blog states $4 per additional document sent. Confirm current terms. |

Where each API counts a unit against the allowance, relative to the signature.
Every API in this comparison bills before anyone signs. Whether the unit counts at send or at creation, unsigned, declined, and abandoned requests still count against the allowance across all 5.
The reset period affects seasonal volumes differently. Dropbox Sign refreshes monthly by default, and Foxit credits reset yearly. DocuSign allowances expire at the end of the order term without rolling over, and PandaDoc publishes no API rollover terms. A product with a busy contract quarter followed by a slow one will exhaust a monthly allowance in some months and waste it in others, and that includes Dropbox Sign’s yearly plans, which divide the yearly allowance by 12 unless you pay for a yearly refresh.
Count what you’ll send, not what will be signed, and check which period’s allowance each envelope lands in.
Billing before the signature
At 2,000 requests a month with 10% never completed (abandoned, declined, or voided), about 200 billed requests a month produce no signed document (our arithmetic). APIs that bill only for completed signatures exist, and our best eSignature APIs comparison covers them.
Embedded signing decides the plan you pay for
API | Embedded signing on | Cheapest published plan with it | Yearly list price | Requests included |
Foxit eSign API | Every plan | Startup | $1,750 | Up to 1,000 a year |
DocuSign | Enhanced only, with ISV Embed licensing required to embed in your own product | Not published | Quote | Quote |
Dropbox Sign | Standard and above (white-label on Premium) | Standard 100 | $3,000 | 100 a month |
Adobe Acrobat Sign | Through sales, with the Embed partner program for your customers | Not published | Quote | Quote |
PandaDoc | Free and API Developer | API Developer | $480 ($40 × 12, our arithmetic) | 40 a month |
Embedded sending and embedded signing are different things on DocuSign. DocuSign includes embedded sending (you embed the document creation flow in your app) on every developer plan, while embedded signing (the signer completes the signature inside your app) is Enhanced only. If you’ve scoped a DocuSign integration around embedded sending and assumed embedded signing is included, that assumption needs revisiting.
DocuSign’s go-live classification, covered in the DocuSign entry above, is a second variable. Settle it before a number goes into a customer contract.
On Dropbox Sign, white-label branding is a separate gate. Standard plans unlock embedded signing, but white-label branding that removes Dropbox Sign’s logo from the signer interface requires Premium, which is quote-only. If your product requires unbranded signing, budget for Premium rather than Standard.
PandaDoc includes embedded signing on its Free plan. API Developer includes all Free features and costs $40 a month for 40 documents a month.
Price the plan that includes the embed you’ll ship, not the entry plan.
What 40, 100, 250 and 2,000 requests a month cost
The table below assumes that one request is one envelope, signature request, transaction, or document within the vendor’s signer limits, and uses yearly list prices in USD with annual billing where offered, with no add-ons, tax, or discounts. Foxit credits go to eSign only, and all figures are our arithmetic from published list prices, last checked on 5 Nov 2026.
API and signing mode | 40 a month | 100 a month | 250 a month | 2,000 a month |
Foxit eSign API, either mode | $1,750 (Startup) | $4,500 (Business) | $4,500 (Business) | Volume, quote |
DocuSign, hosted signing | $600 (Starter) | $3,600 (Intermediate) | Not published | Enhanced, quote |
DocuSign, embedded signing | Enhanced, quote | Enhanced, quote | Enhanced, quote | Enhanced, quote |
Dropbox Sign, hosted signing | $900 (Essentials 50) | $1,500 (Essentials 100) | $3,300 (Essentials 250) | Contact sales (750+) |
Dropbox Sign, embedded signing | $3,000 (Standard 100) | $3,000 (Standard 100) | $5,400 (Standard 250) | Contact sales (750+) |
Adobe Acrobat Sign, either mode | Quote | Quote | Quote | Quote |
PandaDoc, either mode | $480 (API Developer, $40 × 12) | Not published | Not published | Enterprise, quote |
Reading the table plainly, including where we’re not the cheapest:
Hosted signing at 40 a month. PandaDoc at $480, DocuSign at $600, and Dropbox Sign at $900 all cost less than Foxit Startup at $1,750. If you need hosted signing only at low volume, Foxit has the highest published price in that column.
Embedded signing at 100 a month. Dropbox Sign Standard 100 at $3,000 a year costs less than Foxit Business at $4,500. The order reverses at 250 a month, where Standard 250 at $5,400 exceeds Foxit Business at $4,500.
Per-request price at full use, our arithmetic. DocuSign Starter $1.25 and Intermediate $3.00 per envelope; Dropbox Sign Essentials 250 $1.10 and Standard 250 $1.80 per request; PandaDoc $1.00 within the included 40 documents; Foxit Startup $1.75 and Business $1.50 per envelope.
Which eSignature API gives the most predictable price at 2,000 signature requests a month? No published self-serve plan covers this workload, so a confirmed rate from each vendor is the prerequisite to any budget. The billing models differ in how predictable a quote is likely to be:
- Our included yearly pool can pause credit-consuming calls at zero; purchased top-ups can extend it.
- An automatic upgrade at the cap (Dropbox Sign) keeps sending but moves the bill to the next tier.
- Per-user transaction caps (Adobe license plans) tie cost to seats unless you buy a site license.
- An unpublished overage rate (DocuSign API plans) leaves the cost of a busy month to the contract.
PandaDoc doesn’t publish an API Developer price above 40 documents a month, which is why the table shows no figure at 100 and 250. At 2,000 a month, PandaDoc sells Enterprise with custom document volume.
Use the estimator on our pricing page to size a Foxit workload before talking to sales, and treat its output as a starting point, not a quote.
Below about 250 requests a month, the published price ladders decide. At 2,000 a month, the contract decides, so compare what each vendor will put in writing.
Will your invoice match the price table?
Unsigned requests still bill. All 5 count a unit at send or at creation, so declined and abandoned requests belong in the budget.
The cap behaves differently on each API. DocuSign doesn’t publish an API-plan overage rate, so a busy month’s cost is determined by the contract rather than the pricing page. Dropbox Sign upgrades you automatically to the next tier, and the account stays on that tier from then on.
PandaDoc’s April 2026 blog states $4 per additional API Developer document sent, but its current pricing page omits that rate; confirm the current terms.
On Starter and Business web-app plans, API creation pauses when usage credits run out. Adobe settles over-use by contract.
Our credit-consuming calls pause at zero; top-ups or an upgrade can restore capacity before renewal.

How our shared credit pool is drawn down, and what happens at zero.
Unused allowance is easy to lose. Dropbox Sign hands out a monthly allotment even on yearly billing plans. Foxit credits reset at renewal rather than rolling over. DocuSign allowances expire at the end of the order term and don’t roll over unless the order form says otherwise. PandaDoc publishes no rollover terms for its API plan, so an unused allowance from a slow month may simply disappear.
Identity checks and SMS cost extra. DocuSign sells them through sales on Advanced and Enhanced (ID verification starts at $2.40 per attempt on web-app plans, and no developer-plan price is published). Dropbox Sign sells SMS Tools as a separate add-on on Standard or higher, and eID/QES through a per-request subscription. Adobe meters authentication separately from transactions. We charge no per-feature fees on Foxit plans.
Seats, terms, and tax. DocuSign Enhanced has a 5-user minimum. DocuSign developer plans default to annual billing paid upfront, and additional tax may apply. Our credit pools reset annually; the comparisons here use annual list prices.
What to get in writing at 2,000 requests a month:
- The billing unit and the moment it’s charged, including drafts, voids, bulk sends, and web forms
- The allowance period, and whether unused requests roll over
- What happens at the cap, whether an overage rate, an automatic upgrade, or a hard stop
- Whether embedded signing and white-label branding are included, and how your integration is classified
- Prices for SMS delivery, ID verification, knowledge-based authentication (KBA), and QES
- Seat minimums and how many users the plan covers
- Rate limits at your volume
- Contract length and renewal terms
The price table is a floor, not a forecast.
Where Foxit eSign API fits
Choose based on your expected volume, whether signers need to stay inside your app, and any document processing before signing. Our shared credit model can cover that workflow, but the included credits and total cost still need to fit your budget.
One pool for the whole document flow. A document generated through the Document Generation API and then sent for signature costs 6 credits from one pool, about 833 generated-then-signed documents a year on Startup and 2,500 on Business (our arithmetic). For teams whose workflow includes PDF generation before signing, that consolidation removes a billing variable. Our n8n pipeline tutorial and Power Automate workflow guide show generate-then-sign patterns that draw on the shared pool, and the contract lifecycle management tutorial covers the full contract pipeline.
No plan jump to embed. Embedded signing and embedded sending are available on every plan, including the 30-day eSign trial on the free Developer plan. You can build and test the full embedded flow in TEST mode before committing to Startup or Business. Our embedded signing guide walks through the iframe integration, and our eSignature API tutorial takes you from your first envelope to the executed document.
Compliance coverage. Our eSign API is covered by SOC 2 Type II audits, and we offer HIPAA BAAs for healthcare workflows.
Where another API fits better. For hosted signing at 40 envelopes a month, PandaDoc, DocuSign Starter, and Dropbox Sign Essentials all undercut Foxit Startup at $1,750 a year. Credit-consuming calls pause at zero, but you can purchase top-ups or upgrade. Business includes 15,000 credits a year, enough for 3,000 envelopes only if no credits go to other operations. For larger workloads, compare top-up pricing with a Volume quote.
Create your free Foxit developer account, activate the eSign trial, and follow our eSignature API tutorial to test your signing flow before choosing a plan.
What else to know before you budget for an eSignature API
The questions below come up most often once the pricing tables are in hand.
How much does an eSignature cost?
Our Foxit eSign API’s Startup plan costs $1,750 a year and includes 5,000 shared credits. Each envelope created uses 5 credits, so the plan covers up to 1,000 envelopes a year if all credits go to eSign. PDF Services and Document Generation calls use the same pool.
Does a Foxit API plan include eSignature access?
Yes. Our API plans include eSign alongside PDF Services and Document Generation. Activate eSign from your Developer Portal dashboard to start building. Embedded signing is included in the envelope’s 5-credit cost, so you don’t need a separate embedded-signing tier.
Can test envelopes end up on your bill?
Follow each vendor’s test-mode rules carefully. DocuSign developer accounts are free and separate from production. Dropbox Sign test mode does not count against quota. PandaDoc sandbox calls are free and watermarked. Foxit TEST-mode envelopes are watermarked, and each one created draws 5 credits from your free plan’s 500-credit yearly pool, up to the trial’s 25 envelopes.
Adobe counts transactions created in a developer account as consumed if you promote that account to a billable one and then modify them. Promote a developer account with existing test transactions only after reviewing Adobe’s transaction consumption documentation.
How can I keep eSignature API costs predictable?
How can I keep eSignature API costs predictable?
Estimate the number of envelopes you’ll create in a year and multiply by 5, then add the credits for any PDF processing or document-generation calls. Our dashboard shows used and remaining credits. You can buy top-ups or upgrade as usage grows, but unused credits expire at your annual reset date.
8 Best HelloSign (Now Dropbox Sign) API Alternatives for Developers in 2026

Dropbox Sign puts embedded signing behind its $250 a month Standard plan and white labeling behind a custom quote. This guide compares 8 HelloSign API alternatives on pricing, billing triggers, webhooks, and SDKs. You also get a migration checklist to scope the work before you switch.
Dropbox Sign API (formerly HelloSign) puts embedded signing behind its Standard plan, at $250 a month billed yearly for 100 signature requests a month. White-label branding requires Premium and a custom quote.
If those plan gates or growing signing volume no longer fit your product, switching APIs means more than changing a URL.
In this article, we compare 8 Dropbox Sign API alternatives based on their features, pricing, usage limits, and migration requirements. None was verified as a drop-in replacement for Dropbox Sign, so plan to rewrite requests, callbacks, and the embedded client.
Top picks by reason for switching
For PDF generation followed by signing, our eSign API keeps both steps on one account. The other picks below address pay-per-use billing, prepaid credits, white labeling, self-hosting, and government requirements.
If you are leaving because… | Pick | Why it fits |
You generate, convert, or merge PDFs before signing them | Foxit eSign API | Embedded signing and sending on every plan, with 5 credits per envelope from the same pool as PDF Services and Document Generation |
Per-request cost at moderate volume | BoldSign API | $30 a month including 40 envelopes, then $0.75 per envelope sent, with embedded signing and templates on the API plan |
You want no monthly minimum | SignWell API | Per-document pricing starting at $0.85 and falling with volume, down to $0.20 or lower for high-volume or custom plans, and the first 25 documents a month are free with a card on file |
Quotas that reset every month | Zoho Sign API | $0.35 per API envelope (5 credits at $0.07), bought in blocks, and credits do not expire while the Zoho Sign account remains active |
White-label signing without an enterprise quote | SignNow API | Professional includes embedded signing and sending and white labeling, from $84 a month billed annually for 500 invites a year |
Paying for signatures that never complete | DocuSeal | $0.20 per completed document plus a $20/month Pro seat, with a self-hostable AGPLv3 core carrying additional attribution terms |
Per-request pricing altogether | Documenso | Flat cloud plans under a fair-use policy: Teams at $40/month billed yearly for internal workflows, and Platform at $250/month billed yearly for embedding in an external product |
Enterprise procurement or government requirements | Docusign eSignature REST API | Federal eSignature and CLM offering with reported FedRAMP Moderate and provisional DoD IL4 authorization; embedded signing requires an Enhanced developer plan. |
Most of these APIs support embedded signing, templates, and webhooks. The entries below explain the plan limits and migration work that distinguish them.
If your product generates PDFs before sending them for signature, you can test that flow on the free Foxit Developer plan while you compare the other options below.
What the Dropbox Sign API gives you today
The table below separates annual and monthly billing for Dropbox Sign’s API plans.
Plan | Signature requests a month | Billed yearly | Billed monthly | What the plan adds |
Essentials | 50 (tiers at 100, 250, 500) | $900 a year ($75/month) | $100 a month | Non-embedded sending; 5 templates |
Standard | 100 (tiers at 250, 500) | $3,000 a year ($250/month) | $300 a month | Embedded signing and requesting, bulk send, OAuth, branding; 15 templates |
Premium | From 100 | Custom quote | Custom quote | Embedded templates, premium branding (white-label), data residency, multiple domains; QES as an add-on |
Test mode | Not applicable | Free | Free | Watermarked, not legally binding, 10 requests a minute |
Standard 250 runs $5,400 a year or $540 billed monthly. Standard 500 runs $7,500 a year or $750 monthly. Essentials 500 is $5,400 a year.
What counts as one signature request. One bundle of documents sent together, regardless of the number of signers. Embedded and template sends count. Drafts count only when the sender continues.
Quota behavior. A request made after you exceed your quota returns HTTP 402 immediately, the same code used for an unpaid or under-credited account. Separately, exceeding your quota also automatically upgrades your subscription to the next plan tier, with a warning at 80 percent usage, so the account is never permanently capped. A request right at the threshold can still be 402 before the upgrade takes effect, but you are not locked out afterward.

Rate limits. 100 requests a minute for standard calls; 25 a minute for sending, embedded creation, and file downloads; 10 a minute in test mode.
The callback contract. Respond with HTTP 200 and the literal body Hello API Event Received. Verify the event_hash HMAC. Expect up to 6 retries. The callback URL is cleared after 10 consecutive failures.
Changes to account for in an existing integration.
- HTTPS-only callbacks since December 1, 2024
- An April 24, 2024 security incident that forced API key and OAuth token rotation for affected accounts
- An October 6, 2026 change that rejects duplicate signer emails in grouped_signers requests
Before you compare anything, list what your integration uses today, including embedded signing, embedded requesting, templates, bulk send, OAuth, and branding. That list decides the plan you need everywhere else.
How we compared these alternatives
We compare each API on 8 criteria: coverage, embedded signing and plan requirements, pricing and billing unit, free and test use, webhooks, templates and fields, SDKs and limits, and migration work. Compliance claims are vendor-reported.
Vendors name the same object differently. Dropbox Sign calls it a signature request. BoldSign and SignWell call it a document. SignNow calls it a document plus an invite. DocuSeal calls it a submission. Documenso and Docusign call it an envelope. Foxit’s endpoint paths use “folder” for what the product surface calls an envelope. Each entry names the vendor’s own object on first use and notes when billing fires.
The 8 Dropbox Sign API alternatives in detail
Use each entry’s “Moving from Dropbox Sign” row to identify the equivalent objects and the main code changes.
Foxit eSign API
We build and maintain the Foxit eSign API. We compare it using the same criteria as the other alternatives.
Our eSign API sends envelopes (called “folders” in endpoint paths) for electronic signature, with embedded signing and sending available on every plan. One Developer Portal account covers eSign, PDF Services for PDF processing, and Document Generation API (DocGen API), with a shared credit pool.
Feature | Details |
Covers | Envelopes from PDF URLs or Base64 files, templates, ordered recipients, reminders, cancellation, activity history, and completed-file download. PDF Services and Document Generation on the same account and credits. Cloud only, with storage region chosen at eSign activation. |
Embedded signing | Embedded signing (one or all recipients) and embedded sending views on every plan, including the free Developer plan. The API also includes an endpoint to regenerate expired signing sessions, plus UI options including theme color and hiding controls. |
Pricing | See the Foxit API pricing page. 5 credits per envelope created through the API or the eSign UI; PDF Services and Document Generation operations cost 1 credit each from the same pool. Status checks, webhooks, uploads, and downloads use no credits. Running out of credits returns HTTP 429 with a QUOTA_EXCEEDED error code. Credits reset yearly and do not roll over. |
Free and test use | eSign trial access on the free Developer plan, which includes 500 shared credits a year. |
Webhooks | Webhook channels for API envelopes or the whole account, with events including folder_sent, folder_viewed, folder_signed, folder_cancelled, folder_completed, folder_executed, and folder_deleted. Optional HMAC-SHA-256 signature arrives as a query parameter. |
Templates and fields | Templates created through the API, with fields from text tags in the PDF or from x/y field objects. AcroForm fields can convert, and signer authentication is available by email, SMS, or voice access codes. |
SDKs and limits | REST with OAuth 2.0 client credentials and request samples for Shell, Ruby, Node.js, PHP, and Python. No separately installable eSign SDK was verified for this API version. Limits are 15 requests a minute in sandbox mode and 100 in production, per application. |
Moving from Dropbox Sign | A signature request becomes an envelope (folders/createfolder with sendNow: true), and the embedded URL comes back from envelope creation rather than a separate sign_url call. Callbacks become webhook channels verified by HMAC rather than answering Hello API Event Received, and text tags must be rewritten in Foxit syntax (e.g., ${signfield:1:y:name}). |
Where Foxit eSign API stands out
Embedded signing and sending are available on every plan. If you already generate PDFs with our PDF Services or Document Generation API, you can add signing under the same account and credit pool.
For workflow examples, see our n8n, Power Automate, and contract lifecycle management tutorials. Those tutorials use an older API setup, so follow the current API reference for authentication and endpoints.
Envelope creation returns embeddedSessionURL directly. If a session expires before a signer opens it, you can regenerate the session without creating another envelope.

What to consider
Our credits reset annually, so budget envelopes alongside PDF processing and generation. Startup’s 5,000 credits cover up to 1,000 envelopes a year, or about 83 a month, if no other operations use the pool.
This is our calculation, not a monthly allowance. Bulk sending is advertised on our eSign product page but has no documented operation in the current API reference; confirm API support with our team before relying on it.
Our eSign API is covered by SOC 2 Type II audits, meets ESIGN/UETA requirements, and supports eIDAS SES, AES, and QES. QES requires identity-validation services. We also support 21 CFR Part 11-compliant signature flows; confirm requirements for your workflow.
Best for
Products that generate or process PDFs and then send them for signature, where running both operations on one account and one credit pool reduces integration overhead.
Getting started
The Foxit eSign API reference covers envelope creation, text tags, and webhooks. You can send a test envelope from your own PDF on the free Developer plan.
BoldSign API
BoldSign is an eSignature platform with a dedicated API plan that includes embedded signing from the entry tier.
Feature | Details |
Covers | Documents (envelopes) with templates, embedded requesting, signing and template creation, custom fields, sender identities, text tags, and scheduled sends. Data centers in the US, EU, Canada, and Australia. |
Embedded signing | Included on the Enterprise API plan, which starts at $30 a month. |
Pricing | $30 a month including 40 envelopes, then $0.75 per envelope sent. Volume quotes on request. Bulk send, SMS delivery, ID verification, KBA, and QES are listed as add-ons. |
Free and test use | Free sandbox with full API access, with test documents watermarked and deleted after 14 days, and 50 requests an hour in the sandbox. |
Webhooks | Sent, Viewed, Signed, Completed, Declined, Expired, Revoked, and other events, with HMAC-SHA256 in the X-BoldSign-Signature header. Respond with 200 within 10 seconds, and expect 6 retries. |
Templates and fields | Templates with roles, text tags, and embedded template creation. |
SDKs and limits | .NET, Python, PHP, Java, and Node.js; 2,000 requests an hour in production per account. |
Moving from Dropbox Sign | A signature request becomes a document, and sign_url becomes an embedded signing link. Callbacks become HMAC-signed webhooks. No Dropbox Sign template importer was verified in the BoldSign sources reviewed. |
Where BoldSign API stands out
Embedded signing and embedded templates are available on the entry API plan, which means the $250 Standard gate from Dropbox Sign doesn’t carry over. BoldSign also reverses charges for revoked documents, which distinguishes it from vendors that bill on send regardless of outcome.
The sandbox provides full API access with watermarked documents, so you can build and verify an integration before any cost is incurred. Plan around the hourly request limit when your application sends requests in bursts.

What to consider
Envelopes are billed when sent. Revoked documents are reversed, but declined documents remain billed. BoldSign’s comparison page uses “no overages” language, though its plan detail lists bulk send, SMS, ID verification, KBA, and QES as add-ons that carry separate costs.
The sandbox limit of 50 requests an hour is tighter than production and may slow integration testing at pace. No Dropbox Sign template importer was documented in the sources reviewed, so templates need to be rebuilt in BoldSign.
Best for
SaaS products at moderate volume that need embedded signing on an entry-level API plan.
Getting started
The BoldSign free sandbox is available at the BoldSign developer portal.
SignWell API
SignWell is a document signing platform that structures its API pricing around per-document usage with no monthly minimum.
Feature | Details |
Covers | Documents with any number of files and signers, templates, embedded signing, requesting and template editing, bulk send, and white-label embedding. |
Embedded signing | Included in API usage pricing. |
Pricing | Per API document, starting at $0.85 and decreasing with monthly volume. A live pricing calculator on SignWell’s own API pricing page shows the rate holding at $0.85 through roughly 200 documents a month, then dropping to $0.60 and holding there through at least 475 documents a month; SignWell’s published FAQ states the rate continues falling to $0.20 or lower for high-volume or custom plans, though the exact breakpoints above 500 documents a month aren’t published. 10% off when paid yearly. |
Free and test use | First 25 API documents a month are free with a card on file. A free developer account without a card gets up to 3 a month. Unlimited test mode. |
Webhooks | document_sent, document_viewed, document_signed, document_completed, document_declined, and other events, verified with HMAC-SHA256 keyed by the webhook ID. A webhook retry schedule was not found in the documentation reviewed. |
Templates and fields | Templates, with documents created from them through the API. |
SDKs and limits | An OpenAPI file, a CLI, and an MCP server, documented on SignWell’s developer resources page; no official Ruby, Node, Python, or PHP client libraries were confirmed in the current documentation. 100 requests a minute per token, 30 for document and template creation, 20 in test mode. |
Moving from Dropbox Sign | A signature request becomes a document, and embedded signing and requesting move to SignWell’s iFrames. Callbacks become webhooks with event-hash checks. No Dropbox-specific migration tooling was verified in the SignWell sources reviewed. |
Where SignWell API stands out
With a card on file, the first 25 API documents each month are free. For uneven volume, pay-per-document billing avoids buying a monthly request allowance you may not use.
The MCP server and CLI are useful for development and automation workflows beyond standard API integration. Embedded signing and white-label embedding are included without a plan upgrade.

What to consider
The free 25 requires a card on file, while the developer account without a card covers only 3 documents a month.
A webhook retry schedule was not documented in the sources reviewed, so plan to verify failure handling behavior before going live.
The published per-document rate below $0.60 applies to high-volume or custom agreements rather than a clearly published self-serve tier, so get a quote before modeling costs much past 500 documents a month.
Best for
Products with low or uneven volume that don’t want a monthly minimum.
Getting started
The SignWell API getting started guide is available at signwell.com.
Zoho Sign API
Zoho Sign offers an API-only plan built around prepaid credits, with no subscription fee or per-user charge.
The plan supports embedded sending and signing rather than app-based signing; branding and webhooks are still configured in the app.
Feature | Details |
Covers | An API-only plan with embedded sending and signing, templates, signer authentication (OTP, ID verification, KBA), and AI field detection. Branding, custom domains, white labeling, and webhooks are configured in the app. Signing through the app interface is disabled on this plan. |
Embedded signing | Included on the API-only plan. |
Pricing | Credits at $0.07 each, bought in blocks of 500 for $35. Each envelope sent through the API uses 5 credits ($0.35). SMS, authentication, and trust services use extra credits. No subscription or per-user fee. |
Free and test use | A 14-day Enterprise trial with up to 10 trial documents. Subscribers can send up to 50 watermarked test documents a month with testing=true. |
Webhooks | Configured in the Zoho Sign app, with optional HMAC-SHA256 verification using the X-ZS-WEBHOOK-SIGNATURE header. |
Templates and fields | Templates with up to 25 recipients and 40 documents per request, and bulk send up to 1,000 recipients per request. |
SDKs and limits | REST API with most calls limited to 50 a minute, template export to 2 a minute, and template import to 1 a minute. |
Moving from Dropbox Sign | Rebuild templates and field placement in Zoho Sign. Plan around the 50-calls-a-minute threshold. Credits don’t reset monthly, while Dropbox Sign quotas reset monthly by default, with yearly refresh available for an additional cost. |
Where Zoho Sign API stands out
Prepaid credits that don’t expire while the account remains active solve the month-end quota problem. A slow month doesn’t waste quota, and an unusually busy month draws down the same pool without triggering a permanent plan upgrade.
For batch sends, consider the 1,000-recipient limit alongside the 50-calls-a-minute API limit. AI field detection can reduce template setup work for complex layouts.

What to consider
The 50-calls-a-minute limit may require a queue for bursty workloads.Webhooks and branding are configured through the Zoho Sign app interface rather than through API calls, which adds a setup step outside the API integration. The trial is 14 days with 10 documents, giving limited time to validate a full flow.
Best for
Irregular volume paid from a prepaid budget, where month-to-month fluctuations make subscription tiers inefficient.
Getting started
The Zoho Sign API documentation and pricing are available at zoho.com/sign.
SignNow API
SignNow is an eSignature platform that includes white labeling in its self-serve Professional plan.
Dropbox Sign restricts premium branding to its custom-quote Premium tier, so SignNow removes that gate for teams that need a fully branded embedded signing experience without an enterprise sales cycle.
Feature | Details |
Covers | Documents and document groups with invites, templates, embedded signing and sending, white labeling, document generation, and bulk invites on the Professional plan. |
Embedded signing | Included on Professional. |
Pricing | Professional, billed annually: $84 a month (500 invites a year), $146 (1,000 invites), $250 (2,000 invites), and $500 (5,000 invites). For role-based document, document-group, and embedded invites, multiple signers in one invite count once and billing fires on send. A standalone document or document-group signing link is different: it bills once the last signer completes, not when the link is generated. Bulk and freeform invites have their own counting rules too. |
Free and test use | Watermarked Dev Mode. The pricing page advertises unlimited test invites, but API docs cap accounts without an active plan or trial at 500 invites. With an active plan or trial, Development invites do not consume the plan allowance. The live trial includes 250 invites. |
Webhooks | Event subscriptions for documents and invites, signed with your own secret in the X-SignNow-Signature header. |
Templates and fields | Templates, text tags, role-based invites, and prefilled fields. |
SDKs and limits | PHP, .NET, Java, Python, Node.js, and Android. Default 1,000 requests an hour per application in production, 500 in development. |
Moving from Dropbox Sign | A signature request becomes a document (or a group) plus an invite, and sign_url becomes an embedded invite link. Monthly request quotas become yearly invite pools. |
Where SignNow API stands out
White labeling is included in a self-serve Professional plan starting at $84 a month billed annually. Yearly invite pools also work well for products with predictable annual volume that doesn’t track neatly to calendar months.
A product sending contracts on renewal cycles often benefits more from an annual pool than a monthly quota that resets mid-campaign.

What to consider
Invites are counted yearly, and the plan grows with usage, so plan carefully around the counting rules for different invite types, especially signing links, which bill on completion rather than on send like every other invite type.
The default limit is 1,000 requests an hour, so budget calls across the full signing flow rather than treating that as a per-minute allowance.
Best for
Branded in-app signing at a predictable annual volume, where white labeling without a custom quote is a requirement.
Getting started
The SignNow developer portal and API documentation are available at signnow.com.
DocuSeal
DocuSeal is an open-source eSignature platform with an AGPLv3 core carrying additional attribution terms, and a paid cloud or on-premises Pro option. Its API covers template-based form submissions with a front-end embedding component.
Feature | Details |
Covers | Templates and submissions with a form builder, embedded signing through a web component plus React, Vue, and Angular wrappers, an embedded form builder, and an AGPLv3 open-source core with additional attribution terms, run in DocuSeal’s cloud (global or EU) or on-premises with Pro. |
Embedded signing | Pro, in the cloud or on-premises. |
Pricing | Pro seat: $20 per user a month or $200 a year, plus $0.20 per completed document for API and embedded signing. On-premises Pro: $240 per user a year. Cloud add-ons: 20 SMS per month included, then $0.20 per SMS; ID verification $2 per verification; QES $2 to $4 per signature. On-premises SMS uses your own provider. |
Free and test use | Free, unlimited test mode in a separate account with its own API keys. |
Webhooks | Form, submission, and template events (form.viewed, form.started, form.completed); HMAC-SHA256 verification through the X-Docuseal-Signature header. |
Templates and fields | Text tags in the form {{Field Name;role=Signer1;type=date}}; documented template import from DocuSign. A Dropbox Sign importer was not verified. |
SDKs and limits | Front-end embedding components plus JavaScript/TypeScript, Python, Ruby, PHP, Java, C#, and Go API libraries. A numeric API rate limit was not published as of this check. |
Moving from Dropbox Sign | A signature request becomes a submission, and a signer becomes a submitter. Rebuild templates and replace the hellosign-embedded client with DocuSeal’s component. |
Where DocuSeal stands out
The $0.20 usage charge applies only to completed documents, so abandoned requests don’t incur that per-document fee. The Pro seat fee still applies. Self-hosting gives you control of the infrastructure, with paid API and embedding requirements to factor in.
The front-end embedding components for React, Vue, and Angular reduce the integration surface compared to building a raw iframe wrapper, and the separate test-mode account with its own API keys keeps test and production environments cleanly separated.

What to consider
A Pro seat is required for API access and embedding, so a $20 monthly seat fee applies even at low volume. The AGPLv3 core carries additional attribution terms that legal should review before self-hosting.
A numeric API rate limit was not published in the sources reviewed, so test throughput limits during evaluation. DocuSeal documents template import from DocuSign, but a Dropbox Sign importer was not verified in the sources reviewed.
Best for
Teams that prefer completion-based usage charges and need a self-hosting option.
Getting started
The DocuSeal documentation and free test mode are available at docuseal.com, and the open-source repository is on GitHub.
Documenso
Documenso is an AGPL-3.0 open-source document signing platform with hosted plans and a self-hosting option.
Its API is transitioning from individual document and template endpoints to a unified envelope model.
Feature | Details |
Covers | Documents and templates unified under an “envelopes” model, with embedding SDKs for React, Vue, Svelte, Angular, Solid, and Preact, plus server SDKs for TypeScript and Python (with a Go SDK also listed), all on an AGPL-3.0 codebase available hosted or self-hosted. |
Embedded signing | Teams and above for internal workflows; Platform for an external commercial product beyond moderate testing. White-label embedding on Platform; the embedded editor on Enterprise or as a Platform add-on. |
Pricing | Flat plans billed yearly with unlimited documents under a fair-use policy: Individual $25 a month, Teams $40 (5 users, then $10 a user), Platform $250. |
Free and test use | A free plan with 5 documents a month; a separate staging environment for API testing. |
Webhooks | The X-Documenso-Secret header carries your plain secret for verification. Comparing it in constant time is required; it’s a plain string comparison, not an HMAC signature. |
Templates and fields | Templates with recipients and fields; the older document and template creation endpoints are deprecated in favor of envelopes, with a documented cutover date for removing the legacy endpoints. |
SDKs and limits | 1,000 requests a minute per IP is the global ceiling across the whole API. An organization’s own plan can carry a separate, lower limit per user or API token, which triggers a 429 before the global ceiling is ever reached. |
Moving from Dropbox Sign | A signature request becomes an envelope, so build against the new envelope endpoints rather than the deprecated document and template endpoints. |
Where Documenso stands out
Flat subscriptions with unlimited documents under the fair-use policy make cost predictable regardless of volume fluctuations within the plan’s intended use case.
Teams sending hundreds of internal agreements a month pay $40 a month on the Teams plan.The embedding SDK library covers 6 front-end frameworks, which reduces integration work for products with diverse front-end stacks.
The open-source AGPL-3.0 Community Edition gives engineering teams the option to inspect the full signing stack, contribute to the project, or self-host for infrastructure control.

What to consider
The fair-use policy on unlimited documents is real; high volume or commercial embedding in an external product requires the Platform plan at $250 a month.
The webhook verification uses a plain secret string rather than HMAC, so constant-time comparison is essential to avoid timing attacks. The API is in transition, with older endpoints deprecated, so building against the new envelope endpoints now avoids a future forced migration.
Design for the lower of the two: the 1,000-requests-a-minute global per-IP ceiling, and whatever organization-level limit your plan carries, since either can trigger a 429 first.
Best for
High volume on a fixed budget, or teams that want to inspect or own the full stack.
Getting started
The Documenso documentation, staging environment, and open-source repository are available at documenso.com and on GitHub.
Docusign eSignature REST API
Docusign offers an eSignature API and a separate federal offering for government requirements.
The federal offering is a reason to consider it when procurement requirements rule out simpler self-serve options.
Feature | Details |
Covers | Envelopes, templates, PowerForms, API bulk send (Advanced plan and above), and Connect webhooks. A segregated government-cloud offering through Docusign Federal. |
Embedded signing | Enhanced plans only, which are sales-led with a 5-user minimum. Embedded sending is available on every plan. |
Pricing | Starter $50 a month billed annually or $75 monthly, from 40 envelopes a month; Intermediate $300 or $450, from 100 envelopes a month; Advanced $480 or $720, from 100 envelopes a month with higher-tier features; Enhanced by quote. An envelope counts once sent, whether or not it is signed. |
Free and test use | A free developer account in the demo environment; production requires a go-live review. |
Webhooks | Docusign Connect at account and envelope level, with an HMAC option. Recipient Connect, for events on envelopes received by your organization’s users, is included from the Advanced plan. |
Templates and fields | Templates with recipient roles; tabs placed by coordinates or anchor text. |
SDKs and limits | C#, Java, Node.js, PHP, Python, and Ruby SDKs. Default 3,000 requests an hour per account. Bursts of 500 calls per 30 seconds in production (200 in the developer environment). At most one GET status check per envelope per application every 15 minutes. |
Moving from Dropbox Sign | A signature request becomes an envelope, and a signer becomes a recipient. Callbacks move to Connect, and you’ll need to plan for the Enhanced tier if your product embeds signing today. |
Where Docusign eSignature REST API stands out
Docusign reports FedRAMP Moderate authorization and provisional DoD IL4 authorization for its federal eSignature and CLM offerings. Check Docusign Federal’s authorization scope against your agency’s requirements before choosing a deployment.
The SDK coverage across C#, Java, Node.js, PHP, Python, and Ruby is broad, and the demo environment with full API access gives developers a complete integration surface before go-live review.

What to consider
Embedded signing requires a sales-led Enhanced plan with a 5-user minimum, so you can’t self-serve into embedded signing the way you can with BoldSign, Foxit, or SignWell. Billing starts when an envelope is sent, whether or not the signer completes.
The 15-minute polling floor on envelope status checks requires webhook-first event handling for real-time flows.
Best for
Enterprises with procurement support or products sold into government environments that require FedRAMP Moderate or DoD IL4 authorization.
Getting started
The Docusign developer account and documentation are available at developers.docusign.com. For government requirements, contact Docusign Federal sales.
What changes when you move off the Dropbox Sign API
Whichever alternative you pick, plan for these 6 areas of migration work.
What to plan for in a migration
Authentication and SDK. Replace Dropbox Sign’s credentials and client code with the new vendor’s supported authentication flow. Foxit uses OAuth client credentials and bearer tokens. BoldSign uses an API-key header; SignNow supports API keys or OAuth 2.0 access tokens, both in an Authorization: Bearer header. Docusign uses OAuth 2.0 with JWT or authorization-code grants. Replace hellosign-node-sdk, hellosign-python-sdk, or equivalent packages with the vendor’s available SDK or a direct REST client.
Payloads and field placement. Signer fields and text tags are vendor-specific. Dropbox Sign tags follow its own syntax; Foxit tags follow the ${signfield:party:required:name} pattern; DocuSeal tags follow {{Field Name;role=Signer1;type=date}}; Docusign uses coordinate-based tabs or anchor text strings. Every migration rewrites the field definitions in source PDFs or in the API payload.
Templates. No Dropbox Sign template importer was verified among the reviewed vendors. DocuSeal documents importing DocuSign templates, but that’s a separate migration path. Plan to rebuild templates from scratch in the new vendor’s system. For integrations with many templates, this is a project in itself.
Webhook handler. The verification contract differs across every vendor. Dropbox Sign requires the literal response body Hello API Event Received plus HMAC validation of event_hash. BoldSign expects a 200 response within 10 seconds and validates the X-BoldSign-Signature HMAC header. Documenso uses a plain secret in X-Documenso-Secret that must be compared in constant time. For Foxit, verify the HMAC-SHA-256 signature received as a query parameter on the webhook URL.Replacing the handler means changing both the response format and the signature verification logic.
Embedded client. The hellosign-embedded library manages the iframe lifecycle for Dropbox Sign, handles domain verification, and emits events like sign and cancel. Each alternative uses its own mechanism. Foxit and SignWell use URLs mounted in standard iframes, BoldSign generates an embedded link you render in an iframe, DocuSeal ships framework components for React, Vue, and Angular, and Documenso providesSDKs for 6 front-end frameworks. Allowed domains must be re-registered wherever the vendor requires it.
Go-live gates. Dropbox Sign requires app approval before production embedded traffic. Docusign requires a go-live review. SignNow gates production on an active subscription or trial. For the other vendors, confirm how to activate production access and provision credentials. Factor any review timeline into your migration schedule.
Run both integrations in parallel until all requests sent through Dropbox Sign have completed or expired. Cancel the Dropbox Sign subscription only after open requests have cleared.
Mapping Dropbox Sign objects to the Foxit eSign API
Here’s how Dropbox Sign’s main objects map to our eSign API. This is a concept map, not a payload converter.
Dropbox Sign API | Foxit eSign API | What changes |
signature_request/send | Create Envelope (folders/createfolder) with sendNow: true | Documents arrive as PDF URLs or Base64; recipients are parties with a sequence |
send_with_template | Create Envelope from Template (templates/createFolder) | Rebuild templates in Foxit eSign first |
create_embedded plus GET /embedded/sign_url | createEmbeddedSigningSession: true returns embeddedSessionURL | The URL comes back at creation; regenerate expired sessions through the API |
unclaimed_draft (embedded requesting) | createEmbeddedSendingSession: true | Users prepare and send inside an embedded sending view |
Dropbox Sign text tags | Foxit text tags such as ${signfield:1:y:name} | Rewrite the tag syntax in your source PDFs |
Callbacks answered with Hello API Event Received | Webhook channels with folder_* events | Return a fast 2xx and verify the HMAC signature |
signature_request_all_signed and signature_request_downloadable | folder_completed, then folder_executed about 5 to 10 seconds later | Download final files after folder_executed |
signature_request_declined | folder_cancelled | Declines and cancellations share one event |
GET /signature_request/files | Download Envelope Files and Get Envelope Activity History | Audit history is a separate call |
Monthly signature-request quota by default; yearly refresh costs extra | 5 credits per envelope from a yearly pool | Budget envelopes per year, shared with PDF calls |
Compare billing triggers and quota rules
Dropbox Sign sells monthly request quotas by default, with yearly quotas available for an additional cost. Confirm the auto-upgrade and HTTP 402 behavior described earlier.
BoldSign and Docusign bill when an envelope or document is sent, whether or not it completes.
SignWell bills documents per month with no minimum, on a graduated per-document rate. Foxit bills 5 credits when an envelope is created from a yearly pool.
DocuSeal bills $0.20 per completed document. Zoho Sign deducts prepaid credits that don’t expire while the account remains active.
SignNow sells yearly invite pools and grows the plan as usage grows.
Documenso charges a flat monthly or annual subscription with unlimited documents under a fair-use policy.
Under send-based or creation-based billing, uncompleted requests still cost money. BoldSign reverses charges for revoked documents but not for declined documents.
DocuSeal’s completion-based billing means abandoned requests incur no per-document fee, though the Pro seat fee still applies.Under subscription billing (Documenso), volume within the fair-use policy has no per-unit cost.
Compare when billing occurs and what happens at quota, not just the headline rate. Abandoned requests and uneven monthly volume can change the total cost.
What stays behind in Dropbox Sign
Signed files and audit trails. Download signed documents with their audit trails before the subscription ends. The files endpoint returns a PDF with the audit trail appended or a ZIP of separate files, depending on the parameter you pass. Audit trail settings can also generate a separate trail document if your account is configured that way.
Export takes time. File downloads sit in the 25-requests-a-minute rate tier. Exporting 10,000 completed requests at one call each takes at least about 7 hours (10,000 requests at 25 per minute equals 400 minutes). The Dropbox Sign Team sync to cloud storage is a Premium feature, so lower-tier accounts need to export manually through the API. Build this into your migration timeline as its own project with a dedicated script.
In-flight requests. Keep the old Dropbox Sign integration running until every open request either completes or expires. Embedded sign_url links expire after 60 minutes or on first access and must be regenerated while the Dropbox Sign integration remains active.
Retention. Canceling the subscription downgrades the account to free after the billing period ends. Signed documents remain accessible on a free account. Confirm API access levels and any contractual retention requirements before canceling. Deleting the account permanently deletes its documents with no recovery path.
Treat the archive export as its own project with its own timeline, separate from the migration to the new API.
Archive before you cancel.
Use the files endpoint to download signed documents and audit trails. At 25 requests a minute, a large archive can take hours to export. Canceling a subscription leaves documents on a free account; deleting the account permanently removes them. Confirm contractual retention requirements, and export signed files and audit trails before the subscription ends.
Where Foxit eSign API fits
Our eSign API fits products that generate or process PDFs before sending them for signature. You can keep the generate-then-sign workflow on one account with a shared credit pool, rather than integrating separate document-processing and signing vendors.
Each envelope created uses 5 credits. Billable PDF Services processing calls and document-generation operations use 1 credit each; status checks, webhooks, uploads, and downloads use no credits.
Embedded signing and sending are available on every plan.
Our free Developer plan includes 500 shared annual credits and trial access to eSign, so you can evaluate the workflow before buying a paid plan. Confirm QES identity-validation and 21 CFR Part 11 workflow requirements with our team.
Create a free Foxit developer account, activate the eSign trial, and send your first envelope through the eSign API.
What else to know before you switch from the Dropbox Sign API
These questions cover the naming, API, and licensing distinctions that can affect your choice.
What happened to HelloSign?
Dropbox announced it would acquire HelloSign for approximately $230 million on January 28, 2019and closed the dealon February 8, 2019. HelloSign became Dropbox Sign, starting October 25, 2022. The API host stayed api.hellosign.com, the embedded library is still hellosign-embedded, and the developer docs continue to reference HelloSign in many places. The brand changed, but the endpoints stayed the same.
Is DocuSign the same as HelloSign?
No. HelloSign is now Dropbox Sign, owned by Dropbox. Docusign is a separate public company with its own API. Our Docusign entry covers the embedded-signing plan gate and federal offering; our Docusign API alternatives guide compares other options.
What is the best open source e-signature software?
For developers, 3 projects are worth evaluating:
- DocuSeal’s core is AGPLv3 with additional attribution terms, and the hosted plans add a paid tier for API and embedding.
- Documenso’s Community Edition is AGPL-3.0, and its hosted plans layer on a paid tier for commercial embedding.
- OpenSign is AGPL-3.0 with directory-level exceptions and offers a hosted option.
Self-hosting the free community editions avoids their hosted plan fees, but hosting and maintenance costs replace them. Embedding and white-label features may remain on paid tiers even when self-hosting, so check each project’s license and feature gating before building a production flow around the free edition.
10 Best Document Parsing APIs for Developers in 2026

Document parsing APIs differ in what they return, how they bill, and where your files go. This guide compares 10 options, including Foxit, LlamaParse, Reducto, Azure, and Docling, on outputs, OCR, pricing, and deployment. Use it to shortlist the right document extraction API and test it on your hardest pages.
A parser that handles clean digital PDFs may struggle with a scanned lease, a 2-column report, or a table that spans several pages. Misread reading order and missing table cells can leave garbled RAG chunks, incorrect invoice totals, or missing contract parties.
“Document parsing” covers 3 distinct jobs that most roundups treat as one.
- Layout parsing returns document structure as Markdown or JSON, including headings, tables, reading order, and often bounding boxes.
- Field extraction returns named values against a schema or prebuilt model, the invoice_total or party_name your pipeline actually needs.
- OCR turns images of text into selectable text so the other 2 jobs can run. Most APIs are built around one of these jobs and bill each differently.
Pricing units alone make comparison hard. On Amazon Textract, the same page costs $1.50 per 1,000 pages for plain text detection and $70 per 1,000 pages when you add Forms, Tables, and Queries together.
LlamaParse bills credits per page by tier, Reducto bills per product per 1,000 pages, and the Foxit PDF Services API bills 1 credit per request regardless of page count.
In this article, we compare 10 document parsing APIs based on their features, pricing, usage limits, and deployment options.
Our top picks by use case
The best document parsing API depends on whether you need layout structure, named fields, or OCR, and where your documents can be processed. These picks match common developer workflows to the APIs that support them.
All prices and availability are current as of 16 Oct 2026.
Use case | Pick | Why it fits |
Structure-aware JSON inside a wider PDF workflow | Structural Extraction (Trial) returns 8 confirmed element types with bounding boxes and table cell grids at 1 credit per request, with PDF to Markdown and OCR on the same account | |
RAG ingestion with tiered cost and quality | LlamaParse | 4 parse tiers from 1 to 45 credits per page at $1.25 per 1,000 credits; 10,000 free credits a month |
Parse, extract and split behind one API, with VPC options | Reducto | r-1 parsing at $10 per 1,000 pages (preview), Extract at $20 including parsing, with hybrid and full VPC deployments |
Field extraction you can trace back to the page | DPT-3 models with line- or word-level grounding and a Ground API that costs no credits | |
High-volume OCR to Markdown at one flat page price | OCR 4.1 at $4 per 1,000 pages, or $0.40 with the Batch API, with blocks, bounding boxes and confidence included | |
Prebuilt models for invoices, IDs and tax forms | Layout and prebuilt models at $10 per 1,000 pages, with invoice, receipt, ID, bank statement, tax and mortgage models, plus containers | |
Layout-aware chunking on Google Cloud | Layout Parser at $10 per 1,000 pages including chunking, with Gemini-based versions in preview | |
Paying per feature inside AWS | Amazon Textract | Text at $1.50 per 1,000 pages, Tables $15, Forms $50, and natural-language Queries |
PDF extraction for teams already on Adobe PDF Services | Element tree with fonts and reading order, tables as CSV and XLSX, and 500 free Document Transactions a month | |
Self-hosted, open-source parsing | MIT-licensed, runs locally or air-gapped, with Docling Serve REST API. v2.140.0 released 16 Oct 2026 |
Each API appears once, under the use case it fits best. Several handle more than 1 job, and the feature table in each entry shows their coverage.
The Foxit Developer plan includes 500 credits a year, enough to run Structural Extraction on a sample of your hardest pages. Create a free developer account to start.
How we compared these document parsing APIs
We reviewed public documentation, pricing pages, official price feeds, model cards, and GitHub repositories as of October 16, 2026.
Each API uses the same 8 comparison rows: outputs, scanned pages and OCR, tables and layout, field extraction, pricing, free allowance, limits, and deployment and data. Prices identify the billing unit and relevant tier or mode. Security and compliance statements remain vendor claims.
The picks reflect use-case fit, not an overall ranking. Benchmark results appear separately, with their publisher, product version, and date.
The 10 document parsing APIs in detail
Foxit PDF Services API
Our PDF Services API covers cloud-based PDF extraction, conversion, OCR, redaction, and compression. The extraction endpoints covered here are PDF Structural Extraction (Trial) and PDF to Markdown.
Key features at a glance
Feature | Details |
Outputs | PDF Structural Extraction (Trial) returns a ZIP with StructureInfo.json (schema v1.0.7), extracted images, and table renditions. Also: PDF to Markdown (tables as Markdown pipes or HTML), PDF to Excel, PDF to HTML, PDF to text, and image, text, or page extraction on sibling endpoints |
Scanned pages and OCR | Our dedicated OCR endpoint makes scanned PDFs searchable and supports around 38 language codes, including Simplified and Traditional Chinese, Japanese, Korean, Thai, and 30+ European languages and variants. Our Structural Extraction documentation does not separately state an OCR language count |
Tables and layout | In v1.0.7, our MCP server’s extraction schema defines 8 element types: title, head, paragraph, table, image, form, hyperlink, and formula. The output includes reading order and bounding boxes. Tables return as cell grids with row and column relationships |
Field extraction | No schema-based extraction or prebuilt invoice models. Map elements to your fields in code, as the invoice parsing and contract metadata tutorials show |
Pricing | 1 credit per successful request, regardless of page count or file size within supported limits. Startup $1,750 a year (5,000 credits), Business $4,500 a year (15,000 credits). Credits reset yearly with no rollover |
Free allowance | 500 credits a year on the Developer plan |
Limits | 100 MB upload. Per application: 15 requests a minute in sandbox, 100 in production. Asynchronous workflow: submit, poll the task, then download the ZIP. Polling, uploads, and downloads use no credits. A page limit per request is not published as of 16 Oct 2026 |
Deployment and data | Cloud only, through one global API gateway. A delete endpoint removes uploaded and generated files. Our cloud-hosted PDF APIs are covered by SOC 2 Type II audits, and we support HIPAA BAAs. pdf_structural_analysis, pdf_extract, and pdf_ocr tools ship in the Foxit MCP Server |
Where Foxit PDF Services API stands out
Per-request billing charges the same 1 credit for a 200-page report as a 1-page receipt, within supported limits. The cost advantage depends on document length and how much of your annual credit pool you use.
These extraction endpoints share an account and credit pool with our other document services, including OCR, conversion, redaction, and eSign. If your workflow already uses those services, you can add extraction without a separate vendor integration.
Our MCP server exposes structural extraction tools, so AI agents can call the API through the same interface as other PDF operations.
What to consider
Our PDF Structural Extraction API is currently in trial and uses schema version v1.0.7. The API may change, so validate responses against the schema your application expects.
The API has no schema-based field extraction and no prebuilt invoice or contract models. You receive a typed element tree and map fields yourself, which the invoice parsing tutorial and contract metadata tutorial walk through. Teams that need named fields returned directly from the API should evaluate LandingAI, Reducto Extract, or Azure prebuilt models alongside this.
Paid credits expire at year-end without rollover. Forecast annual usage before choosing a plan.
Best for
Pipelines that already convert, OCR, redact, or sign PDFs and need structure-aware JSON or Markdown from the same account, particularly on long documents where per-request billing is favorable.
Getting started
Create a free Foxit developer account, set up a sandbox application, and send your first PDF to the Structural Extraction endpoint. The Developer plan includes 500 credits a year with no credit card required.

Our API plans and included credits.

Sandbox and production request limits for our APIs.
LlamaParse
LlamaParse is the document parsing service from LlamaIndex, the company that also publishes the ParseBench benchmark.
It accepts 130+ file types, returns Markdown or JSON, and offers 4 parse tiers that let you route documents by cost and quality.
Key features at a glance
Feature | Details |
Outputs | Markdown, plain text, per-page JSON, XLSX and HTML tables, and layout bounding boxes as an add-on (+3 credits a page), plus schema-based JSON with citations and confidence through LlamaExtract |
Scanned pages and OCR | OCR in 80+ languages (vendor claim) across 130+ file types, including images, Office files, HTML, spreadsheets, and audio |
Tables and layout | Layout-aware table extraction that preserves cell structure, plus charts and diagrams, and enriched forms output in beta (+10 credits per page with a form) |
Field extraction | LlamaExtract with JSON schemas: Cost-effective 8, Agentic 25, Agentic Plus 60 credits a page including parsing; Turbo 35 |
Pricing | $1.25 per 1,000 credits. Parse tiers: Fast 1, Cost-effective 3, Agentic 10, Agentic Plus 45 credits a page (approximately $1.25, $3.75, $12.50, and $56.25 per 1,000 pages). Starter $50 a month (40,000 credits), Pro $500 a month (400,000 credits) |
Free allowance | 10,000 credits a month |
Limits | Parse accepts 512 MB per file. Extract caps at 100 MB and 500 pages per job. Concurrent jobs: 5 on Free and Starter, 20 on Pro, 100 on Enterprise. Text beyond 64 KB per page is dropped |
Deployment and data | SaaS in the US (us-east-1) or EU (eu-central-1), with single-tenant, bring-your-own-cloud and self-hosted options for enterprise. Files cached 48 hours unless you opt out per request. No training on customer data by default. Claims SOC 2 Type II; HIPAA BAA for Enterprise |
Where LlamaParse stands out
Fast costs $1.25 per 1,000 pages, compared with $56.25 per 1,000 for Agentic Plus. Routing simple scanned pages to Fast and complex layouts to Agentic Plus can substantially cut costs in mixed-document pipelines.
Date-pinned tier versions keep the output format reproducible when you rerun the same job weeks later, supporting reliable regression testing on parser output.
LlamaExtract adds JSON schema-based field extraction on top of parsing, with citations and confidence scores, at no separate integration. The same credential covers both.
What to consider
Concurrency caps are a real constraint on lower plans. One practitioner in the r/RAG community thread (June 1, 2026) reported throttling at 5 to 10 concurrent jobs, which can stall batch pipelines during peak ingestion. The 500-page Extract cap is also worth checking against your largest documents before committing.
LlamaParse’s own API reference confirms the Fast tier skips OCR on images and skips table and heading reconstruction, so its output is closer to spatially-laid-out raw text than the fully reconstructed Markdown the Balanced and Premium tiers produce. The HIPAA BAA scope is Enterprise only, so teams with PHI must confirm the plan level before sending protected documents.
The 48-hour file cache means documents persist by default unless you explicitly opt out per request, which is worth reviewing against your data policy.
Best for
RAG ingestion where you want to trade cost against quality on a per-document basis.
Getting started
Create an account at llamaindex.ai and start with the 10,000 free monthly credits.

LlamaParse plans, pricing, and included credits.
Reducto
Reducto offers parsing, extraction, splitting, classification, and a document-editing endpoint behind one API. Its r-1 model is its newest parsing tier, currently in preview.
Pricing moved to a per-product structure on 1 Sep 2026, replacing the previous credit-based model.
Key features at a glance
Feature | Details |
Outputs | Blocks with bounding boxes, whole-document Markdown, embedding-ready table summaries. Extract returns JSON with citations. Split, Classify, and Edit endpoints also available |
Scanned pages and OCR | r-1 handles scans and handwriting (vendor claim), with 30+ file types and a multilingual guide covering 60+ languages |
Tables and layout | Merged cells and nested headers on r-1, with dynamic table output (Markdown for simple tables, HTML for complex ones) |
Field extraction | Extract $20 per 1,000 pages including parsing, Deep Extract $40. Extractions over 100 fields per page may incur a per-field surcharge |
Pricing | Per 1,000 pages: r-1 Parse $10 (preview, opt-in on the API), legacy Parse $15 standard and $30 complex (2x for agentic modes). Citations add $2, custom regions $5. Parse and Extract batch jobs 20% off, Deep Extract excluded. Contracted customers keep credit-based pricing until renewal |
Free allowance | $150 of usage on the Standard plan, equivalent to 15,000 credits at the standard $10-per-1,000-page r-1 Parse rate |
Limits | 100 MB direct upload (5 GB with presigned upload). No page limit on Standard. Synchronous calls time out near 15 minutes. 1,000 requests a second per key. 200 guaranteed concurrent pages on Standard |
Deployment and data | SaaS, hybrid VPC (your storage, Reducto compute), or full VPC on Enterprise. Results available approximately 12 hours. Growth and Enterprise API artifacts expire within 24 hours under ZDR policy, except Studio jobs and persist_results results. Claims SOC 2 Type II on every tier. Never trains from Growth up; Standard training policy not stated |
Where Reducto stands out
Teams can consolidate these document operations under one API and authentication credential rather than chaining vendors. The Edit endpoint also supports document filling.
Hybrid VPC deployments let you keep documents in your own storage while Reducto handles compute. That arrangement splits the data-custody question in a way that SaaS-only providers can’t match without a full VPC agreement.
r-1 returns Markdown for simple tables and HTML for complex merged-cell tables, so your downstream parser can handle each format appropriately.
What to consider
The r-1 tier is preview and opt-in via the API, meaning its behavior may change before general availability. Pricing changed 6 weeks before the check date, so re-verify rates before signing a volume commitment. The Standard plan’s training data policy is not explicitly stated, so teams with sensitive documents should ask before sending production data.
The Standard plan’s free allowance is $150 of usage, worth 15,000 credits at the standard $10-per-1,000-page r-1 Parse rate.
Best for
Teams that need parsing, extraction, and splitting in one place with a path to a private deployment.
Getting started
Sign up at reducto.ai and start with the Standard plan’s free usage.

Reducto’s Standard, Growth, and Enterprise plans.
LandingAI Agentic Document Extraction
LandingAI Agentic Document Extraction (ADE) made its v2 APIs generally available on 24 Jul 2026. Its DPT-3 model family returns extracted values linked to their exact location in the source document, which lets downstream processes verify or review what the model read.
Key features at a glance
Feature | Details |
Outputs | Reading-order Markdown and hierarchical JSON (pages, blocks, table cells) with block bounding boxes, line-level grounding on DPT-3 Pro, and word-level grounding and word confidence on DPT-3 Verity (preview) |
Scanned pages and OCR | DPT-3 Pro handles scans, handwriting, and non-Latin scripts. Verity is Latin-only and does not handle scans. 11 languages listed as strong |
Tables and layout | Tables, forms, checkboxes, and figure descriptions. Spreadsheet cells grounded by Excel address |
Field extraction | Extract API with JSON Schema and a schema builder. The Ground API links extracted fields to page bounding boxes and costs no credits, but is unavailable with zero data retention (ZDR) enabled |
Pricing | $0.01 per credit. DPT-3 Pro priority: 1 credit per page plus 0.5 credits per 1,000 output characters. Async standard tier costs half. LandingAI quotes a 1.5-credit median for a typical business document on standard. Team plans start at $250 a month |
Free allowance | 1,000 credits on Explore, expiring 90 days after sign-up |
Limits | Synchronous: 50 MiB, 100 pages a minute on Explore, 475-second timeout. Async jobs: PDFs up to 1 GiB and 6,000 pages on standard, with priority capped by rate limit. Both have a 6-hour timeout |
Deployment and data | US (us-east-2) and EU (eu-west-1), with VPC and on-premises for Enterprise and optional ZDR on Team and Enterprise. Claims SOC 2 Type II, GDPR, and HIPAA with a BAA |
Where LandingAI Agentic Document Extraction stands out
Grounding is the defining feature. DPT-3 Pro links every extracted value to the line that contains it, and DPT-3 Verity links to the word. The Ground API then lets you query those positions without spending additional credits, so your review UI or audit log can show exactly where in the document each field value came from.
Each table cell has a bounding box, so reviewers can highlight a tax line on a complex form rather than inspect a bare string. This helps regulated workflows where someone must sign off on what the model read.
What to consider
Per-page cost moves with output character count, so dense documents with a lot of extracted text cost more than the per-page headline rate suggests. LandingAI quotes a 1.5-credit median for typical business documents on standard, but your actual distribution will depend on document type.
Free credits expire after 90 days from sign-up, not at month end, so plan your evaluation window accordingly. DPT-3 Verity is still in preview and limited to Latin scripts without scan support, so don’t route scanned or non-Latin documents to it.
Enabling ZDR disables the Ground API, which means you must choose between the strongest data-residency guarantee and the traceability feature. That tradeoff is worth understanding before choosing a plan.
Best for
Regulated extraction where each field value must be traceable to its location in the source document.
Getting started
Sign up at landing.ai and start with the 1,000 Explore credits (90-day expiry).

LandingAI’s free Explore tier and credit-based pricing.
Mistral OCR
Mistral OCR is Mistral’s document-to-Markdown service, now at model version OCR 4.1 (released 16 Jul 2026).
It bills one flat price per page and cuts that price by 90% for batch jobs, with confidence scores and bounding boxes included in both modes.
Key features at a glance
Feature | Details |
Outputs | Per-page Markdown, image bounding boxes, and blocks in reading order with labels (text, title, table, equation, signature, others). Confidence at page, block, or word level. Tables inline or as separate Markdown or HTML |
Scanned pages and OCR | OCR on images and PDF, DOCX, PPTX, and more, with 42 languages officially supported for OCR |
Tables and layout | table_format options, with header and footer extraction |
Field extraction | Document AI annotations with your JSON schema. A separate per-annotated-page price is not published alongside the OCR rates as of 16 Oct 2026 |
Pricing | OCR 4.1 (released 16 Jul 2026): $4 per 1,000 pages synchronous, $0.40 per 1,000 pages with the Batch API |
Free allowance | Free-mode usage limits shown on the account’s Limits page. Mistral’s free mode may use inputs and outputs for training unless you opt out |
Limits | 50 MB and 1,000 pages per document. OCR 4 is not intended for real-time, latency-sensitive processing |
Deployment and data | Hosted API, plus Amazon SageMaker and Microsoft Foundry, and single-container self-hosting for enterprise customers. Zero data retention on /v1/ocr requires approved pay-as-you-go access, with Files API and batch files excluded. ISO 27001, ISO 27701, and SOC 2 Type II listed on the trust center |
Where Mistral OCR stands out
A single flat page price already includes blocks, bounding boxes, confidence scores, and reading-order labels. Most providers charge separately for bounding boxes or confidence, so the all-in-one pricing simplifies budget math for large batch jobs.
For pipelines that can wait for asynchronous results, the Batch API’s 90% discount brings the price to $0.40 per 1,000 pages, making it one of this list’s cheapest options for converting archives to Markdown.
What to consider
OCR 4 is not intended for low-latency, real-time processing. If your pipeline needs synchronous sub-second responses on individual documents, test latency at your volume before committing.
Model versions retire quickly. OCR 4.0 was retired on 30 Sep 2026, less than 3 months after release. Pin your API calls to a specific model version and monitor Mistral’s release notes so you’re not caught by an automatic cutover. Published scores in the OCR 4 announcement are Mistral’s own reproductions of competitor benchmarks, not independent measurements.
Mistral officially supports 42 languages for OCR. Test on your target languages before committing.
Best for
Large batch conversions of documents to Markdown for RAG at a flat per-page price.
Getting started
Sign up at mistral.ai and generate an API key.

Mistral’s general pricing page. OCR rates are listed separately in its API pricing documentation.
Azure Document Intelligence
Azure Document Intelligence (previously Form Recognizer, then Azure AI Document Intelligence) is Microsoft’s cloud extraction service, now available as Azure Document Intelligence in Foundry Tools (API v4.0, 2024-11-30).
It covers layout parsing, a broad catalog of prebuilt models, custom training, and container deployments for environments that cannot call a cloud API.
Key features at a glance
Feature | Details |
Outputs | JSON with paragraphs and roles, lines and words with confidence and polygons, selection marks, tables with row and column spans, figures and sections. Layout can return Markdown with HTML tables for merged cells |
Scanned pages and OCR | Read and Layout OCR printed text in a long language list, with handwriting on a shorter list. Add-ons for high resolution, formulas, fonts, barcodes, and searchable PDF output |
Tables and layout | Spans and header flags. For tables that run across pages, Microsoft advises splitting the PDF and stitching the results in post-processing |
Field extraction | Prebuilt invoice, receipt, ID, bank statement, check, pay stub, contract, US tax, and mortgage models, plus custom neural and template models and query fields as an add-on |
Pricing | East US pay-as-you-go, per 1,000 pages: Read $1.50 (then $0.60 above 1 million), Layout and prebuilt models $10, custom extraction $30, add-ons $6, query fields $10. Batch costs the same as standard. Commitment tiers start at $190 a month for 20,000 prebuilt pages |
Free allowance | 500 pages a month on the F0 tier, which analyzes only the first 2 pages of each document (4 MB cap) |
Limits | S0: 500 MB and 2,000 pages per analysis; 15 analyze requests a second by default (adjustable); asynchronous submit and poll |
Deployment and data | Azure regions plus Read and Layout containers, including disconnected tiers. Inputs and results deleted 24 hours after analysis completes. SDKs for .NET, Python, Java, and JavaScript |
Where Azure Document Intelligence stands out
Azure’s prebuilt model catalog is among the broadest on this list. Its dedicated models already map named fields, so you don’t have to write field-extraction logic for the standard document types listed above.
Container deployments let you run Read and Layout processing inside your own infrastructure without sending documents to Azure endpoints. Disconnected containers extend that to air-gapped environments, though availability varies by model and API version.
Volume commitment tiers reduce per-page costs substantially for high-volume workloads. The $190/month tier covers 20,000 prebuilt pages at $9.50 per 1,000 pages rather than the list price.
What to consider
The F0 free tier analyzes only the first 2 pages of each document, which means a 30-page invoice only returns extraction on pages 1 and 2. Testing during evaluation must account for this limit, or you’ll get misleading accuracy results.
For multi-page tables, budget development time to stitch the extracted sections together during post-processing.
Azure Content Understanding (GA with API version 2025-11-01) is a newer generative extraction layer on the same cloud that’s worth evaluating alongside Document Intelligence for use cases that benefit from generative models.
Best for
Invoices, receipts, IDs, and tax forms on Azure infrastructure, with an option for container or disconnected deployments.
Getting started
Sign up at portal.azure.com and create a Document Intelligence resource. The F0 tier gives 500 free pages a month.

Azure Document Intelligence pricing and its F0 free tier.
Google Document AI
Google Document AI is Google Cloud’s document processing platform, covering OCR, layout parsing with chunking, form parsing, and specialized prebuilt parsers. The Layout Parser’s built-in chunking feature makes it a direct fit for RAG pipelines on Google Cloud.
Key features at a glance
Feature | Details |
Outputs | Document objects with blocks, paragraphs, and tokens. Layout Parser builds a layout tree and context-aware chunks that carry their parent headings. Image and table annotations are GA (27 May 2026) |
Scanned pages and OCR | Enterprise Document OCR reads printed and handwritten text in more than 200 languages (Google claim), with checkbox and math OCR add-ons |
Tables and layout | Layout Parser detects tables, headings, page headers and footers. Google notes that PDF tables spanning pages “might be split in two tables” |
Field extraction | Form Parser (key-value pairs and checkboxes), Custom Extractor (generative or trained), and Invoice, Expense, Bank Statement, Pay Slip, and ID parsers |
Pricing | Per 1,000 pages: OCR $1.50 after the first 1,000, Layout Parser $10 including chunking, Form Parser and Custom Extractor $30 (then $20 above 1 million), Invoice and Expense parsers $0.10 per document up to 10 pages |
Free allowance | First 1,000 Enterprise Document OCR pages are free |
Limits | Online requests take up to 15 pages for most processors, or 30 in supported imageless mode. Batch jobs typically finish in 12 to 24 hours after starting, excluding queue time |
Deployment and data | US and EU multi-regions, with VPC Service Controls and customer-managed keys. Google states it never trains Document AI models on customer data. FedRAMP High and HIPAA listed |
Where Google Document AI stands out
Layout Parser includes context-aware chunks with parent-heading metadata at $10 per 1,000 pages, removing a separate chunking step from a standard RAG pipeline on Google Cloud.
Image and table annotations became generally available on 27 May 2026, so the Layout Parser now returns visual assets alongside text structure in one pass.
What to consider
As of 16 Oct 2026, every Gemini-based Layout Parser version is in preview; only v1.0 from 2024 is stable. Most processors cap standard online requests at 15 pages, or 30 in supported imageless mode. Documents above those limits require batch processing, which typically takes 12 to 24 hours, excluding queue time.
Multi-page tables may be split across 2 table objects, requiring post-processing stitching similar to Azure Document Intelligence. The per-document pricing on Invoice and Expense parsers ($0.10 per document up to 10 pages) is competitive for short invoices but doesn’t scale linearly beyond 10 pages.
Best for
RAG pipelines already running on Google Cloud that want layout-aware chunking included at the page price.
Getting started
Enable Document AI in your Google Cloud project at cloud.google.com/document-ai.

Per-page pricing for Google Document AI processors.
Amazon Textract
Amazon Textract charges per feature rather than per page tier, so you pay for Tables only if you call Tables, and Queries only if you call Queries.
That pay-per-feature structure makes it flexible for pipelines that need different capabilities from different document types.
Key features at a glance
Feature | Details |
Outputs | JSON blocks (words, lines, tables, key-value pairs, layout elements, signatures) with confidence scores and bounding boxes. Markdown output not stated on pages checked 16 Oct 2026 |
Scanned pages and OCR | Printed text in English, French, German, Italian, Portuguese, and Spanish, with handwriting in English only |
Tables and layout | Tables and Layout features. Table extraction works best with visually separated, upright tables |
Field extraction | Forms (key-value pairs), Queries in natural language (English only), Custom Queries with adapters, and prebuilt Expense, ID (US passports and driver’s licenses), and Lending APIs |
Pricing | US East, first 1 million pages a month: text $1.50 per 1,000 pages, Tables $15, Forms $50, Queries $15, Layout $6.50 (then $4 after 1 million pages), Forms plus Tables plus Queries $70. Expense $10. ID $25 for first 100,000 pages, then $10 |
Free allowance | 3 months for new AWS customers: 1,000 pages a month of text detection and 100 pages a month for Forms, Tables, and Layout |
Limits | Synchronous calls take 1-page PDFs up to 10 MB. Asynchronous jobs take up to 500 MB and 3,000 pages from S3. TPS quotas per API, adjustable |
Deployment and data | Most AWS regions including GovCloud, with PrivateLink. AWS may use inputs to improve its services unless you opt out with an AWS Organizations policy. HIPAA eligible, and covered by PCI, ISO, and SOC programs |
Where Amazon Textract stands out
Text-only pipelines pay $1.50 per 1,000 pages without bundling unused field or table extraction. For one-off or low-volume extraction, Queries retrieve specific values using questions such as “What is the total due?” without a full extraction schema.
GovCloud availability and PrivateLink support make Textract an option for US government workloads and VPC-isolated architectures that other providers on this list can’t reach.
What to consider
6 supported OCR languages with English-only handwriting and English-only Queries is a hard constraint. If your document set includes French invoices with handwritten annotations, Textract won’t serve that use case.
Synchronous API calls accept only single-page PDFs up to 10 MB, so multi-page documents must go asynchronous through S3.
The data-use opt-out requires an AWS Organizations policy, not an individual account setting. If your organization doesn’t have that policy in place, AWS may use your documents to improve its services by default.
For generative extraction, also evaluate Amazon Bedrock Data Automation, AWS’s newer document layer. It costs $0.01 per page standard and $0.04 per page for custom models.
Best for
English-language forms and tables already stored in S3, where you want to pay only for the specific features your pipeline calls.
Getting started
Enable Textract in your AWS account at aws.amazon.com/textract. The 3-month free tier includes 1,000 text pages a month.

Amazon Textract’s 3-month free tier allowances.

Amazon Textract pricing by feature and feature combination.
Adobe PDF Extract API
Adobe PDF Extract API is part of Adobe PDF Services. It returns a detailed element tree from native PDFs, including font data, reading order, and tables as CSV and XLSX, in a single ZIP output.
Key features at a glance
Feature | Details |
Outputs | A ZIP with structuredData.json containing an ISO-style element path (headings, paragraphs, lists, tables, figures, footnotes) with bounds, fonts, and reading order, plus tables as CSV, XLSX, and PNG, and a PDF to Markdown endpoint for LLMs. Page headers and footers are excluded |
Scanned pages and OCR | Native or scanned PDFs; quality drops below 200 DPI. Optimized for English, with other Latin-script languages expected to work |
Tables and layout | Cells spanning rows or columns are identified |
Field extraction | No key-value pairs, checkboxes, schemas, or prebuilt models |
Pricing | 1 Document Transaction per 5 pages. Paid plans by sales quote only |
Free allowance | 500 Document Transactions a month across Adobe PDF Services, covering up to 2,500 Extract pages. That figure assumes every transaction covers exactly 5 Extract pages and no other PDF Services operations |
Limits | 100 MB; up to 400 pages (150 if scanned, lower for table-heavy files); 25 requests a minute on the free tier, 100 on enterprise |
Deployment and data | Hosted only; SDKs for Java, .NET, Node.js, and Python. US and Europe processing regions, with uploaded and generated assets stored 24 hours by default and early deletion available. Compliance scope and training use not verified as of 16 Oct 2026 |
Where Adobe PDF Extract API stands out
Font metadata alongside structural elements is uncommon in this category. If your pipeline needs to distinguish between a heading that is bold because of its font weight and one styled that way by position alone, the element tree carries that information. Tables export as CSV and XLSX in the same ZIP as the JSON, which removes a conversion step for pipelines that feed spreadsheet data into downstream systems.
The PDF to Markdown endpoint gives LLM-oriented pipelines a direct path from native PDF to LLM-ready text without a separate conversion step.
What to consider
The 400-page limit (150 for scanned files) is a hard ceiling per request, and table-heavy documents may hit a lower effective limit.
Paid plan pricing is by sales quote only, so you can’t estimate costs from a public page before speaking with Adobe. Compliance scope and training use were not verified as of 16 Oct 2026, so confirm those terms directly with Adobe before sending sensitive documents.
If you need named fields returned directly, evaluate LandingAI, Reducto Extract, or Azure prebuilt models alongside Adobe.
Best for
Teams already licensing Adobe PDF Services who need font-aware structure and table exports from native digital PDFs.
Getting started
Sign up at developer.adobe.com and start with the 500 free Document Transactions a month.
Docling
Docling is an MIT-licensed open-source document parsing library from IBM Research. It runs locally or in air-gapped environments via Docling Serve, a REST API available in CPU and CUDA containers. v2.140.0 was released on 16 Oct 2026.
Key features at a glance
Feature | Details |
Outputs | Markdown, JSON, and a DoclingDocument object with layout elements, reading order, and table structure |
Scanned pages and OCR | Pluggable OCR backends (EasyOCR, Tesseract, RapidOCR, and others) |
Tables and layout | TableFormer model for table structure recognition, with row and column detection |
Field extraction | DocumentExtractor with a schema |
Pricing | None; your compute only |
Free allowance | Unlimited under the MIT license |
Limits | Determined by your hardware |
Deployment and data | Self-hosted; CPU and CUDA containers for Docling Serve. Data never leaves your infrastructure |
Where Docling stands out
The MIT license means there are no per-page costs, no API keys, and no data leaving your infrastructure. For teams processing sensitive documents in air-gapped environments, or for high-volume pipelines where per-page costs compound quickly, self-hosting eliminates the billing variable entirely.
Docling Serve exposes the library as a REST API in Docker containers, so you can drop it into an existing microservices architecture without rewriting your integration layer.
What to consider
Self-hosting puts you in charge of scaling, uptime, and model updates. OCR quality depends on which backend you configure, and none of the pluggable backends match the accuracy of cloud OCR services on difficult scans. The DocumentExtractor schema-based extraction is less mature than the field extraction offerings from LandingAI, Reducto, or Azure.
Datalab’s Marker and Chandra publish Apache 2.0 code, but the model weights require a commercial license for organizations above $5M in revenue or $2M in funding, so factor that into your evaluation if you’re above those thresholds.
Best for
Air-gapped deployments, high-volume pipelines where per-page costs are prohibitive, and teams that need full data custody.
Getting started
Install via pip (pip install docling) or pull the Docling Serve container from the IBM Research GitHub repository.
What to compare before choosing a document parsing API
Pricing units are the first thing that makes these 10 hard to compare side by side, so the breakdown below starts there.
Per page, per credit or per request
All prices are from vendor pricing pages, checked 16 Oct 2026.
API | Billing unit | Example list price | Free allowance |
Foxit PDF Services API | Request (1 credit), any page count within limits | Business: $4,500 a year for 15,000 credits; $0.30 per request only when all included credits are used | 500 credits a year |
LlamaParse | Credits per page by tier | Cost-effective: $3.75 per 1,000 pages | 10,000 credits a month |
Reducto | Pages, priced per product | r-1 Parse: $10 per 1,000 pages (preview) | $150 of usage |
LandingAI ADE | Credits per page plus output characters | DPT-3 Pro standard: 0.5 credits per page plus 0.25 credits per 1,000 output characters ($0.005 per page plus $0.0025 per 1,000 characters) | 1,000 credits for 90 days |
Mistral OCR | Pages | $4 per 1,000 pages, $0.40 with the Batch API | Free-mode limits shown in account |
Azure Document Intelligence | Pages, priced per model | Layout: $10 per 1,000 pages | 500 pages a month (2 pages per document) |
Google Document AI | Pages, priced per processor | Layout Parser: $10 per 1,000 pages | First 1,000 OCR pages |
Amazon Textract | Pages, priced per feature | Tables: $15 per 1,000 pages | 3-month free tier |
Adobe PDF Extract API | Transaction per 5 pages | Sales quote | 500 transactions a month |
Docling | None (self-hosted) | Your compute | Unlimited |
Worked example, long document. At full use of our Business plan’s 15,000 annual credits, Foxit allocates $0.30 per request. A 200-page document would cost $0.80 on Mistral OCR, $2.00 on Azure Layout or Reducto r-1, and $3.00 on Textract Tables. These are calculations from list prices, not equivalent-output benchmarks.
Worked example, short document. A 2-page invoice still costs $0.30 on Foxit at full credit utilization, versus $0.008 on Mistral OCR, $0.02 on Azure Layout or Reducto r-1, and $0.025 on LlamaParse Agentic.
Where the lines cross. At full credit utilization, the $0.30 request cost breaks even at 20 pages against Textract Tables, 24 against LlamaParse Agentic, 30 against the $10-per-1,000-page services, and 75 against Mistral OCR. These are calculations from list prices.
Commitment. Our paid plans use annual credit pools, while most per-page services bill pay-as-you-go. Unused credits raise the effective cost per request. Each successful PDF Services processing call costs 1 credit within supported limits, including each separate call in a batch.
Capabilities still differ. These are price comparisons, not like-for-like capability comparisons. Use the job-coverage table below to check whether you need layout parsing, field extraction, or OCR.
Estimate cost from your actual document lengths and annual volume before choosing a billing model.
Parsing, field extraction and OCR as distinct jobs
Document parsing turns a document into machine-readable structure, including text, headings, tables, reading order, and sometimes positions.
The table below shows which of the 3 jobs each API covers.
API | Layout parsing | Field extraction | OCR for scans |
Foxit PDF Services API | Structural Extraction (Trial), PDF to Markdown | Map elements in code | Dedicated OCR endpoint (about 38 language codes) |
LlamaParse | Yes | LlamaExtract | Yes |
Reducto | Yes | Extract, Deep Extract | Yes |
LandingAI ADE | Yes | Extract API with grounding | DPT-3 Pro |
Mistral OCR | Markdown and blocks | Schema annotations | Yes |
Azure Document Intelligence | Layout | Prebuilt and custom models | Read and Layout |
Google Document AI | Layout Parser | Form Parser, Custom Extractor, prebuilt parsers | Enterprise Document OCR |
Amazon Textract | Layout blocks (no Markdown stated) | Forms, Queries, prebuilt APIs | 6 languages |
Adobe PDF Extract API | Structure JSON, Markdown | No | Scanned PDFs |
Docling | Yes | DocumentExtractor with a schema | Pluggable OCR |
Choose layout parsing when you need document structure for chunking, search, or LLM input. Choose field extraction when you need named values for a database or business workflow.
Field extraction does not always cost more than layout parsing. Compare the specific product and mode rather than assuming a fixed premium.
What happens to your documents
Compare retention, training policies, and private deployment before sending sensitive documents.
The table uses vendor security and data-use documentation checked on October 16, 2026. “Not published” means the reviewed pages did not state a policy.
API | Default retention | Training on your data | Private deployment |
Foxit PDF Services API | Delete endpoint available. Retention period not published as of 16 Oct 2026 | Not published as of 16 Oct 2026 | Cloud only |
LlamaParse | 48-hour cache (opt out per request) | No, by default | BYOC or self-hosted (enterprise) |
Reducto | Results available approximately 12 hours. Growth and Enterprise API artifacts expire within 24 hours, except Studio and persist_results | Never from Growth up; Standard not stated | Hybrid or full VPC (enterprise) |
LandingAI ADE | Optional ZDR on Team and Enterprise, with results deleted after retrieval | Not used under zero retention | VPC or on-premises (enterprise) |
Mistral OCR | Optional ZDR with approved pay-as-you-go access, excluding Files API and batch files | Free mode may train unless you opt out | Single container (enterprise) |
Azure Document Intelligence | Deleted 24 hours after analysis completes | Check the data privacy page | Containers, including disconnected |
Google Document AI | Online document data not persisted. Batch data normally deleted after processing, with a 1-day failsafe TTL | Never (Google claim) | No on-premises option found |
Amazon Textract | May be stored to improve services | May be used, unless you opt out via AWS Organizations policy | PrivateLink; no container |
Adobe PDF Extract API | 24-hour default asset retention, with early deletion available | Not verified as of 16 Oct 2026 | Hosted only |
Docling | Your infrastructure | Not applicable | Self-hosted |
For regulated documents, confirm permitted regions, retention, training opt-outs, and deployment options before evaluating accuracy. A strong benchmark score cannot override a data-handling restriction.
Which accuracy claims you can trust
Who runs the benchmarks. The callout below names the organizations behind the main tests. LongArray-Extract is run by Extend, and Tensorlake ran its own test. Treat vendor-run results as evidence about those tests, not independent validation.
Versions go stale. OmniDocBench’s only Mistral entry uses the March 2025 model, which Mistral had retired by October 16, 2026. RD-TableBench was run in November 2024. Mistral’s OCR 4 announcement compares OCR 4 against competitor models, using Mistral’s own reproductions of competitor scores rather than results from the benchmark owners. Scores attached to retired model versions don’t tell you how the current API performs.
Benchmark scores. LlamaIndex’s ParseBench leaderboard reports Azure Layout at 59.6, Docling at 50.6, Google Layout Parser at 50.4, Textract at 47.9, and its own LlamaParse Agentic at 84.9.
Coverage gaps. As of October 16, 2026, we found no public benchmark covering our PDF Structural Extraction API or Adobe PDF Extract API.
Test 20 to 50 of your hardest pages, including scans, merged-cell tables, 2-column layouts, and handwritten annotations, through 2 or 3 shortlisted APIs. Compare the output with values you have checked by hand. This measures performance on your documents rather than a vendor-curated dataset.
Benchmark ownership. ParseBench is run by LlamaIndex, which publishes LlamaParse. RD-TableBench is run by Reducto. OmniDocBench is published by OpenDataLab, makers of a competing parser. olmOCR-Bench is published by the Allen Institute for AI, another parser creator. Each benchmark publisher’s product wins or places strongly in its own benchmark. Vendor-run benchmark measurements are not independent validation.
Where Foxit fits
Setting the pricing and job-coverage comparisons aside, here is what the Foxit PDF Services API itself covers for a team evaluating it directly.
Extraction routes on the PDF Services API
Our extraction endpoints cover typed JSON, Markdown for RAG pipelines, tables as spreadsheets, and OCR for scanned files. Structural Extraction remains in Trial; its schema and limits are covered in the Foxit entry above.
What else shares the same credit pool
From the same account, you can also convert Office files, redact sensitive values, compress or split PDFs, generate documents, and send them for signature.
Tutorials and comparisons
The structured JSON tutorial, invoice parsing tutorial, and contract metadata tutorial show how to map Structural Extraction output to your own field schema in code. Our Google Document AI comparison covers that API’s layout and extraction capabilities alongside ours.
The free Developer plan
Our Developer plan includes 500 credits a year to try these endpoints before committing to a paid plan.
Create a free Foxit developer account and turn your first PDF into structured JSON with the PDF Structural Extraction API.
What else to know before you pick a document parsing API
You may only need plain text, a free tier for a prototype, or a service you can run yourself.
Is there an API that can extract text from PDFs?
Yes. Our PDF to text endpoint extracts text from PDFs, and services such as Amazon Textract and Azure Document Intelligence offer text-detection or Read endpoints. An open-source library may be enough for digital PDFs. Scanned PDFs need OCR before their text can be extracted.
Is there a free document parsing API?
Yes. Our Developer plan includes 500 credits a year. LlamaParse offers 10,000 credits a month, Adobe 500 Document Transactions, and Azure 500 pages, though Azure processes only 2 pages per document on its free tier. Docling is free to self-host, but you still pay for compute.
Can you self-host a document parsing API?
Yes. Docling Serve exposes Docling as a self-hosted REST API. Some hosted vendors also offer private deployments, including Azure containers, Reducto VPC deployments, LlamaParse self-hosting, LandingAI on-premises, and Mistral’s single-container option. Availability depends on the vendor and plan, and self-hosting leaves you responsible for infrastructure, scaling, and updates.
10 Best HTML to PDF APIs for Developers in 2026

The best HTML to PDF API depends on two things: the engine that renders your HTML and what counts as one billable render. This guide compares 10 options, including Foxit PDF Services API, DocRaptor, PDFShift, and Gotenberg, on engines, JavaScript handling, layout controls, pricing, and free allowances. Use it to build your shortlist and test your hardest template before you pay.
Running Puppeteer for a few invoices is different from maintaining it under concurrent load. JavaScript timeouts, memory use, cold starts, and font differences between development and production can make self-hosted rendering harder to operate as demand grows.
Moving to a hosted API swaps those problems for two questions, which engine renders your HTML and what counts as one billable render.
Those two questions drive the decision more than the headline plan price, because the billing models across these APIs have almost nothing in common. PDFShift charges 1 credit per 5 MB of output, PDFCrowd 1 credit per 0.5 MB, PDF.co 9 credits per page, Browserless one unit per 30 seconds of browser time, and DocRaptor one document whatever its size or page count.
We compare our Foxit PDF Services API with 9 alternatives: DocRaptor, PDFShift, ConvertAPI, PDFCrowd, Api2Pdf, Browserless, PDF.co, Nutrient DWS Processor API, and Gotenberg.
The comparison covers rendering engines, JavaScript handling, layout controls, output options, pricing, free allowances, limits, SDKs, and hosting, using public documentation, API specifications, pricing pages, and GitHub repositories.
Top picks by use case
The best HTML to PDF API depends on where your layout logic lives and how your renders will be billed.
For products that render HTML and then process the resulting PDF, the Foxit PDF Services API covers both steps on one credit pool.
For print-styled documents with complex pagination, DocRaptor’s Prince engine applies CSS paged media directly. The table below maps each pick to the use case it fits best.
Use case | Pick | Why it fits |
HTML to PDF followed by other PDF steps or signing | Foxit PDF Services API | 1 credit per conversion regardless of page count, same credit pool as compress, merge, watermark, OCR, and eSign |
Print-grade layouts with CSS paged media | DocRaptor | Prince 15.1 engine; PDF/A, PDF/UA, and PDF/X profiles; Basic $15 a month for 125 documents |
High-volume Chromium rendering at a low price per credit | PDFShift | Chromium 142; 1 credit per 5 MB of output; Business $99 a month for 25,000 credits |
Page breaks controlled by CSS selector | ConvertAPI | AvoidBreakElements, BreakBeforeElements, and BreakAfterElements; UK, EU, and US endpoints; 250 free conversions at sign-up |
Archival output with multiple PDF/A variants | PDFCrowd | PDF/A-2, PDF/A-3, and PDF/A-4 variants, tagged PDF, SDKs in 7 languages; 1 credit per 0.5 MB of output |
Paying only for the compute a render uses | Api2Pdf | $1 a month plus $0.001 per MB and $0.00019551 per second of compute; Chrome, wkhtmltopdf, or LibreOffice per call |
Puppeteer-level control without running browsers | Browserless | /pdf REST API with waitForSelector and waitForFunction, with a free plan covering 1,000 units a month |
HTML to PDF inside a no-code-friendly PDF toolbox | PDF.co | HTML templates, parsing, forms, and barcodes on one credit balance, with Make and Zapier modules; 9 credits per page |
Static HTML that becomes fillable PDF forms | Nutrient DWS Processor API | HTML form fields turn into fillable PDF fields; HTML to PDF costs 0.5 credit |
Free, self-hosted conversion | Gotenberg | MIT-licensed Docker API with Chromium and LibreOffice, with v8.38.1 released 15 Oct 2026 |
These picks highlight different use cases, not exclusive capabilities. Check each API’s features and limits against your full workflow.
Create a free Foxit developer account and convert your first HTML file or URL to PDF with the PDF Services API.
How we compared these HTML to PDF APIs
Every fact in this article comes from public documentation, API specs, pricing pages, and GitHub, all checked on 16 Oct 2026. Recheck any price before making a purchasing decision, since billing details change.
Compare inputs and engines, JavaScript timing, layout controls, output options, pricing, free allowances, limits, SDKs, and hosting. Where a vendor does not publish a number or engine name, the table notes that gap as of 16 Oct 2026.
Three APIs in this list do not name their HTML rendering engine in their public documentation, namely Foxit PDF Services API, PDFCrowd, and PDF.co. ConvertAPI names Chrome headless. Nutrient’s overview names Chromium, but the generation guide does not and conflicts with the overview on JavaScript support.
We found no independent, reproducible fidelity or speed benchmark of hosted HTML-to-PDF APIs in the sources reviewed. The comparisons that rank for this query are vendor-written.
All prices are in USD unless otherwise noted. Billing period is named beside every price.
The 10 HTML to PDF APIs in detail
Start with the engine and the controls your template needs. Chromium-based APIs such as PDFShift, Browserless, Gotenberg, and Api2Pdf’s Chrome route use a browser print engine. DocRaptor uses Prince for CSS paged media. Check the engine comparison table for differences in JavaScript, headers, and footers.
Foxit PDF Services API
Our PDF Services API is a cloud REST API for automating PDF workflows.
After converting HTML to PDF, you can compress, merge, watermark, protect, or OCR the result, or send it for signature with our eSign API, using the same developer account and shared credit pool.
Feature | Details |
Inputs and engine | Upload an HTML file (embedded CSS, images, and web fonts supported, with external resources needing to be reachable) or pass a public URL. Word, Excel, PowerPoint, images, text, and Markdown convert on sibling endpoints. The API reference does not name the HTML rendering engine. |
JavaScript and waits | The URL route renders the page with JavaScript, with a 30-second JavaScript timeout and a 60-second maximum page load. No delay or wait-for-selector parameter is documented. For uploaded HTML, ship fully rendered markup. |
Layout controls | Page width and height in points (72 to 14,400, default 595 x 842, A4), rotation, single-page or multi-page mode, and scaling (none, scale, enlarge). No margin or header and footer parameters are documented. Set margins and page breaks with @page and print CSS inside the HTML. |
Output options | PDF. Separate endpoints compress, protect, linearize, watermark, flatten, merge, or auto-tag the file for accessibility, at 1 credit each. |
Pricing | 1 credit per successful conversion, regardless of page count or file size within supported limits. Startup $1,750 a year (5,000 credits); Business $4,500 a year (15,000 credits). Credits reset annually with no rollover. |
Free allowance | 500 credits a year on the Developer plan. |
Limits | 100 MB maximum input for uploaded HTML files; no size limit is published for the URL route. Asynchronous: submit, poll the task, then download. Polling and downloads consume no credits. |
SDKs and hosting | REST with OAuth client credentials, with code samples in Python, Node.js, and PHP in the developerapidemos repository. The pdf_from_html and pdf_from_url tools are available in the Foxit MCP server, and n8n and Power Automate walkthroughs are on the Foxit blog. Cloud only. |

Our pricing calculator and credit reference list Business at $4,500/year for 15,000 credits, while the pricing page’s plan cards show a custom Volume tier. Confirm the available plan with our team before purchasing.
Where Foxit PDF Services API stands out
A two-page invoice and a 150-page annual report each use 1 conversion credit within the supported limits. That keeps page count out of the conversion cost calculation, though follow-on operations consume additional credits.
The same credit pool covers the steps that typically follow a render. Compress the file for email delivery, merge it with a cover page or terms document, watermark it, protect it with a password, auto-tag it for accessibility, or send it for signature with eSign, all without touching a second vendor or a second billing system.
For agentic workflows, the Foxit MCP Server exposes pdf_from_html and pdf_from_url as tools that LLM agents can call directly, without custom REST client code.

The Foxit PDF Services page confirming MCP server access comes at no added cost beyond existing API credentials.
What to consider
The API reference does not document margin, header and footer, or wait-for-selector parameters. Layout control happens inside the HTML itself, using @page rules and print CSS. If your template relies on request-level margin or footer injection, you’ll need to build those into the markup before upload.
For uploaded HTML, conversion follows four steps: upload the file, submit the job, poll for completion, and download the PDF. Polling and downloads consume no credits. Build your error handling around task status rather than a single conversion response. Our htmlToPDF.py sample shows this flow in Python, with a Node.js equivalent alongside it.

The htmlToPDF.py sample on GitHub, showing the working Python implementation of the async flow described above.

The four-step async flow. Only the submit step consumes a credit; polling and downloading are free.
Credits are sold as an annual pool with no rollover. If your rendering volume is spiky or hard to predict, estimate conservatively and track consumption through the developer console.

The Foxit developer console’s dashboard, showing the Credits Used tile alongside the active plan’s included credit balance.
Best for
Products where the HTML render is the first step of a longer document workflow, such as generating an invoice and then compressing, watermarking, and sending it for signature on the same account.
Getting started
Create a free Foxit developer account and convert your first HTML file or URL to PDF with the PDF Services API.

The Foxit developer sign-up page, confirming no credit card is required to get started.
DocRaptor
DocRaptor is built on Prince, a CSS typesetting engine that treats HTML as print layout input rather than a browser page.
It’s the go-to for documents whose pagination must match a designed layout, including long reports, financial statements, and books.
Feature | Details |
Inputs and engine | An HTML string or a URL. Prince 15.1 is the default engine (pipeline 10.1), and older Prince versions can be pinned. Also outputs XLS and XLSX. |
JavaScript and waits | Off by default. javascript=true runs DocRaptor’s own JavaScript engine, not Chromium. Signal readiness with docraptorJavaScriptFinished(). JavaScript errors fail the document. |
Layout controls | Page size, margins, headers, footers, and page numbers set in CSS (Prince paged media). Print media is the default, and using screen media when you meant print is described in DocRaptor’s docs as the most common issue. |
Output options | PDF/A-1, 2, and 3 (a and b); PDF/UA-1; PDF/X-1a, 3, and 4; 40 or 128-bit encryption with print, copy, and edit permissions and font embedding controls. |
Pricing | Per document, any size or complexity. Basic $15 a month (125 documents); Professional $29 (325); Premium $75 (1,250); Max $149 (5,000); Bronze $399 (15,000); Silver $1,000 (40,000). Overage from 12 cents a document on Basic down to 2.5 cents on Silver. |
Free allowance | 5 documents a month, plus unlimited watermarked test documents on every plan. |
Limits | 60 seconds synchronous, 600 seconds asynchronous, 30 simultaneous requests. Callbacks fire only on success, so poll to catch failures. |
SDKs and hosting | PHP, Python, Node, Ruby, Java, and .NET; Zapier. Rendering runs in AWS us-east-1 only. Claims SOC 2 Type II and GDPR compliance; HIPAA on paid plans with a BAA. DocRaptor is part of Artifex Software. |

DocRaptor’s full tier ladder, from the free plan through Silver’s 40,000 documents a month.
Where DocRaptor stands out
Prince applies CSS paged media to page size, running headers and footers, margins, and page numbering. Pagination is designed in CSS rather than patched with browser workarounds, which makes complex multi-page layouts consistent and predictable.
DocRaptor’s per-document billing is indifferent to file size or page count. A 200-page regulatory report costs the same credit as a two-page invoice, so teams with large, complex documents get more predictable costs than they would with size-based billing.
PDF/A, PDF/UA, and PDF/X profiles are available at render time with no extra API call. If your compliance requirements include archival or accessibility profiles, they’re applied in the same request that generates the document.
What to consider
JavaScript is off by default. DocRaptor offers its own JavaScript engine and Prince’s separate engine, enabled through different parameters. Test client-rendered charts, dynamic tables, and single-page-app templates with the engine you choose; Chrome previews alone do not establish compatibility.
Rendering runs only in AWS us-east-1. If data sovereignty requires keeping rendering in the EU or Asia-Pacific region, DocRaptor has no regional routing option.
Async jobs send callbacks only on success. A failed async job produces no callback, so your polling logic must handle both successful and failed states.
Best for
Long, print-styled reports and documents whose pagination must match a designed print layout.
Getting started
Start with DocRaptor’s unlimited watermarked test documents on any plan to validate your template before buying a paid tier.

DocRaptor’s documentation on the test parameter, which produces unlimited watermarked documents that do not count against the plan limit.
PDFShift
PDFShift is a Chromium-based rendering API with plans for a range of volumes and version pinning that lets you choose when to change the Chromium version used for your templates.
Feature | Details |
Inputs and engine | A URL or raw HTML, an array of sources for parallel conversion, or stored HTML templates. Headless Chromium is the engine, and the X-Processor-Version header picks Chromium 116 or 142, with new accounts defaulting to the latest. |
JavaScript and waits | A delay of up to 10 seconds, a wait_for JavaScript function (fails after 30 seconds), network idle by default, plus options to disable JavaScript, inject JavaScript or CSS, and lazy-load images. |
Layout controls | Format presets or custom sizes, margins, orientation (portrait or horizontal), zoom, page ranges, and the print stylesheet. Header and footer HTML supports page, total, date, title, and URL variables, but does not inherit the body CSS. |
Output options | PDF, PNG, JPEG, and WEBP, with metadata, password protection and permissions, and text or image watermarks. PDF/A is not in the API schema. |
Pricing | 1 credit per 5 MB of output (a 14 MB PDF uses 3 credits). Starter $9 a month (500 credits); Boost $24 (2,500); Growth $39 (5,000); Business $99 (25,000), up to $999 (1,000,000). Annual billing costs 10 times the monthly price. Overage from $0.04 down to $0.001 a credit. |
Free allowance | 50 credits a month, billed at 1 credit per 5 MB of output, with a 15 MB maximum file size and a 30-second timeout. A watermarked sandbox allows 10 requests a minute. |
Limits | 250 documents a minute. Timeouts run up to 15 minutes on paid plans. Result URLs are kept for 2 days, and webhooks are available for asynchronous jobs. |
SDKs and hosting | Language guides for Node.js, Go, PHP, Python, and Ruby. Exports directly to S3, Google Cloud Storage, or R2. French company; GDPR and HIPAA BAA links in the footer. |

PDFShift’s pricing calculator, confirming the Business tier at 25,000 credits for $99 a month. The page picks a single recommended tier from a credit-count slider rather than listing all tiers at once.
Where PDFShift stands out
Version pinning lets you choose Chromium 116 or 142 with the X-Processor-Version header rather than follow PDFShift’s default engine. It reduces one source of rendering changes, but you still need to test templates when their fonts, assets, or application code change.
The tier ladder runs from $9 a month to $999, covering a wide volume range without requiring a sales conversation. Direct export to your own S3, Google Cloud Storage, or R2 bucket means rendered PDFs land in your storage without an extra download step.
Size-based billing rewards lean templates. PDFs that are mostly text and vector graphics use fewer credits than image-heavy designs, giving you an incentive to optimize output size.
What to consider
Header and footer templates do not inherit your page CSS. Styles applied in the body are invisible inside the header or footer, which is a standard Chromium limitation. You need to duplicate any relevant styles inside those templates.
Image-heavy PDFs consume credits faster than plain ones, because 1 credit covers 5 MB of output. A rendering pipeline for photo-rich marketing materials will cost more than one for text-heavy invoices.
PDF/A output is not in the API schema as of 16 Oct 2026. If you need archival profiles, this API won’t meet that requirement.
Best for
High-volume rendering of modern HTML and CSS where cost per render and predictable engine behavior are the priorities.
Getting started
Use PDFShift’s 50 free monthly credits to test your templates and measure per-file credit consumption before choosing a paid tier.
ConvertAPI
ConvertAPI is a Chromium-based conversion API with CSS-selector page break controls and regional endpoints in the UK, EU, and US.
Feature | Details |
Inputs and engine | An HTML file or a link to one, or a live URL. The OpenAPI description names Chrome headless. With RespectViewport set to false it behaves like Chrome’s print to PDF. |
JavaScript and waits | JavaScript on by default. ConversionDelay runs up to 30 seconds. WaitElement accepts a CSS selector. User JavaScript and CSS injection are supported, as are hiding or showing elements, lazy-loaded content, ad and cookie-banner blocking, and a timeout up to 1,200 seconds. |
Layout controls | Page size presets or custom millimeters, orientation, margins (10 mm default), and scale. Header and footer HTML with page number and total pages. Page breaks by selector with AvoidBreakElements, BreakBeforeElements, and BreakAfterElements. CssMediaType defaults to screen. |
Output options | PDF. PDF/A and PDF/UA are separate PDF tools, not HTML-to-PDF parameters. |
Pricing | Per conversion. Monthly billing: Developer $35 (1,000 conversions); Startup $95 (5,000); Growth $175 (15,000); Business $350 (50,000). Annual billing: $30, $85, $160, and $300 a month with annual pools of 12,000, 60,000, 180,000, and 600,000 conversions. Overage $0.05 a conversion on every plan, minimum 20 overage conversions per billing period. |
Free allowance | 250 conversions at sign-up. |
Limits | Maximum file 200 MB on Developer, up to 2 GB on Enterprise. Developer through Business plans allow 1 to 4 concurrent conversions. Enterprise offers unlimited concurrency. Stored results are kept up to 3 hours. |
SDKs and hosting | Official open-source SDKs; Zapier, Make, and n8n. Regional endpoints in London, Amsterdam, Frankfurt, US East, and US West. ISO 27001 and GDPR compliance cited consistently across its documentation. |

ConvertAPI’s annual-billing tier prices, which match the $30/$85/$160 figures cited in the feature table.

ConvertAPI’s HTML to PDF API reference page, naming Chrome headless as the engine, with a link to the OpenAPI schema beside it.
Where ConvertAPI stands out
The AvoidBreakElements, BreakBeforeElements, and BreakAfterElements parameters let you control page breaks by CSS selector in the API request. That’s a level of pagination control you’d normally need to patch into the HTML itself, and it’s available across all plans.
Regional endpoints in London, Amsterdam, Frankfurt, and two US regions let you choose where rendering runs. If you have EU data residency requirements, confirm the applicable storage, transfer, and contractual terms as well as the endpoint location.
A configurable timeout of up to 1,200 seconds gives slow pages more time to finish rendering. Check it against your application’s own request timeout and response-time requirements.
What to consider
The default media type is screen. If your stylesheet uses @media print rules, you need to set CssMediaType explicitly in each request. Missing this is easy and produces output that ignores your print styles entirely.
Each request can count as one or more conversions, and successful responses report ConversionCost. Failed requests are also billed. Review the ConversionCost field in your response to avoid surprises.
ConvertAPI’s compliance wording varies across its own pages. ISO 27001 and GDPR appear consistently; treat other compliance claims as requiring verification.
Best for
Invoices and reports that need explicit control over where pages break, processed in the UK, EU, or US.
Getting started
The 250 free conversions at sign-up are enough to validate page break behavior and media type handling on your template before purchasing a plan.
PDFCrowd
PDFCrowd offers the widest PDF/A coverage in this comparison, with variants from PDF/A-2a through PDF/A-4f, tagged PDF, and credit-based billing that scales with output size.
Feature | Details |
Inputs and engine | A URL, an HTML file, zipped HTML with assets (up to 300 MB), raw HTML, or Jinja-style data templates. The rendering engine is not named in public documentation. The API pins converter versions (24.04, 20.10, 18.10). |
JavaScript and waits | javascript_delay and wait_for_element, both capped by the plan’s maximum delay (1 to 15 seconds). Custom JavaScript is supported, and JavaScript can be disabled. |
Layout controls | Page size, orientation, and margins. Header and footer HTML with page number and page count classes. A mode that prefers CSS @page rules and viewport options are also available. |
Output options | PDF/A-2a, 2b, 2u, 3a, 3b, 3u, 4, 4e, and 4f. Tagged PDF and encryption with user and owner passwords are supported. PDF/A cannot be combined with encryption, forms, or watermarks. |
Pricing | 1 credit per 0.5 MB of output. Nano $1 a month billed annually (10 credits); Micro $11 (200); Small $23 (1,000); Medium $35 (5,000); Large $61 (10,000); Ultimate $106 (20,000); Enterprise tiers up to $2,630 (3,000,000). Unused credits do not roll over. |
Free allowance | 100 test API credits valid for one month. |
Limits | 60-second limit per conversion. Rates run from 15 to 480 conversions a minute and 1 to 16 concurrent by plan, with 429 and 430 responses when exceeded. No async or webhook option found as of 16 Oct 2026. |
SDKs and hosting | PHP, Java, .NET, Python, Node.js, Ruby, and Go, plus a command-line tool; Zapier, Make, Pipedream, and others. Operated by an EU company with GDPR processor terms. |

PDFCrowd’s credit-based tiers, priced at 1 credit per 0.5 MB of output.
Where PDFCrowd stands out
PDFCrowd supports PDF/A variants from PDF/A-2a through PDF/A-4f, including PDF/A-4e for engineering documents. Tagged PDF output is also available, but tagging alone does not establish accessibility compliance.
Occasional overage is not billed on PDFCrowd’s documented policy, and entry-tier pricing starts at $1 a month billed annually, which makes low-volume archival use affordable.
Zipped HTML upload with assets up to 300 MB handles complex templates with many local resources without requiring a public URL or a content delivery network.
What to consider
Entry plans cap JavaScript waits at 1 to 2 seconds and run one conversion at a time. Concurrency and wait limits scale with plan tier, so a low-cost entry plan may not handle templates that depend on slow client-side rendering.
At 0.5 MB per credit, image-heavy or font-rich PDFs consume more credits than smaller exports. Compare the cost for your actual output sizes, not credit counts alone, because vendors price credits differently.
Sustained overage beyond occasional instances can lead to account suspension according to PDFCrowd’s overage documentation. Monitor consumption carefully on smaller plans.
Best for
Archival or accessible PDFs from HTML at steady monthly volume, especially when choosing among PDF/A variants is a requirement.
Getting started
The 100-credit trial covers a month of testing, enough to measure real output sizes and credit consumption before choosing a tier.
Api2Pdf
Api2Pdf is a metered API that bills for actual compute time and bandwidth consumed, with per-call choice of engine, covering Headless Chrome, wkhtmltopdf, or LibreOffice.
Feature | Details |
Inputs and engine | Raw HTML or a URL rendered with Headless Chrome (PuppeteerSharp-based) or wkhtmltopdf; Markdown through Chrome; Office and 100+ other formats through LibreOffice. The same API merges, watermarks, password-protects, and generates barcodes. |
JavaScript and waits | Delay plus Puppeteer wait-for method and value on the Chrome route. |
Layout controls | Width, height, margins, orientation (portrait or horizontal), scale, page ranges, preferCSSPageSize, print CSS, print background, and Chrome header and footer templates. |
Output options | Tagged PDF and outlines on Chrome PDFs; passwords and watermarks through separate endpoints; screenshots. PDF/A is not in the v2 spec. |
Pricing | $1 a month plus $0.001 per MB of bandwidth and $0.00019551 per second of compute. The $1 monthly fee starts 30 days after sign-up. Api2Pdf’s own example: 10,000 PDFs of 0.1 MB at 2 seconds each cost about $5.91 a month. |
Free allowance | One month of free credit for new accounts. |
Limits | 2 GB of memory and 90 seconds per standard request (V2 XL gives 8 GB and 5 minutes at 10 times the price); no rate, page, or file-size limits stated; files deleted after 24 hours; no webhook field in the v2 spec. |
SDKs and hosting | Python, Node, .NET, PHP, Java, Ruby, and Go; Power Automate and Zapier; an MCP server. Runs on Google Cloud Run in us-central1; managed and self-hosted enterprise options. |

Api2Pdf’s pay-as-you-go pricing page, including its own cost estimator for bandwidth and compute time.
Where Api2Pdf stands out
Api2Pdf estimates about $5.91 for its example of 10,000 small PDFs a month. For an unpredictable workload, compare that metered model with a subscription using your own render times and output sizes.
Each call chooses its engine independently. A batch that mixes HTML invoices (Chrome), legacy HTML files (wkhtmltopdf), and Office documents (LibreOffice) runs through the same API key without switching services.
The $1 monthly base fee after the first month is low enough that Api2Pdf is viable even for low-volume production use, such as a small internal tool that generates a handful of PDFs a week.
What to consider
Cost follows render time and output size, so a slow page with heavy JavaScript costs more than a fast static template. Profile your templates during the free month to understand what they’ll actually cost.
The wkhtmltopdf route runs on an archived, unmaintained engine (see “What happened to wkhtmltopdf” below). For new projects, the Chrome route is the maintained option.
The 90-second per-request cap is a hard ceiling. Templates that require long JavaScript execution or large resource loads need to fit within that window. V2 XL lifts it to 5 minutes at 10 times the compute cost.
Best for
Spiky or cost-sensitive workloads where paying for actual compute beats a fixed monthly tier.
Getting started
The one-month free period is the right time to run your real templates and compute your expected monthly cost before committing.
Browserless
Browserless runs Chrome as a managed service, exposing the same Puppeteer and Playwright controls your existing render code already uses, without you operating the browsers.
Feature | Details |
Inputs and engine | A URL or HTML. The /pdf REST API uses Chrome’s print engine through Puppeteer; full sessions also support Playwright with Chrome, WebKit, and Firefox. |
JavaScript and waits | waitForSelector, waitForFunction, waitForEvent, and waitForTimeout; navigation options; script and style injection; resource blocking; a bestAttempt mode. |
Layout controls | Puppeteer PDF options: format, size, margins, header and footer templates (page number, total pages, date, title, URL), print background, and page ranges. The /pdf endpoint cannot produce a single long-page PDF. |
Output options | A tagged-PDF flag (Browserless notes Chrome’s tagged output is not certified PDF/UA); screenshots. |
Pricing | Billed in units of up to 30 seconds of browser time. Prototyping $25 a month billed annually (20,000 units, then $0.0020 a unit); Starter $140 (180,000; $0.0017); Scale $350 (500,000; $0.0015). Monthly pricing available; annual billing saves approximately 30% per Browserless’s FAQ. |
Free allowance | 1,000 units a month, 2 concurrent browsers, and 2-minute sessions. |
Limits | 2 concurrent browsers on Free, up to 100 on Scale; session length 2 to 60 minutes by plan; PDFs that fail in one request can be split with page ranges and merged. |
SDKs and hosting | REST plus Puppeteer and Playwright connections; endpoints in San Francisco, London, and Amsterdam, with stored data in US infrastructure on the shared fleet. Claims SOC 2 Type II and GDPR compliance; HIPAA BAA and licensed self-hosting on Enterprise. |

Browserless’s unit-based tiers, where one unit covers up to 30 seconds of browser time.
Where Browserless stands out
Existing Puppeteer render code moves over with minimal changes. The /pdf REST API accepts the same options as Puppeteer’s page.pdf(), so teams moving off self-hosted Chrome don’t need to rewrite their rendering logic.
The full session API supports Playwright with Chrome, WebKit, and Firefox for browser automation. Check PDF-export support separately rather than assuming that every supported browser can generate PDFs.
Three geographic regions (San Francisco, London, Amsterdam) give you control over where browser sessions run, reducing latency for geographically distributed workloads.
What to consider
Browserless charges browser time in blocks of up to 30 seconds per connection. Longer waits can increase usage when they cross a block boundary, so measure the full connection duration rather than assuming cost rises in direct proportion to render time.
PDFs that fail to render in a single request may need chunking by page range and merging, which adds request complexity. The /pdf endpoint cannot produce a single continuous long-page PDF.
Chrome’s tagged PDF output is available but Browserless explicitly notes it is not certified PDF/UA. If formal accessibility compliance is a requirement, verify this limitation before building on it.
Best for
Teams with existing Puppeteer or Playwright render code who want to stop operating the browsers themselves.
Getting started
The 1,000 free units a month (2 concurrent browsers) cover lightweight testing. Run your actual templates against the free tier to measure unit consumption before selecting a paid plan.
PDF.co
PDF.co is owned by Artifex Software (the same parent as DocRaptor) and places HTML to PDF alongside parsing, forms, barcode, and extraction endpoints on one shared credit balance, with Make and Zapier modules for no-code integration.
Feature | Details |
Inputs and engine | Raw HTML, a URL, or stored HTML templates. The rendering engine is not named as of 16 Oct 2026. |
JavaScript and waits | Runs the page’s JavaScript on load with no option to disable it; DoNotWaitFullLoad changes how long it waits. |
Layout controls | Margins, paper size (A4 default), orientation, print background, media type (print default), and header and footer HTML with page number and total pages. |
Output options | Encryption profiles; passwords, merge, split, compress, forms, and parsing on other endpoints. |
Pricing | 9 credits per rendered page; job status checks cost 2 credits per call. Billed annually as displayed: Basic $8.99 a month (16,500 credits); Personal $22.49 (37,000); Business 1 $44.99 (80,500); Business 2 $89.99 (159,850); Business 3 $270 (483,000). Basic’s 16,500 credits works out to about 1,833 rendered pages a month, a computed ceiling rather than a vendor-stated page limit. |
Free allowance | 10,000 credits or 30 days, whichever comes first. |
Limits | 30 seconds synchronous; up to 3 minutes asynchronous with a webhook callback; 4 MB request payload; 100 MB per URL input file; output links expire after 60 minutes by default. |
SDKs and hosting | Make and Zapier modules and Postman collections. PDF.co is owned by Artifex Software. |

PDF.co’s annual-billing tiers, matching the 16,500/37,000/80,500 credit figures cited above.
Where PDF.co stands out
HTML to PDF shares a credit balance with parsing, form filling, barcode generation, compression, and splitting. An automation builder in Make or Zapier can chain all of these in one workflow without switching services or managing multiple API keys.
Per-page credits (9 per page) make PDF.co’s cost predictable for fixed-length documents. An invoice that’s always two pages always costs 18 credits, regardless of file size.
The 10,000-credit free trial gives you room to run a realistic volume of test documents and understand exactly what your credit consumption looks like before choosing a plan.
What to consider
At 9 credits per page, a 50-page report uses 450 credits and a two-page invoice uses 18. Personal’s 37,000 monthly credits would cover at most 82 reports or 2,055 two-page invoices if used only for rendering. Polling and other operations reduce those totals.
JavaScript always runs on load and cannot be disabled. If you’re rendering static HTML, there’s no way to skip the JavaScript execution time.
Synchronous calls stop at 30 seconds. Templates with heavy JavaScript or many external resources need the async route with webhook handling.
Best for
Automation builders on Make or Zapier who need HTML to PDF alongside other PDF jobs on one credit balance.
Getting started
The free 10,000-credit trial covers about 1,111 rendered pages, enough for realistic testing of your document types.
Nutrient DWS Processor API
Nutrient DWS Processor API converts HTML to PDF at 0.5 credits per conversion and turns HTML form fields into interactive, fillable PDF form fields, with the option to chain multiple operations in a single /build call.
Feature | Details |
Inputs and engine | An HTML file uploaded with its CSS, fonts, and images, or a URL. The overview names Chromium; the generation guide does not name the engine. |
JavaScript and waits | The generation guide states JavaScript assets are not supported, while the overview claims JavaScript support. Use pre-rendered HTML until this conflict is resolved. |
Layout controls | A layout object with orientation, size, and margins in millimeters; repeating headers and footers through #pspdfkit-header and #pspdfkit-footer elements with page number and page count tokens. HTML form fields become fillable PDF fields. |
Output options | PDF. PDF/A and PDF/UA are separate operations, chainable in one /build request. |
Pricing | HTML to PDF costs 0.5 credit. Starter $75 a month (1,000 credits); Growth $275 (5,000); Pro $445 (10,000). About 10% less billed annually. |
Free allowance | 50 credits a month (watermarked unless pay-as-you-go is enabled with a $25 wallet load). |
Limits | 100 requests per minute per API key on every plan. |
SDKs and hosting | Code examples in JavaScript, Python, Java, C#, and PHP; Zapier; an MCP server. Cloud API; self-hosting is a separate product (Document Engine). Claims SOC 2 Type 2 audited controls and GDPR compliance. |

Nutrient’s Processor API pricing, shown at the annual-billing rate (about 10% below the monthly prices cited in the feature table).

The Processor API overview page’s FAQ, naming Chromium as the engine and listing JavaScript among the web standards it supports, the first half of the conflict described below.

The PDF generation guide’s own callout, stating plainly that JavaScript assets are not supported, the second half of the conflict.
Where Nutrient DWS Processor API stands out
HTML form fields in your source markup turn into fillable PDF form fields in the output, with no post-processing required. If you’re generating application forms, order forms, or any document the recipient needs to complete, this capability is available directly in the conversion step.
Chaining operations in a single /build request reduces round trips. Convert HTML to PDF and apply PDF/A or PDF/UA in one call, rather than two separate API requests.
At 0.5 credit per HTML conversion, 1,000 credits cover 2,000 conversions if used only for that operation. Include any additional operations when estimating the cost of the full workflow.
What to consider
The overview and the generation guide conflict on JavaScript support. The generation guide states JavaScript assets are not supported; the overview says they are. Ship pre-rendered HTML until Nutrient clarifies this at the route level.
Free-plan output is watermarked unless you enable pay-as-you-go with a $25 minimum wallet load. Budget for that activation cost if you’re testing without a paid plan.
Best for
Static HTML templates such as applications or order forms that must become fillable PDFs.
Getting started
Review Nutrient’s HTML-to-PDF guide, then test your form-field conversion on the free tier (50 credits a month, watermarked) before selecting a plan.
Gotenberg
Gotenberg is an MIT-licensed Docker API wrapping Chromium and LibreOffice, with PDF/A, PDF/UA, and e-invoice output built in.
Version 8.38.1 was released on 15 Oct 2026. There are no per-render license fees or vendor quotas, but you pay for hosting and take responsibility for operation and maintenance.
Feature | Details |
Inputs and engine | HTML files (with header.html and footer.html), URLs via Chromium, and Office documents via LibreOffice. Chromium is the named engine. |
JavaScript and waits | Delay, expression, and selector waits. header.html and footer.html cannot load external resources or JavaScript. |
Layout controls | Page size, margins, orientation, print background, and page ranges. Headers and footers via separate HTML files. |
Output options | PDF/A-1b, 2b, 3b; PDF/UA-1; e-invoice (ZUGFeRD/Factur-X); merge, split, encrypt, flatten. |
Pricing | None (self-hosted). MIT license. |
Free allowance | No vendor quota; your hosting costs apply. |
Limits | 30-second default timeout (configurable). Concurrency controlled by container scaling. |
SDKs and hosting | REST API; community client libraries. Docker image; self-hosted on any infrastructure. |

Gotenberg’s GitHub repository, confirming the MIT license and its Chromium/LibreOffice/wkhtmltopdf topic tags.

Gotenberg’s Releases page, confirming v8.38.1 as the current release.
Where Gotenberg stands out
Self-hosting Gotenberg lets you process HTML and PDFs on your own infrastructure. For data residency or air-gapped deployments, also control outbound requests, external assets, and webhook destinations; self-hosting alone does not prevent data from leaving the environment.
PDF/A, PDF/UA, merge, split, encrypt, and e-invoice formatting are all available in the same container, with no per-operation billing. Volume is limited only by the compute you allocate.
What to consider
You own the operational burden, including container updates, Chromium upgrades, concurrency tuning, and uptime. The 30-second default timeout is configurable, but scaling to high concurrency requires running multiple container instances and a load balancer in front of them.
header.html and footer.html cannot load external resources or run JavaScript, which is the same architectural constraint as other Chromium-based APIs.
Best for
Teams with data residency requirements, air-gapped environments, or high enough volume that self-hosting costs less than per-render fees.
Getting started
Pull the official Docker image, run it, and POST your HTML to the Chromium route. The MIT license means no activation step. Grab a ready-to-use sample index.html here and save it in the same directory you run the curl command from, so the –form ‘[email protected]’ line below has something real to upload.
Run this command from your terminal:
docker pull gotenberg/gotenberg:8 The expected output should look like the following:
8: Pulling from gotenberg/gotenberg
4f4fb700ef54: Pull complete
50413e22b8b3: Pull complete
b95dd55d398d: Pull complete
031c4b37fda9: Pull complete
05f2a8effccb: Pull complete
ae7490fdba0d: Pull complete
125be13350c7: Pull complete
Digest: sha256:aa552cc115db488e0f0bcb07446aac13071ad51505b642c84bb894500907b42b
Status: Downloaded newer image for gotenberg/gotenberg:8
docker.io/gotenberg/gotenberg:8
Start the container, then convert an HTML file by posting it to the Chromium route:
docker run --rm -d --name gotenberg -p 3000:3000 gotenberg/gotenberg:8
curl --silent --request POST 'http://localhost:3000/forms/chromium/convert/html' \
--form '[email protected]' \
--output output.pdf \
--write-out 'HTTP status: %{http_code}\n'
file output.pdf The expected output should look like the following:
HTTP status: 200
output.pdf: PDF document, version 1.4, 1 pages The first line starts Gotenberg in the background, exposing it on port 3000. The curl call then POSTs index.html as a multipart file to Gotenberg’s Chromium conversion route, writes the resulting PDF to output.pdf with –output, and prints the HTTP status code with –write-out once the request completes, with –silent suppressing curl’s own progress output so only that final status line shows.
What counts as one billable render
Check the billing unit before comparing plan prices: it determines how your document size, length, and render time affect usage.
API | Billable unit | Entry paid plan | Free allowance | Published limits |
Foxit PDF Services API | 1 credit per conversion, any page count (shared pool) | Startup $1,750 a year, 5,000 credits | 500 credits a year | No published rate limit |
DocRaptor | Document, any size | Basic $15 a month, 125 documents | 5 a month plus unlimited watermarked tests | 60 s sync, 600 s async, 30 simultaneous |
PDFShift | Credit per 5 MB of output | Starter $9 a month, 500 credits | 50 credits a month | 250 documents/min |
ConvertAPI | Conversion | Developer $35 a month (1,000 conversions), or $30 a month billed annually (12,000 a year) | 250 at sign-up | 1 concurrent on Developer |
PDFCrowd | Credit per 0.5 MB of output | Nano $1 a month billed annually, 10 credits | 100 test credits for one month | 60 s per conversion |
Api2Pdf | MB of bandwidth plus seconds of compute | $1 a month plus usage | One month of credit | 90 s and 2 GB per request |
Browserless | Unit of up to 30 s of browser time | Prototyping $25 a month billed annually, 20,000 units | 1,000 units a month | 2 concurrent browsers on Free |
PDF.co | 9 credits per page | Basic $8.99 a month billed annually, 16,500 credits | 10,000 credits or 30 days, whichever comes first | 30 s sync, 3 min async |
Nutrient DWS Processor API | 0.5 credit per HTML conversion | Starter $75 a month, 1,000 credits | 50 credits a month, watermarked | 100 requests/min per API key, all plans |
Gotenberg | None (self-hosted) | No license fee; hosting extra | No vendor quota | 30 s default timeout |
Size-based units (PDFShift and PDFCrowd) mean image-heavy or font-heavy PDFs cost more than plain text renders. A 14 MB image-rich invoice uses 3 PDFShift credits where a 1 MB plain invoice uses one.
Page-based units (PDF.co at 9 credits per page) mean long reports cost proportionally more than short invoices. A 50-page report costs 450 credits; a 2-page invoice costs 18.
Time-based billing needs a closer look. Browserless charges in blocks of up to 30 seconds per browser connection, so separate 2-second and 10-second connections each use one browser-time unit. Api2Pdf meters compute by the second, but bandwidth and the base fee also contribute to the total bill. A fivefold increase in render time does not necessarily mean a fivefold increase in cost.
Flat units (DocRaptor and Foxit per document or conversion) are indifferent to output size and page count within the documented limits. ConvertAPI charges per conversion, but each request can count as more than one conversion, and the successful response reports ConversionCost.
Estimate cost from your real output size, page count, and render time, not from the headline plan price. Benchmark your actual templates on the free tier before committing to a billing model.
For template-plus-data pricing (Word templates, hosted template editors, and document generation), see the “best PDF generator APIs” comparison, which owns that topic.
Which engine renders your HTML
The engine determines almost everything about rendering behavior. Checked 16 Oct 2026.
API | Engine | JavaScript | Headers and footers |
Foxit PDF Services API | Not named in the API reference | URL route runs JavaScript (30 s limit) | No header/footer template parameter documented |
DocRaptor | Prince 15.1 | Off by default; own engine | CSS paged media |
PDFShift | Chromium 116 or 142 | On; delay, wait_for, network idle | Separate HTML template, no body CSS |
ConvertAPI | Chrome headless | On; delay and wait element | Header and footer HTML |
PDFCrowd | Not named as of 16 Oct 2026 | Delay and wait for element, capped by plan | Header and footer HTML |
Api2Pdf | Headless Chrome or wkhtmltopdf | Delay and wait-for (Chrome route) | Chrome templates |
Browserless | Chrome print engine via Puppeteer | Full Puppeteer wait controls | Puppeteer templates |
PDF.co | Not named as of 16 Oct 2026 | Always on | Header and footer HTML |
Nutrient DWS Processor API | Chromium (overview); unnamed in generation guide | Docs conflict; use pre-rendered HTML | Header and footer elements in HTML |
Gotenberg | Chromium | Delay, expression, and selector waits | header.html and footer.html, no JavaScript |
Chromium is the engine behind PDFShift, ConvertAPI, Api2Pdf (Chrome route), Browserless, Gotenberg, and Nutrient (per overview). Chromium-based APIs print the page the way Chrome’s print-to-PDF does, so templates built and previewed in Chrome usually carry over. A Chromium-level constraint applies to headers and footers, where scripts in Puppeteer header and footer templates do not run and the page’s own styles are invisible inside them. PDFShift’s header and footer templates have the same constraint. Gotenberg’s header.html and footer.html cannot load external resources or JavaScript.
Prince (DocRaptor) moves pagination into CSS. Page size, margins, running headers and footers, and page numbers are all defined in the stylesheet through CSS paged media properties, not through request parameters. That approach suits print-designed documents whose layout is controlled by a designer, but client-rendered charts or React-based templates need careful adaptation.
Unnamed engines (Foxit PDF Services API, PDFCrowd, and PDF.co) are not identified in public documentation as of 16 Oct 2026. Base your decisions on what you observe from test renders rather than assumptions drawn from similar APIs.
If your layout logic lives in JavaScript and the browser, a Chromium-based API is the natural fit. If it lives in print CSS and typographic control, Prince via DocRaptor is the right match.
What you can do with the PDF after it renders
Rendering may be only the first step. Your workflow might also need compression for email, a merged cover page, password protection, PDF/A conversion, accessibility tagging, or a signature.
Here’s what’s available per API.
The Foxit PDF Services API covers compress, merge, watermark, protect, linearize, flatten, accessibility auto-tagging, and eSign on the same credit pool, with each PDF Services step costing 1 credit.
Api2Pdf supports merge, watermark, and password protection.
PDF.co covers merge, split, compress, and form operations.
Nutrient DWS Processor API can chain PDF/A, PDF/UA, and other operations in a single /build call.
ConvertAPI offers separate PDF tools including PDF/A conversion.
Gotenberg handles PDF/A, PDF/UA, merge, split, encrypt, flatten, and e-invoice formatting in the same container.
DocRaptor and PDFCrowd apply PDF/A and encryption at render time, so no extra call is needed. PDFShift adds watermarks and protection at render time.
Browserless has no built-in post-render operations.
Count the charges for the full workflow, not just HTTP requests. Nutrient can chain operations in one /build call, but that does not establish a one-unit charge for the whole request. For Foxit, include conversion and follow-on processing credits, and account for eSign’s per-envelope charge separately. Check the applicable billing rules for Api2Pdf, PDF.co, and any render-time options you use.
If the rendered PDF isn’t your final artifact, count the follow-on calls in your cost estimate and your vendor selection criteria.
Will the PDF look the same as your browser preview?
Use your own templates to compare output. Fonts, media type, header and footer styling, and JavaScript timing are useful starting points when a PDF differs from its browser preview.
Fonts are a common source of rendering differences. The same font-family can produce different output on macOS and Linux because the available system fonts differ.
Embedding fonts with @font-face or base64 data URIs keeps output consistent across platforms and across vendors. Puppeteer waits for document.fonts.ready by default before generating the PDF, which is worth replicating in any server-side render flow.
Print vs. screen CSS is the most common rendering surprise, per DocRaptor’s documentation. DocRaptor, PDF.co, Gotenberg, and Playwright default to print media. ConvertAPI defaults to screen. A template styled for screen output will ignore @media print rules, and a template styled for print may render incorrectly in screen mode. Check the default before testing and set it explicitly in your request.
Headers and footers hit a consistent wall across Chromium-based APIs. Puppeteer and Playwright header and footer templates do not run scripts and cannot see page styles. PDFShift’s header and footer templates don’t inherit body CSS. Gotenberg’s can’t load external resources. These are architectural constraints of how Chrome’s print engine handles header and footer injection. Duplicate any necessary styles directly into the template strings.
JavaScript timing can cause blank or partial renders. A page may reach network idle before asynchronous code finishes updating the DOM. Where supported, use an explicit readiness hook such as docraptorJavaScriptFinished() on DocRaptor, wait_for on PDFShift, waitForFunction on Browserless, or waitForExpression on Gotenberg. Otherwise, render the data server-side and send fully populated HTML.
Rendering fidelity
Font differences between macOS and Linux, print vs. screen media type mismatches, header and footer CSS isolation, and JavaScript timing are common causes of output that differs from your browser preview. Each has a documented fix, but the fix depends on the API and the engine. Vendor speed and fidelity claims are claims until you run your own hardest template. Test your most complex document (long tables, manual page breaks, custom web fonts, one chart) on each shortlisted free tier before committing.
Choosing an HTML to PDF API for your pipeline
Two questions decide which API fits your pipeline, which engine renders your HTML and what counts as one billable render.
A Chromium-based API matches templates built and previewed in Chrome. Prince, via DocRaptor, suits documents whose pagination is designed in CSS paged media.
A flat per-document or per-conversion charge removes the size and page-count variability that a size-based or page-based unit introduces, which matters most when document length varies widely from one render to the next.
If HTML rendering starts a longer document workflow, our PDF Services API lets you convert, compress, merge, watermark, protect, and auto-tag PDFs through one account. Our eSign API uses the same shared credit pool, with its own per-envelope charge. Choose the plan based on the full sequence of operations, not conversion volume alone.
Our free Developer plan includes 500 shared credits a year, plus eSign trial access. Use it to test your HTML templates and follow-on PDF operations before choosing a paid plan.
What else to know before you pick an HTML to PDF API
A few questions come up repeatedly when developers evaluate these APIs, so here are direct answers.
Can I convert HTML to PDF for free?
Yes. Our Foxit PDF Services API supports HTML-to-PDF conversion on the free Developer plan, which includes 500 shared credits per year. Each conversion uses one credit, and no credit card is required to sign up.
How do I bulk convert HTML to PDF?
Submit conversions within both the rate and concurrency limits. Use webhooks where available, or poll task IDs in your worker pool, as with our PDF Services API. PDFShift accepts arrays of sources for asynchronous conversion when parallel conversions are enabled on the account. DocRaptor supports async mode with callbacks. In Gotenberg, the concurrency setting controls simultaneous conversions within a browser, not the number of Chromium instances; scale container instances for heavier loads.
Per-minute and concurrency limits are the real ceiling on batch throughput. Check the limits row in each feature table and design your batch queue around those ceilings.
What's the best npm package to convert HTML to PDF?
Puppeteer and Playwright are the standard choices. Both drive headless Chromium, give you full control over the render, and keep documents on your server. Puppeteer is the more established package with a larger ecosystem, while Playwright adds cross-browser support (WebKit, Firefox) and has a clean async API.
At low volume with full control requirements or strict data locality, a self-managed Puppeteer or Playwright setup is hard to beat. The operational problems emerge at scale, where concurrency requires multiple browser instances with real memory footprints, cold starts on serverless functions add latency, font configuration differences between development and production machines cause output inconsistencies, and Chromium upgrades can change rendering. Those are the conditions where a hosted API earns its cost.
What happened to wkhtmltopdf?
The wkhtmltopdf GitHub repository was archived by its owner on 2 Jan 2023, with the last commit in November 2022. Api2Pdf still offers a wkhtmltopdf route for legacy compatibility.
For new projects, choose a maintained engine. Chromium-based APIs (PDFShift, ConvertAPI, Browserless, Gotenberg, Api2Pdf’s Chrome route) and Prince (DocRaptor) are both actively developed. Building on an archived engine means carrying its unresolved bugs and security findings with no fixes coming.
10 Best PDF Generator APIs for Developers in 2026

Compare 10 PDF generator API options by template model, billing unit, free allowance, and hosting. The list covers hosted PDF generation services like Foxit, Adobe, and Carbone, plus self-hosted Gotenberg. Use it to build your shortlist, then test your hardest template on each free tier.
Your invoice template has the wrong tax rate. The legal team needs a disclaimer block added. Sales wants the logo repositioned. Who makes that change, and does it need a deploy?
Start with who will maintain the template. With a Word-template engine, a business user can edit the DOCX in Word while preserving the template tags.
Hosted editors let users update layouts in a browser, but you should check their versioning and export options.
If your application generates HTML from templates in its repo, layout changes can follow the normal release process. Fillable PDF templates are useful when you already have a branded form you want to reuse.
Billing adds another consideration. These APIs meter different units, so compare expected usage alongside the plan price. PDF Generator API (pdfgeneratorapi.com) bills per 5-page block, so a 12-page report costs 3 credits. CraftMyPDF bills 1 credit per PDF regardless of length, so that same 12-page report costs 1 credit. Docmosis Cloud charges per output page. Carbone counts each extra megabyte of JSON and images as an additional render. Foxit charges 1 credit per document, drawn from the same pool shared by its PDF Services API and eSign API.
We compare our Foxit Document Generation API with 9 alternatives across template models, billing units, free allowances, published limits, SDKs, and hosting. The comparison draws on public pricing pages and documentation. Check current plan terms before making a purchasing decision.
Top picks by use case
The best PDF generation APIs for developers in 2026 are Foxit, Adobe, Carbone, Docmosis, PDF Generator API (pdfgeneratorapi.com), CraftMyPDF, PDFMonkey, DocRaptor, Nutrient DWS Processor API, and Gotenberg. Each fits a different combination of template model, billing unit, and hosting requirement.
Use case | Pick | Why it fits |
Documents that then get signed, merged or converted | Foxit Document Generation API | Word templates and JSON in one call, on the same credit pool as PDF Services and eSign |
Largest free allowance for Word templates | Adobe Document Generation API | 500 free transactions/month; Document Generation uses 1 transaction per up-to-50-page block |
Batch runs from office templates | Carbone | Async batches up to 100 reports per Cloud call; Essential €29/month for 1,000 billable documents |
One Word-template engine in the cloud and on-premises | Docmosis Cloud | Cloud plus self-hosted Tornado; US, EU and Australian regions |
Letting your own users edit templates | PDF Generator API (pdfgeneratorapi.com) | Embeddable template editor from the Basic plan; SDKs in 8 languages |
Turning existing PDF forms into templates | CraftMyPDF | AI field detection for fillable PDF templates, plus a drag-and-drop editor; Lite $29/month for 1,200 credits |
Low-cost paid entry plan | PDFMonkey | Starter €5/month for 300 documents. A separate Free plan has 20/month |
Print-grade HTML rendering | DocRaptor | Prince 15.1 engine with PDF/A and PDF/UA output |
Several PDF operations in one request | Nutrient DWS Processor API | One /build call can chain conversion, watermark, OCR and compression; HTML to PDF costs 0.5 credits |
Free, self-hosted conversion | Gotenberg | MIT-licensed Docker API with Chromium and LibreOffice |
Each API appears once, under the use case it fits best. Several support more than one template route, and the feature table in each entry shows their coverage.
Create a free Foxit developer account and generate your first PDF from a Word template and JSON with the Document Generation API.
How we compared these APIs
The comparison draws on public pricing pages, official documentation, and GitHub repositories reviewed on 7 Oct 2026.
Compare template routes, data merge, other PDF operations, pricing and billing units, free allowances, published limits, SDKs and integrations, and hosting. Speed, uptime, and compliance figures reflect vendor claims. Prices retain their original currencies and billing periods; compare costs at your expected usage rather than treating different vendors’ credits as equivalent.
The 10 PDF generator APIs in detail
Start with the template format and hosting model your application needs, then compare costs and limits at your expected volume. Tag syntax differs across vendors, so a DOCX template may need changes before it works with another API.
For CSS and JavaScript rendering details across HTML-to-PDF APIs, see the “best HTML to PDF APIs” comparison.
Foxit Document Generation API
Our Document Generation API merges a DOCX template with JSON data in a single synchronous call and returns a PDF or DOCX. Business users author the template in Microsoft Word, and developers send the data.
Feature | Details |
Template routes | Word (DOCX) templates with JSON through the Document Generation API. Your own HTML, a URL or Office files through the PDF Services API on the same account |
Data merge | {{tokens}}, date and number masks, TableStart/TableEnd row loops, and Word IF fields for conditional content. An Analyze endpoint lists a template’s tags |
Other PDF operations | Merge, split, compress, watermark, flatten, protect, redact and OCR through separate PDF Services endpoints. eSign shares the same account |
Pricing | 1 credit per generated document, drawn from the same shared pool as PDF Services, eSign, and PDF Embed. Startup $1,750/year (5,000 credits), Business $4,500/year (15,000 credits) |
Free allowance | 500 credits/year on the Developer plan. No credit card required |
Limits | 4 MB maximum .docx template after base64 encoding |
SDKs and integrations | REST with code samples in the API reference. n8n and Power Automate walkthroughs on the Foxit developer blog |
Hosting | Cloud only |

Our pricing calculator and credit reference list Business at $4,500/year for 15,000 credits, while the pricing page’s plan cards show a custom Volume tier. Confirm the available plan with our team before purchasing.
Where Foxit Document Generation API stands out
Our Document Generation, PDF Services, and eSign APIs share one developer account and credit pool. You can generate an invoice, then merge, compress, or send it for signature without switching accounts. Budget 1 credit for generation, 1 for each merge or watermark operation, and 5 for each eSign envelope created.
Use our Analyze endpoint to inspect a DOCX template and list its tags before building a high-volume workflow. Compare those tags with the keys in your JSON payload to catch mismatches before generation.
For teams that use both HTML and Word templates, the PDF Services API on the same account handles HTML-to-PDF, URL-to-PDF, and Office-to-PDF conversions. You pay from one credit pool regardless of which route you use. See the PDF Services quick start guide for the conversion request format.
What to consider
Foxit’s Document Generation API has no visual template editor. Microsoft Word is the editor, which is an advantage if your document designers already live in Word but a friction point if you want non-technical users to make layout changes through a browser UI.
The API generates one document per call. There’s no built-in batch endpoint for submitting 100 documents in a single request, so high-volume runs need a loop at the application layer. On the Startup plan, 5,000 shared credits a year works out to roughly 416 documents a month if Document Generation is the only thing drawing from that pool, though in practice PDF Services and eSign usage share the same balance.
The Developer plan’s 500 credits reset annually, not monthly, so a spike in November doesn’t refill until your renewal date. Plan for that reset when estimating free-tier capacity for quarterly report runs.
Our current document-generation endpoint accepts a DOCX template as a multipart upload, with a 5 MB template limit and a 10 MB total request limit. It returns the generated PDF or DOCX directly, without base64 decoding. Compress embedded images and remove unnecessary objects if a template exceeds the file-size limit.
Best for
Products where the generated document goes on to conversion, merging, or signing, such as finance apps generating statements for e-signature, or HR platforms assembling offer letters that need a compression step before archive storage.
Getting started
Create a free Foxit developer account and generate your first PDF from a Word template and JSON with the Document Generation API. The Document Generation quick start guide walks through the multipart request step by step using a sample invoice template with styled tables, repeating data, and conditional logic. To try it against a ready-made file instead of building one from scratch, grab a sample invoice template here.
Adobe Document Generation API
Adobe Document Generation API is part of Adobe PDF Services API. It takes a DOCX template tagged with Adobe’s JSON-driven syntax and renders it to PDF through an async job flow, where you upload the template, submit the generation job, then poll for completion or receive a webhook.
The free tier is generous for a hosted Word template engine.
Feature | Details |
Template routes | Word (DOCX) templates with JSON. HTML (static, dynamic or by URL) and Office files to PDF through PDF Services |
Data merge | Template tags in Word, filled from a JSON payload of up to 10 MB |
Other PDF operations | Combine, OCR, compress, protect, export to Office, extract content, accessibility auto-tagging and electronic seals |
Pricing | 1 Document Transaction per up-to-50-page block. Paid plans by sales quote |
Free allowance | 500 Document Transactions/month across PDF Services |
Limits | 100 MB files, 10 MB JSON, 25 requests/minute on the free tier (100 on enterprise) |
SDKs and integrations | Java, .NET, Node.js, Python. Power Automate, Workfront Fusion and UiPath |
Hosting | US by default. EU processing available after purchase. No self-hosted option found as of 7 Oct 2026 |

Adobe’s pricing page, confirming the 500 free Document Transactions a month shared across its PDF Services.
Where Adobe Document Generation API stands out
Adobe lists a free allowance of 500 transactions/month shared across PDF Services. For teams generating short reports (say, 5-page monthly statements), 500 transactions covers 500 documents a month at no cost, which is enough for many internal tools and early-stage SaaS products.
The transaction meter is shared across PDF Services operations, so a compress or OCR job draws from the same pool as a generation job.
The SDK coverage is broad. Java, .NET, Node.js, and Python are all officially supported, and the Power Automate connector means non-developer teams can trigger document generation from a workflow without writing API calls directly.
What to consider
Adobe lists paid plans by sales quote, so request pricing before estimating costs above the free allowance. Its async workflow requires an upload, a generation request, and either polling or a webhook to collect the result. Account for that orchestration in your integration rather than assuming it establishes a speed difference from synchronous APIs.
The transaction counter resets monthly, which is useful for steady-state workloads but means a single end-of-quarter report run could consume weeks of allowance at once. A 200-page annual report costs 4 transactions (one per 50-page block).
Best for
Teams whose generation and follow-on operations fit within 500 transactions/month, or existing Adobe buyers who want Document Generation on the same contract as their other PDF Services usage.
Getting started
Adobe Document Generation API docs include a template tagger add-in for Word and quick-start guides in all four supported SDKs.
Carbone
Carbone is a template engine built around office formats, including DOCX, XLSX, PPTX, ODT, and more.
You place merge tags in any of those formats, POST a template and a JSON payload to the API, and Carbone returns your rendered document.
Batch generation is a first-class feature, and a single Cloud call can queue up to 100 reports and return them as a ZIP or a merged PDF.
Feature | Details |
Template routes | Office templates (DOCX, XLSX, PPTX, ODT and more) with JSON. HTML content in templates requires the Enterprise edition |
Data merge | JSON merge tags in office templates. Async webhook batches up to 100 reports per Cloud call, returned as ZIP or one PDF |
Other PDF operations | Enterprise: PDF append/attachments. PDF/A and PDF/UA depend on converter support. Outputs vary by source format (DOCX produces PDF or DOCX; XLSX produces PDF or XLSX) |
Pricing | Per render, where each extra MB of JSON and images beyond the base counts as an additional document. Essential €29/month for 1,000 renders |
Free allowance | 100 documents/month in the cloud. Free self-hosted Community Edition |
Limits | Parallel renders by plan, from 1 on Free to 50 on higher tiers |
SDKs and integrations | Node.js, Python, PHP, Go, Java. Zapier, Make and n8n |
Hosting | European Cloud. Free self-hosted Community Edition or paid Fit from €1,500/year. AWS private cloud separately |

Carbone’s pricing tiers, confirming the Essential plan’s €29/month for 1,000 documents.
Where Carbone stands out
The batch endpoint is genuinely useful for month-end runs. Submitting 100 statements in one API call and receiving a ZIP is a cleaner pattern than 100 individual calls with 100 individual status checks, especially valuable for financial services teams generating account statements on a schedule.
Carbone’s template format coverage goes beyond DOCX. If your data naturally lives in tabular form, you can merge directly into an XLSX and produce a styled spreadsheet without any intermediate conversion step.
The Community Edition on GitHub is also free to self-host under Carbone’s license terms, though the license restricts using it to offer a competing hosted template service.
What to consider
The data-size billing rule catches teams off guard, because each extra megabyte of JSON and images above the base counts as an additional render.
An image-heavy product catalog template with a large JSON payload could cost several times what a plain invoice costs, even if both produce a single PDF. Model your actual payload sizes before committing to a plan.
HTML content in templates requires the Enterprise edition, and some advanced PDF features (append, attachments) are Enterprise-only. The free Cloud plan does include Enterprise features, but paid Cloud plans below Enterprise don’t. Read the plan matrix carefully before assuming a feature is available at your chosen tier.
Best for
High-volume statement and report runs from office templates in multiple formats, especially for EU-hosted data requirements.
Getting started
Carbone documentation covers template syntax and the batch API. The GitHub repo has the Community Edition and issue tracker.
Docmosis Cloud
Docmosis Cloud generates documents from DOCX or ODT templates authored in Word or LibreOffice Writer.
You POST a template name and a JSON or XML data payload, specify a delivery route (direct response, email, or S3), and receive your output in PDF, DOCX, ODT, or TXT.
The notable differentiator is the parallel path, where the same Docmosis template engine runs as a cloud API and as self-hosted software (called Tornado), so you can start in the cloud and move on-premises without rewriting templates.
Feature | Details |
Template routes | DOCX or ODT templates authored in Word or LibreOffice Writer |
Data merge | Template name plus JSON or XML payload. Outputs PDF, DOCX, ODT or TXT |
Other PDF operations | Conversion, watermark and protection. Delivery to response, email or S3 |
Pricing | Professional $49/month for 4,000 output pages. No rollover or overage fees stated. Repeated overruns require a plan upgrade |
Free allowance | 30-day trial with no watermarks |
Limits | Not published as of 7 Oct 2026 |
SDKs and integrations | REST for DWS4. Official Java SDK listed for older DWS3. Compatibility with DWS4 unverified. Appian, Mendix, Bubble and OutSystems listed |
Hosting | US, EU and Australia regions. Self-hosted Tornado with a similar API |

Docmosis Cloud’s Account Quota pricing, confirming the Professional plan’s $49/month for 4,000 pages.
Where Docmosis Cloud stands out
The cloud-plus-on-premises path is rare in this list. Docmosis Tornado uses the same template syntax as Docmosis Cloud, which means regulated teams can prototype against the cloud API and migrate to self-hosted infrastructure without re-tagging their templates. EU and Australian regions address data residency requirements that rule out US-only services.
The no-watermark 30-day trial is meaningful for evaluation. Testing with real templates against real data in a production-representative environment gives a clearer picture of layout fidelity than a sandboxed preview.
What to consider
With per-page billing, a 40-page report consumes 40 of the Professional plan’s stated 4,000 monthly pages, allowing 100 such reports if no other documents use the allowance.
CraftMyPDF and Foxit meter the same document as 1 credit within their supported limits, but those credits have different prices. Compare the plans’ total cost for your workload, not just the unit counts.
Published limits are not available on the Docmosis pricing and documentation pages as of 7 Oct 2026. You’ll need to contact Docmosis to understand concurrent request caps and rate limits before planning a high-volume integration.
Best for
Regulated teams that want to start in the cloud and preserve a self-hosting path for the same templates, particularly in EU or Australia.
Getting started
Docmosis Cloud documentation covers template syntax, the REST API, and Tornado configuration.
PDF Generator API
PDF Generator API (pdfgeneratorapi.com) is a hosted template platform with an embeddable drag-and-drop editor.
The core use case is letting your own users edit document layouts inside your application without touching your codebase.
Templates live in the vendor’s UI, and your app passes JSON to the generate endpoint and receives a PDF. There are also separate HTML-to-PDF and PDF form-fill APIs.
Feature | Details |
Template routes | Drag-and-drop editor templates (embeddable for your own users), plus HTML templates. Separate HTML-to-PDF and PDF form-fill APIs |
Data merge | Expression language, dynamic tables and conditional formatting, with batch generation |
Other PDF operations | Document signing, web forms, an accessibility API and an e-invoice API |
Pricing | 1 credit per up-to-5-page block. Creator €8/month for 50 credits. Teams Starter €52/month for 1,000 credits. Embedded editor starts at Basic €88/month. Annual billing saves roughly 17% |
Free allowance | Sandbox trial. The pricing page states 14 days while the integrations page states 30 days. Check current terms before signing up |
Limits | 30 RPM for Individuals plans; 60 to 240 RPM for Teams plans |
SDKs and integrations | PHP, JavaScript, Java, Ruby, Rust, Python, Go, C#. Zapier, Make, n8n. An MCP connector |
Hosting | Shared cloud. Dedicated US, EU, UK or Australia deployments and on-premises for enterprise |

PDF Generator API’s Individuals pricing tab, showing the Creator tier’s annual-billing rate.
Where PDF Generator API stands out
The embeddable editor is the reason this API appears on this list. From the Basic plan upward, you can expose the template editor directly inside your own application, which means your customers can redesign an invoice layout, add a logo, or move a data field without raising a support ticket. That’s a meaningful product capability for SaaS platforms that serve non-technical end users.
The SDK breadth is also notable, covering eight languages including Rust and Go, alongside an MCP connector that lets AI agents call the generation endpoint. Dedicated regional deployments (US, EU, UK, Australia) give mid-market customers a path to data residency without moving to enterprise on-premises.
What to consider
PDF Generator API bills in five-page blocks, so a 12-page report uses 3 credits. At the stated Teams Starter allowance of 1,000 credits for €52/month, generating 500 twelve-page reports would require 1,500 credits, 50% more than the included allowance. Estimate usage from your actual page counts and confirm the plan’s current overage or upgrade terms.
There’s a documented conflict between trial duration claims, with 14 days on the pricing page and 30 days on the integrations page as of 7 Oct 2026. Check the current pricing page directly before making plans around a free trial window.
Best for
SaaS products whose end users need to edit document templates inside the application, without requiring a developer for every layout change.
Getting started
PDF Generator API docs cover the template editor, data merge syntax, and the REST API. pdfgeneratorapi.com/pricing has current plan details.
CraftMyPDF
CraftMyPDF offers two template routes: a drag-and-drop editor for building layouts from scratch and an AI field detection tool for turning existing fillable PDFs into data-driven templates.
Its per-PDF billing model makes usage easier to estimate when document lengths vary.
Feature | Details |
Template routes | Drag-and-drop editor templates and fillable PDF form templates with AI field detection |
Data merge | JSON with expressions and custom JavaScript functions |
Other PDF operations | Merge, parallel/image generation and e-signatures (10 credits per envelope). ZUGFeRD/Factur-X PDF/A-3 (labeled experimental, invoice XML required) |
Pricing | 1 credit per PDF, any length. Lite $29/month for 1,200 credits. Professional $99/month for 12,000 credits |
Free allowance | 50 PDFs/month |
Limits | 4 to 6 MB request/response caps; 30 to 100-second timeouts; 100 requests per 10 seconds per IP; 100 concurrent sync requests per account |
SDKs and integrations | No official SDKs; Zapier, Make, Bubble and n8n |
Hosting | Singapore by default; Frankfurt, US East and Sydney endpoints available |

CraftMyPDF’s monthly tiers, confirming the Lite ($29) and Professional ($99) prices cited above.
Where CraftMyPDF stands out
The AI field detection tool solves a specific problem. You have an existing branded PDF form, you don’t want to rebuild it from scratch in a drag-and-drop editor, and you need it to accept JSON data.
Upload the PDF, let the AI map the form fields, and you have a working template. That’s a faster path to production than re-authoring from scratch, especially for regulated documents that went through a design and legal approval cycle.
Regional endpoint selection (Singapore, Frankfurt, US East, Sydney) gives you control over where request data and generated PDFs are processed and stored.
The per-PDF billing model means a 50-page report and a 2-page invoice cost the same 1 credit, which simplifies cost forecasting when your document mix varies in length.
What to consider
There’s no overage option on standard plans, so when you hit your monthly credit limit, you must upgrade. For workloads with monthly spikes (such as year-end reporting or seasonal invoicing), that means either over-provisioning or a mid-month plan change.
A Plus tier sits between Lite and Professional at $49/month (or $490/year) for 3,000 credits, so check current pricing for the full ladder before committing to a plan.
Singapore is the default endpoint. If your data residency requirements specify EU or US, you need to actively select a regional endpoint on each request. Concurrent-request limits (100 sync requests per account) also apply to multi-tenant SaaS platforms with bursty generation patterns.
Best for
Visual layouts or existing PDFs where request data and generated PDFs are processed and stored in your chosen region, with predictable per-document billing.
Getting started
CraftMyPDF API docs cover both template routes and regional endpoint configuration. craftmypdf.com pricing has current plan details.
PDFMonkey
PDFMonkey is a hosted HTML/CSS/Liquid template platform with a low-cost paid entry plan. Templates live in PDFMonkey’s UI as Code Templates (HTML/CSS/Liquid) or visual Builder templates.
Your app POSTs JSON, PDFMonkey merges the data, and you poll or receive a webhook when the document is ready. There’s also a separate synchronous endpoint for latency-sensitive workflows.
Feature | Details |
Template routes | Hosted HTML/CSS/Liquid or visual Builder templates. Your own HTML needs a pass-through Code Template |
Data merge | JSON with Liquid in Code templates or Builder bindings, one document per call |
Other PDF operations | Image output (WebP, PNG, JPG) |
Pricing | Starter €5/month for 300 documents. Pro €15/month for 3,000. Pro+ €60/month for 5,000. PAYG extras require opt-in; €0.005 per document applies to Premium tier |
Free allowance | 20 documents/month without external assets; 30-day trial with 300 documents |
Limits | 30-second generation timeout on Free and Starter, up to 5 minutes on Premium |
SDKs and integrations | Ruby gem and Node.js package; Zapier, Make, n8n |
Hosting | EU servers only. PDFMonkey states it has no special compliance certification |

PDFMonkey’s tier table, confirming the Starter plan’s €5/month for 300 documents.
Where PDFMonkey stands out
PDFMonkey’s Starter plan costs €5/month for 300 documents. If you generate 200 invoices in a month, the subscription averages 2.5 euro cents per invoice, excluding VAT and taxes.
Using all 300 lowers that average to about 1.67 cents. The 30-day trial includes 300 documents for evaluating your templates before committing.
The PAYG top-up option on eligible plans absorbs occasional spikes without requiring a plan upgrade for a single busy month.
What to consider
EU-only hosting and no published compliance certifications rule PDFMonkey out for teams with US data residency requirements or industry-specific compliance obligations (HIPAA, FedRAMP). The one-document-per-call model means high-volume batch runs require application-side orchestration, and the 30-second generation timeout on Starter affects complex templates with external assets.
Code Templates use HTML/CSS/Liquid, while Builder templates offer a visual drag-and-drop editor. Choose the route your template authors can maintain, and check whether it supports the layout and logic you need.
Best for
Startups and internal tools generating invoices at low cost, where EU hosting and the absence of compliance certifications aren’t blockers.
Getting started
PDFMonkey docs cover template syntax, the async and sync endpoints, and the webhook setup.
DocRaptor
DocRaptor is an HTML-to-PDF API powered by the Prince rendering engine. You send HTML, CSS, and JavaScript, or a URL, and receive a PDF.
Your application handles data merge before sending the HTML. Prince’s CSS Paged Media support makes DocRaptor worth evaluating for reports with complex page breaks, headers, footers, and print color requirements.
Feature | Details |
Template routes | Your own HTML, CSS and JavaScript, or a URL |
Data merge | None. Your code fills the HTML before sending it to the API |
Other PDF operations | PDF/A, PDF/UA and PDF/X output profiles, Excel output, and a hosted-documents add-on |
Pricing | Per document. Basic $15/month for 125 documents. Professional $29/month for 325. Premium $75/month for 1,250. Overage from 12 cents down to 2.5 cents per document |
Free allowance | 5 documents/month plus unlimited watermarked test documents |
Limits | 60 seconds sync; 600 seconds async. Callbacks report success only, so poll for failure status |
SDKs and integrations | Ruby, Python, PHP, Java, C# and Node.js |
Hosting | AWS, rendering in the us-east-1 region (US East, N. Virginia). Vendor claims SOC 2 Type II and 99.99% uptime. HIPAA requires a paid plan, configured account and a BAA |

DocRaptor’s tier ladder, confirming the Basic ($15, 125 documents), Professional ($29, 325), and Premium ($75, 1,250) prices cited above.
Where DocRaptor stands out
Prince supports print-layout features such as named pages, running headers, cross-reference counters, table-of-contents leaders, and CMYK color profiles. If you produce regulatory filings, annual reports, or technical documentation, test those features with your own templates and compare the results with your print requirements.
The PDF/A and PDF/UA output profiles come from the same API call, which benefits teams with archiving or accessibility requirements. Not every HTML-to-PDF API offers PDF/UA output.
What to consider
DocRaptor’s data merge model is your application’s responsibility. Your backend assembles the HTML, querying the database, formatting numbers, and handling conditional sections, then sends the finished markup. That’s more work than a JSON-plus-template approach, and it means every layout change lives in your codebase.
The Basic plan’s 125 documents/month at $15/month works out to 12 cents per document before overages. Overage rates start at 12 cents and decline with volume, so small workloads are predictable but not cheap per document relative to PDFMonkey’s Starter tier.
Best for
Reports with complex print-layout requirements, such as regulatory filings, annual reports, and print-ready marketing collateral.
Getting started
DocRaptor API documentation includes a test mode (unlimited watermarked documents) and the Prince rendering options reference.
Nutrient DWS Processor API
Nutrient DWS Processor API accepts multiple document inputs in a single /build request and chains operations, converting an Office file to PDF, watermarking it, running OCR, then compressing the result, all in one call.
That chaining model is useful when you have a pipeline with several steps that other APIs would require separate requests for.
Feature | Details |
Template routes | HTML/CSS with assets, Office/image conversion, and DOCX templates with JSON |
Data merge | DOCX templating returns DOCX, and an additional conversion step (and credit) is required to produce PDF. Populate HTML in your application |
Other PDF operations | Merge, OCR, redaction, watermark, compress, digital signatures and Office conversion |
Pricing | Credits per operation: HTML to PDF costs 0.5 credits; Office to PDF costs 1 credit. Starter $75/month for 1,000 credits, roughly 10% less billed annually |
Free allowance | 50 credits/month, output watermarked. Free-plan PAYG starts with a $25 wallet load |
Limits | 100 requests/minute/API key across plans. No JavaScript assets supported |
SDKs and integrations | Python and TypeScript client libraries, Zapier, and an MCP server |
Hosting | Cloud, while self-hosting is a separate product (Document Engine). Vendor claims GDPR, HIPAA and SOC 2 Type 2-audited controls |

Nutrient’s Processor API pricing, shown at the annual-billing rate (about 10% below the monthly prices cited above).
Where Nutrient DWS Processor API stands out
The /build chaining model reduces round-trips for multi-step pipelines. A team that converts Word files from a CMS, watermarks drafts, runs OCR for search indexing, and then compresses for storage can do all four steps in one authenticated request, with one response to handle. That’s a cleaner pattern than four sequential API calls with four intermediate file transfers.
For HTML-heavy workflows, compare Nutrient’s cost for a complete request, including any follow-on operations. Credit counts alone do not establish which API is cheaper, because each vendor assigns its own value to a credit.
What to consider
DOCX templating returns a DOCX, and producing a PDF from a Word template requires a DOCX generation step plus a conversion step, costing 2 credits total rather than 1. If Word templates are your primary use case, Foxit, Adobe, or Carbone are more direct paths.
The free plan watermarks all output, and removing watermarks requires a paid plan or a $25 wallet load for PAYG. Some marketing pages imply broader free access than the limits documentation supports, so prefer the docs for accurate limits information. JavaScript assets are not supported in HTML rendering, which rules out charts or dynamic content rendered client-side.
Best for
Teams that already render HTML and want to chain multiple operations (convert, watermark, OCR, compress) in a single request without managing intermediate files.
Getting started
Nutrient Processor API overview and HTML to PDF guide cover the /build request format and chaining syntax.
Gotenberg
Gotenberg is a MIT-licensed Docker API that wraps Chromium (for HTML, URL, and Markdown conversion) and LibreOffice (for Office files).
You run it on your own infrastructure, expose the HTTP endpoints internally, and pay nothing for the license. As of 11 Sep 2026, release v8.37.0 is current. The project has approximately 13,300 GitHub stars.
Feature | Details |
Template routes | Your own HTML, a URL or Markdown through Chromium; Office files through LibreOffice |
Data merge | None. Your code fills the HTML |
Other PDF operations | Merge, split, watermark, encrypt, flatten, PDF/A, PDF/UA and Factur-X |
Pricing | Free under the MIT license. You pay for hosting |
Free allowance | No vendor quota. Capacity depends on your infrastructure |
Limits | 30-second default timeout, configurable |
SDKs and integrations | Official PHP client; community clients for other languages |
Hosting | Self-hosted Docker only |

Gotenberg’s GitHub repository, confirming the MIT license and its Chromium/LibreOffice topic tags.
Where Gotenberg stands out
Gotenberg puts Chromium and LibreOffice behind one self-hosted HTTP API, with separate routes for HTML, URLs, Markdown, and Office conversion. The MIT license has no per-document fee, but you still need to budget for compute and operating the service.
The active release cadence (v8.37.0 on 11 Sep 2026) and approximately 13,300 GitHub stars indicate a maintained project with a real user base. PDF/A, PDF/UA, and Factur-X support make it viable for structured document archives, not just quick-convert workflows.
What to consider
You own capacity, scaling, security patching, and incident response. A cloud API handles availability for you, but Gotenberg does not. For a team without dedicated infrastructure engineering, the operational overhead of running and scaling a Gotenberg cluster can exceed the cost of a hosted API at moderate volumes.
Gotenberg converts documents and doesn’t template them. Your application must build the HTML and populate all data before sending the conversion request, so it’s not a substitute for Carbone or Foxit if you want template-based merge logic handled server-side.
Best for
Teams that must keep documents on their own infrastructure and already render HTML, with the engineering capacity to operate a Docker-based service.
Getting started
Gotenberg docs cover Docker setup, endpoint reference, and configuration options. The GitHub repo has the source and release notes.
What the price lists and limits pages reveal
Two angles matter most once you look past the headline price, which unit actually gets billed, and who owns the template after launch.
What counts as one billable document
Prices below were checked on 7 Oct 2026. Confirm current plan terms before purchasing.
API | Billable unit | Entry paid plan | Free allowance | Published limits |
Foxit Document Generation | 1 credit per document (shared pool) | Startup $1,750/year, 5,000 credits | 500 credits/year | 4 MB template cap, post-base64 |
Adobe Document Generation | 1 transaction per up-to-50-page block | Sales only | 500 transactions/month | 10 MB JSON, 25/min free tier |
Carbone | Per render; each extra MB of data counts as another document | Essential €29/month, 1,000 renders | 100 documents/month | Parallel renders by plan |
Docmosis Cloud | Pages generated | Professional $49/month, 4,000 pages | 30-day trial | Not published as of 7 Oct 2026 |
PDF Generator API | 1 credit per up-to-5-page block | Creator €8/month, 50 credits. Teams Starter €52/month, 1,000 credits | Sandbox trial; 14/30-day conflict on vendor pages | 30/min Individuals; 60 to 240/min Teams |
CraftMyPDF | 1 credit per PDF, any length | Lite $29/month, 1,200 credits | 50 PDFs/month | 4 to 6 MB request caps; 30 to 100-second timeouts |
PDFMonkey | Per document | Starter €5/month, 300 documents | 20 documents/month | 30 seconds to 5 minutes by plan |
DocRaptor | Per document | Basic $15/month, 125 documents | 5 documents/month | 60 seconds sync, 600 seconds async |
Nutrient DWS | Credits per operation (0.5 for HTML-to-PDF, 1 for Office-to-PDF) | Starter $75/month, 1,000 credits | 50 credits/month, watermarked | 100 requests/minute/API key |
Gotenberg | None (self-hosted) | No license fee; hosting costs vary | No vendor quota; capacity-limited | 30-second default timeout, configurable |
Three surprises in the table are worth understanding before you sign up.
Page-based billing uses more of your allowance for long reports. A 40-page financial statement uses 40 pages of Docmosis Cloud’s stated 4,000-page monthly allowance, the same as 40 one-page invoices. On PDF Generator API, it uses 8 credits under the five-page-block model. CraftMyPDF and Foxit count it as 1 credit within their supported limits. These are usage counts, not equivalent prices; compare the plan cost at your expected document mix.
Data-size billing penalizes image-heavy payloads. Carbone bills each extra megabyte of JSON and images as an additional render. A product catalog template with high-resolution images and a large JSON array can cost several times what a plain invoice costs, even though both produce one output file. Measure your actual payload size before estimating monthly costs on the Essential plan.
Yearly credit pools reset at renewal, not each month. Our Developer plan includes 500 shared credits per year. If you start a billing year with the full balance and generate 300 documents, 200 credits remain until the next annual reset, assuming no other usage. That can suit concentrated report runs, but PDF Services and eSign usage also draw from the pool.
Estimate your cost from your real page count and actual payload size, not from the headline plan price.

The same 40-page report priced under four billing models. Per-document billing (Foxit, CraftMyPDF) and per-page-block billing (PDF Generator API) stay fixed per document or per block; per-page billing (Docmosis Cloud) scales directly with length; per-data-size billing (Carbone) depends on payload rather than page count.
Who edits the template after launch
Word files. Foxit, Adobe, Carbone, and Docmosis all accept DOCX (or ODT) templates authored in Word or LibreOffice Writer. A business user can open the file, move a field, update a disclaimer, change a logo, and hand the file back to the deployment process without writing code. Tag syntax differs by vendor ({{customer_name}} in Foxit, Adobe’s Document Generation tagger syntax, Carbone’s {d.customer_name} notation, Docmosis’s <<customer_name>>), so a template built for one requires re-tagging before it works with another.
Hosted editors. PDF Generator API, CraftMyPDF, and PDFMonkey keep templates in the vendor’s UI. Non-technical users can make changes through a browser without touching a file system, but templates aren’t version-controlled in Git by default and aren’t portable between APIs. That tradeoff (easier to hand off to a business user, harder to audit changes) is the right call for some teams and a significant friction point for others.
HTML in your repo. DocRaptor, Nutrient, and Gotenberg all accept HTML that your application generates. Foxit and Adobe also support HTML-to-PDF routes on the same account as their Word-template routes. PDFMonkey requires a pass-through Code Template if you want to send your own HTML. Nutrient also offers DOCX-plus-JSON templating, though it returns a DOCX that needs a separate conversion step to produce PDF.
![]()
Template format affects who can maintain the layout. Word files and hosted editors can let non-developers make changes, while HTML templates in a repo can follow code review. Whether an update needs deployment depends on how your application stores and loads templates.
The practical question is who will change the invoice layout next year. If the answer is a developer, HTML-in-repo or Word templates both work. If the answer is someone in finance or legal who doesn’t use a code editor, a Word file or a hosted editor is the lower-friction path.
Will the PDF look exactly like your template?
Rendering engines differ, and those differences affect specific document types. DocRaptor uses Prince 15.1, which implements the CSS Paged Media specification for print layout. PDFMonkey uses a Chrome-based browser engine. Gotenberg uses Chromium for HTML and LibreOffice for Office files. Word-template APIs (Foxit, Adobe, Carbone, Docmosis) render from the DOCX layout, which means fidelity depends on the DOCX-to-PDF converter the vendor uses internally.
Documented engine gaps affect specific use cases. Nutrient DWS Processor API does not support JavaScript assets, which rules it out for HTML templates that render charts or dynamic content with client-side JavaScript. PDFMonkey’s free plan blocks external fonts and images, which can produce layout differences between your test output and your paid-plan output. Anvil (not on this list) documents the absence of Flexbox and Grid support, worth checking when evaluating any browser-based HTML renderer against complex CSS layouts.
Vendor benchmarks need careful scope checks. Carbone’s converter benchmark covers self-hosted converters, not the hosted APIs in this comparison. It does not establish how these ten services will render your templates.
Rendering fidelity callout
The only reliable way to assess rendering fidelity for your specific documents is to test your hardest template on each shortlisted free tier before committing. “Hardest template” means your longest table, your most complex page-break logic, your custom fonts, your header and footer positioning. A simple invoice rarely reveals rendering differences. A 30-page financial report with running totals, conditional sections, and custom typography often does. Vendor speed and fidelity claims are claims until you run your own template.
Choosing a PDF generation API for your pipeline
Choose the template model your team can maintain, then price your expected document mix and any follow-on operations.
Word templates suit business users who already work in Microsoft Word. Hosted editors offer browser-based layout changes, while HTML templates in a repo can follow your code-review process.
Per-document billing is easier to model for varying page counts, but it is not automatically cheaper once plan prices, allowances, and other operations are included.
If your generated documents need merging, compression, watermarking, or signing, our Document Generation API keeps those steps on the same account and credit pool as PDF Services and eSign.
Generation uses 1 credit; each eSign envelope created uses 5 credits, with PDF processing charged separately. Our free Developer plan includes 500 shared credits per year for evaluating the workflow before choosing a paid plan.
What else to know before you pick a PDF generator API
What is PDF generation?
PDF generation is creating a PDF from code, often by merging data into a template or rendering HTML. For example, an application can populate an invoice with customer details and line items. Conversion instead changes an existing document, such as a Word file, into PDF.
What is the best free PDF generator?
For developers working with Word templates and JSON, our Foxit Document Generation API is a free option to evaluate. The Developer plan includes 500 shared credits per year, and generating one document uses 1 credit. Other billable operations draw from the same pool, so the allowance is not necessarily 500 complete document workflows.
What is a good library to generate PDFs?
Consider Playwright or Puppeteer for browser-rendered HTML. In Python, WeasyPrint renders HTML and CSS, while ReportLab builds PDFs programmatically. Libraries can suit low-volume jobs when you want rendering control and processing on your infrastructure, but you manage dependencies and scaling. Avoid wkhtmltopdf for new projects: its repository was archived on January 2, 2023.
10 Best PDF MCP Servers for AI Agents in 2026

Not every PDF MCP server can do what your agent needs. This guide compares 10 options, from free local readers to cloud APIs that convert, edit, and secure files, so you can match the server to the job. See where each one sends your documents, what a full workflow costs, and which security gaps to close before you connect.
When an AI agent struggles with a scanned invoice or loses a table’s structure, it may need a tool built for that task.
A PDF MCP server gives it access to document tools, from text extraction and OCR to merging files or requesting a signature, depending on the server.
The choice comes down to what your agent needs to do and where the document can be processed.
Some servers process files on your machine; others send them to a cloud API. This guide compares 10 PDF MCP servers by their capabilities, setup, cost, and data-handling requirements.
Before connecting a server, consider what your agent can access and where document content goes, and treat incoming PDFs as untrusted input, especially when the agent can modify files.
Top picks by job
Start with the output your agent needs. For reading and extraction, compare the open-source options.
For editing, conversion, or other jobs that produce a new file, compare cloud API servers, Stirling PDF, and local toolkits.
Check current versions and documentation before integrating, since tool counts and pricing tiers shift as vendors ship updates.
| Job | Pick | Why it fits |
|---|---|---|
| Converting and editing PDFs through one cloud API | Foxit PDF API MCP Server | 40 tools in v1.1.2 for conversion both ways, merge, split, compress, OCR, redaction, watermark, and forms |
| Certificate-based signing inside agent flows | Nutrient DWS MCP Server | A PAdES digital signing tool, plus OCR and AI redaction, on Nutrient’s cloud |
| Zero-install PDF editing in claude.ai or ChatGPT | CloudConvert MCP Server | Hosted Streamable HTTP endpoint with OAuth; 24 tools |
| Invoice parsing and table extraction in the cloud | PDF.co MCP Server | 38 tools including fillable forms, table finding, and an AI invoice parser |
| Open-source, layout-aware conversion for RAG | Docling MCP | MIT, OCR and table-structure options, v3.3.0 released 6 Oct 2026 |
| Managed parsing and schema extraction | LlamaParse MCP | 26 tools on the unified OAuth endpoint, including indexing and project-key creation; 10K free credits/month |
| Searching long PDFs and whole folders locally | pdf-mcp (jztan) | 13 tools with hybrid keyword and semantic search that flags hidden text as untrusted |
| Lightweight local reading across many formats | anymd | Rust binary, 4 tools, no API key, 6,144 weekly npm downloads for @sylphx/anymd as of mid-October 2026 |
| A self-hosted PDF toolbox behind your firewall | Stirling PDF MCP Server | Built into Stirling PDF with OAuth2 or API key, off by default |
| Offline editing with no account | PDF Toolkit MCP | 22 local tools for merge, split, encrypt, forms, and creation |
These picks highlight different uses, not exclusive capabilities. Check each entry’s feature table against your full workflow.
How we compared these servers
For each server, we compare 6 fields: capabilities, data routing, setup, pricing, maintenance, and supported clients.
Tool lists and versions come from project READMEs and release notes, package metadata from npm or PyPI, and hosted-service details and costs from vendor documentation and pricing pages.
GitHub stars and directory visitor counts, including PulseMCP’s estimates, indicate popularity. Vendor-provided speed or accuracy figures, including anymd’s comparison with Docling and MarkItDown, are not independent test results.
For a deeper look at how MCP agents use PDF APIs together, see Building Agentic Document Workflows and the Foxit MCP Server setup guide.
The 10 PDF MCP servers in detail
Some servers run locally but send documents to a cloud API when a tool runs.
Before connecting confidential files, check the “Where files go” row in each table, along with the operations, setup requirements, and cost.
MarkItDown MCP deserves a brief mention as a conversion reference.
It exposes a single tool, has no built-in auth, and carries an alpha-suffixed release with conflicting Beta metadata, so its design assumes local-trusted use.
It’s excluded from the main list on scope grounds, but it’s a useful data point for single-format conversion comparisons.

Foxit PDF API MCP Server
Foxit maintains the Foxit PDF API MCP Server under the MIT license, packaging the Foxit PDF Services API operations as MCP tools and giving any MCP-compatible host direct access to Foxit’s cloud PDF engine.
The npm package @foxitsoftware/foxit-pdf-api-mcp-server registers 40 tools in v1.1.2 (13 Jul 2026), though the README for that version lists 36; the 4 additional registered tools in the package code are pdf_extract, pdf_ocr, pdf_redact, and pdf_structural_analysis.

Foxit’s npm package at v1.1.2, under the MIT license. The README preview groups operations by category; the 40-tool count comes from the shipped code.
| Feature | Details |
|---|---|
| Covers | Convert to/from PDF (Office, HTML, URL, text, images), merge, split, extract, compress, flatten, rotate, reorder, watermark, linearize, compare, OCR, redact, structural analysis, password protect/remove, form data import/export, properties. 40 tools in v1.1.2 (README lists 36). |
| Where files go | The server runs locally and calls Foxit’s cloud. Upload local files once and reuse document IDs for subsequent operations. URL and text creation can send inputs directly without a separate upload step. |
| Setup | stdio or –transport httpStream. Credentials (FOXIT_CLIENT_ID/SECRET) go in environment variables; v1.1.2 sends them as headers, unlike the current REST OAuth docs. HTTP mode defaults to 0.0.0.0 with no inbound auth, so keep it local or add access controls. |
| Pricing | 1 credit per successful (2xx) billable PDF processing request. Uploads, polling, downloads, and error responses (4xx/5xx) do not consume credits. Free Developer plan: 500 credits/year. See Credits Explained and the pricing page. |
| Maintenance | MIT. npm v1.1.2 (13 Jul 2026). The official MCP Registry still links to npm v0.2.3. Install from npm directly to get the current version. |
| Works with | Claude Desktop, VS Code, and Cursor, plus any MCP host via stdio or HTTP stream. |

Foxit charges 1 credit for each successful billable PDF processing request. Uploads, polling, downloads, and failed requests do not use credits.

The free Foxit Developer plan includes 500 credits per year.

The MCP Registry entry shown here points to npm v0.2.3, not the v1.1.2 package on npm. Install from npm directly for the version covered in this guide.
Where Foxit PDF API MCP Server stands out
Document IDs let agents chain uploaded files and processing results across steps without re-uploading, and MCP access ships with your API credentials at no extra cost, with the free Developer plan giving 500 credits per year and no credit card required.

Foxit makes its PDF Services operations available to agents through the MCP server.
What to consider
eSign and Document Generation are separate Foxit APIs with their own tools but the same shared credit pool, wrapped as custom tools when your agent needs them, per the Foxit MCP Server post.
Most operations follow an async pattern (call the operation, then get_task_result), except pdf_protect, which polls internally, so factor that into your tool-call count.
The HTTP transport also defaults to binding 0.0.0.0 with no inbound authentication, so add access controls before exposing it externally; get_task_result may also share results via a public link, so treat it as a data-sharing event, not a status check.
Best for
Agents that convert, assemble, and secure documents as part of a product workflow.
Getting started
Create a free Foxit developer account and follow the pinned @foxitsoftware/foxit-pdf-api-mcp-server package setup. Confirm the authentication path against the current API reference before deploying.
Nutrient DWS MCP Server
The Nutrient DWS MCP Server, maintained by Nutrient (formerly PSPDFKit), wraps the Nutrient Document Web Services API as MCP tools, covering a broad range of document operations with PAdES certificate-based digital signing as a standout capability not commonly found elsewhere on this list.
| Feature | Details |
|---|---|
| Covers | Merge, convert between PDF, Office, images, HTML, Markdown, and PDF/A, OCR, watermark, rotate, flatten, compress and linearize, redact, passwords and permissions, data and field extraction, and digital signing (PAdES). |
| Where files go | The server runs locally and sends processing files to Nutrient’s cloud. Sandbox restrictions apply only when configured. |
| Setup | stdio via npx or the Claude extension. OAuth covers both APIs; headless/API-key use needs separate Processor and Data Extraction credentials. |
| Pricing | Separate billing for Processor (50 free credits/month; paid Starter beyond that) and Data Extraction (per-page parsing, field extraction extra). Free plan applies a watermark, removed on paid PAYG. See pricing. |
| Maintenance | MIT. v0.1.3 (28 Aug 2026). |
| Works with | Claude Desktop, Cursor, Windsurf, VS Code, and Codex. |

Nutrient’s MIT-licensed MCP server, shown here at v0.1.3.

Nutrient includes 50 free Processor credits per month, but removing the output watermark requires paid or pay-as-you-go access.
Where Nutrient DWS MCP Server stands out
PAdES certificate-based digital signing, required for legally binding signatures in many European and enterprise contexts, is the key differentiator.
Paired with OCR and AI-assisted redaction, an agent can scan a document, redact sensitive fields, and apply a certificate-based signature in one workflow.
The server also supports PDF/A conversion for archival or regulatory use.
What to consider
The free-plan watermark is removed only on a paid PAYG tier, so confirm that tier is active before deploying anywhere watermarked output is a problem.
The server is still pre-1.0 at v0.1.3, so the tool surface and auth model may change, and headless use needs separate Processor and Data Extraction credentials.
Best for
Agents that must apply a certificate-based digital signature before a document leaves the workflow.
Getting started
See the Nutrient DWS MCP Server on GitHub and the Nutrient PDF MCP server page for setup and current credential requirements.
CloudConvert MCP Server
The CloudConvert MCP Server is a fully hosted server maintained by CloudConvert, the file conversion service, running as a Streamable HTTP endpoint authenticated with OAuth 2.0, nothing to install.
| Feature | Details |
|---|---|
| Covers | Convert, compress, watermark, capture URLs to PDF, merge, OCR, PDF/A, encrypt and decrypt, split and extract pages, rotate. 24 tools. |
| Where files go | CloudConvert’s cloud. Input files can be supplied as downloadable URLs. Output links expire after 24 hours. ChatGPT automatically bridges attachments into temporary input URLs. |
| Setup | Hosted Streamable HTTP endpoint with OAuth 2.0. Nothing to install. |
| Pricing | 10 free conversion credits per day, with additional credits via packages or subscriptions. See CloudConvert pricing. |
| Maintenance | Hosted service with no package version to track. |
| Works with | ChatGPT and Claude connectors, per CloudConvert’s docs. |

CloudConvert includes 10 free conversion credits per day.
Where CloudConvert MCP Server stands out
The hosted endpoint works directly in ChatGPT and claude.ai with no local setup, and ChatGPT attachments become temporary downloadable URLs automatically, so an agent can process uploaded PDFs without the user managing file transfers.
What to consider
The 24-hour link expiry on outputs means downstream steps need to download or store results promptly, and clients other than ChatGPT or claude.ai must supply files as downloadable URLs, so confirm your client can do that and supports the required transport before committing.
Best for
Hosted chat workflows where files arrive as attachments or downloadable URLs (ChatGPT or Claude connectors).
Getting started
See the CloudConvert MCP Server docs for connector setup and OAuth configuration.
PDF.co MCP Server
The PDF.co MCP Server, maintained by the PDF.co team, wraps the PDF.co cloud API as MCP tools.
Its 38 tools cover typical extraction and conversion jobs, including an AI invoice parser and table-finding tools for document data extraction workflows.
| Feature | Details |
|---|---|
| Covers | PDF to JSON, CSV, text, Excel, XML, HTML, and images; Office, HTML, and images to PDF; merge, split; read, fill, and create forms; OCR; passwords; table finding; AI invoice parsing. No compression tool. |
| Where files go | PDF.co’s cloud. |
| Setup | stdio via uvx. API key required. |
| Pricing | Credit-based, starting from a monthly plan billed annually. HTML to PDF costs 9 credits per page as a reference point. See PDF.co pricing for current rates. |
| Maintenance | MIT. v0.0.9 (28 Jul 2026). |
| Works with | Cursor and Claude Desktop. |

PDF.co sells monthly plans with a set credit allowance.

PDF.co’s MIT-licensed MCP server, shown here at v0.0.9.
Where PDF.co MCP Server stands out
The AI invoice parser and table-finding tools cut the work an agent would otherwise do in its own context window when pulling line items, totals, and vendor fields from financial documents.
The fill_forms tool (named fill_pdf_forms in the README but registered as fill_forms in the package) and the form-creation tools round out coverage for fillable documents.
What to consider
PDF.co has no compression tool. If your workflow also needs smaller files, you’ll need a separate compression step.
Best for
Agents that pull table data and invoice fields out of PDFs at scale.
Getting started
See the PDF.co MCP Server on GitHub for installation and API key setup.
Docling MCP
Docling MCP, maintained by the LF AI and Data project that started at IBM Research, wraps the Docling document processing library as MCP tools, converting documents to structured formats for RAG ingestion pipelines that need clean structure from complex layouts.
| Feature | Details |
|---|---|
| Covers | Convert PDFs and other documents to Docling JSON or Markdown, with OCR and table-structure options, build new documents, and optional RAG tool groups. No PDF binary editing. |
| Where files go | Local conversion or your own Docling Serve instance. Remote is the default; local processing requires the local extras install. Optional RAG and model service routing may send data to configured external endpoints. |
| Setup | stdio, SSE, or streamable HTTP. The remote Docling Serve API key is separate from MCP endpoint authentication; configure both independently. |
| Pricing | Free and open source; you pay for compute. |
| Maintenance | MIT. v3.3.0 (6 Oct 2026). Version 3.x requires MCP SDK v2; verify your integration’s SDK version before upgrading. |
| Works with | Claude Desktop, LM Studio, and Llama Stack. |

Docling MCP’s v3.3.0 release on GitHub.
Where Docling MCP stands out
Layout-aware conversion preserves table structure, column ordering, and document hierarchy, cutting the cleanup work an agent would otherwise do when indexing research papers, technical specs, or multi-column reports.
Optional RAG tool groups let agents build and query vector indexes from the same server, simplifying pipelines for teams that want ingestion and retrieval in one place.
What to consider
Docling MCP converts documents and does not write PDF binaries, so it cannot merge, compress, or encrypt a file; pair it with an editing server for pipelines that need both.
The v3.x requirement for MCP SDK v2 is a real constraint to check before upgrading from v2.x.
Best for
RAG and ingestion pipelines that need clean, layout-aware structure from complex document layouts.
Getting started
See Docling MCP on GitHub for installation options and Docling Serve configuration.
LlamaParse MCP
LlamaParse MCP is the hosted MCP server for LlamaIndex’s LlamaParse document parsing service, running entirely on LlamaIndex’s infrastructure with nothing to install, covering structured extraction, schema-based parsing, and index management through 26 tools on a unified OAuth endpoint.
| Feature | Details |
|---|---|
| Covers | Parse to Markdown or text with OCR, classify, split into sections, schema-based extraction and indexing. No PDF binary editing. LiteParse is available for jobs that do not require Parse credits. |
| Where files go | LlamaIndex’s cloud, with North America and EU endpoints available. |
| Setup | Hosted Streamable HTTP. Interactive clients use OAuth; API-key callers pass files by URL (not direct upload). |
| Pricing | 10K free credits/month; Starter tier includes 40K credits/month. Additional usage billed per 1,000 credits. See LlamaIndex pricing for current rates. |
| Maintenance | Hosted service. The older run-llama/mcp-server-llamacloud repo is archived; use the current hosted endpoint. |
| Works with | Cursor, VS Code, Claude Code, Claude connectors, and Codex. |

LlamaParse includes 10K credits per month on Free and 40K on Starter.
Where LlamaParse MCP stands out
The unified endpoint means no server to run, model to download, or Docling Serve to maintain, cutting operational overhead for teams that want managed parsing and schema extraction with North America/EU data routing.
Schema-based extraction suits varied document types, since you define the schema and let LlamaParse handle extraction, which tends to produce more consistent results than prompting an LLM to locate fields.
What to consider
LlamaParse MCP reads and parses documents without modifying PDFs; account and index writes consume credits separately from parsing.
LiteParse skips Parse credits for jobs that don’t need high-fidelity parsing, but API-key callers can’t upload files directly and must supply a URL to an accessible file, adding a step for locally stored documents.
Best for
Teams extracting structured fields from varied documents without running their own parser.
Getting started
See the LlamaParse MCP docs for endpoint details and OAuth setup.
pdf-mcp (jztan)
The pdf-mcp server by jztan is an open-source, locally-running MCP server focused on reading and searching PDFs.
Its 13 tools include hybrid keyword and semantic search, page-level reading, table extraction, and vector-chart data reading, and it flags hidden or injected text as untrusted rather than passing it silently along.
| Feature | Details |
|---|---|
| Covers | Hybrid and folder search, page reads, tables, vector-chart data, Tesseract OCR, and page rendering. Note that local embedding, model, and OCR dependencies must be installed separately. No PDF editing. |
| Where files go | Local by default. HTTP deployments use the configured server. Optional remote embeddings send text to the configured endpoint. |
| Setup | stdio or bearer-token-protected HTTP. Claude Desktop extension available. VS Code, Cursor, Codex CLI, and Kiro setups are documented. |
| Pricing | Free. |
| Maintenance | MIT. v3.5.0 (3 Oct 2026). |
| Works with | Claude Desktop and Claude Code; documented setups for VS Code, Cursor, Codex CLI, and Kiro. |

The v3.5.0 release of jztan’s pdf-mcp server.

pdf-mcp combines keyword and semantic search. Its README says hidden or injected text is flagged as untrusted rather than silently passed to the agent.
Where pdf-mcp (jztan) stands out
The server reads only the pages an agent requests rather than dumping an entire PDF into context, cutting token use for long contracts, filings, and manuals at scale.
It also explicitly flags hidden or injected text as untrusted, a warning most reading tools never surface.
What to consider
This server reads and searches PDFs only; it cannot merge, split, rotate, compress, or otherwise modify a document.
PulseMCP’s directory lists editing capabilities the README doesn’t document, so rely on the README, and budget setup time for external dependencies (Tesseract for OCR, a local embedding model for semantic search).
Best for
Research and review agents working through long contracts, filings, or technical manuals where selective reading reduces cost.
Getting started
See pdf-mcp on GitHub for dependency setup and client configuration.
anymd
anymd (formerly pdf-reader-mcp) is a Rust binary distributed via npm. It converts PDFs and other document formats to Markdown, with 4 tools, no API key, and no network upload for local files.
| Feature | Details |
|---|---|
| Covers | Four tools for mixed-format reading and Markdown output. OCR requires opt-in local models or an installed Tesseract binary. No PDF editing. |
| Where files go | Your machine. No files are uploaded. |
| Setup | stdio Rust binary installed via npm (npx -y @sylphx/anymd). No API key required. |
| Pricing | Free MIT core. An optional $29 one-time Pro add-on enables video timelines and citation checks. |
| Maintenance | MIT core. Release 8.5.3 (11 Oct 2026). |
| Works with | Claude Code, Codex, Cursor, VS Code, Claude Desktop, Windsurf, and Gemini CLI. |

Use SylphxAI’s anymd project and the @sylphx/anymd npm package. The unscoped anymd package belongs to an unrelated macOS-only tool, 1qh/anymd.

The @sylphx/anymd package at v8.5.3, showing 6,144 weekly downloads in mid-October 2026. Those downloads belong to this scoped package, not the unrelated anymd package.
Where anymd stands out
Its zero-dependency, zero-upload design supports mixed-format reading in a local agent, since pointing it at a folder of PDFs, Word docs, and Markdown files lets it read all of them through one server with no account setup and a small runtime footprint.
The @sylphx/anymd package shows 6,144 weekly downloads as of mid-October 2026, suggesting active use, though download counts don’t map directly to unique users and the figure moves week to week.
What to consider
anymd is read-only, converting documents to Markdown without producing modified PDFs, and OCR needs either a local Tesseract install or opting into local model support.
The author’s benchmark against Docling MCP and MarkItDown MCP is self-run and not independently validated, so treat it as a directional vendor claim.
Best for
Coding agents that need to read mixed-format document folders quickly, without network calls or API keys.
Getting started
See anymd on GitHub for installation and format support details.
Stirling PDF MCP Server
The Stirling PDF MCP Server is the MCP interface built into Stirling PDF, a self-hosted PDF toolbox, exposing PDF editing and conversion operations over a Streamable HTTP endpoint behind OAuth2 or per-user API keys, off by default.
| Feature | Details |
|---|---|
| Covers | Page operations (merge, split, rotate, reorder), conversion to and from PDF, compression, flattening and repair, encryption and permissions, upload and download, and AI features. |
| Where files go | Your server for standard PDF operations. AI features use configured model and embedding providers, which may be hosted externally depending on your configuration. |
| Setup | Streamable HTTP at POST /mcp, disabled by default. OAuth2 or per-user API key. Read and write scopes apply only in OAuth mode. Enable the server in Stirling PDF’s config and configure auth before exposing it. |
| Pricing | Stirling PDF has Free, Team, and Enterprise tiers; see the Stirling pricing page. MCP usage and credit consumption are not described on the MCP documentation page; do not treat platform pricing as per-tool call charges without confirming separately. |
| Maintenance | Open-core; MCP implementation is proprietary. Stirling PDF v3.1.0. Verify the applicable User License for your deployment context before production use. |
| Works with | MCP Inspector; Claude Desktop via mcp-remote. |

Stirling PDF offers Free, Team, and Enterprise plans. These are platform tiers, not a confirmed per-tool MCP rate card.

Stirling PDF’s MCP endpoint is disabled by default. Enable /mcp and configure API key or OAuth 2.1 authentication before connecting a client.

Stirling PDF v3.1.0 on GitHub.
Where Stirling PDF MCP Server stands out
The full editing toolbox runs behind your own firewall and stays accessible to agents with scoped permissions, letting teams in regulated industries or with data-residency requirements process PDFs on their own infrastructure.
The read/write scope separation in OAuth mode lets you start an agent with read-only access and expand permissions once you trust its behavior.
What to consider
You’re responsible for running, securing, and maintaining Stirling PDF. Default inline response payloads cap at 10 MB (less after base64 encoding), with large outputs using a fileId reference instead.
For AI features, confirm your model and embedding providers match your data-handling requirements, since the default example config uses hosted providers, and check the User License before production use.
Best for
Teams seeking self-hosted PDF editing exposed to agents, with control over data routing and scoped permissions.
Getting started
See the Stirling PDF MCP Server docs and the Stirling PDF GitHub repo for configuration and licensing details.
PDF Toolkit MCP
PDF Toolkit MCP, maintained by AryanBV, is an open-source, fully offline MCP server with 22 tools for reading, editing, and creating PDFs, requiring no account, no API key, and making no network calls.
| Feature | Details |
|---|---|
| Covers | Extract text and metadata, search, compare, and convert to Markdown; merge, split, rotate, reorder, flatten, AES-256 encryption; page numbers and QR codes; create PDFs from text, Markdown, or templates; fill forms; watermark; render pages to images. No compression or built-in OCR. |
| Where files go | Your machine. Fully offline. |
| Setup | stdio via npx. No auth required. |
| Pricing | Free. |
| Maintenance | MIT. v0.3.1 (30 May 2026). |
| Works with | Claude Desktop, Claude Code, Cursor, VS Code, and Windsurf. |

PDF Toolkit MCP v0.3.1 includes 22 tools for local PDF work.
Where PDF Toolkit MCP stands out
The server combines reading, editing, and creating PDFs with no external dependencies. AES-256 encryption, page creation from Markdown, and form-filling without uploading to any service support workflows where the data cannot leave your machine.
The rendering tool sends page images to the client’s vision model for analysis, extending OCR-like capability without bundling an OCR engine.
What to consider
There is no compression tool and no built-in OCR, so extracting text from rendered page images needs a vision-capable client, with accuracy depending on that model.
Built-in fonts cover Latin characters only, so non-Latin create or fill operations need a supplied fontPath pointing to an appropriate font file.
Best for
Local agents that edit documents containing data you cannot upload to a cloud service.
Getting started
See PDF Toolkit MCP on GitHub for the full tool list and font configuration notes.
What PDF MCP servers can and cannot do for an agent
A tool list is only part of the decision. Compare what each server can produce, where it processes files, and how a complete workflow is billed.
Capability coverage across all 10 servers
The table below marks a cell only where the README or vendor docs explicitly list the capability as of 7 October 2026.
| Server | Read and extract | OCR | Convert to or from PDF | Merge or split | Compress | Protect or redact | Runs on |
|---|---|---|---|---|---|---|---|
| Foxit PDF API MCP Server | Yes | Yes | Yes (both ways) | Yes | Yes | Password and redaction | Foxit cloud |
| Nutrient DWS MCP Server | Yes | Yes | Yes (both ways) | Merge | Yes | Password and redaction | Nutrient cloud |
| CloudConvert MCP Server | Via conversion | Yes | Yes (both ways) | Yes | Yes | Encrypt | CloudConvert cloud |
| PDF.co MCP Server | Yes | Yes | Yes (both ways) | Yes | No | Password | PDF.co cloud |
| Docling MCP | Yes | Yes | To Markdown or JSON | No | No | No | Local or Docling Serve |
| LlamaParse MCP | Yes | Yes | Markdown/text parsing; JSON extraction | Logical section splitting | No | No | LlamaIndex cloud |
| pdf-mcp (jztan) | Yes | Yes (Tesseract) | No | No | No | No | Local |
| anymd | Yes | Opt-in (Tesseract or local model) | To Markdown | No | No | No | Local |
| Stirling PDF MCP Server | Yes (OCR via enabled ocr-pdf using OCRmyPDF/Tesseract); AI Q&A needs AI engine | Yes | Yes (both ways) | Yes | Yes | Encrypt and permissions | Your server |
| PDF Toolkit MCP | Yes | Via rendered page images to client vision | To Markdown; from text, Markdown, or templates | Yes | No | AES-256 encrypt | Local |
Reading is well covered by open source, with five servers offering local-only processing at no cost.
Editing (merge, convert, compress, protect) needs a cloud API server, Stirling PDF, or PDF Toolkit MCP, and no single server covers every capability, so the right choice depends on which operations your workflow needs.
Where your document goes when the agent calls a tool
A locally running server doesn’t necessarily keep document content on your machine. pdf-mcp, anymd, and PDF Toolkit MCP process PDFs locally, but content returned to the agent may still reach its model provider, and pdf-mcp can also use remote embeddings.
Docling MCP defaults to a remote Docling Serve instance unless you install the
local extras, and Stirling PDF processes PDFs on your own server but routes AI features through hosted model and embedding providers.
Foxit, Nutrient, CloudConvert, PDF.co, and LlamaParse all process files in the cloud, so check each vendor’s retention policy and the entries above for file-handoff and regional options.
What a tool call costs
Pricing captured from vendor pricing pages, 7 October 2026. Verify current rates before budgeting a workflow.
| Server | Pricing model | Free allowance |
|---|---|---|
| Foxit PDF API MCP Server | 1 credit per successful (2xx) billable PDF processing request; shared credit pool. See pricing. | 500 credits/year |
| Nutrient DWS MCP Server | Credits per operation (e.g., HTML to PDF: 0.5 credits; OCR: 2 credits); separate Processor and Data Extraction billing. See pricing. | 50 Processor credits/month; default watermark removed with paid PAYG |
| CloudConvert MCP Server | Conversion credits per operation; packages or subscriptions. See pricing. | 10 credits/day |
| PDF.co MCP Server | Credits per page and per call. See pricing. | Trial credits on signup |
| LlamaParse MCP | Per-credit usage above free tier; Starter tier includes 40K credits/month. See pricing. | 10K credits/month |
| Stirling PDF MCP Server | Platform-level tiers (Free, Team, Enterprise); 1 cent per credit on paid tiers. See pricing. | 1,000 credits/month on free tier |
| Docling MCP | Free open-source core; you pay for compute and any remote services you configure. | No per-call meter |
| pdf-mcp (jztan) | Free. | No per-call meter |
| anymd | Free MIT core; optional $29 one-time Pro. | No per-call meter |
| PDF Toolkit MCP | Free. | No per-call meter |
Estimate costs for the whole workflow, not a single tool call. An editing workflow can take several calls (upload, operation, a get_task_result poll, download, sometimes a retry), but distinguish tool calls from billable requests, since with Foxit, uploads, polling, downloads, and failed requests don’t consume credits.
A read-only server that retrieves only the relevant pages can also cut model input cost versus loading an entire PDF into context, given Anthropic estimates 1,500 to 3,000 text tokens per page for Claude’s native PDF processing.
Security considerations for agents running PDF tools
Treat external PDFs as untrusted input, since their text can contain instructions designed to manipulate an agent (prompt injection, OWASP LLM01). pdf-mcp flags hidden or injected text, but application-level safeguards are still needed.
MCP servers pose a separate risk too, since Invariant Labs demonstrated tool poisoning in April 2025, where malicious tool descriptions manipulate client behavior, and the MCP specification on tools calls for human oversight with the ability to deny tool invocations.
Require host-side approval for write operations until you trust the agent’s behavior, restrict accessible directories, document IDs, and tool permissions (Stirling PDF separates read and write scopes in OAuth mode), and test with unusual text, embedded objects, and long unstructured content before production.
The unauthenticated HTTP default and the public-link behavior of get_task_result noted in the Foxit entry above are exactly this kind of gap, the sort worth checking for on any server before connecting it to a pipeline that handles confidential documents.
Choosing a PDF MCP server
Match the server to the job, not the other way around. Reading and extraction are covered well by free, local, open-source options, so an agent that only answers questions about a PDF rarely needs a cloud account.
Editing, converting, and assembling documents narrows the field to a cloud API server, Stirling PDF, or a local toolkit like PDF Toolkit MCP; the choice then comes down to where content is allowed to go and whether certificate-based signing or a specific format matters.
Weigh data routing against convenience, since a hosted cloud endpoint needs nothing to install but sends file content off your infrastructure on every call, while a local or self-hosted server keeps data in place but puts you on the hook for running and securing it.
Check pricing against expected call volume too, since several calls per document (upload, operation, poll, download) can burn through a free allowance faster than a single-call estimate suggests.
For an agent that converts, assembles, and secures documents as part of a product workflow, cloud API coverage in one install is the deciding factor, and that’s where the Foxit PDF API MCP Server fits, with eSign and Document Generation available as separate integrations wrapped as custom tools when needed.
Plan for request limits as well as credits, since the sandbox allows 15 requests/minute and production allows 100/minute, including status checks and file requests.
Create a free Foxit developer account and follow the pinned @foxitsoftware/foxit-pdf-api-mcp-server package setup, confirming its authentication path against the current API reference.
PDF MCP server FAQs
Can Claude read PDFs without an MCP server?
Yes. Claude’s API accepts PDFs directly, up to 32 MB per request and 600 pages (100 when the context window is under 1M tokens), so a single-document question-answer task needs no server. Consider a server for larger files, folder search, encrypted documents the model can’t open, or workflows that produce a modified PDF.
Do PDF MCP servers work in ChatGPT and claude.ai?
Compatibility depends on the server, supported transport, and client plan or workspace restrictions; hosted Streamable HTTP with OAuth alone doesn’t guarantee support. CloudConvert’s docs cover ChatGPT and Claude connectors, and LlamaParse documents Claude connectors, but check the client’s requirements and test your setup. Local stdio servers need a locally running process and aren’t directly compatible with hosted chat interfaces.
Is there a free PDF MCP server?
Yes. pdf-mcp, anymd, Docling MCP, and PDF Toolkit MCP are free and open source with no per-call charges. Several cloud services, including Foxit’s, also offer free allowances; see the pricing table for limits and conditions.
Should you call the PDF API directly instead of through MCP?
Direct REST calls are often simpler for fixed pipelines, since they’re predictable, easy to test, and straightforward to monitor. Use MCP when the agent chooses operations, documents, or the next step at runtime based on intermediate results.
For more on these tradeoffs, see Building Auditable, AI-Driven Document Workflows with Foxit APIs.
10 Best eSignature APIs for Developers in 2026

The cheapest eSignature API plan may not include the signing flow you need. This guide compares 10 eSignature APIs on embedded signing, billing triggers, sandbox limits, and compliance. Use it to build a shortlist that fits your workflow and budget.
Getting a contract signed shouldn’t mean emailing PDFs back and forth or asking someone to print, sign, and scan a document.
An eSignature API lets you bring that signing flow into your product, so users can sign without leaving your app.
But embedded signing isn’t included in every plan, and the cheapest starting price may not cover the workflow you need.
For example, DocuSign’s $50/month Starter plan includes hosted envelopes and embedded sending, but embedded signing requires a sales-led Enhanced plan with at least five users.
Billing can also change the cost: some providers charge when you send an envelope, even if no one signs it. And a compliance badge may apply only to a specific plan.
Below, we compare 10 eSignature APIs to help you choose one that fits your workflow and budget. The details come from each vendor’s pricing, API documentation, and security pages.
Prices are US list prices, and compliance badges are vendor claims.
Top picks by use case
The best eSignature APIs for developers in 2026 are Foxit eSign API, Dropbox Sign, BoldSign, SignNow, SignWell, Anvil Etch, DocuSign, Adobe Acrobat Sign, DocuSeal, and Documenso.
Start with the plan that supports your signing flow, then check its cost at your expected volume.
| Use case | Pick | Why it fits |
|---|---|---|
| Signing inside a larger PDF workflow | Foxit eSign API | eSign, PDF Services, and Document Generation on one account. See Foxit API pricing for current allocations. |
| Mature SDKs with self-serve embedding | Dropbox Sign API | Six official SDKs, with embedded signing from the Standard plan ($250/month billed yearly). |
| Low per-envelope rate on a monthly plan | BoldSign API | $30/month with 40 envelopes, then $0.75 per envelope sent. |
| Per-signature API pricing with no monthly tier to pick | SignNow API | Full API access is gated behind the custom-quoted Site License plan, billed at $1.50 per signature invite. |
| Pure usage pricing with no monthly minimum | SignWell API | From $0.85 per API document, falling to $0.20 with volume. |
| Paying only for completed signatures | Anvil Etch | $1.50 per packet, billed only when every party signs, with embedding included on the free plan. |
| Government and FedRAMP requirements | DocuSign eSignature REST API | DocuSign Federal offers FedRAMP Moderate and provisional DoD IL4 authorization, separate from commercial Enhanced. |
| Teams already licensing Adobe | Adobe Acrobat Sign API | Free Developer Edition available. Production access and embedding go through Adobe sales. |
| Low per-document fee with an open-source core | DocuSeal | $0.20 per completed document plus a $20 Pro seat. AGPL-3.0 self-hosting available. |
| Open source with unlimited documents | Documenso | Teams plan at $40/month billed yearly includes embedded signing under a fair-use policy. |
Most of these APIs support several use cases, so compare their features and plan limits against your full workflow.
How we compared these eSignature APIs
Every entry below is scored against the same 8 criteria, in the same order:
API capabilities
Embedded signing
Webhook support
Sandbox access
Pricing
SDK availability
Rate limits
Security and compliance
The 10 eSignature APIs in detail
Start with the signing experience you need, then compare plan requirements and billing rules.
Foxit eSign API
Foxit’s eSign REST API embeds signing workflows directly into web applications, portals, and backend systems, so a product that generates, converts, and sends a document for signature runs under one Foxit developer relationship instead of two.
The API uses standard OAuth 2.0 authentication and returns an embeddedSessionURL that renders inside an <iframe> in your own application.
Foxit’s eSign API covers envelope creation, embedded signing, webhook events, and activity history.
Key features at a glance
| Feature | Details |
|---|---|
| Covers | Envelopes, templates, embedded signing and sending, envelope activity history. PDF Services and Document Generation available on the same account. Cloud only, storage region chosen at activation. |
| Embedded signing | Available on every plan, including the free Developer plan (trial). |
| Webhooks | Webhook channels for envelope status events. Status checks and webhooks consume no credits. |
| Sandbox | eSign trial on the free Developer plan. Envelopes are watermarked in TEST mode. |
| Pricing | eSign is billed per envelope created. eSign, PDF Services, and Document Generation draw from one shared credit pool. See Foxit API pricing and Credits Explained for current plan allocations and billing details. Billed annually and credits do not roll over. |
| SDKs | REST API with an official Postman collection and code samples. Confirm installable SDK availability with Foxit for the current unified API. The separate PDF SDK is not an eSign API SDK. |
| Rate limits | Per application, per minute, rolling 60-second window: 15 RPM in Sandbox mode, 100 RPM in Production. Free Developer plan allows up to 10 applications, paid plans up to 50. |
| Compliance claims | Foxit’s API security page lists ESIGN/UETA, AES/qualified electronic signature (QES), 21 CFR Part 11, and SOC 2 Type II. QES involves identity-validation services and a confirmed plan. |
Where it fits
Keeping eSign, PDF Services, and Document Generation on one account avoids separate keys and billing cycles.
The billing trigger is envelope creation, so cost appears before signing; status checks, webhooks, downloads, and session generation consume no credits.
Annual credits don’t roll over, so size usage before picking a plan.
Foxit uses one credit pool for eSign, PDF Services, and Document Generation.
Creating an eSign envelope uses credits; checking its status, downloading documents, and generating signing sessions do not.
Best for
Products that generate or convert PDFs then send them for signature.
Create a free developer account to activate the eSign trial. Then follow the eSign API reference to send your first envelope.
The eSign API developer portal, source of the Postman collection.
You can start with 500 free credits a year, with no credit card required.
Each application gets 15 requests per minute in the sandbox and 100 in production. The free plan allows up to 10 applications; paid plans allow up to 50.
Dropbox Sign API
Dropbox Sign (formerly HelloSign) ships six official SDKs and a published “endpoints by subscription plan” map showing which calls each plan unlocks, across signature requests, templates, bulk send, and embedded requesting and signing.
Dropbox Sign’s developer docs homepage, with the endpoints-by-plan and rate-limit references.
Key features at a glance
| Feature | Details |
|---|---|
| Covers | Signature requests, templates, bulk send, embedded requesting and signing. Hosted only. |
| Embedded signing | Standard ($250/month billed yearly) and Premium. Not available on Essentials. |
| Webhooks | Event callbacks. |
| Sandbox | Free test mode. Documents are watermarked and not legally binding. 10 requests/minute. |
| Pricing | Essentials $75/month billed yearly (50 signature requests/month), Standard $250/month (100 requests/month), Premium by quote. Billed per signature request. |
| SDKs | Python, Ruby, PHP, Java, Node.js, C#. |
| Rate limits | 100 requests/minute general; 25 requests/minute on heavier endpoints. Confirm current limits against the Dropbox Sign rate limits docs. |
| Compliance claims | SOC 2 Type II, ISO 27001, eIDAS, GDPR. QES available as a Premium add-on. See Dropbox Sign’s Trust Center for the full certification list. |
Where it fits
The endpoints-by-plan map shows restrictions before you build, since embedded signing requires Standard or above (Essentials returns HTTP 402), and full white-label branding needs the sales-led Premium plan.
Best for
Teams that want official SDKs and a self-serve Standard plan for in-app embedded signing. Start with the API docs and a free sandbox account.
Dropbox Sign allows 100 requests per minute for general calls and 25 for heavier endpoints.
BoldSign API
BoldSign’s API runs on a monthly plan with a low per-envelope rate and a free sandbox with full API access, covering signing, requesting, templates, and embedded flows on the Enterprise API plan, with US, EU, Canada, and Australia base URLs.
BoldSign’s Developer Hub, the starting point for the sandbox and docs.
Key features at a glance
| Feature | Details |
|---|---|
| Covers | Signing, requesting, templates, embedded signing and sending on the Enterprise API plan. Web plans are sandbox-only for API envelopes. Hosted, with US, EU, Canada, and Australia endpoints. |
| Embedded signing | Enterprise API plan only. |
| Webhooks | Enterprise API plan only. |
| Sandbox | Free, with full API access. Test documents are watermarked and deleted after 14 days. 50 requests/hour. |
| Pricing | $30/month including 40 envelopes, then $0.75 per envelope sent. Two users included. See BoldSign API pricing for current rates. |
| SDKs | .NET, Node.js, Java, Python, PHP. |
| Rate limits | 2,000 requests/hour in production. |
| Compliance claims | SOC 2 Type 2, HIPAA, GDPR, PCI DSS via Stripe’s processing, eIDAS. QES offered. See BoldSign’s data storage and security page for details. |
Where it fits
BoldSign’s cost is easy to estimate, since $30 includes 40 envelopes, then $0.75 each, so 100 envelopes a month costs $30 + (60 × $0.75) = $75. Embedded signing and webhooks are both self-serve. Envelopes bill on send, so a declined one still counts.
Best for
SaaS products embedding signing at modest volume that want a low per-envelope rate with no sales conversation. Start with the developer docs and the pricing page.
BoldSign’s $30 monthly plan includes 40 envelopes, with additional envelopes billed at $0.75 each.
BoldSign allows 50 requests per hour in the sandbox and 2,000 per hour in production.
SignNow API
SignNow’s per-user plans (Business, Business Premium, Enterprise) cover sending, branding, and workflow features, but full API access and embedded signing sit behind a separate, custom-quoted Site License plan rather than any of those self-serve tiers.
You can embed both signing and sending with SignNow’s API.
Key features at a glance
| Feature | Details |
|---|---|
| Covers | Embedded signing and sending, document generation from .docx templates, and webhooks, documented across the full REST API. Hosted. |
| Embedded signing | Full API access, including embedded signing, requires the Site License plan. Business, Business Premium, and Enterprise plans do not include it. |
| Webhooks | Documented event callbacks for signing status. |
| Sandbox | Free developer account with a Development mode application, up to 500 signature invites without an active trial or subscription. |
| Pricing | Business $8/month, Business Premium $15/month, Enterprise $30/month, billed annually per user with 100 invites/year included. Full API access needs the Site License plan, billed per signature invite from $1.50, custom-quoted through sales. See SignNow pricing for current rates. |
| SDKs | Node.js, C#, Java, Python, PHP. |
| Rate limits | Per application: 500 requests/hour in Development, 1,000 requests/hour by default in Live. |
| Compliance claims | SOC 2 Type II, ISO 27001, PCI DSS, CCPA, HIPAA via BAA, 21 CFR Part 11. AES and QES on Enterprise. See SignNow’s eSignature compliance page for details. |
Where it fits
SignNow’s branding and workflow features scale through ordinary per-user plans, but production API access, including embedded signing, is a sales-led Site License conversation.
Best for
Teams already planning to negotiate a volume-based API contract who want per-signature pricing rather than a flat monthly tier.
Review the API docs and pricing page to confirm current terms.
The per-user plans don’t include full API access. For that, you’ll need a separately quoted Site License.
SignWell API
SignWell takes a pure usage-pricing approach, charging per API document with no seats and no monthly minimum.
The rate drops with volume, so cost tracks actual usage rather than a fixed tier.
SignWell’s getting-started guide walks you through the API token setup and a first request.
Key features at a glance
| Feature | Details |
|---|---|
| Covers | Signing, requesting, and template editing through the API, with white-label embedding. Hosted. |
| Embedded signing | Available on the API usage plan, including embedded signing, requesting, and template editing. |
| Webhooks | Yes, with hash verification. |
| Sandbox | Unlimited test usage on free developer account. Production documents: 3/month free, 25/month once a card is added. Confirm eligibility before relying on the free allowance. |
| Pricing | From $0.85 per API document, falling to $0.20 and lower with volume. No seats or monthly minimum. See SignWell API pricing for current per-document rates and the volume calculator. |
| SDKs | Ruby, Node.js, Python, PHP, plus CLI and MCP server support. |
| Rate limits | Per token: 100 requests/minute general, 30 requests/minute for creation endpoints, 20 requests/minute for test endpoints. |
| Compliance claims | ESIGN, UETA, eIDAS, SOC 2 Type II, HIPAA with BAA. See SignWell’s security page for details. |
Where it fits
Per-document pricing means a product sending 10 documents one month and 200 the next pays only for actual usage.
The free allowance is inconsistent (25/month advertised, 3/month card-free), so confirm which applies.
Best for
Low or spiky document volumes with no minimum commitment. Review the developer docs and the pricing page.
SignWell advertises 25 free API documents a month once you add a card.
Anvil Etch E-Sign API
Anvil Etch charges $1.50 per packet only when every party has signed, so a stalled packet costs nothing.
With embedded signing on the free plan too, Anvil is the only API here where you pay only for flows that finish.
Anvil’s Etch E-Sign API documentation page.
Key features at a glance
| Feature | Details |
|---|---|
| Covers | E-signatures, PDF filling, document generation, and Workflows on the same platform. Hosted. |
| Embedded signing | Every plan, including Free. White-labeled signing pages from Product Pack ($425/month, or $340/month billed annually). |
| Webhooks | Yes, with optional payload encryption. |
| Sandbox | Unlimited free test mode with watermarked documents. |
| Pricing | $1.50 per packet, billed only when every party signs, with 25 starter packets once a card is added. See Anvil pricing for current rates and subscription options. |
| SDKs | Node.js, Python, .NET. Go is community-supported. REST plus GraphQL. |
| Rate limits | Production: 4 requests/second on Free or pay-as-you-go, 40 requests/second on subscriptions. Development: 4 requests/second on all plans. |
| Compliance claims | SOC 2 Type II, eIDAS, GDPR, UETA, ESIGN. HIPAA with a BAA on Enterprise. See Anvil Etch’s security and compliance page for details. |
Where it fits
At a 30% abandonment rate, send-based billing charges every envelope while Anvil charges only the 70% that complete.
Its 4-requests/second free-tier production cap is the tightest here; a subscription lifts it to 40/second but adds a monthly fee.
Best for
Products with high signing-flow abandonment, where paying only on completion changes the cost model. Review the API docs and the pricing page.
White-labeled signing starts with Anvil’s Product Pack at $425 per month on monthly billing.
DocuSign eSignature REST API
DocuSign is the largest eSignature platform by market presence and the one most likely to appear in enterprise procurement.
Its REST API covers hosted envelopes, templates, PowerForms, and bulk send; DocuSign Federal separately offers FedRAMP Moderate and provisional DoD IL4 authorization.

DocuSign lists Starter at $50/month, Intermediate at $300/month, and Advanced at $480/month.
Key features at a glance
| Feature | Details |
|---|---|
| Covers | Hosted envelopes and templates. PowerForms and API bulk send from Advanced. Government-cloud deployment is a separate sales discussion. |
| Embedded signing | Enhanced plans only (sales-led, five-user minimum). Embedded sending is available on every plan. |
| Webhooks | Account-, envelope-, and recipient-level Connect. Recipient-level access from Advanced. Retries extend across a 15-day span. |
| Sandbox | Free developer account with no expiry. Envelopes are not legally valid. Production requires a Go-Live review. |
| Pricing | Starter $50/month billed annually (from 40 envelopes/month), Intermediate $300/month, Advanced $480/month, Enhanced by quote. Billed per envelope sent. See DocuSign developer plans and pricing for current rates. |
| SDKs | C#, Java, Node.js, PHP, Python, Ruby, iOS, Android. |
| Rate limits | Account burst cap: 500 calls per 30 seconds, applied to both the developer/demo and production environments, within a 3,000-calls-per-hour baseline. One GET status check per envelope per 15 minutes. |
| Compliance claims | ISO 27001/27017/27018, PCI DSS, SOC 1/2 Type II. Enhanced lists AES/QES and sales-led HIPAA BAA/Part 11 options. Federal-cloud authorizations (FedRAMP Moderate, DoD IL4) are separate from commercial plans. See DocuSign’s compliance certifications page for the full list. |
Where it fits
The developer sandbox never expires, and its 8 official SDKs cover more platforms than any API here.
Embedded signing needs the Enhanced plan (five-user minimum); BoldSign, Dropbox Sign, Anvil, and Foxit offer it self-serve instead. GET endpoints allow only one status check per envelope every 15 minutes, making webhooks mandatory in practice.
Best for
Government buyers with procurement requirements that specify FedRAMP or DoD IL4 authorization.
Start with the plans and pricing page; the rate-limit figures above come from DocuSign’s own developer blog, linked in the key features table.

DocuSign’s default limit is 3,000 calls per hour, with a 500-call cap per 30 seconds. Status polling for the same envelope is limited to once every 15 minutes.
Adobe Acrobat Sign API
Adobe Acrobat Sign’s REST API v6 covers agreements, library templates, bulk sending via MegaSign, and webhooks, though production access and embedded signing go through Adobe sales rather than a self-serve tier.

Adobe’s REST API v6 lets you create agreements, retrieve signed documents, and set up webhooks.
Key features at a glance
| Feature | Details |
|---|---|
| Covers | Agreements, library templates, bulk sending (MegaSign), and webhooks through REST API v6. Hosted. |
| Embedded signing | Documented in the developer guide. Production embedding requires an Acrobat Sign Solutions or Embed (OEM) partner program agreement. |
| Webhooks | Yes, through the webhook APIs. |
| Sandbox | Free Developer Edition. Test documents carry a “test” label. |
| Pricing | Sales-led. Sent agreements consume transactions. Confirm allowances and terms in your contract. See Acrobat Sign Solutions for current options. |
| SDKs | Adobe labels its older SDKs obsolete. Use REST v6 and the current Postman samples. |
| Rate limits | Plan-dependent. GET polling capped at 3 requests/minute for Global, Enterprise, and Developer tiers, or 3 per 3 minutes for other tiers. Polling limits don’t establish total throughput. |
| Compliance claims | Adobe’s compliance list, filtered to Acrobat Sign Solutions for enterprise, lists SOC 2 Type 2, SOC 3, ISO 27001, ISO 27017, ISO 27018, HIPAA ready, FDA 21 CFR Part 11 ready, and PCI DSS 4.0. Deployment and contract scope vary by product tier. |
Where it fits
The API automates signing from CRMs for organizations already running Acrobat Sign, and MegaSign handles bulk sending to thousands of recipients.
Production access and embedded signing both require a sales-led Solutions license, and its 3-requests/minute GET polling limit is the tightest here.
Best for
Organizations that already license Acrobat Sign and want to automate existing workflows. Start with the developer guide and the free Developer Edition.

You can try Acrobat Sign’s API with a free Developer Edition before committing to a paid plan.

To embed Acrobat Sign in a production app, you’ll need to arrange access through Adobe sales.
DocuSeal
DocuSeal is open source under AGPL-3.0, with a Pro tier adding embedding, white labeling, and a per-document fee.
The core API and webhooks are open-source, but embedded signing and the React, Vue, Angular, and JavaScript embed components require Pro, even when self-hosted.

DocuSeal uses submission endpoints to send documents and retrieve signed PDFs.
Key features at a glance
| Feature | Details |
|---|---|
| Covers | Signing and form building. AGPL-3.0 core with mandatory UI attribution terms. Embedded signing on Pro. Hosted and self-hosted options. |
| Embedded signing | Pro tier, with React, Vue, Angular, and JavaScript components. |
| Webhooks | Form, submission, and template events (available under the OSS license). |
| Sandbox | Free, unlimited API and embedding sandbox. |
| Pricing | Pro: $20/user/month plus $0.20 per completed document. Same fee structure applies on Pro self-hosted. See DocuSeal pricing for current rates. Volume discounts are available. |
| SDKs | Front-end embed components (React, Vue, Angular, JavaScript). Confirm server SDK availability before planning your integration. |
| Rate limits | Not published as of 7 Oct 2026. |
| Compliance claims | Cloud: SOC 2 Type II and ISO 27001. HIPAA requires a BAA and activation in the HIPAA-compliant cloud tier. See DocuSeal’s security page for details. |
Where it fits
The $0.20 per-document fee, combined with the $20 Pro seat, is the lowest-cost model here for moderate user counts and high volume.
AGPL-3.0 requires releasing modifications under the same license if you distribute one, so proprietary products should review terms with legal (a commercial license is available).
Best for
Teams that want a low per-document fee now, with the option to self-host later. Review the API docs and pricing.

DocuSeal Pro combines a $20 monthly seat fee with a $0.20 charge per completed document.
Documenso
Documenso is open source under AGPL-3.0, with a REST API, an official TypeScript/Node.js SDK, and a self-hosted option.
Embedded signing is a Teams-plan feature; removing Documenso’s own branding needs the higher Platform tier.

Documenso’s v2 REST API is moving from separate documents and templates to a unified envelopes model.
Key features at a glance
| Feature | Details |
|---|---|
| Covers | Documents, templates, recipients, fields, and webhooks through the v2 REST API (being consolidated into a unified “envelopes” model). Hosted and self-hosted options. |
| Embedded signing | Teams plan and above, through the EmbedDirectTemplate component or signing tokens for documents created via the API. White-label embedding (no Documenso branding) requires the Platform plan. |
| Webhooks | Document, recipient, and template lifecycle events, with signature verification. |
| Sandbox | Separate staging environment that mirrors production; requires its own account and a test card to try paid-plan features. |
| Pricing | Teams: $40/month billed yearly (5 users included, additional users $8/month), with API access and embedded signing. Platform: $250/month billed yearly, with unlimited API access and white-label embedding. See Documenso pricing for current rates and the Fair Use Policy. |
| SDKs | Official TypeScript/Node.js SDK (@documenso/sdk-typescript) plus a React embed package. The REST API itself is language-agnostic. |
| Rate limits | 1,000 requests/minute per IP across /api/v1, /api/v2, and /api/v2-beta; organization-level limits can apply below that. Responses include X-RateLimit-* headers and a Retry-After value on 429s. |
| Compliance claims | SOC 2: compliant. 21 CFR Part 11 and HIPAA: compliant, but gated behind the Enterprise license. ISO 27001: planned, not yet certified. See Documenso’s compliance documentation for details. |
Where it fits
The AGPL-3.0 core keeps a self-hosted path open if you outgrow the hosted tiers; a commercial license removes the modification-disclosure terms.
Compliance is split by plan, since SOC 2 applies broadly, but 21 CFR Part 11 and HIPAA require the Enterprise license, not the self-serve Teams or Platform tiers.
Best for
Teams that want an open-source, self-hostable alternative to a closed-source API, and can self-serve on Teams or Platform rather than needing Enterprise-tier compliance from day one. Review the developer docs and pricing.

The official TypeScript/Node.js SDK’s GitHub repository (MIT-licensed, separate from the AGPL-3.0 server).

Documenso’s Teams plan includes embedded signing at $40/month; white-label embedding requires Platform at $250/month. Both prices are billed yearly.
Check which plan includes embedded signing
Every API here can technically embed a signing experience; the plan decides whether you can ship it to real users.
DocuSign gates it behind Enhanced (sales-led, 5-user minimum), Dropbox Sign requires Standard at $250/month, DocuSeal requires a Pro seat at $20/user/month, Documenso requires Teams at $40/month, and SignNow requires the quoted Site License.
Foxit eSign API includes it on every plan, including the free Developer plan. White-label branding often sits behind a still-higher plan, such as Dropbox Sign’s Premium, Anvil’s $425/month Product Pack, or Documenso’s $250/month Platform tier.
How billing triggers change your cost model
Vendors here bill at 4 points in the envelope lifecycle.
Foxit charges per envelope created, so cost accrues whether the signer completes, declines, or never opens it.
DocuSign, Adobe Acrobat Sign, BoldSign, and SignWell charge when it’s sent; SignNow’s Site License bills per signature invite similarly.
Dropbox Sign charges per signature request, close to send-based; Anvil and DocuSeal charge only when signing is completed; Documenso’s flat subscription doesn’t move with volume.
A 30% abandonment rate under send-based billing means paying for envelopes that generate no signed document. See Credits Explained, BoldSign’s API page, and Anvil pricing for the respective billing models.
Sandbox caps and rate limits you will hit first
Sandboxes aren’t identical here. BoldSign deletes sandbox documents after 14 days, so re-create test envelopes each run; DocuSign’s developer account never expires; Documenso tests through a separate staging environment.
| Vendor | Published limit |
|---|---|
| Dropbox Sign | 10 requests/minute in test mode |
| SignNow | 500 requests/hour per application in Development, 1,000 requests/hour by default in Live |
| SignWell | 100 requests/minute for general requests, 30/minute for document or template creation, and 20/minute in test mode |
| Adobe Acrobat Sign | 3 identical GET requests/minute on Global, Enterprise, and Developer tiers; 3 per 3 minutes on other tiers |
| DocuSign | Do not poll the same envelope or API object more than once every 15 minutes |
| Documenso | 1,000 requests/minute per IP, plus organization-level windows |
Dropbox Sign’s cap will slow fast-firing test suites. DocuSign’s rule matters most, since checking status after each signer action would violate it, so use webhooks wherever supported.
Confirm any unpublished limit before sizing your integration.
Match the API to your compliance requirements
A compliance badge doesn’t tell you whether an API’s default signing flow meets your requirements.
Work with legal to identify the signature level needed, including whether QES applies, and how the API captures consent and preserves the signing record.
For Foxit eSign API, the security and compliance documentation covers signature standards, consent capture, and audit trails. QES requires identity-validation services, so confirm the applicable plan with Foxit.
Best eSignature APIs FAQs
How do I choose the best eSignature API for my app?
Start with the constraint that will block you in production, not the feature list. Check which plan includes embedded signing, what triggers billing, and whether compliance claims cover your plan tier. Then compare sandbox access, SDKs, and rate limits against your expected volume.
Which eSignature APIs include embedded signing on a free plan?
Foxit eSign API includes embedded signing on every plan, including the free Developer plan, so you can build and test in-app signing before you pay. Anvil Etch also includes embedding on its free plan. Most other vendors gate embedded signing behind a paid or sales-led plan, so check plan details before you build.
Do eSignature APIs charge for envelopes that never get signed?
It depends on the billing trigger. Some vendors bill when you create or send an envelope, so declined or abandoned envelopes still count. Others bill only when every party signs, so estimate your costs at your expected completion rate.
Does a SOC 2 or HIPAA badge mean every plan is compliant?
Not always. Several vendors limit HIPAA, 21 CFR Part 11, or QES to specific plans or enterprise licenses. Confirm which plan meets your requirement, and work with legal to check how the API captures consent and preserves the signing record.
Choosing the right eSignature API
Start from the constraint that will actually block you in production, not the feature list.
A free or low-cost embedded-signing requirement rules out DocuSign and SignNow, narrowing the field to Foxit, BoldSign, Dropbox Sign, Anvil, and the two open-source options.
High abandonment rates favor Anvil’s completion-based billing or DocuSeal’s per-document model, since neither charges for a signature that never happens.
A regulated workflow needing 21 CFR Part 11 or HIPAA should check whether that’s included at its plan tier or gated behind an enterprise license, since several vendors here split that exact line.
For a product that already generates or converts PDFs and needs to send the result for signature, Foxit eSign API keeps eSign, PDF Services, and Document Generation on one developer account and one billing relationship, with embedded signing available from the free Developer plan. Create a free developer account to try it, or start with whichever API above matches your billing model, compliance requirements, and embedding needs.
How to Build Contract Lifecycle Workflows with an API

Most teams automate signatures and stop there, leaving drafting, approvals, and data entry manual. This guide shows you how to automate contract workflows with an API, chaining Foxit DocGen, eSign, and PDF Services through eSign webhooks. You get working Python code that takes every contract from template to structured data without a single manual hand-off.
Poor contract management costs the average organization an estimated 9.2% of annual revenue, according to World Commerce & Contracting research into common contracting pitfalls like slow negotiation cycles and missed post-award milestones. A lot of that leakage traces back to a specific integration gap.
Most engineering teams wire up an eSign API, get signature collection working, and call the contract lifecycle solved. Drafting still happens in a shared drive. Approval routing still happens over email. Nobody’s watching for the moment a contract actually gets executed, so the data inside it (dates, values, terms) sits locked in a PDF until someone opens it by hand.
This guide chains three Foxit APIs into one automated pipeline that closes that gap, using DocGen for template-based drafting, eSign for signature routing, and PDF Services for post-execution data extraction, connected end to end by eSign’s own webhook events rather than a separate orchestration product. By the end, you’ll have a contract that goes from template to structured, extracted data with no manual hand-off at any stage.
Prerequisites
Before running any of the code below, set up a local Python environment:
- Python 3.8+
- pip, Python’s package manager
- venv for an isolated project environment
- A code editor such as VS Code with its Python extension
- A free Foxit developer account, no credit card required
mkdir contract-lifecycle-demo && cd contract-lifecycle-demo
python3 -m venv .venv
source .venv/bin/activate
pip install requests flask Each of the three Foxit APIs in this guide authenticates with its own credential pair. DocGen and PDF Services both live behind the same fusion gateway and use a client_id/client_secret header pair, while eSign issues a separate client_id/client_secret pair that it exchanges for a bearer token. Generate all three pairs from the Foxit developer dashboard after signing up, and store them as environment variables (FOXIT_CLIENT_ID/FOXIT_CLIENT_SECRET for DocGen, FOXIT_ESIGN_CLIENT_ID/FOXIT_ESIGN_CLIENT_SECRET for eSign, FOXIT_PDF_CLIENT_ID/FOXIT_PDF_CLIENT_SECRET for PDF Services) rather than hardcoding them.
The contract lifecycle as an API call graph
Before writing code, it helps to map each stage of a contract’s life to the specific API that owns it:
- Drafting: the DocGen API merges structured data into a Word template and returns a populated document.
- Approval routing and signing: the eSign API creates a signing envelope, defines who signs in what order, and renders the signing UI (embedded in your app or via a redirect).
- Completion handoff: eSign fires a webhook event the moment every signature lands, which is the trigger for everything downstream.
- Post-execution extraction: the PDF Services API pulls structured data (party names, dates, values) back out of the now-signed contract.
Four API calls own the whole lifecycle. No fifth orchestration layer is required. eSign’s own party sequencing handles approval routing, and its own webhook subscriptions handle the handoff to downstream systems, which is the pattern this guide builds.
Generating the contract from a template
The DocGen API works from a Word .docx template with merge fields written as {{ field_name }}. This guide uses a Master Services Agreement template with fields for both parties’ names, addresses, signatories, the effective date, term, contract value, payment schedule, and governing law.
Before merging data into a template, call the Analyze Document endpoint to get back the exact list of tags the template actually contains. This step is not optional. Getting the field names wrong in your merge payload silently drops that field rather than throwing an error, so confirming the real tag list first is what catches a typo before it ships into a signed contract. GenerateDocumentBase64 also rejects .docx payloads larger than 4 MB once they’re base64-encoded, so a template that grows past that (usually from embedded images or fonts) needs slimming down before it reaches the API, either by compressing images in Word’s Picture Format tools, dropping embedded fonts and OLE objects, or splitting an oversized template into smaller pieces.
import os
import base64
import requests
BASE_URL = "https://na1.fusion.foxit.com"
HEADERS = {
"client_id": os.environ["FOXIT_CLIENT_ID"],
"client_secret": os.environ["FOXIT_CLIENT_SECRET"],
}
with open("contract_standard_signable.docx", "rb") as f:
template_b64 = base64.b64encode(f.read()).decode()
analyze_response = requests.post(
f"{BASE_URL}/document-generation/api/AnalyzeDocumentBase64",
headers={**HEADERS, "Content-Type": "application/json"},
json={"base64FileString": template_b64, "fileName": "contract_standard_signable.docx"},
)
analyze_response.raise_for_status()
tags = analyze_response.json()["singleTagsString"].split(",")
print(tags) Run against the sample template, this returns singleTagsString, a comma-separated list of every merge field the template contains. This is the exact key set your merge payload needs to match. Run this command from your terminal:
python3 analyze_tags.py The expected output should look like the following:
['effective_date', 'party_a_name', 'party_a_address_line1', 'party_a_address_city', 'party_a_address_state', 'party_a_signatory_name', 'party_a_signatory_title', 'party_b_name', 'party_b_address_line1', 'party_b_address_city', 'party_b_address_state', 'party_b_signatory_name', 'party_b_signatory_title', 'term_months', 'contract_value', 'payment_schedule', 'governing_law'] The endpoint’s own reference confirms the same request and response shape:
With the confirmed tag list in hand, call the generation endpoint with a documentValues object keyed to those tags:
document_values = {
"effective_date": "October 1, 2026",
"party_a_name": "Northwind Robotics, Inc.",
"party_a_address_line1": "200 Innovation Way",
"party_a_address_city": "Austin",
"party_a_address_state": "TX",
"party_a_signatory_name": "Jordan Lee",
"party_a_signatory_title": "VP of Operations",
"party_b_name": "Blue Harbor Analytics LLC",
"party_b_address_line1": "55 Market Street",
"party_b_address_city": "San Francisco",
"party_b_address_state": "CA",
"party_b_signatory_name": "Morgan Diaz",
"party_b_signatory_title": "Managing Director",
"term_months": 12,
"contract_value": 48000,
"payment_schedule": "Net 30, monthly",
"governing_law": "State of Delaware",
}
generate_response = requests.post(
f"{BASE_URL}/document-generation/api/GenerateDocumentBase64",
headers={**HEADERS, "Content-Type": "application/json"},
json={
"base64FileString": template_b64,
"fileName": "contract_standard_signable.docx",
"documentValues": document_values,
"outputFormat": "pdf",
},
)
generate_response.raise_for_status()
result = generate_response.json()
with open("generated_contract.pdf", "wb") as f:
f.write(base64.b64decode(result["base64FileString"])) This code sends the same base64-encoded template alongside the merge data and an outputFormat of pdf, and gets back a response containing the generated file as another base64 string, decoded and written to disk in the final step. The contract_value field, formatted in the template as {{ contract_value \# "$#,##0.00" }}, renders as $48,000.00 in the output without any currency formatting logic in the Python code; the formatting instruction lives entirely in the Word template.
Run against the sample data above, that call produces a fully merged contract, ready for the signature block eSign picks up next:
Routing for approval and signature
The generated PDF above already contains eSign Text Tags in its signature block, ${signfield:1:y:__________} for the first signer and ${signfield:2:y:__________} for the second, embedded directly in the Word template alongside matching ${datefield:...} tags. Text Tags and DocGen merge fields don’t conflict; DocGen only touches {{ }}-style tags, so the eSign tags pass through untouched and get parsed by eSign once the document reaches it.
Creating the envelope and defining who signs, and in what order, is one call:
esign_response = requests.post(
"https://na1.foxitesign.foxit.com/api/oauth2/access_token",
data={
"client_id": os.environ["FOXIT_ESIGN_CLIENT_ID"],
"client_secret": os.environ["FOXIT_ESIGN_CLIENT_SECRET"],
"grant_type": "client_credentials",
"scope": "read-write",
},
)
esign_response.raise_for_status()
esign_token = esign_response.json()["access_token"]
with open("generated_contract.pdf", "rb") as f:
contract_b64 = base64.b64encode(f.read()).decode()
folder_response = requests.post(
"https://na1.foxitesign.foxit.com/api/folders/createfolder",
headers={"Authorization": f"Bearer {esign_token}"},
json={
"folderName": "MSA - Northwind Robotics / Blue Harbor Analytics",
"sendNow": False,
"processTextTags": True,
"inputType": "base64",
"base64FileString": [contract_b64],
"fileNames": ["msa.pdf"],
"createEmbeddedSigningSession": True,
"embeddedSignersEmailIds": ["[email protected]", "[email protected]"],
"parties": [
{"firstName": "Jordan", "lastName": "Lee", "emailId": "[email protected]",
"permission": "FILL_FIELDS_AND_SIGN", "sequence": 1},
{"firstName": "Morgan", "lastName": "Diaz", "emailId": "[email protected]",
"permission": "FILL_FIELDS_AND_SIGN", "sequence": 2},
],
},
)
folder_response.raise_for_status()
folder = folder_response.json()
folder_id = folder["folder"]["folderId"]
sessions = folder["embeddedSigningSessions"] eSign authenticates separately from DocGen and PDF Services, with its own credential pair and its own OAuth2 token exchange (form-encoded, not JSON). The parties array is where approval routing actually lives. Each party’s sequence number controls signing order, here Jordan signs first and Morgan second, and the exact rules for how sequence numbers interact (whether two parties can share a sequence for parallel signing, for instance) are documented on the Parties reference rather than repeated here, since that’s the definitive source and it’s worth reading directly before you rely on the exact semantics. processTextTags: true tells eSign to parse the ${signfield:...} tags already embedded in the PDF into real, positioned signature fields, which is what makes the fields the reader sees next actually show up.
createEmbeddedSigningSession: true returns a ready-to-render embeddedSessionURL for each signer in the response, meaning the signing UI loads inside your own app in an iframe rather than sending the signer an email that takes them to a hosted Foxit page. This is the embedded option; the alternative is redirect-based delivery, where sendNow: true and no embedded session flag sends signers a standard email invitation instead. Embedded signing keeps the whole flow inside your product; redirect delivery is simpler to wire up but hands the signer off to a separate page.
Once every party has signed, the folder moves through SHARED, then PARTIALLY SIGNED as each signer completes their fields, then COMPLETED, and finally EXECUTED. That transition to EXECUTED is the event this guide’s next section listens for.
Confirming lands the signer on eSign’s own result page, shown below.
Once the folder reaches EXECUTED, retrieve the signed PDF with a single download call:
download_response = requests.get(
"https://na1.foxitesign.foxit.com/api/folders/download",
headers={"Authorization": f"Bearer {esign_token}"},
params={"folderId": folder_id},
)
download_response.raise_for_status()
with open("signed_contract.pdf", "wb") as f:
f.write(download_response.content) The response comes back as application/octet-stream rather than application/pdf, so write the raw bytes to disk without trying to sniff or validate the content type. The downloaded file contains every filled field value plus each signer’s certificate, which is the file the extraction step below reads from.
Extracting structured data from the signed contract
Once eSign’s completion webhook fires (covered in the next section), the signed PDF is ready for extraction. This reuses the same asynchronous pattern the PDF Services API uses everywhere, uploading the file, starting a task, polling it, then downloading the result.
pdf_headers = {
"client_id": os.environ["FOXIT_PDF_CLIENT_ID"],
"client_secret": os.environ["FOXIT_PDF_CLIENT_SECRET"],
}
with open("signed_contract.pdf", "rb") as f:
upload_response = requests.post(
f"{BASE_URL}/pdf-services/api/documents/upload",
headers=pdf_headers,
files={"file": ("signed_contract.pdf", f, "application/pdf")},
)
document_id = upload_response.json()["documentId"]
extract_response = requests.post(
f"{BASE_URL}/pdf-services/api/documents/pdf-structural-extract",
headers={**pdf_headers, "Content-Type": "application/json"},
json={"documentId": document_id},
)
task_id = extract_response.json()["taskId"] This code uploads the signed PDF to the PDF Services API and gets back a documentId, then calls the pdf-structural-extract endpoint with that id to kick off an asynchronous extraction task and get back a taskId to track its progress.
From here, poll the task status endpoint until its status field reads COMPLETED, then download the resulting ZIP and pull out StructureInfo.json:
import time
import io
import json
import zipfile
while True:
status_response = requests.get(
f"{BASE_URL}/pdf-services/api/tasks/{task_id}", headers=pdf_headers
)
status_response.raise_for_status()
status = status_response.json()
if status["status"] == "COMPLETED":
result_document_id = status["resultDocumentId"]
break
if status["status"] == "FAILED":
raise RuntimeError(f"Extraction task failed: {status}")
time.sleep(3)
zip_response = requests.get(
f"{BASE_URL}/pdf-services/api/documents/{result_document_id}/download",
headers=pdf_headers,
)
zip_response.raise_for_status()
with zipfile.ZipFile(io.BytesIO(zip_response.content)) as archive:
structure_info = json.loads(archive.read("StructureInfo.json"))
for element in structure_info["analyzeResult"]["elements"]:
if element["type"] in ("title", "head", "paragraph"):
text = " ".join(element["content"]["text"].split())
print(element["type"], text) The loop polls every three seconds until status reads COMPLETED, at which point resultDocumentId names the file to download as a ZIP archive. Inside that archive, StructureInfo.json holds the contract’s text broken into typed elements (titles, heads, paragraphs, and tables) under analyzeResult.elements, each carrying its content, position on the page, and a region.boundingBox polygon; the final loop walks the title, head, and paragraph elements and prints their normalized text, which is the starting point for mapping the output into a party_a/effective_date/contract_value schema. Table elements carry a different shape (a content.body grid keyed by row and column index rather than the region/content.text fields shown above), and mapping that full structure into a business schema is a big enough topic that it deserves its own treatment, which a companion article to this one covers. The full endpoint spec, including the task status values and the exact response shape, is documented in the Foxit API reference.
Run this command from your terminal:
python3 extract_structure.py The expected output should look like the following, run against this guide’s own signed contract:
title MASTER SERVICES AGREEMENT
paragraph This Master Services Agreement (the Agreement) is entered into as of October 1, 2026 by and between the parties listed below.
head Parties
paragraph Party A: Northwind Robotics, Inc.
paragraph Address: 200 Innovation Way, Austin, TX
paragraph Signatory: Jordan Lee, VP of Operations
paragraph Party B: Blue Harbor Analytics LLC
paragraph Address: 55 Market Street, San Francisco, CA
paragraph Signatory: Morgan Diaz, Managing Director
head Term and Payment
paragraph Effective Date: October 1, 2026
paragraph Term: 12 months (fixed term, no automatic renewal)
paragraph Contract Value: $48,000.00
paragraph Payment Schedule: Net 30, monthly
paragraph Governing Law: State of Delaware
head Termination
paragraph This Agreement expires at the end of the term stated above. The parties may extend the term only by signing a new written agreement.
head Signatures
paragraph Party A: ${signfield:1:y:__________} Date: 09/24/2026 ${datefield:1:y::__________} Signer ID: RQFWP6D419...
paragraph Party B
paragraph Signer ID: H9T1D10019...
paragraph ______} Date: 09/24/2026 ${datefield:2:y::__________} The signature block splits across several ragged elements rather than one clean paragraph, since the extractor treats the signed field’s rendered signature image and the surrounding text tags as separate content runs. That’s real extractor behavior worth planning for if you’re parsing this section specifically.
Connecting the chain to downstream systems with webhooks
None of this becomes an automated pipeline until something reacts the moment a contract gets executed. That’s the job of eSign’s own webhook subscriptions.
Registering a webhook is a portal step, not an API call. Log in to the eSign account as its owner and open API Settings, where a “Configure Webhooks” section takes a webhook URL, a webhook secret, and a set of event checkboxes to subscribe to (folder_completed is the one that matters here). This settings page is owner-only; a standard team-member login won’t see it.
Once registered, Foxit delivers each event as a POST to your URL with a signature query parameter, a base64-encoded HMAC-SHA-256 digest of the raw request body computed with your webhook secret. Verifying that signature before trusting the payload is the whole point of having a secret in the first place:
import hmac
import hashlib
import base64
from flask import Flask, request, abort
app = Flask(__name__)
WEBHOOK_SECRET = os.environ["FOXIT_ESIGN_WEBHOOK_SECRET"].encode()
def trigger_extraction_and_sync(folder_id):
print(f"[webhook] verified signature, folder_completed for folder {folder_id}, kicking off extraction")
# kick off the PDF Services extraction from the previous section and push the result to a CRM or ERP
@app.route("/webhook/foxit", methods=["POST"])
def foxit_webhook():
received_sig = request.args.get("signature", "")
raw_body = request.get_data()
computed_sig = base64.b64encode(
hmac.new(WEBHOOK_SECRET, raw_body, hashlib.sha256).digest()
).decode()
if not hmac.compare_digest(received_sig, computed_sig):
abort(403)
payload = request.json
event_name = payload.get("event_name")
folder_id = payload.get("data", {}).get("folder", {}).get("folderId")
if event_name == "folder_completed":
trigger_extraction_and_sync(folder_id)
return "", 200 This handler pulls the signature off the query string, recomputes the same HMAC digest server-side over the raw request body, and compares the two with hmac.compare_digest, a constant-time comparison that avoids leaking timing information an attacker could use to guess the correct signature one byte at a time. Only once that check passes does it parse the JSON payload and branch on event_name. A single folder_completed webhook fires once the envelope is fully executed, and by the time it arrives, its own data.folder.folderStatus field already reads EXECUTED, so there’s no separate event to wait for after this one. trigger_extraction_and_sync should still be written idempotently, since any webhook consumer needs to tolerate a duplicate delivery of the same event without double-processing it.
With the handler running locally, run this command from your terminal to send it a real folder_completed payload, correctly HMAC-signed with the same secret, for a folder that genuinely reached EXECUTED in this guide’s own signing run:
python3 -c "
import hmac, hashlib, base64, json, requests
WEBHOOK_SECRET = b'your_webhook_secret'
payload = {
'event_name': 'folder_completed',
'data': {'folder': {'folderId': 36099927, 'folderStatus': 'EXECUTED'}},
}
raw_body = json.dumps(payload).encode()
sig = base64.b64encode(hmac.new(WEBHOOK_SECRET, raw_body, hashlib.sha256).digest()).decode()
r = requests.post(f'http://127.0.0.1:5055/webhook/foxit?signature={sig}', data=raw_body, headers={'Content-Type': 'application/json'})
print(r.status_code, r.text)
" The expected output should look like the following, in the terminal running the Flask app:
[webhook] verified signature, folder_completed for folder 36099927, kicking off extraction
127.0.0.1 - - [24/Sep/2026 17:45:04] "POST /webhook/foxit?signature=uK1HvZU6dmH9oH4cGhsm8sNeEBZA1hremgqaDYzMZyc= HTTP/1.1" 200 - Before wiring trigger_extraction_and_sync to a production system, register a real webhook URL and send a real envelope through the whole chain to confirm the callback arrives and verifies. That first live run is also where the handful of mistakes below tend to surface.
Common mistakes
A few failure modes show up repeatedly when building this pipeline, and each one is easy to avoid once you know to look for it.
- Tag names in the merge payload don’t match the template exactly.
GenerateDocumentBase64doesn’t error on an unrecognized key indocumentValues; it silently drops that field from the output. Always confirm the real tag list withAnalyzeDocumentBase64first rather than trusting a remembered field name, and diff the payload keys against the returnedsingleTagsStringbefore sending a merge request. - Word’s autocorrect turns straight quotes into smart quotes inside a merge field. A field typed as
{{ party_a_name }}can end up with a curly apostrophe or quote character if autocorrect touches it while editing the template, which breaks the tag silently the same way a misspelled name does. Paste field names in rather than retyping them, and re-runAnalyzeDocumentBase64after any manual template edit to confirm the tag count hasn’t changed. - A Text Tag with a space instead of underscores never becomes a signature field.
${signfield:1: }is parsed by eSign as inert literal text rather than a fillable field, so the signer sees the placeholder text but nothing to sign. The working form always uses underscores for the fill width, as in${signfield:1:y:__________}. If a signing session reports fewer required fields than the template has tags, this is the first thing to check. - The template’s
.docxfile exceeds the 4 MB DocGen cap after base64 encoding. Embedded images and fonts are the usual cause.GenerateDocumentBase64rejects the payload outright rather than truncating it, so compress images, strip embedded fonts and OLE objects, or split the template before it reaches that size.
Frequently asked questions
What is a contract lifecycle management API?
A contract lifecycle management (CLM) API is a programmatic interface, or in this case a small set of them working together, for automating each stage of a contract’s life (drafting, review, signing, storage, and post-execution data extraction) without manual hand-offs between stages.
How do you automate contract workflows with an API?
Chain the stages together by generating a document from a template, routing it for signing with role-based sequencing, capturing the completion event through a webhook rather than polling, and extracting structured data from the executed document asynchronously.
What is the difference between an eSign API and a CLM API?
An eSign API handles the signature step, creating envelopes, defining signers, and collecting signatures. A CLM API (or, as this guide shows, a composed set of APIs) spans the full lifecycle, from drafting through post-execution data extraction, with the eSign step as one stage inside a larger pipeline.
How do you extract data from a signed PDF contract programmatically?
Upload the signed PDF to get a documentId, call the structural extraction endpoint to start an asynchronous task and get back a taskId, then poll the task status endpoint until the result is ready and download the structured JSON.
Get started
The chain built in this guide, DocGen for drafting, eSign for signing and approval routing, PDF Services for extraction, and eSign’s own webhooks for the handoff between them, covers a contract’s full lifecycle with four API calls and no separate orchestration product. What it unlocks once it’s running unattended includes an audit trail that doesn’t depend on someone remembering to check a shared drive, renewal automation triggered off the actual execution date rather than a calendar reminder, and CRM or ERP sync that happens the moment a contract closes instead of whenever someone gets around to data entry.
Start building with a free Foxit developer account, no credit card required, using the same DocGen, eSign, and PDF Services endpoints shown above.