CMA CGM APIcma-cgm.com ↗
Access CMA CGM's 280+ shipping lines via 2 endpoints. Retrieve port-to-port rotations, vessel fleet data, service frequencies, and route schedules.
What is the CMA CGM API?
The CMA CGM API exposes shipping route and schedule data across 280+ global service lines through 2 endpoints. The get_all_routes endpoint returns a filterable list of services with codes, names, and schedule URLs, while get_route_details delivers full port-to-port rotation sequences, vessel fleet details, and key service figures like frequency and total duration for any specific line.
curl -X GET 'https://api.parse.bot/scraper/09df797a-76eb-4a09-9334-d60aa9bb95d8/get_all_routes?zone_to=AFR&zone_from=AFR' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace cma-cgm-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.cma_cgm_shipping_routes_api import CmaCgm, Zone
client = CmaCgm()
# Search for routes from Asia to Europe
for summary in client.routesummaries.search(zone_from=Zone.ASIE, zone_to=Zone.WEUR):
print(summary.service_code, summary.service_name, summary.description)
# Get full route details including port rotation and vessels
route = summary.details()
print(route.title, route.description)
for port in route.port_rotation:
print(port.day, port.port, port.country_code, port.country)
for vessel in route.vessels:
print(vessel.vessel_name, vessel.flag)
Get all CMA CGM shipping routes/lines. Optionally filter by origin and destination zones. Returns an empty list when no routes exist for the specified zone combination. Each route includes a service_code usable with the get_route_details endpoint for full port rotation and vessel data.
| Param | Type | Description |
|---|---|---|
| zone_to | string | Destination zone code to filter routes by arrival region. |
| zone_from | string | Origin zone code to filter routes by departure region. |
{
"type": "object",
"fields": {
"total": "integer - total number of routes returned",
"routes": "array of route objects with service_code, service_name, description, schedule_code, type, schedule_url"
},
"sample": {
"data": {
"total": 9,
"routes": [
{
"type": 3,
"description": "North Europe - Middle East/India",
"schedule_url": "/ebusiness/schedules/line-services/schedules/EPIC?zoneFromCode=ASIE&zoneToCode=WEUR",
"service_code": "EPIC",
"service_name": "Europe Pakistan India Consortium (EPIC)",
"schedule_code": "EPIC"
}
]
},
"status": "success"
}
}About the CMA CGM API
Route Discovery and Zone Filtering
The get_all_routes endpoint returns a list of CMA CGM shipping services, each containing a service_code, service_name, description, schedule_code, type, and schedule_url. You can narrow results using the zone_from and zone_to parameters, which accept standardized zone codes: AFR (Africa), ASIE (Asia), CARAIBES (Caribbean and Central America), WEUR (Western Europe), and others. When no routes exist for a given zone combination, the endpoint returns an empty list rather than an error, so callers can safely iterate across zone pairs.
Detailed Route Data
Passing a service_code (such as FAL, AMERIGO, or EGY3PF) to get_route_details returns the full rotation for that service. The port_rotation array lists each port stop with day, port, country, country_code, and port_code, giving a numbered sequence of calls in order. The vessels array includes each ship's vessel_name, imo, flag, and capacity_teu. The key_figures object surfaces structured metadata such as frequency, vessel fleet count, number of ports of call, and total service duration.
Coverage and Scope
Service codes required by get_route_details are obtained from get_all_routes, making the two endpoints complementary. The optional service_name and service_desc inputs on get_route_details improve matching accuracy when a service code maps to multiple candidate pages. The total field in get_all_routes responses confirms the count of routes returned for a given filter combination.
The CMA CGM API is a managed, monitored endpoint for cma-cgm.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when cma-cgm.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official cma-cgm.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a port-pair transit time lookup tool using
port_rotationday numbers fromget_route_details. - Monitor vessel fleet composition and TEU capacity per service line using the
vesselsarray. - Identify all CMA CGM services connecting Asia (
ASIE) to Africa (AFR) using zone filters onget_all_routes. - Aggregate service frequency data from
key_figuresacross all routes to analyze trade lane coverage. - Generate a full list of ports served on a specific rotation using
port_codeandcountry_codefields. - Track which flags and IMO numbers are assigned to vessels operating on a given service.
- Enumerate all active service codes for integration with freight booking or TMS platforms.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does CMA CGM offer an official developer API for schedule data?+
What does `get_route_details` return beyond port names?+
day number, port name, port_code, country, and country_code. It also returns the vessels array with IMO numbers, flags, and TEU capacities, plus a key_figures object with fields like Frequency, Duration, and Ports of Call.Does the API return real-time vessel position or AIS tracking data?+
Can I retrieve historical schedule changes or archived rotations?+
What happens if I filter `get_all_routes` with a zone combination that has no services?+
routes array and a total of 0. It does not return an error, so you can safely loop over zone code pairs without additional error handling for empty results.