Skip to main content

Extract data from shipping manifests

A shipping manifest is the single list of everything a carrier is moving on one conveyance. Where a Bill of Lading covers one consignment and a packing list covers the cartons inside one shipment, the manifest sits one level up: it enumerates every consignment loaded onto a named vessel, aircraft, or truck for a given voyage. A liner agent closing out the EVER LEADER on voyage 132W out of CNSHA Shanghai files a cargo manifest listing hundreds of consignments across dozens of containers, and a US Customs unit ingests the same data as a CUSCAR declaration before the ship berths at USLAX Los Angeles. Each manifest line ties a consignment to its shipper, consignee, container and seal, package count, gross weight, and HS commodity code, so the manifest is what a port agent, a consolidator, and a customs authority all read to know what is aboard. Scale and heterogeneity live in one document. A manifest can carry a single house consignment or several hundred, and the granularity shifts between the header, the conveyance, the carrier, the ports, the voyage, and the repeating consignment block. Container numbers follow ISO 6346, yet a single manifest mixes 20GP, 40HC, and reefer units, and a consignment can span two containers or share one with three others. Gross mass appears per line in kilograms on an ocean manifest and in pounds on a domestic parcel manifest, package type codes follow UN/ECE Recommendation 21, and freight terms toggle between prepaid and collect per consignment. A consolidated manifest interleaves master and house references that a downstream system has to keep linked. Talonic reads the manifest and returns the conveyance header once, then every consignment as a structured row carrying its shipper, consignee, notify party, container and seal, package count and type, gross weight, measurement, and commodity code. Container identifiers are checked by their ISO 6346 check digit, weights are normalized to a canonical value with an explicit unit, and prepaid versus collect stays on each line. A manifest for hundreds of consignments closing 2026-04-12 arrives as a row per consignment that a port community system or a customs filing can load, whether the source is a clean carrier PDF or a scanned agent copy.

What gets extracted from shipping manifests

Manifest NumberMAN-2026-132W
Manifest Date2026-04-12
CarrierOceanic Lines Ltd.
Vessel / VoyageEVER LEADER / 132W
Port of LoadingCNSHA Shanghai
Port of DischargeUSLAX Los Angeles
ConsignmentsArray: shipper, consignee, container, packages, gross weight, HS code
Container / SealMSKU7654321 / 40HC / seal 0099213
Total Packages640
Freight TermsPrepaidToggles per consignment

How extraction works for shipping manifests

Shipping manifests come off carrier and terminal operating systems, consolidator TMS platforms, and forwarder software, so an ocean cargo manifest, an air consolidation manifest, and a domestic parcel manifest carry the same idea in different layouts. Talonic classifies the document and maps it to the transport model in the Field Registry, which holds the conveyance header once and the repeating consignment block as a linked array rather than a flat table. Container identifiers are checked against the ISO 6346 check digit, gross mass is normalized to a canonical value plus an explicit unit, and package type codes follow UN/ECE Recommendation 21. Master and house references are kept linked when a consolidation shows both. Each value returns with a confidence score and a pixel-region pointer into the source page under DIN SPEC 91491, so a port agent or a customs filer can verify a container or a weight against the manifest before the vessel is worked.

Sample extraction

A cargo manifest with two consignments on one voyage

{
  "document_number": "MAN-2026-132W",
  "document_date": "2026-04-12",
  "carrier": "Oceanic Lines Ltd.",
  "vessel_name": "EVER LEADER",
  "voyage_number": "132W",
  "port_of_loading": "CNSHA Shanghai",
  "port_of_discharge": "USLAX Los Angeles",
  "currency": "USD",
  "total_packages": 640,
  "total_weight": 9860,
  "weight_unit": "KG",
  "freight_and_charges": "Prepaid",
  "line_items": [
    {
      "consignee": "Acme Imports LLC",
      "container_number": "MSKU7654321",
      "container_type": "40HC",
      "seal_number": "0099213",
      "number_of_packages": 288,
      "package_type": "CTN",
      "gross_mass": 4820,
      "commodity_code": "8479.89"
    },
    {
      "consignee": "Harbor Retail Group",
      "container_number": "TCLU4412208",
      "container_type": "40HC",
      "seal_number": "0099244",
      "number_of_packages": 352,
      "package_type": "CTN",
      "gross_mass": 5040,
      "commodity_code": "8518.22"
    }
  ]
}

Frequently asked

How is a manifest different from a Bill of Lading?

A shipping manifest lists every consignment on one conveyance, while a Bill of Lading covers a single consignment and can act as a document of title. Talonic reads each on its own schema.

Does it handle hundreds of consignments on one manifest?

Yes. The consignment block returns as an ordered array, so a manifest covering 340 consignments comes back as 340 rows, each with its shipper, consignee, container, package count, and gross weight.

Are the container numbers validated?

Container identifiers are checked against the ISO 6346 check digit during extraction, and a mismatch is flagged in the confidence output so a port agent can verify against the physical unit.

Can it read a customs cargo manifest?

Yes. A cargo declaration filed as a CUSCAR or an IFTMIN message rendered to PDF reads through the same schema. Native EDIFACT message ingest runs through a separate API path.

Author note

Reviewed by Talonic engineering · last reviewed 2026-07-07