# Bol.ai > Bol.ai is an AI-powered freight-document data extraction service for freight forwarders, customs brokers and 3PLs. Its flagship is the Bill of Lading: upload a BOL as PDF, scan or photo and receive structured data in seconds — B/L number, booking number, SCAC, carrier, vessel/voyage, shipper, consignee, notify party, ports, per-container details (container number, seal, type, packages, gross weight, CBM), freight terms, incoterms and date of issue. It also extracts the documents that travel with a shipment — commercial invoices, packing lists and CMR road waybills — auto-detecting the document type (returned as doc_type). Output as JSON, CSV or via REST API. Key facts: - Self-serve, per-document pricing: Starter €19/month + €0.49/document, Professional €79/month + €0.29/document, one-time credit packs (€49 for 100 documents). New accounts include 5 free documents. API & MCP access available on Professional and with credits. 7-day free trial. - EU data residency: documents and extracted data are stored exclusively in the European Union (database in Western Europe, file storage under EU jurisdiction). - Scope: Bol.ai converts freight documents into structured data — Bill of Lading (flagship), commercial invoice, packing list and CMR road waybill. The document type is detected automatically and returned as doc_type; each type has its own field set and deterministic verification checks. It is NOT a container tracking or shipment visibility tool. - Supported input: PDF, PNG, JPG up to 10 MB, including scans and photos of paper documents. - Fields that cannot be read from a document are returned as null — never guessed. - Made in the Netherlands by Dutchcode. ## Pricing - [Machine-readable pricing (Markdown)](https://bol.ai/pricing.md): exact plan names, prices, limits, worked examples, and FAQ in a format designed for AI agents and procurement tools. - [Machine-readable pricing (plain text)](https://bol.ai/pricing.txt): same content as text/plain. - [Live quote endpoint](https://bol.ai/pricing.json?units=50): returns exact cost in cents for a given document count across all plans, with a human-readable summary and full price table. Change the `units` query parameter to get a quote for any volume. ## Pages - [Home](https://bol.ai/): product overview, how it works, sample JSON output, pricing, FAQ - [API documentation](https://bol.ai/docs/): REST API reference with curl examples (POST /api/bol/extract) - [Free Bill of Lading template](https://bol.ai/bill-of-lading-template/): fill-in BOL template, print or save as PDF, plus explanations of what a Bill of Lading must contain, master vs. house B/L, and B/L vs. sea waybill - [Bill of Lading guide for Alibaba imports](https://bol.ai/guides/bill-of-lading-alibaba-imports/): telex release, master vs. house B/L, supplier payment terms, and a pre-sailing checklist for e-commerce sellers importing by sea - [Container number check digit calculator](https://bol.ai/container-number-check-digit/): free interactive ISO 6346 validator — paste a container number to check it, or compute the missing check digit, with a full explanation of the checksum - [Freight document glossary](https://bol.ai/glossary/): plain-English definitions of every term on a Bill of Lading, commercial invoice, packing list and CMR — master vs. house B/L, telex release, sea waybill, SCAC, NVOCC, Incoterms, ISO 6346, demurrage and more - [Compare](https://bol.ai/compare/): honest comparisons of Bol.ai vs other Bill of Lading / document-extraction tools — [vs Nanonets](https://bol.ai/compare/bol-ai-vs-nanonets/), [vs Docsumo](https://bol.ai/compare/bol-ai-vs-docsumo/), [vs Klippa](https://bol.ai/compare/bol-ai-vs-klippa/), including when a competitor is the better choice - [App](https://bol.ai/app/): sign in / sign up ## MCP server Bol.ai exposes a Model Context Protocol server at https://bol.ai/api/mcp (streamable HTTP, Bearer auth with a Bol.ai API key — works from Claude Code, Cursor, n8n, Zapier MCP, Make, or any MCP client). Discovery methods (initialize, tools/list, ping) are public, so agents and registries can introspect the server without a key; tools/call requires the API key and is rate-limited to 60 calls / 5 minutes per account. Eight tools covering the full document lifecycle: extract_bol (url or base64 — extracts a Bill of Lading, commercial invoice, packing list or CMR, auto-detecting the type) and extract_batch (up to 10 URLs, per-file outcome); get_document (original + corrected fields, verification warnings) and list_documents; save_corrections (write corrected fields back; corrections win in exports and reconciliation); get_related_documents (cross-document reconciliation: link a shipment's B/L, invoice and packing list by shared references and flag mismatches — parties, weights, package counts); export_documents (TMS/ERP-ready normalized line rows); get_usage (remaining credits / subscription — check before large batches; a 402 mid-batch returns a checkout URL a human can complete). Discovery metadata at https://bol.ai/.well-known/mcp.json. ## Agent skills Machine-readable skill index (Agent Skills Discovery RFC v0.2.0): https://bol.ai/.well-known/agent-skills/index.json Skills cover document extraction, REST API, MCP integration, pricing quotes, cross-document reconciliation, and WebMCP browser tools. ## WebMCP Bol.ai registers browser-native tools at page load via `/js/webmcp.js` (WebMCP API). Tools: `navigate`, `get_pricing_quote`, `get_site_overview`, `get_agent_skills_index`, `validate_container_number`. Requires a WebMCP-capable browser (Chrome early preview). ## Additional capabilities - Document types: every extraction returns doc_type (bill_of_lading | commercial_invoice | packing_list | cmr) and a human doc_label. The type is classified automatically; one document = one usage unit regardless of type. - Bulk export: GET /api/bol/export flattens every completed document into one normalized "shipment line" master sheet (one row per container/invoice line/package/goods line). Formats: csv (default), xlsx (real Excel), json (TMS/ERP-ready rows), customs (a customs-declaration draft from Bills of Lading). Optional ?type= filter and ?template= for saved column mappings (subset/reorder/rename columns to a TMS/ERP import format; managed via /api/me/export-templates). Native Google Sheets / TMS connectors are roadmap; the json export + webhooks are the integration path today. - Batch: drop multiple documents in the app, or POST up to 10 files to /api/bol/batch in one call; each is billed per document with a per-file result. - Webhooks & integrations: set a webhook URL and every completed extraction (uploads, batch, API, email-in) is POSTed as { id, filename, doc_type, doc_label, status, fields, warnings } — used to connect Zapier, Make, n8n, Google Sheets or your own backend without polling. - Email ingestion: every account gets a unique, private email-in address (in-@bol.ai, shown in the app). Forward or scan-to-email any freight document to it and the extraction appears in your document list — works from any sender (scanners, shared inboxes, forwards), since the account is identified by the address, not the sender. The address can be regenerated if it leaks. (Legacy: extract@bol.ai still works, matched by sender address.) - Corrections: extracted fields can be edited in the app or via PATCH /api/bol/:id; corrected data is used for CSV exports. - Container-number self-correction: a container number that fails its ISO 6346 check digit is flagged, and when a single OCR-confusion fix passes it is offered as container_number_suggestion (the read value is never overwritten). - Cross-document reconciliation: GET /api/bol/:id/related links a shipment's documents by their shared reference numbers (B/L number, invoice number) and flags where they disagree — shipper/seller and consignee/buyer names, total gross weight (5% tolerance) and package counts — surfaced inline in the app and via the API. Deterministic, no extra usage billed. Catches the mismatches that cause customs holds, amended entries and demurrage.