One clean record.
Every format reads from it.
Extraction lands in one clean, normalized record — parties, routing, weights, charges, and line items — and JSON, EDI, and spreadsheets are all built from that same record, so they can't disagree with each other.
Pull it as JSON over the API, generate a Cargo-IMP FWB message, or drop it into a spreadsheet. One source of truth, several shapes on the way out.
30 free scans to start · no card required · then pay per scan or pick a plan
One record is the source of truth.
Every document produces a single normalized record — the parties, the routing, the weights, the charges, and each line item, in one canonical shape. The formats you receive are not separate extractions run three times; they are three renderings of that one record. Change nothing, and JSON, EDI, and CSV describe the identical shipment because they read the identical source.
Extract once
The document is read into one normalized record — no per-format keying.
Validate once
Freight-native checks and per-field confidence attach to that record.
Render many
JSON, EDI, and spreadsheet views are generated from the same record.
Stay in sync
Because they share a source, the formats can't drift apart from each other.
Pick the shape your systems already speak.
The same record, three ways out. Each example below is rendered from the record above — the AWB number, route, weights, and codes line up across all of them.
{
"awb_number": "999-12345675",
"origin": "ICN", "destination": "FRA",
"shipper": "NORTHWIND TRADERS CO LTD",
"consignee": "CONTOSO FREIGHT GMBH",
"pieces": 4, "gross_weight_kg": 618.0, "chargeable_weight_kg": 760.0,
"is_consolidation": false,
"confidence": { "document": 0.986, "awb_number": 0.999, "route": 0.994 },
"validation": [
{ "check": "awb_mod7", "result": "pass" },
{ "check": "route_city_match", "result": "pass" },
{ "check": "volumetric_recompute", "result": "pass", "divisor": 6000 }
],
"routing": "auto_cleared" // per-field confidence + validation attached to every response
}
Bearer-authenticated with Owner-issued awbg_… keys. Poll every ~5s — a document typically extracts in 10–40s. XML is available on the same endpoint; payloads shown abridged.
FWB/17 999-12345675ICNFRA/T4K618.0 FLT/MZ713/04 RTG/FRAMZ SHP /NORTHWIND TRADERS CO LTD /1 SAMPLE-RO/SEOUL/KR CNE /CONTOSO FREIGHT GMBH /HAFENSTRASSE 8/FRANKFURT/DE …
FWB v16 and v17 supported today; the architecture accepts FHL, Cargo-XML (XFWB/XFHL), and ONE Record as they're added. AWBGuru generates and returns the message — you transmit it through your own rails. We hold no airline credentials and connect to no carrier network on your behalf.
awb_number,origin,destination,line,pieces,gross_kg,chargeable_kg,hs_code,confidence 999-12345675,ICN,FRA,1,4,618.0,760.0,851762,0.986
CSV and XLSX, one row per line item — drops straight into the workbook your team already runs.
We generate the message. You send it.
AWBGuru renders a standards-shaped Cargo-IMP FWB message from the record and hands it back to you — it never touches a carrier network. You transmit it through the rails you already run, on your own credentials. That keeps the airline relationship, and the transmission log, entirely on your side.
Message generated, not transmitted
AWBGuru returns the FWB/16 or FWB/17 message text. Sending it to a carrier is your step, over your own connection — we hold no airline credentials.
Built to grow into more standards
FWB v16 and v17 are available today. The same architecture is designed to accept FHL, Cargo-XML (XFWB / XFHL), and ONE Record as they're added — without re-plumbing your integration.
Every format reads the record produced by MAWB data extraction and proven by air waybill validation — extraction reads the fields, validation proves them, and outputs render them.
Outputs, answered.
Why can't the JSON, EDI, and CSV disagree with each other?
Because they aren't three separate extractions. One document produces one normalized record; JSON, EDI, and the spreadsheet are all rendered from that single record, so a value that reads one way in the API reads the same way in the FWB message and the CSV.
Do you transmit the FWB message to the airline for me?
No. AWBGuru generates and returns the Cargo-IMP FWB message; you transmit it through your own rails. We hold no airline credentials and connect to no carrier network on your behalf.
Which formats are available today?
JSON and XML over the API, EDI FWB/16 and FWB/17, and CSV and XLSX spreadsheets. The architecture is built to accept FHL, Cargo-XML (XFWB/XFHL), and ONE Record as they're added.
How do I know an extraction is finished?
Poll the document endpoint every few seconds with your bearer key; a document typically extracts in roughly 10 to 40 seconds. When it resolves, the response carries the record plus per-field confidence and validation results.
See your own waybills come out clean.
Start with 30 free scans — no card. Extract one record and pull it as JSON, an FWB message, or a spreadsheet.