Logistics
Bills of lading document what is being shipped, by whom, and to where. They serve as a receipt, a contract of carriage, and sometimes a document of title. Sensible turns BOL data into structured JSON for shipment tracking, freight audit, and trade compliance.
Validated JSON
Schema-enforced output; every field matches your contract
Source coordinates
Every value links back to page + bounding box for audit
Per-document pricing
Predictable cost. No token-volatility surprises
Trusted by teams turning documents into production data






BOLs arrive as faxes, photos, and low-resolution scans. Domestic straight BOLs look nothing like ocean BOLs. Format variability and document quality make this a natural fit for hybrid extraction.
01
The shipper, consignee, notify party, and bill-to fields occupy similar positions across different carrier forms but swap locations. A shipper field on one carrier's BOL sits where the consignee field goes on another. Sensible identifies the correct entity for each role based on context, not just position.
02
Domestic straight BOL. Ocean bill of lading. Multimodal transport document. Same name, entirely different structures. The hybrid approach (LLM flexibility for layout variation, SenseML rules for consistent output) handles all three.
03
Handling units, freight class, NMFC codes, weights, dimensions, hazmat indicators: all packed into compact cargo rows. Each line item gets extracted with its full detail, even when columns shift or merge across carriers.
Managed services
Solutions engineers handle plan, build, deploy, and adjust on your behalf. You see clean JSON in your API response. Same engine as self-serve, just with the configuration work outsourced.
What's included
01Plan.Engineers review your samples and pick the right method
02Build.SenseML configs written from your samples
03Deploy.Same engine as self-serve, ready for production
04Adjust.We update configs when formats shift or new edge cases appear
05Integrate.Help with custom integration into your downstream systems
Every bill of lading is different, so we build the config around your exact schema rather than a fixed list. These are the fields logistics teams request most; we map whatever else your TMS or freight-audit workflow needs.
01
Parties
Shipper name/address, consignee name/address, carrier name, notify party, third-party billing, broker name
02
Cargo
Handling units, package type, weight, dimensions, freight class, NMFC number, commodity description, declared value, hazmat indicator
03
Shipment
BOL number, PRO number, PO number, ship date, delivery date, freight terms (prepaid/collect), equipment type, seal number
config.json
SenseML
{ /* SenseML: bill of lading extraction */
"fields": [
{
"method": {
"id": "queryGroup",
"queries": [
{ "id": "bol_number", "description": "bill of lading number, BOL #, B/L number" },
{ "id": "shipper", "description": "shipper name, shipper, ship from" },
{ "id": "consignee", "description": "consignee name, consignee, ship to, deliver to" },
{ "id": "total_weight", "description": "total weight, gross weight, weight" }
// + more fields, mapped to your schema
]
}
}
]
}Common BOL formats can be found in Sensible's logistics template library. Domestic, ocean, and multimodal variants can be custom configured to match your freight workflows.
Straight BOL (non-negotiable), order BOL (negotiable), uniform straight BOL, short form BOL
Master ocean BOL, house ocean BOL, multimodal BOL, through BOL, combined transport document
Answers about BOL types, cargo table extraction, and document quality handling.
For ocean BOLs, container numbers, seal numbers, vessel name, voyage number, port of loading, port of discharge, and place of delivery come back by default. These are the common ocean fields, not the limit. Because extraction is defined in configuration, you add, drop, or reshape what gets pulled to match your schema.
Shipper, consignee, carrier, notify party, and third-party billing all come back, including company names, addresses, and contact details. If a BOL carries a party role you don't see here, the configuration is extended to capture it. You extract whatever you define.
By default Sensible captures handling units, package type, weight, dimensions, freight class, NMFC number, commodity description, and declared value for each line item. The fields live in configuration, so you can add ones specific to your freight or trim down to the cargo data your workflow actually uses.
The defaults cover BOL number, PRO number, PO number, ship date, delivery date, freight terms, the shipper and consignee, the carrier, and special instructions. That's a starting set you control in configuration. Add the shipment fields your downstream system expects, or drop the ones it ignores.
Yes. Sensible sends extraction results to your webhook endpoint when processing completes. You can also poll the API for status.
Yes. Sensible flags extractions with low confidence for human review. You can configure review thresholds and workflows.
Sensible is SOC 2 Type II certified and HIPAA compliant. Data is encrypted in transit and at rest.
Document data is stored indefinitely by default. Custom retention policies are available and can be configured for same-day deletion if needed.
Yes. Sensible offers a 14-day free trial on the Growth plan. No credit card required to start.
Sensible uses per-document pricing for predictable costs. No token-based billing or usage surprises. Volume discounts are available for higher throughput.
Sensible provides REST APIs and SDKs for Python and Node.js. Most integrations take a few hours. Webhooks, Zapier, and direct API calls are all supported.
Sensible processes PDFs (native or scanned), Microsoft Word (DOC, DOCX), spreadsheets (XLSX, XLS, CSV), single-page images (JPEG, PNG), multi-page images (TIFF), and email bodies with attachments.
Accuracy depends on document quality and configuration. Most production deployments achieve 95%+ accuracy with proper validation rules and confidence signals.
Processing speed depends on document size, page count, OCR requirements, and which extraction methods are used. Simple single-page documents process in seconds. Larger or more complex documents that use LLM-based extraction take longer.
Start free
Free 14-day trial. No credit card required. Start extracting in minutes.