Free AI Bill of Lading Parser
Upload a bill of lading and get structured data back in seconds: shipper, consignee, container numbers, cargo details, and freight terms, exported as JSON, CSV, or Excel. Works on scanned and photographed B/Ls.
Read any bill of lading in seconds.
Upload a bill of lading and watch the parties, route, and cargo return as structured, exportable data. No signup, no credit card.
One bill of lading, every field returned.
An actual extraction result: the B/L header fields, the full container and cargo table, and totals that reconcile. Switch to JSON to see the exact shape your TMS or ERP receives.
| Container no. | Description of goods | Packages | Weight (kg) |
|---|---|---|---|
| MSKU7845120 | Cotton bath towels, 500gsm | 480 CTN | 9,840.00 |
| MSKU7845120 | Cotton hand towels, 300gsm | 320 CTN | 4,120.00 |
| TCLU5567891 | Stainless steel cookware sets | 156 CTN | 7,530.00 |
| TCLU5567891 | Ceramic mugs, boxed | 400 CTN | 3,180.00 |
| 2 containers | Total shipment | 1,356 CTN | 24,670.00 |
{ "bl_number": "MSKU-SPEC-77413021", "carrier": "Specimen Lines", "shipper": "Shanghai Widget Mfg Co.", "consignee": "Rhine Import BV", "notify_party": "Rhine Import BV", "port_of_loading": "Shanghai, CN (CNSHA)", "port_of_discharge": "Rotterdam, NL (NLRTM)", "vessel": "MV Specimen Carrier", "voyage": "042E", "freight_terms": "Prepaid", "issue_date": "2026-06-14", "cargo": [ { "container": "MSKU7845120", "seal": "SPEC00891", "description": "Cotton bath towels, 500gsm", "packages": 480, "weight_kg": 9840.00 }, { "container": "MSKU7845120", "seal": "SPEC00891", "description": "Cotton hand towels, 300gsm", "packages": 320, "weight_kg": 4120.00 }, { "container": "TCLU5567891", "seal": "SPEC00934", "description": "Stainless steel cookware sets", "packages": 156, "weight_kg": 7530.00 }, { "container": "TCLU5567891", "seal": "SPEC00934", "description": "Ceramic mugs, boxed", "packages": 400, "weight_kg": 3180.00 } ], "total_packages": 1356, "total_gross_weight_kg": 24670.00 }
Fictional specimen data shown for illustration. Package counts and gross weight are totalled and cross-checked against the cargo lines.
Every B/L field your team needs, as structured data.
The parser reads the whole bill of lading and returns labeled fields rather than a wall of text. Here is exactly what comes back.
Parties involved
The shipper, consignee, notify party, and carrier named on the B/L, extracted and labeled so the right party lands in the right column every time.
Route & voyage
Port of loading, port of discharge, vessel and voyage number, and final place of delivery, captured in order so you can track the shipment's path end to end.
Cargo details
Container numbers, description of goods, weight, and package counts, pulled from the cargo table even when it spans multiple lines or pages.
B/L & shipment terms
The B/L number, freight terms (prepaid or collect), issue date, and seal numbers, the reference details your systems need to match the shipment.
Bill of lading to structured data in three steps.
Upload the B/L
Drag in a PDF, scan, or photo of the bill of lading. Stamps, faxed copies, and low-quality scans are read with built-in OCR.
AI reads the document
The AI identifies parties, route, cargo, and terms the way a logistics coordinator would, regardless of carrier or layout.
Export the data
Download the structured result as JSON, CSV, or Excel, or send it straight to your TMS, ERP, or spreadsheet with a ParserBee account.
What is bill of lading parsing?
Bill of lading parsing is the automated conversion of a B/L, a legal shipping document issued by a carrier or freight forwarder, into structured data a system can use: fields such as shipper, consignee, container number, and port of discharge. When an ops team says a bill of lading has been "parsed", the document has been read and its contents now exist as clean, labeled data rather than a scanned image someone has to open by hand. Freight forwarders, 3PLs, and import/export teams use parsed B/L data to build shipment records, reconcile bookings, prepare customs paperwork, and keep a TMS or ERP current without retyping what the carrier already put on the page.
The difference between reading a bill of lading and parsing one is repeatability. A coordinator can read any single B/L, but not the fifty that land in an inbox before a sailing cutoff. Bill of lading data extraction applies the same reading to every document that comes in, which is what makes automated freight forwarding workflows possible.
Why bills of lading are hard to parse
Bills of lading are notoriously inconsistent documents, for reasons anyone in ocean freight has run into:
- There is no standard template. Every carrier, and every freight forwarder issuing a house B/L, uses its own layout. A straight bill of lading, an order bill, and a telex release notation all encode the same shipment differently.
- Cargo tables span multiple lines and pages. Container numbers, seal numbers, package counts, and descriptions of goods often wrap across rows, and a rule-based parser built for one carrier's grid breaks on the next.
- Files arrive as scans, faxes, and photos. Freight documents get stamped, signed, re-scanned, and forwarded through email chains long after they were first issued, degrading the text a simple OCR tool depends on.
This is why a B/L dropped into a template-based OCR tool so often comes back with a container number split across two fields, a notify party mistaken for the consignee, or a blank cargo description. Shipments get held up not because the paperwork is wrong, but because the software reading it cannot keep up with how many ways a bill of lading can be laid out.
How AI parsing differs from rule-based, template OCR
Older bill of lading OCR tools work from fixed templates: find the box labeled "Consignee," capture the text inside it, move to the next known field. That works only as long as every document matches the template it was built for, which is rarely true across carriers and forwarders. ParserBee's approach is different. The AI reads the whole document the way a shipping coordinator would, using content and context, not just position on the page, to decide what each element is. A container number is recognized as a container number because of its format and where it sits in the cargo block, not because it appeared in a fixed cell. The practical consequences:
- New carrier formats and house B/Ls parse correctly with no template setup or mapping work.
- Scanned, faxed, and photographed bills of lading are handled through OCR, then interpreted with the same reading.
- Output is consistent: the same fields, in the same structure, for every B/L, which is what a TMS, ERP, or spreadsheet import requires.
Who uses this tool
Freight forwarders & 3PLs
Turn every incoming B/L into a shipment record the moment it lands: shipper, consignee, container numbers, and route in columns, matched against the original booking. Faster matching means fewer delayed status updates and fewer late nights re-keying cargo tables before a cutoff.
Import/export & supply chain teams
Verify cargo details against a purchase order or commercial invoice before goods clear customs, without opening every PDF by hand. Consistent, structured B/L data makes a three-way match fast enough to run on every shipment, not just the ones that look suspicious.
Logistics developers (TMS)
The same extraction is available through ParserBee's bill of lading API: send a file over REST, receive structured JSON. It is the fastest way to add B/L ingestion to a TMS, a customs broker portal, or an internal freight tool without building document parsing and OCR from scratch.
From single documents to a pipeline
The free tool above parses one bill of lading at a time, which is right for evaluating quality. Freight does not arrive one document at a time, though. With a ParserBee account, the same parser becomes a pipeline: bills of lading are processed in volume, and every result is delivered wherever your ops team works, a Google Sheet, your TMS or ERP through Zapier, Make, or n8n, or your own systems through the API and webhooks. Export to Excel, CSV, or Google Sheets on your terms; set the destination once, and every future B/L follows it.
From one B/L to an automated freight pipeline.
A free ParserBee account turns this tool into an automated flow: bills of lading go in, shipment-ready rows come out, delivered to the systems you already run freight through.
B/Ls arrive
Batch upload, or send B/Ls straight from your inbox or scanner.
ParserBee extracts
Every B/L becomes the same structured shipment record, automatically.
Ops happens
Your TMS or ERP via Zapier/API, Google Sheets natively, or the REST API.
Frequently asked questions.
Is the bill of lading parser really free?
Which file formats and B/L types does it support?
Are uploaded bills of lading stored anywhere?
How do I export B/L data to Excel, CSV, or Google Sheets?
Does it separate the consignee from the notify party correctly?
What is the difference between an original and a telex release bill of lading, and can the parser handle both?
Can I connect this to my TMS or ERP system?
Clear cargo faster, without the manual entry.
Parse your next bill of lading free above. When shipments pick up, a free ParserBee account turns the same parser into an automated pipeline into your TMS, ERP, or spreadsheet.