Free shipping order OCR

Upload a shipping order, bill of lading or packing list and extract the shipper, consignee, cargo and container details as structured data, free. It reads PDFs, scans and photos in any carrier's layout, with no template and no account needed.

Upload your shipping orderTake a photo or pick a PDF, up to 10 MB
  • Free
  • No sign-up, no card
  • Download as Excel, CSV or JSON

We keep the first page and the result for 7 days to run and improve this tool, then delete them. The rest of your file is not stored. Privacy policy

Sample. Every value is invented.
Sample shipping order from Harbourline Freight
{
  "booking_number": "BKG-0048213",  "shipper": "Harbour Tools Ltd",  "consignee": "Brightwater Ltd",  "port_of_loading": "Sampleport"}
  • Any layout, no template

    It works out the fields from the page itself, so there's nothing to set up.

  • Scans and phone photos

    Digital PDFs, scanned pages and photos all go through the same way.

  • Structured, not just text

    Named fields and table rows you can download as Excel, CSV or JSON, not a wall of OCR text.

  • An API when you need it

    The same data from your own code, as the sample call further down shows.

What the free shipping document extractor reads

  • Parties: shipper, consignee, notify party, forwarder and carrier.
  • Routing: vessel, voyage, port of loading, port of discharge and place of delivery.
  • Numbers: booking number, order number, B/L number, container and seal numbers.
  • Cargo: description, HS code, packages, gross weight and volume.
  • Terms: Incoterms, freight terms, dates of shipment and delivery.

Types of shipping document you can upload

Shipping documents and their other names
DocumentAlso calledFields people want
Shipping orderShipping instruction, booking confirmation, SIBooking number, parties, cargo
Bill of ladingB/L, BoL, sea waybill, house and master billB/L number, containers, ports
Air waybillAWB, MAWB, HAWBAWB number, airports, weight
Road and railCMR, consignment note, lorry receipt (LR), railway receiptCarrier, consignor, consignee
Packing listPacking slip, weight listCartons, weights, dimensions
Delivery noteDelivery order (DO), proof of delivery (POD), goods received noteItems, receiver, date
Commercial invoiceExport invoice, customs invoiceValue, HS code, Incoterms
Customs entryBill of entry, shipping bill, goods declaration (GD)Declaration number, duty, HS code

Shipping paperwork by region

Regional shipping and customs terms
RegionLocal documentsReferences printed
PakistanGoods declaration (GD), WeBOC entries, delivery orderGD number, NTN, IGM number
IndiaShipping bill, bill of entry, lorry receipt, e-way billIEC, GSTIN, e-way bill number
UAE, GulfDelivery order, customs declaration, Dubai Trade entriesBOE number, TRN
United Kingdom, EUCMR, CHIEF or CDS entry, T1 transit, EUR.1EORI, MRN
United StatesStraight BOL, ISF, customs entry 7501SCAC, PRO number, EIN
China and East AsiaExport declaration, sea waybillCustoms number, HS code

Container numbers and multi-page bills

Container and seal numbers are easy to mistype and expensive to get wrong, so they're the first fields to check in any result. A long shipment often lists its containers and cargo on rider pages after page 1, which is where a free account comes in: it reads every page and joins the rows.

Shipping orders aren't a built-in document type yet, so an account reads each carrier's format through a workflow built from one sample. Logistics and freight covers the full document set.

Sample API call

This is how the same shipping order looks from your own code. wf_demo_shipping_order is a dummy workflow id and every value below is invented, so the call won't run as written. A real run reads every page and adds a confidence score and page position to each field.

Run a workflow, then read the result
curl -X POST "$DOCREFINERY_API/v1/workflows/wf_demo_shipping_order/run" \
  -H "Authorization: Bearer $DOCREFINERY_API_KEY" \
  -F "[email protected]"

# Take trace_id from the answer, then poll until status is "fulfilled"
curl "$DOCREFINERY_API/v1/runway/9f1c0a7e" \
  -H "Authorization: Bearer $DOCREFINERY_API_KEY"
Response (invented values)
{
  "trace_id": "9f1c0a7e",
  "status": "fulfilled",
  "document_type": "shipping_order",
  "result": {
    "fields": [
      {
        "key": "booking_number",
        "alias": "Booking Number",
        "text": "BKG-0048213",
        "field_confidence": 0.99,
        "location": { "page": 1, "bbox": [0.08, 0.12, 0.46, 0.14] }
      },
      {
        "key": "shipper",
        "alias": "Shipper",
        "text": "Harbour Tools Ltd",
        "field_confidence": 0.98,
        "location": { "page": 1, "bbox": [0.08, 0.17, 0.46, 0.19] }
      },
      {
        "key": "consignee",
        "alias": "Consignee",
        "text": "Brightwater Ltd",
        "field_confidence": 0.97,
        "location": { "page": 1, "bbox": [0.08, 0.22, 0.46, 0.24] }
      },
      {
        "key": "containers",
        "alias": "Containers",
        "table": [
          [
            { "key": "container", "alias": "Container", "text": "SMPU 000000-0" },
            { "key": "seal", "alias": "Seal", "text": "SL-00012" },
            { "key": "type", "alias": "Type", "text": "40HC" }
          ]
        ]
      }
    ],
    "extraction_approval": "auto",
    "low_confidence_fields": []
  }
}

Make it run on your own shipping order

  1. Create a free account.
  2. Upload one sample under Workflows, keep the fields you want and save. That gives you a real workflow id.
  3. Create an API key under Settings. Keys are switched on per account, so ask us if you don't see the option.
  4. Set DOCREFINERY_API and DOCREFINERY_API_KEY as in the quickstart, and swap in your id.

Free try or free account?

Free try and free account, compared
FeatureFree tryFree account
Pages readPage 1Every page
Allowance5 tries a day100 pages a month
File sizeUp to 10 MBUp to 100 MB
How it readsFinds the fields on the pageA workflow built from one sample
CheckingCompare with your pageConfidence scores and page citations
OutputFields on screen, download as Excel, CSV or JSONExcel, CSV and JSON for every page, and API keys on request

Common questions

Can I extract a bill of lading for free?

Yes. Upload the first page and the parties, ports, containers and cargo come back as structured fields. You get 5 free tries a day with no account or card.

Does it work with every shipping line?

It isn't tied to a list of carriers. It reads what's on the page, so a bill from any carrier or forwarder goes through the same way. Check container numbers against the original.

Can it read an air waybill, CMR or packing list?

Yes. Any shipping document works, including air waybills, CMR notes, packing lists and delivery orders. The tool works out the fields from the page itself.

Can I send shipping documents through an API?

Yes. A free account can save a workflow for each format and run it through the API. API keys are switched on per account, and results export as JSON, CSV and XLSX.

Related

Try it on your own shipping order.

Free, with no sign-up and no card.