Logistics extraction

Every shipment.Tracked from the dock.

BOLs, packing lists, customs forms, dock receipts. Shipper, consignee, container, weights, HS codes — extracted from any carrier in any layout.

100 pages free No card SOC 2 in progress
app.docparse.io / extractions / bol-msku-887421.pdf
Live
BILL OF LADING #BOL-887421
Maersk · Shanghai → Long Beach
ShipperHangzhou Trading Co.
ConsigneeNorthwind Logistics
ContainerMSKU 8873421-2
VesselEVER GOLDEN / 042E
Gross weight18,420 kg
HS code8542.31.0001
JSONCSVWebhook98.6% confidence
{
  "bol_no": "BOL-887421",
  "shipper": "Hangzhou Trading Co.",
  "consignee": "Northwind Logistics",
  "container_no": "MSKU 8873421-2",
  "vessel": "EVER GOLDEN",
  "gross_weight_kg": 18420,
  "hs_code": "8542.31.0001",
  "port_of_load": "CNSHA"
}
Extracted in 2.4s · 8 fields
Scroll
Pipe extracted data into any of these — via Zapier or signed webhooks
Zapier
Google Drive
Gmail
Slack
Sheets
Notion
Airtable
Webhook
Zapier
Google Drive
Gmail
Slack
Sheets
Notion
Airtable
Webhook
Why DocParse

Three reasons teams switch to us

01

Every carrier, one schema

Maersk, MSC, Hapag-Lloyd, ZIM, ONE, CMA CGM and 80+ regional carriers. One JSON schema regardless of carrier layout.

86carriers tested
02

HS codes and customs-ready

Extracts HS codes, country of origin, declared value, and incoterms. Auto-validates against current tariff schedules.

HS-2024tariff schedule built in
03

Multi-doc shipment view

BOL + packing list + customs form stitched into one shipment record. Discrepancies surfaced at the line level.

4-docshipment graph stitched
How it works

From raw bill of lading
to structured data, in four steps.

Drop document, paste URL, or POST file
PDFPNGJPGTIFFDOCXHEICHTMLEMLXLSX
The schema

Starter schema for bill of lading.
Tweakable in seconds.

The bill of lading template comes with a 10-field starter schema based on the most common fields teams pull from bill of lading. Add your own fields, mark which are required, and change types in the dashboard or via the REST API.

Bill of lading · default schema
bol_nostringrequired99.7%
shipperstringrequired99.3%
consigneestringrequired99.4%
container_nostringrequired99.8%
vesselstringoptional98.9%
voyagestringoptional98.6%
port_of_loadstringrequired99.6%
port_of_dischargestringrequired99.5%
gross_weight_kgnumberrequired98.4%
hs_codestringoptional97.8%
JSON SchemaTypeScriptPython
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Billoflading",
  "type": "object",
  "required": [
    "bol_no",
    "shipper",
    "consignee",
    "container_no",
    "port_of_load",
    "port_of_discharge",
    "gross_weight_kg"
  ],
  "properties": {
    "bol_no": {
      "type": "string"
    },
    "shipper": {
      "type": "string"
    },
    "consignee": {
      "type": "string"
    },
    "container_no": {
      "type": "string"
    },
    "vessel": {
      "type": "string"
    },
    "voyage": {
      "type": "string"
    },
    "port_of_load": {
      "type": "string"
    },
    "port_of_discharge": {
      "type": "string"
    },
    "gross_weight_kg": {
      "type": "number"
    },
    "hs_code": {
      "type": "string"
    }
  }
}
What to expect

Field-level accuracy per field.

Multi-modal models do the reading, and accuracy depends on document quality. The numbers below are illustrative ranges we've seen on bill of lading — run your own documents and compare against a small ground-truth set before you scale.

98.6%
illustrative field-level
accuracy ceiling
10starter fields
Anylanguage supported
25 MBmax file size
FieldAccuracy
bol_no
99.7%
shipper
99.3%
consignee
99.4%
container_no
99.8%
gross_weight_kg
98.4%
hs_code
97.8%
port_of_load
99.6%
vessel
98.9%
The API

One endpoint.
Every output you need.

# Extract with one POST
curl -X POST "https://api.docparse.io/v1/bols" \
  -H "Authorization: Bearer $DOCPARSE_KEY" \
  -F file=@"bol-msku-887421.pdf" \
  -F schema="bol" \
  -F webhook="https://api.acme.co/incoming"

# Returns:
{
  "status": "complete",
  "confidence": 0.987,
  "latency_ms": 2412,
  "data": { ... }
}

Plain HTTP, no SDK lock-in

Bearer-token auth with revocable, SHA-256-hashed API keys. Call it from any language that can hit a REST endpoint — we publish docs and copy-pasteable snippets, not opinionated wrappers.

cURLPythonNode.jsGoRubyPHPJava.NET

Signed webhooks for async

Register an endpoint, set the events, and we POST signed deliveries (HMAC-SHA256, Standard Webhooks spec) as extractions finish. Every attempt is logged in the dashboard with response code, body, and timing.

Webhook delivery log · per-endpoint retries
The alternatives

Why teams switch from regex.

A look at how DocParse compares to the three things you've probably already tried.

Regex + scripts
Manual review (BPO)
Cargosnap / DocAI
DocParse
Works on a layout it has never seen
partial
Handles handwriting and scans
partial
Custom fields without per-vendor setup
Multi-lingual out of the box
partial
REST API + signed webhooks + Zapier
partial
partial
Pricing scales with pages, not seats
partial
Free tier, every month, forever
partial
Time-to-first-extraction
Days
Days
Weeks
5 minutes
Where the data goes

Reach the tools you already run.

DocParse ships two integration surfaces directly — REST API and signed webhooks — plus a native Zapier app that opens up everything else.

Zapier
Automation
Webhooks
API
REST API
API
JSON export
Export
CSV export
Export
Google Drive
via Zapier
Google Sheets
via Zapier
Gmail
via Zapier
Outlook
via Zapier
Slack
via Zapier
Dropbox
via Zapier
Airtable
via Zapier
Notion
via Zapier
HubSpot
via Zapier
Salesforce
via Zapier
Make.com
via Webhooks
n8n
via Webhooks
Postgres
via Webhooks
REST API · Signed webhooks (HMAC-SHA256) · Zapier to 6,000+ apps · JSON / CSV export
Common patterns

How teams use DocParse for bill of lading.

Illustrative scenarios drawn from teams piloting DocParse — names and figures are examples, not customer quotes.

BOLs from 60 forwarders, 12 carriers, 8 languages — DocParse normalizes them into one schema. Our TMS team stopped writing per-carrier parsers.

AV
Ari Varga
Head of Logistics · Northwind
60forwarders, one schema

Customs holds dropped 80% in our first quarter. The HS-code validation catches errors before the broker sees them.

ON
Olu Nakamura
Trade Compliance · Tarn
−80%customs holds

The discrepancy detection between BOL and packing list saved us $340k in disputed shortages last year.

CB
Cleo Bryant
Operations Director · Tidemark
$340krecovered in shortages
Frequently asked

The questions teams ask before they sign up.

BOLs are not a special case anymore.

Every carrier, every layout, one schema. Wire it into your TMS in an afternoon.

Free for first 100 pages 5-minute setup No credit card