Bol.ai extracts structured data from Bills of Lading, commercial invoices, packing lists, and CMR waybills — upload a PDF, scan, or phone photo and get 20+ fields back (parties, ports, containers, weights) as JSON or CSV. Container numbers are verified against the ISO 6346 checksum. Documents that belong to the same shipment get cross-checked against each other automatically, catching the mismatches that cause customs holds and demurrage. EU data residency throughout. API/MCP included.
Hey PH! I built bol.ai after watching freight forwarders retype the same Bill of Lading fields by hand, one document at a time, for every shipment.
A few things I'm proud of:
Every container number gets validated against the real ISO 6346 checksum — not just "looks right"
If you upload the B/L, invoice, and packing list for one shipment, we catch it when they disagree with each other (this is the thing that actually causes customs delays)
Everything stays in the EU — no data leaves European infrastructure
There's an MCP server, so if you're wiring up an AI agent to handle freight paperwork, it can call bol.ai directly
5 free documents, no card required. Would love your feedback, especially from anyone who's dealt with freight docs before.
Report
how does the cross-document check actually flag mismatches, just by reporting the difference or suggesting the right value based on the other docs?
Report
How does the cross-checking actually handle cases where the same shipment shows up with slightly different weights or port codes across docs, do you flag it as a mismatch or pick a confidence-weighted value?
Report
Ran a blurry phone photo of a Bill of Lading through it and the container number came back ISO-validated while my eyes were still squinting at the page. The cross-check between the invoice and the BoL catching a weight mismatch before I noticed it sealed the deal for me.
Report
No reviews yetBe the first to leave a review for Bol.ai
how does the cross-document check actually flag mismatches, just by reporting the difference or suggesting the right value based on the other docs?
How does the cross-checking actually handle cases where the same shipment shows up with slightly different weights or port codes across docs, do you flag it as a mismatch or pick a confidence-weighted value?
Ran a blurry phone photo of a Bill of Lading through it and the container number came back ISO-validated while my eyes were still squinting at the page. The cross-check between the invoice and the BoL catching a weight mismatch before I noticed it sealed the deal for me.