maersk.com APImaersk.com ↗
Access Maersk fleet data, active ports, container tracking, and 200+ shipping routes via a single API. Covers vessel IMO numbers, UN location codes, and transit times.
curl -X GET 'https://api.parse.bot/scraper/0bef50e0-3839-4914-bb15-ebb7793a5b7d/get_container_tracking?tracking_number=MSKU0123456' \ -H 'X-API-Key: $PARSE_API_KEY'
Retrieve container tracking information by container number. Note: This endpoint is subject to strict Akamai protection and may be intermittently unavailable.
| Param | Type | Description |
|---|---|---|
| tracking_numberrequired | string | Container number or Bill of Lading number |
{
"type": "object",
"fields": {
"containers": "array"
},
"sample": {
"status": "blocked",
"message": "Blocked by ip_ban",
"block_type": "ip_ban"
}
}About the maersk.com API
This API exposes 10 endpoints covering Maersk's global fleet, port network, and shipping route catalog. You can retrieve the full list of active vessels with IMO numbers and flag countries via list_active_vessels, search 200+ routes across 25 categories, resolve port identifiers including UN location codes and Maersk-internal port codes, and track containers by number or Bill of Lading. Response fields span geographic coordinates, call signs, route slugs, and port sequences with transit times.
Fleet and Port Data
list_active_vessels returns every vessel currently active in the Maersk fleet. Each object includes vesselMaerskCode, vesselName, vesselIMONumber, flagISOCountryCode, and callSign — enough to cross-reference against AIS feeds or build vessel directories. list_active_ports covers all ports Maersk serves worldwide, with isoCountryCode, countryName, unLocationCode, cityName, portName, portCode, and regionCode per port entry.
Location Search and Geo Identifiers
search_locations accepts a city_name string and returns up to 25 matching results sorted alphabetically. Each result includes latitude, longitude, unLocCode (may be null for some entries), countryCode, countryName, and the Maersk-specific maerskGeoLocationId. This identifier is useful for correlating locations with route and port data elsewhere in the API.
Route Discovery and Detail
The routing surface has four complementary endpoints. list_all_routes returns 200+ routes with names, slugs, and categories in a single call, along with a category_summary array. list_route_categories enumerates all 25 categories — feeder, intra-regional, and cross-regional — and provides category_slug values for use with list_routes_by_category. get_route_details takes a route_code slug (for example cae-eastbound) and returns the full ordered port sequence with transit times and a port_count. For country-level queries, get_country_routes accepts a region slug (e.g. europe) and a country name (e.g. germany) and returns matching routes with their full port sequences.
Container Tracking
get_container_tracking accepts a tracking_number — either a container number or Bill of Lading number — and returns a containers array with tracking events and status data. This endpoint is subject to stricter protection than the others and may be intermittently unavailable; applications that depend on it should implement retry logic and handle failure states gracefully.
- Build a shipment status dashboard by polling
get_container_trackingwith Bill of Lading numbers from an order management system. - Populate a port directory with UN location codes and region data from
list_active_ports. - Resolve city names to Maersk geo location IDs using
search_locationsbefore querying route data. - Generate a map of all active Maersk vessels with flag country filtering using data from
list_active_vessels. - Enumerate all routes touching a specific country by calling
get_country_routeswith the relevant region and country slug. - Build a route search feature for a logistics tool using
search_routesto match against route names, slugs, and category keywords. - Cross-reference Maersk port codes against internal warehouse location tables using
portCodeandunLocationCodefromlist_active_ports.
| 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 | 250 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 Maersk have an official developer API?+
What does `get_container_tracking` actually return, and how reliable is it?+
containers array containing tracking events and status information for a given container number or Bill of Lading. It is explicitly noted as subject to strict Akamai protection, meaning responses can be intermittently unavailable regardless of valid input. Applications should treat a failed response as retriable rather than terminal.Does `search_locations` always return a UN location code?+
unLocCode field in search results may be null for some locations. The maerskGeoLocationId and countryCode fields are consistently populated and can serve as fallback identifiers when unLocCode is absent.Does the API expose vessel schedules or port ETAs?+
Can I filter `list_all_routes` by region or port?+
list_all_routes endpoint returns all routes in one payload without server-side filtering parameters. For region-scoped results, use get_country_routes with a region and country input, or use list_routes_by_category with a category slug from list_route_categories. You can also fork the API on Parse and add a filter layer over the full route list.