file2markdown
awstextractalternativesocrragllmmarkdown

AWS Textract Alternatives: 5 Tools Compared for Document-to-Markdown Conversion

November 7, 2026

AWS Textract Alternatives: 5 Tools Compared

Amazon Textract is AWS's machine learning service for pulling text, tables, and form data out of scanned documents, and it's a solid choice if you're already deep in the AWS ecosystem. But if your actual goal is clean Markdown for a RAG pipeline or an LLM prompt, Textract leaves you with a lot of glue code to write. This guide covers five real alternatives, what each does better, and when reaching for file2markdown saves you from standing up any infrastructure at all.

Why Look Beyond AWS Textract?

Textract is a capable OCR engine, but people go looking for alternatives when they run into:

  • No native Markdown output. The API returns a Blocks array of LINE, WORD, and table-cell objects with geometry coordinates. Turning that into headings, lists, and Markdown tables takes another layer: code you write and maintain yourself, or AWS's open-source Textractor library, which can linearize a response to Markdown with to_markdown().
  • Synchronous calls are single-page only. Per AWS's own documentation (checked 2026-11-07), the synchronous operations such as DetectDocumentText and AnalyzeDocument work on single-page documents. A multi-page PDF needs the asynchronous API: the file has to sit in an S3 bucket, you call StartDocumentTextDetection, and in AWS's documented flow the completion status goes to an SNS topic that you read through an SQS queue or a Lambda function before you fetch the results.
  • Per-feature pricing adds up. As of 2026-11-07, Amazon's pricing page lists $0.0015 per page for Detect Document Text, $0.015 per page for Tables, and $0.05 per page for Forms (all first-1M-page rates, US West Oregon). Combine Tables and Forms on the same page and you pay both rates: a 20-page form-heavy contract processed with Tables + Forms runs about $1.30 before you've written a line of parsing code. The free tier only lasts three months, and only new AWS customers get it.
  • AWS account overhead. IAM roles, S3 buckets for async jobs, and SDK credentials are setup you don't need if all you want is a .md file.

The right alternative depends on which of these is actually your bottleneck.

The Alternatives at a Glance

ToolBest forOCR for scansOutputSetup
DoclingComplex PDF layouts, local-onlyYes, built inMarkdown, JSONPython library
UnstructuredBroad format coverage, typed elementsYes, ocr_only and hi_res strategiesTyped elements; Markdown via elements_to_md()Python library / hosted API
MarkItDownSimple Office docs, minimal setupYes, via optional markitdown-ocr pluginMarkdownPython library
MarkerFast, high-fidelity PDF batchesYes, via Surya VLMMarkdown, JSONPython library / CLI
file2markdownNo install, browser or MCPScanned PDFs on ProMarkdownWeb / MCP

Docling: Best for Complex PDF Layouts, Fully Local

Docling, started at IBM Research, ships with, per its own documentation (checked 2026-11-07), "extensive OCR support for scanned PDFs and images" and runs entirely locally, which matters if documents can't leave your infrastructure. It outputs a single clean Markdown or JSON document rather than Textract's raw block array.

from docling.document_converter import DocumentConverter

converter = DocumentConverter()
result = converter.convert("contract.pdf")
print(result.document.export_to_markdown())

Trade-off: you're installing and maintaining a Python library and its model weights instead of calling a managed API. See Docling vs Unstructured for a deeper comparison.

Unstructured: Best for Broad Format Coverage

Unstructured also does OCR on scans: its open-source library has an OCR-based ocr_only strategy and a layout-model hi_res strategy for image-based files (per its partitioning docs, checked 2026-11-07). Unlike Textract, it handles email, HTML, and a wider document-type range than just scanned images and PDFs. The catch: partition() returns typed elements (Title, NarrativeText, Table), not a finished document. Its elements_to_md() helper renders them as Markdown, but every title comes out as a # heading and tables come out as HTML, so expect some cleanup.

MarkItDown: Best for Simple Office Documents, Now With Optional OCR

Microsoft's MarkItDown is the lightest dependency of the group. As of 2026-11-07, its GitHub README documents OCR support through an optional markitdown-ocr plugin that extracts text from embedded images using LLM vision, and lists Azure Content Understanding as a cloud option for scanned PDFs. Without the plugin or an Azure service, MarkItDown's PDF handling stays text-layer-only: fine for born-digital files, not for scans.

