Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Turn any PDF into structured JSON via AI + OCR: invoices, bank statements, contracts.

README.md

Document-to-JSON Converter

Turn PDFs into structured JSON in seconds. AI-powered, no coding needed.

!MCP Server !License: MIT !Apify

---

🚀 What does it do?

Paste a PDF URL → get structured JSON. That's it.

Powered by AI. Instead of rigid templates or fragile regex, an AI model actually reads and understands each document — so it adapts to any layout, language, or vendor, and even handles scanned files. That's why the same tool works on an Italian invoice, a Spanish receipt, or an English contract without any configuration.

Perfect for:

  • Accountants — extract invoice data (numbers, dates, totals, VAT, IBAN)
  • Developers — automate document processing in your apps
  • Business analysts — convert bank statements to spreadsheets
  • Legal teams — extract contract clauses and dates automatically

📋 Supported documents

| Type | What you get | Price | |---|---|---| | Invoice | Seller, buyer, line items, totals, VAT, IBAN, payment info | $0.01 | | Bank Statement | All transactions, balances, fees, account holder | $0.015 | | Contract | Parties, key clauses, dates, financial terms, jurisdiction | $0.02 | | Generic | Full text + tables from any document | Free during launch |

✨ Example output

{
  "success": true,
  "data": {
    "document_type": "invoice",
    "confidence": 0.97,
    "metadata": {
      "invoice_number": "INV-2024-00123",
      "invoice_date": "2024-03-15",
      "currency": "EUR"
    },
    "seller": {
      "name": "Acme S.p.A.",
      "vat_id": "IT01234567890"
    },
    "line_items": [
      {
        "description": "Consulting services",
        "quantity": 1,
        "unit_price": 5000.00,
        "net_amount": 5000.00,
        "vat_rate": 22.0,
        "total": 6100.00
      }
    ],
    "totals": {
      "net_total": 5000.00,
      "vat_total": 1100.00,
      "grand_total": 6100.00
    },
    "payment_info": {
      "iban": "IT60X0542811101000000123456"
    }
  }
}

🧪 Live examples — try them now

Run the Actor on these public sample PDFs (synthetic data) to see the extraction quality for yourself:

| Type | Sample PDF | What the AI extracts (highlights) | |---|---|---| | Invoice | sample-invoice.pdf | Invoice INV-2026-0042, seller + buyer with VAT IDs, 2 line items, VAT 22%, grand total €1,889.78confidence 1.0 | | Bank statement | sample-bank-statement.pdf | 7 transactions auto-categorized, opening/closing balances reconciled to €8,655.28confidence 1.0 | | Contract | sample-contract.pdf | 2 parties + roles, effective/expiry/renewal dates, fee €5,000, 5 key clauses with summaries, jurisdiction — confidence 0.95 |

Just paste one of these URLs as file_url, pick the matching document_type, and run. Each extraction takes ~15–20 seconds.

🎯 Why this Actor?

| Feature | Benefit | |---|---| | AI understanding | An AI reads documents like a human — adapts to any layout, no templates or rules to maintain | | Multi-language | English, Italian, Spanish (OCR) | | OCR included | Works with scanned documents too | | Validation | Auto-checks totals and dates for accuracy | | Pay per use | No subscription, pay only for what you process |

🔧 How to use

  1. Get a public PDF URL (Dropbox, Google Drive, your server)
  2. Select the document type
  3. Run the Actor
  4. Get your JSON in seconds

That's it. No configuration, no API keys needed.

💰 Pricing

| Document type | Price | |---|---| | Invoice | $0.01 ($10/1000) | | Bank statement | $0.015 ($15/1000) | | Contract | $0.02 ($20/1000) | | Generic | Free during launch |

Pay-per-event via Apify. Pay only for successful extractions. No subscription, no hidden fees.

🔒 Privacy

  • PDFs are processed and not stored after extraction
  • Data is available in your private dataset
  • All API keys stay encrypted

📚 Supported OCR languages

eng (English), ita (Italian), spa (Spanish)

Combine with + for multi-language scanned documents: eng+ita+spa (default)

🤖 Built for AI agents (MCP)

This Actor is an MCP server: AI agents can call it directly as a tool to turn any PDF into JSON, with zero configuration — just pass a public file_url. Specialized tools (parse_invoice, parse_bank_statement, parse_contract) and a free parse_generic_document make it easy for an LLM to pick the right one for the task.

🔌 Integrations

Replace YOUR_APIFY_TOKEN with your token from Apify → Settings → Integrations.

Claude Code (CLI)

claude mcp add --transport http apify \
  "https://mcp.apify.com/?actors=opportunity-biz/document-to-json-mcp"

Claude Desktop / Cursor (MCP)

Add to your MCP config (claude_desktop_config.json or Cursor's mcp.json):

{
  "mcpServers": {
    "document-to-json": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote",
        "https://mcp.apify.com/?actors=opportunity-biz/document-to-json-mcp",
        "--header", "Authorization: Bearer YOUR_APIFY_TOKEN"
      ]
    }
  }
}

The agent then sees parse_invoice, parse_bank_statement, parse_contract, and parse_generic_document as tools and calls them on its own.

REST API (any language)

One call in, JSON out — run-sync-get-dataset-items returns the result directly:

curl -X POST \
  "https://api.apify.com/v2/acts/opportunity-biz~document-to-json-mcp/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"file_url": "https://example.com/invoice.pdf", "document_type": "invoice", "validate_totals": true}'

Python

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("opportunity-biz/document-to-json-mcp").call(run_input={
    "file_url": "https://example.com/invoice.pdf",
    "document_type": "invoice",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

JavaScript / TypeScript

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('opportunity-biz/document-to-json-mcp').call({
  file_url: 'https://example.com/invoice.pdf',
  document_type: 'invoice',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

n8n

Use an HTTP Request node (POST) to the REST API URL above, or the official Apify node → select document-to-json-mcp → set file_url and document_type. Great for "watch inbox → extract invoice → append to Google Sheet" workflows.

LangChain / CrewAI / any MCP framework

Point your agent framework's MCP client at https://mcp.apify.com/?actors=opportunity-biz/document-to-json-mcp — the parsing tools are exposed automatically.

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Files & Docs servers.