International Air Rate Query
Query international air freight rates by origin airport + destination airport. Covers 1,062 international airports with 5-tier weight-graded pricing (45/100/300/500/1000kg + MIN).
Endpoint Info
| Endpoint | POST /api/openapi/v1/freight/air/search |
| Credit cost | 2 credits / call |
| Data freshness | Daily |
Request Parameters
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
| pol | string | Yes | Origin airport, accepts 3-letter IATA code (exact) / Chinese / English (fuzzy)Look up code ↗ | PVG / Pudong |
| pod | string | Yes | Destination airport, accepts 3-letter IATA code (exact) / Chinese / English (fuzzy)Look up code ↗ | LAX / Los Angeles |
| airline | string | No | Airline, accepts 2-letter IATA code (exact) / Chinese / English (fuzzy)Look up code ↗ | CA / Air China |
| weight | number | No | Cargo weight in kg (chargeable weight; tier is matched automatically when provided) | 220 |
| page | int | No | Page number, default 1 | 1 |
| limit | int | No | Page size, default 20, max 50 | 20 |
| pol_country | string | No | Origin country code (2-letter ISO, optional); pins the country when pol matches multiple same-name airports | CN |
| pod_country | string | No | Destination country code (2-letter ISO, optional). When pod matches multiple same-name airports, without it rates for all same-name airports are returned and charged per match; pass it to pin a single country | US |
Response Fields
| Field | Type | Description |
|---|---|---|
| resolved.pol / pod | object | Echo of the parsed airport (with input/code/name/name_en) |
| list[].id | string | Unique rate record ID |
| list[].pol / pod | object | Origin / destination airport (code is the 3-letter IATA, with name / name_en) |
| list[].airline | object | Airline (code, name), e.g. CA Air China / PO Polar Air Cargo |
| list[].transit | object | { is_direct: direct flight, days: flight days, port: transit airport, route_path: e.g. PVG-LAX } |
| list[].price_grades[] | array | Tiered rate array, each tier { min_weight, price_per_kg, currency }, typically 45/100/300/500/1000 kg tiers |
| list[].matched_grade | object | Tier matched by the input weight { min_weight, price_per_kg, total: unit price × weight, currency }; returned only when weight is provided |
| list[].schedule.cutoff | string | Weekly schedule, 1-7 stands for Mon-Sun, comma separated (e.g. 2,3,4,5,6,7 means Tue-Sun have flights) |
| list[].schedule.cutoff_remark | string | Schedule remarks (some airlines have special notes) |
| list[].valid_until | string | Rate validity end date YYYY-MM-DD |
| list[].remark | string | Rate remarks |
| credit_used / credit_balance | int | Credits deducted (AIR fixed at 2) / remaining |
Full curl Example
# pol / pod accept either 3-letter IATA, Chinese, or English (e.g. "PVG" / "浦东" / "Pudong")
curl -X POST https://www.5688.cn/api/openapi/v1/freight/air/search \
-H "Content-Type: application/json" \
-H "X-Awice-AppKey: AK_xxxxxxxxxxxxxxxx" \
-H "X-Awice-Timestamp: 1746086400" \
-H "X-Awice-Nonce: a1b2c3d4e5f6a7b8" \
-H "X-Awice-Signature: 7f8e9d6c5b4a..." \
-d '{
"pol": "PVG",
"pod": "LAX",
"airline": "CA",
"weight": 220,
"page": 1,
"limit": 20
}'Successful Response
{
"code": 0,
"msg": "success",
"request_id": "req_xxxxxxxxxxxxxxxx",
"data": {
"resolved": {
"pol": { "input": "PVG", "code": "PVG", "name": "Shanghai Pudong International Airport", "name_en": "Shanghai Pudong International Airport" },
"pod": { "input": "LAX", "code": "LAX", "name": "Los Angeles International Airport", "name_en": "Los Angeles International Airport" },
"airline": null
},
"total": 15,
"page": 1,
"limit": 20,
"list": [
{
"id": "6346",
"pol": { "code": "PVG", "name": "Shanghai Pudong International Airport", "name_en": "Shanghai Pudong International Airport" },
"pod": { "code": "LAX", "name": "Los Angeles International Airport", "name_en": "Los Angeles International Airport" },
"airline": { "code": "PO", "name": "Polar Air Cargo" },
"transit": {
"is_direct": true,
"days": 1,
"port": "",
"route_path": "PVG-LAX"
},
"price_grades": [
{ "min_weight": 100, "price_per_kg": 36, "currency": "USD" },
{ "min_weight": 300, "price_per_kg": 36, "currency": "USD" },
{ "min_weight": 500, "price_per_kg": 36, "currency": "USD" },
{ "min_weight": 1000, "price_per_kg": 33, "currency": "USD" }
],
"schedule": {
"cutoff": "2,3,4,5,6,7",
"cutoff_remark": ""
},
"valid_until": "2026-12-31",
"remark": "",
"matched_grade": {
"min_weight": 100,
"price_per_kg": 36,
"total": 3600,
"currency": "USD"
}
}
]
},
"credit_used": 2,
"credit_balance": 9496
}Tier matching rules:weight=220kg falls in [100, 300) → matches the 100kg tier at ¥28/kg; weight=35kg falls in [0, 45) → matches the MIN tier (flat 200, not multiplied by weight). matched_* is not returned when weight is omitted.