Convert documents and images to clean markdown
Send a PDF, image, or document — get clean markdown back. No schema required. The same OCR pipeline that powers Document Extraction, exposed as a standalone API.
No credit card required — start with free trial credits
One output feeds the next
Document to Markdown is part of a complete content pipeline. One key, one credit pool, and structured JSON responses designed to chain together.
Mix and match freely
Extract data from a document, generate visuals from the results, then compile everything into a finished report. Mix, match, and build your own pipeline.
Three steps to your first conversion
Send your document
Upload a PDF, image, or office document via URL or base64. Any supported format works in the same endpoint.
- PDF, Word, Excel, images, and scanned documents
- Base64 or URL file input
- Single endpoint for all formats
We parse, OCR, and describe
The document is parsed, scanned pages are run through OCR, and tables are extracted. Image files also receive a natural language description of their visual content.
- Automatic OCR for scanned pages and photos
- Tables converted to markdown table syntax
- Image files get a visual content description
Get clean markdown
Receive a JSON result with the file name, MIME type, and extracted markdown. Image files also include a plain-language description field.
- Clean markdown preserving document structure
- Suitable for LLM pipelines and RAG ingestion
- Image description for visual content
Intelligent Parsing
The API automatically selects the best parsing approach for your document. Dense tables, multi-column layouts, and mixed content are handled without any configuration.
Clean Markdown Output
Headings, paragraphs, tables, and lists are preserved as clean markdown syntax. The output is ready to display, embed in a knowledge base, or pass to an LLM — no post-processing needed.
Deep Content Understanding
Images and scanned documents aren't treated as pixel grids to OCR. The API understands what they depict — product photos, charts, diagrams — and returns a natural language description alongside the extracted text.
Built-In OCR
Scanned PDFs and image files are automatically run through OCR. You get readable markdown regardless of whether the source is text or pixels.
All Document Formats
PDF, DOCX, XLSX, CSV, TXT, HTML, PNG, JPEG, GIF, and WebP — all handled by the same endpoint. No format-specific setup or pre-processing required.
Stop building workflows from scratch
Browse ready-made recipes for real-world document and image workflows. Pick one, tweak it, ship it.
Convert Contract to Markdown
Convert a contract PDF to clean markdown for clause extraction or LLM analysis.
Convert Document for Knowledge Base
Convert external documents — specs, contracts, reports — to markdown for knowledge base ingestion.
Convert Document for RAG Ingestion
Convert a document to clean markdown suitable for chunking and embedding in a RAG pipeline.
Convert Invoice to Markdown
Convert a PDF invoice to clean markdown for LLM processing or document pipelines.
Convert Resume to Markdown
Convert a resume PDF to clean markdown for LLM parsing or candidate pipelines.
Convert Document to Markdown
Convert PDF, DOCX, HTML, or image documents to clean, structured Markdown.
Preprocess Document for LLM Classification
Convert a document to markdown and classify it with an LLM in a single pipeline.
One n8n node for your entire pipeline
Zapier Coming SoonMost n8n document workflows chain three or four separate services. The Iteration Layer community node covers extraction, transformation, and generation in a single install — wire up multi-step pipelines visually instead of writing glue code.
Start building right now
One API call, one credit deducted. Chains naturally with our other APIs — pipe the output of one into the next without glue code. You'll be up and running in minutes.
- Full OpenAPI 3.1 specification available for code generation and IDE integration.
- MCP server support for seamless integration with AI agents and tools.
- Comprehensive documentation with examples for every field type and edge case.
curl -X POST \
https://api.iterationlayer.com/document-to-markdown/v1/convert \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"file": {
"type": "url",
"name": "invoice.pdf",
"url": "https://example.com/invoice.pdf"
}
}'
{
"success": true,
"data": {
"name": "invoice.pdf",
"mime_type": "application/pdf",
"markdown": "# Invoice\n\n**Invoice Number:** INV-2024-0042\n\n**Date:** 2024-03-15\n\n| Description | Qty | Unit Price | Total |\n|---|---|---|---|\n| Consulting | 10h | $100.00 | $1,000.00 |\n| Support | 5h | $80.00 | $400.00 |\n\n**Total: $1,400.00**"
}
}
import { IterationLayer } from "iterationlayer";
const client = new IterationLayer({
apiKey: "YOUR_API_KEY",
});
const result = await client.convertToMarkdown({
file: {
type: "url",
name: "invoice.pdf",
url: "https://example.com/invoice.pdf",
},
});
{
"success": true,
"data": {
"name": "invoice.pdf",
"mime_type": "application/pdf",
"markdown": "# Invoice\n\n**Invoice Number:** INV-2024-0042\n\n**Date:** 2024-03-15\n\n| Description | Qty | Unit Price | Total |\n|---|---|---|---|\n| Consulting | 10h | $100.00 | $1,000.00 |\n| Support | 5h | $80.00 | $400.00 |\n\n**Total: $1,400.00**"
}
}
from iterationlayer import IterationLayer
client = IterationLayer(
api_key="YOUR_API_KEY"
)
result = client.convert_to_markdown(
file={
"type": "url",
"name": "invoice.pdf",
"url": "https://example.com/invoice.pdf",
}
)
{
"success": true,
"data": {
"name": "invoice.pdf",
"mime_type": "application/pdf",
"markdown": "# Invoice\n\n**Invoice Number:** INV-2024-0042\n\n**Date:** 2024-03-15\n\n| Description | Qty | Unit Price | Total |\n|---|---|---|---|\n| Consulting | 10h | $100.00 | $1,000.00 |\n| Support | 5h | $80.00 | $400.00 |\n\n**Total: $1,400.00**"
}
}
import il "github.com/iterationlayer/sdk-go"
client := il.NewClient("YOUR_API_KEY")
result, err := client.ConvertToMarkdown(il.ConvertRequest{
File: il.NewFileFromURL(
"invoice.pdf",
"https://example.com/invoice.pdf",
),
})
{
"success": true,
"data": {
"name": "invoice.pdf",
"mime_type": "application/pdf",
"markdown": "# Invoice\n\n**Invoice Number:** INV-2024-0042\n\n**Date:** 2024-03-15\n\n| Description | Qty | Unit Price | Total |\n|---|---|---|---|\n| Consulting | 10h | $100.00 | $1,000.00 |\n| Support | 5h | $80.00 | $400.00 |\n\n**Total: $1,400.00**"
}
}
Official SDKs for every major language
Install the SDK, set your API key, and start chaining requests. Full type safety, automatic retries, and idiomatic error handling included.
Your data stays in the EU
Your data is processed on EU servers and never stored beyond temporary logs. Zero retention, GDPR-compliant by design, with a Data Processing Agreement available for every customer. Learn more about our security practices .
No data storage
We don't store your files or processing results. Logs are automatically deleted after 90 days.
EU-hosted infrastructure
All processing runs on servers located in the European Union. Your data never leaves the EU.
GDPR-compliant by design
Full compliance with EU data protection regulations. Data Processing Agreement available for all customers.
Pricing
Start with free trial credits. No credit card required.
Developer
For individuals & small projects
-
1,000 credits / monthThat's either: 1,000 image transformations 500 document generations 500 image generations 500 sheet generations 200 document extractions (5-page docs) 200 markdown conversions (5-page docs)
-
All APIs included
-
Free trial credits per API
-
Email support
-
Budget caps per key
-
Optional auto top-up
Startup
Save 40%For growing teams
-
5,000 credits / monthThat's either: 5,000 image transformations 2,500 document generations 2,500 image generations 2,500 sheet generations 1,000 document extractions (5-page docs) 1,000 markdown conversions (5-page docs)
-
All APIs included
-
Free trial credits per API
-
Priority support
-
Budget caps per key
-
Optional auto top-up
Business
Save 47%For high-volume workloads
-
15,000 credits / monthThat's either: 15,000 image transformations 7,500 document generations 7,500 image generations 7,500 sheet generations 3,000 document extractions (5-page docs) 3,000 markdown conversions (5-page docs)
-
All APIs included
-
Free trial credits per API
-
Priority support
-
Budget caps per key
-
Optional auto top-up
Frequently asked questions
What file formats are supported?
What is the difference between this and Document Extraction?
Why does the markdown include an image description?
How many files can I send per request?
Is the output suitable for LLMs?
Still evaluating?
See how we compare — and where the competition still wins. Choosing the right tool shouldn't require a week of research.
AWS Textract
Textract returns raw strings and bounding boxes — not a markdown document ready to read or embed.
Azure Document Intelligence
Azure outputs model-specific field values, not clean markdown — and requires model selection or training first.
Google Document AI
Document AI requires a GCP project, processor selection, and S3-equivalent storage before you get any text out.
LlamaParse
LlamaParse is US-based and per-page — and doesn't describe image content.
Mistral OCR
Mistral has best-in-class OCR and returns markdown, but doesn't describe image content and processes files from US servers.
Nanonets
Nanonets requires training a model before extraction — and outputs structured fields, not clean markdown.
Reducto
Reducto outputs markdown from US servers and charges per page — without an image description field.