Docs MenuTap to expand ▼

Ocean FCL Rate Query

Query real-time full container rates by POL + POD. Covers 53 carriers and 1,200+ ports, with 20GP/40GP/40HQ container types, surcharges, schedules, and validity periods.

Endpoint Info

EndpointPOST /api/openapi/v1/freight/fcl/search
Credit cost1 credits / call
Data freshnessDaily
Timeout suggestionClient timeout ≥ 3s

Request Parameters

FieldTypeRequiredDescriptionExample
polstringYesPort of Loading, accepts 5-letter code (exact) / Chinese / English (fuzzy)Look up code ↗CNSHA / Shanghai
podstringYesPort of Discharge, accepts 5-letter code (exact) / Chinese / English (fuzzy)Look up code ↗USLSA / Los Angeles
carrierstringNoCarrier, accepts code (exact) / Chinese / English (fuzzy)Look up code ↗MSK / Maersk
pageintNoPage number, default 11
limitintNoPage size, default 20, max 5020
pol_countrystringNoOrigin country code (2-letter ISO, optional); pins the country when pol matches multiple same-name portsCN
pod_countrystringNoDestination country code (2-letter ISO, optional). When pod matches multiple same-name ports (e.g. San Antonio in CL/US/AR), without it the endpoint returns rates for all same-name ports and charges per matched port; pass it to pin a single countryUS

Response Fields

FieldTypeDescription
resolved.pol / podobjectEcho of the parsed port (with input as raw input, code as parsed code, name in Chinese, name_en in English), for client confirmation
list[].idstringUnique rate record ID
list[].pol / podobjectPort of Loading / Port of Discharge { code, name, name_en }
list[].carrierobjectCarrier { code, name } (e.g. EMC Evergreen, MSK Maersk, ONE Ocean Network Express)
list[].transitobject{ is_direct: whether direct sailing, days: transit days, port/port_en: transshipment port in Chinese/English }
list[].schedule.cutoff_datestringCut-off date (YYYY-MM-DD; cargo and SI must arrive by this date after booking)
list[].schedule.departure_datestringDeparture date (ETD) (YYYY-MM-DD)
list[].schedule.arrival_datestringEstimated arrival date (ETA)
list[].schedule.vessel_name / voyagestringVessel name / voyage number (may be empty for some carriers)
list[].schedule.service_codestringService route code (carrier-assigned route code, e.g. TP6 = TransPacific route 6; useful for predicting fixed schedules; may be empty for some carriers)
list[].pricesobjectBase ocean freight for three container types { 20GP, 40GP, 40HQ, currency: USD } (includes BAF/EBS)
list[].surchargesarraySurcharge list (THC/DOC/AMS/port charges, etc.) { name, 20GP, 40GP, 40HQ, currency, remark }
list[].valid_untilstringRate validity end date (YYYY-MM-DD)
credit_usedintCredits deducted for this call (FCL fixed at 1)
credit_balanceintRemaining credits after deduction

Full curl Example

# pol / pod accept either 5-letter standard code, Chinese, or English (e.g. "CNSHA" / "上海" / "shanghai")
curl -X POST https://www.5688.cn/api/openapi/v1/freight/fcl/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: 7f8e9d6c5b4a3f2e1d0c9b8a7e6d5c4b3a2f1e0d9c8b7a6e5d4c3b2a1f0e9d8c" \
  -d '{
    "pol": "CNSHA",
    "pod": "USLSA",
    "carrier": "MSK",
    "page": 1,
    "limit": 20
  }'

Successful Response

{
  "code": 0,
  "msg": "success",
  "request_id": "req_xxxxxxxxxxxxxxxx",
  "data": {
    "resolved": {
      "pol": { "input": "CNSHA", "code": "CNSHA", "name": "Shanghai", "name_en": "shanghai" },
      "pod": { "input": "USLSA", "code": "USLSA", "name": "Los Angeles", "name_en": "los angeles,ca" },
      "carrier": null
    },
    "list": [
      {
        "id": "14848",
        "pol": { "code": "CNSHA", "name": "Shanghai", "name_en": "shanghai" },
        "pod": { "code": "USLSA", "name": "Los Angeles", "name_en": "los angeles,ca" },
        "carrier": { "code": "EMC", "name": "Evergreen Marine" },
        "transit": {
          "is_direct": true,
          "days": 16,
          "port": "",
          "port_en": ""
        },
        "schedule": {
          "cutoff_date": "2026-05-23",
          "departure_date": "2026-05-25",
          "arrival_date": "2026-06-10",
          "vessel_name": "EVER GIVEN",
          "voyage": "025E",
          "service_code": "TP6"
        },
        "prices": {
          "20GP": 2300,
          "40GP": 2850,
          "40HQ": 2850,
          "currency": "USD"
        },
        "surcharges": [
          { "name": "Japan Port Operation Surcharge", "20GP": 12, "40GP": 12, "40HQ": 12, "currency": "CNY", "remark": "" }
        ],
        "valid_until": "2026-12-31"
      }
    ]
  },
  "credit_used": 1,
  "credit_balance": 9499
}

Multiple POD matches: rates for all same-name ports

When pod matches multiple same-name ports (e.g. San Antonio in Chile / US / Argentina), the endpoint automatically queries each port and merges the rates; every item in list carries a pod field marking its port, and you are charged per port that returned rates (N ports = N× credits; ports with no rate data are not charged). To narrow to one country, pass pod_country (2-letter ISO code) to pin a single port and pay only once. If pol matches multiple ports, the main port is auto-selected and not expanded.

{
  "code": 0,
  "msg": "success",
  "request_id": "req_xxxxxxxxxxxxxxxx",
  "data": {
    "resolved": {
      "pol": { "input": "Guangzhou", "code": "CNGZG", "name": "Guangzhou", "name_en": "guangzhou" },
      "pod": {
        "input": "San Antonio",
        "matched": [
          { "code": "CLSAN", "name": "San Antonio", "name_en": "san antonio", "country_code": "CL" },
          { "code": "USSAT", "name": "San Antonio", "name_en": "san antonio,tx", "country_code": "US" }
        ]
      },
      "carrier": null
    },
    "multi_pod": true,
    "matched_ports": 2,
    "charged_ports": 2,
    "skipped_ports": 0,
    "total": 2,
    "list": [
      {
        "id": "20015",
        "pod": { "code": "CLSAN", "name": "San Antonio", "country_code": "CL" },
        "carrier": { "code": "MSK", "name": "Maersk" },
        "prices": { "20GP": 1850, "40GP": 3200, "40HQ": 3200, "currency": "USD" }
      },
      {
        "id": "20016",
        "pod": { "code": "USSAT", "name": "San Antonio", "country_code": "US" },
        "carrier": { "code": "ONE", "name": "Ocean Network Express" },
        "prices": { "20GP": 2100, "40GP": 3600, "40HQ": 3600, "currency": "USD" }
      }
    ]
  },
  "credit_used": 2,
  "credit_balance": 9498
}