Marker: Best for Fast, High-Fidelity PDF Batches

Marker runs its own local inference server (vLLM on NVIDIA GPUs, llama.cpp on CPU or Apple Silicon) and, per its GitHub documentation (checked 2026-11-07), OCRs "garbled or scanned pages" through its Surya vision-language model. It outputs Markdown by default, with tables, equations, and code blocks included, which skips the block-to-Markdown translation step Textract requires.

file2markdown: No AWS Account, Browser or MCP

The open-source tools above are libraries you install and maintain (Unstructured also offers a hosted API). file2markdown.ai skips that: drop a file in the browser, or connect the MCP server to Claude, Cursor, or another agent, and get Markdown back directly, with no IAM roles, no S3 buckets, and no polling loop for multi-page PDFs. What it doesn't have is a REST API or SDK: the MCP server is its only programmatic interface, and it's built for AI clients, so a backend service that calls Textract today is better served by one of the libraries above.

Free use gets 5 conversions a day with no account, or 15 a day with a free account (25MB per file, no scanned-PDF OCR). Pro ($15/month or $108/year) adds unlimited conversions, 100MB files, OCR for scanned PDFs (up to 50 pages per file, using Claude's vision model), image OCR over MCP, and up to 10 files at once in the web app. Image OCR on web uploads is free.

Try it directly at /convert/pdf-to-markdown or /convert/image-to-markdown. Both hand back clean Markdown instead of a Blocks array; scanned PDFs need Pro, while JPG and PNG images are OCR'd for free.

How to Choose

  • Need Textract's forms/ID/invoice-specific parsers → stay on Textract. None of these alternatives replicate AnalyzeExpense or AnalyzeID exactly.
  • Complex PDFs, must stay local → Docling. Layout-aware parsing (reading order, tables) without an API call.
  • Mixed formats (email, HTML, PDF) in one pipeline → Unstructured.
  • Mostly clean Office files, light scanning needs → MarkItDown.
  • High-volume PDF batches, need speed → Marker.
  • Don't want to install or maintain anything, and you convert files by hand or from an AI client → file2markdown.ai.

For the step after conversion, see the guide on chunking Markdown for vector databases or the full RAG document prep pipeline.

Frequently Asked Questions

Is there a free alternative to AWS Textract?

Yes. Docling (MIT), Unstructured (Apache 2.0), and MarkItDown (MIT) are free and open source, with no per-page fee when you run them yourself. Marker's code is Apache 2.0, but its model weights are free only for research, personal use, and startups under $5M in funding or revenue; commercial use beyond that needs a licence from its maker, Datalab. file2markdown's web converter is also free for up to 15 conversions a day with a free account, though scanned-PDF OCR specifically requires Pro.

Does AWS Textract have a free tier?

Yes. As of 2026-11-07, AWS's free tier gives new AWS customers three months of free usage with monthly caps that vary by operation, for example 1,000 pages for Detect Document Text, but only 100 pages for Forms, Tables, or Layout analysis. After three months, or past those caps, standard per-page pricing applies.

Can AWS Textract output Markdown directly?

No. The Textract API returns a structured JSON Blocks array (lines, words, table cells, geometry), not Markdown; AWS's open-source Textractor library can turn that response into Markdown with to_markdown(). Docling, MarkItDown, Marker, and file2markdown output Markdown directly. Unstructured returns typed elements, which its elements_to_md() helper can render as Markdown.

Which Textract alternative is best for a RAG pipeline?

If your documents stay in your own infrastructure, Docling and Marker both parse layout locally, without an external API. If you want to skip installing anything, file2markdown's MCP server converts documents to Markdown mid-conversation in Claude, Cursor, or another MCP client; it isn't a REST API, so for an unattended ingestion job one of the libraries is the better fit. For the full pipeline from source document to vector-ready chunks, see RAG document prep: PDF to Markdown to chunks.

The Markdown Memo

A fortnightly note for lawyers, researchers, accountants, and anyone else drowning in PDFs, scans, and decks. No spam.