Air waybill extraction API
Upload an air waybill. Get structured JSON—validated.
A developer API that turns MAWB/HAWB PDFs and scans into a fixed schema, with IATA Mod-7 check digits and weight sanity checks built in.
Credit packs check out via Creem now. Public extraction API & interactive playground are coming soon—see a static before/after below.
One schema
Same JSON for Master (MAWB) and House (HAWB). Not courier labels. Not general document AI.
Mod-7 + weights
IATA AWB check digit and chargeable_kg ≥ gross_kg run on every response.
Review flags
Failed checks or low confidence set needs_review: true—so bad rows don’t land silently.
Who this is for
Freight forwarders, customs brokers, and cargo TMS teams that already receive air-waybill PDFs (or phone photos) and need fields in a database or workflow—not another generic OCR playground.
Core fields
| Field | Notes |
|---|---|
document_type | Always air_waybill |
awb_level | mawb | hawb | unknown |
awb_number | 11-digit airline AWB (XXX-XXXXXXXX) |
hawb_number | House number when present |
issue_date | ISO date when readable |
shipper_name / consignee_name | Party names |
airport_dep / airport_dest | Prefer IATA three-letter codes |
flight_number / flight_date | When printed on the form |
pieces | Piece count |
gross_kg / chargeable_kg | Weights in kg |
charges_payment | e.g. prepaid / collect when present |
field_confidence | Per-field confidence hints |
validations | Rule results (Mod-7, weights) |
needs_review | true when validators fail or confidence is low |
Validations (product, not garnish)
- AWB Mod-7 — last digit of the 11-digit number must equal the serial mod 7 (IATA).
chargeable_kg ≥ gross_kg— usual volumetric pricing constraint; failures flag review.- Low-confidence or failed checks set
needs_review: true.
More detail: AWB check digit (Mod-7) · MAWB vs HAWB
Before & after
Sample public MAWB (Ethiopian Airlines / Against Malaria fixture) → structured JSON with Mod-7 and weight validators. Illustrative extract—not a live API call.
{
"document_type": "air_waybill",
"awb_level": "mawb",
"awb_number": "071-12760786",
"hawb_number": null,
"issue_date": "2006-05-27",
"shipper_name": "International Federation of Red Cross…",
"consignee_name": "Ethiopia Red Cross Society…",
"airport_dep": "DXB",
"airport_dest": "ADD",
"flight_number": null,
"flight_date": null,
"pieces": "60",
"gross_kg": "2520",
"chargeable_kg": "2520",
"charges_payment": "prepaid",
"field_confidence": { "awb_number": 0.95 },
"validations": {
"awb_check_digit_ok": true,
"chargeable_gte_gross": true
},
"needs_review": false
}
Curl example
Public API endpoint — coming soon
curl -sS -X POST "https://getdocapi.com/v1/extract/awb" \
-H "Authorization: Bearer <api_key>" \
-F "file=@./sample-mawb.pdf;type=application/pdf"
Marketing site is live. The extraction API at this path is not public yet—contract shown for integrators planning ahead.
Example response
{
"document_type": "air_waybill",
"awb_level": "mawb",
"awb_number": "071-12760786",
"hawb_number": null,
"issue_date": "2006-05-27",
"shipper_name": "…",
"consignee_name": "…",
"airport_dep": "DXB",
"airport_dest": "ADD",
"flight_number": null,
"flight_date": null,
"pieces": "60",
"gross_kg": "2520",
"chargeable_kg": "2520",
"charges_payment": "prepaid",
"field_confidence": { "awb_number": 0.95 },
"validations": {
"awb_check_digit_ok": true,
"chargeable_gte_gross": true
},
"needs_review": false
}
Pricing teaser
Free
100 / month
- No card required
- Playground + API
Pay as you go
$0.12 / AWB
- After free quota
- No monthly minimum
Credit packs
from $12
- $12 → 100 docs
- $50 → 500 docs
Full pricing → · Credit packs: Buy with Creem.
Accuracy note
FAQ
MAWB vs HAWB—do I need two endpoints?
No. One endpoint, one schema. See MAWB vs HAWB extraction.
Does this replace EDI / FWB?
No. If you already receive clean FWB/EDI, keep using it. This API fills the PDF and scan gap—pre-alerts, emailed copies, phone photos.
Courier labels (DHL/UPS/FedEx)?
Out of scope for v1. Those are parcel waybills / shipping labels, not IATA air waybills.
Ocean B/L or ASN?
Out of scope. Different document family; may come later as separate extractors.