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.
Public playground & Creem checkout: coming soon. Local playground lives under the API host (not this static site).
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
Curl example
Public host (API not deployed yet)
curl -sS -X POST "https://getdocapi.com/v1/extract/awb" \
-H "Authorization: Bearer <api_key>" \
-F "file=@./sample-mawb.pdf;type=application/pdf"
Local skeleton today: http://127.0.0.1:8787/v1/extract/awb (no auth). Domain getdocapi.com is owned; public HTTPS deploy is still pending.
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 → · Checkout via Creem — coming soon.
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.