Discover/Maersk API
live

Maersk 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.

Endpoint health
verified 7h ago
list_active_vessels
list_active_ports
search_locations
3/3 passing latest checkself-healing
Endpoints
10
Updated
22d ago

What is the Maersk 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.

Try it
Container number or Bill of Lading number
api.parse.bot/scraper/0bef50e0-3839-4914-bb15-ebb7793a5b7d/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
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'
Python SDK · recommended

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 maersk-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.

"""Walkthrough: Maersk Shipping SDK — fleet vessels, ports, and location search."""
from parse_apis.maersk_shipping_api import Maersk, LocationNotFound

client = Maersk()

# List active fleet vessels — each has IMO number, flag country, call sign.
for vessel in client.vessels.list(limit=5):
    print(vessel.name, vessel.imo_number, vessel.flag_country_code)

# List active ports worldwide — UN location codes and country info.
for port in client.ports.list(limit=5):
    print(port.port_name, port.un_location_code, port.country_name)

# Search locations by city name — returns geo-identifiers and coordinates.
location = client.locations.search(city_name="Rotterdam", limit=1).first()
if location:
    print(location.city_name, location.country_name, location.latitude, location.longitude)

# Typed error handling: catch when a city search yields nothing.
try:
    results = client.locations.search(city_name="Shanghai", limit=3)
    for loc in results:
        print(loc.city_name, loc.geo_location_id, loc.un_loc_code)
except LocationNotFound as exc:
    print(f"No locations found for: {exc.city_name}")

print("exercised: vessels.list / ports.list / locations.search")
All endpoints · 10 totalmissing one? ·

Retrieve container tracking information by container number. Note: This endpoint is subject to strict Akamai protection and may be intermittently unavailable.

Input
ParamTypeDescription
tracking_numberrequiredstringContainer number or Bill of Lading number
Response
{
  "type": "object",
  "fields": {
    "containers": "array"
  },
  "sample": {
    "status": "blocked",
    "message": "Blocked by ip_ban",
    "block_type": "ip_ban"
  }
}

About the Maersk API

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.

Reliability & maintenanceVerified

The Maersk API is a managed, monitored endpoint for maersk.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when maersk.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 maersk.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.

Last verified
7h ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a shipment status dashboard by polling get_container_tracking with 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_locations before 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_routes with the relevant region and country slug.
  • Build a route search feature for a logistics tool using search_routes to match against route names, slugs, and category keywords.
  • Cross-reference Maersk port codes against internal warehouse location tables using portCode and unLocationCode from list_active_ports.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Maersk have an official developer API?+
Yes. Maersk publishes an official developer platform at developer.maersk.com, which includes APIs for shipment tracking, schedules, and booking. The Parse API covers fleet, port, route, and tracking data independently.
What does `get_container_tracking` actually return, and how reliable is it?+
The endpoint returns a 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?+
Not always. The 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?+
Not currently. The API covers vessel identity data (IMO numbers, call signs, flag countries) and static route port sequences with transit times, but does not expose live vessel schedules or port ETA/ETD timestamps. You can fork this API on Parse and revise it to add a schedule-focused endpoint if that data is needed.
Can I filter `list_all_routes` by region or port?+
The 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.
Page content last updated . Spec covers 10 endpoints from maersk.com.
Related APIs in OtherSee all →
cma-cgm.com API
Track shipping routes and vessel schedules across CMA CGM's 280+ shipping lines, including detailed port-to-port rotations, fleet information, and service specifics. Search for specific routes or browse complete shipping schedules to plan logistics and monitor maritime transportation options.
marinetraffic.com API
Track maritime vessels in real-time by searching for ships by name, MMSI, or IMO number, viewing their current positions and navigational status, and accessing detailed specifications and photos. Filter vessels by type to get the maritime intelligence you need for shipping, logistics, or maritime awareness.
portofrotterdam.com API
Track live vessel movements and monitor port performance metrics including container throughput and anchorage statistics for the Port of Rotterdam. Access nautical notices and search detailed port information to stay updated on shipping operations and port conditions.
flexport.com API
Get real-time air and ocean freight rates, search shipping routes, and access logistics service information to compare pricing and plan international shipments. Discover popular routes and retrieve freight rate quotes for any origin-destination pair.
portoflosangeles.org API
Access real-time container and tonnage statistics, browse terminal information and details, and retrieve the latest Port of Los Angeles news, key facts, and social media feeds.
maritime-executive.com API
Search and access maritime news articles, industry insights, and directory listings from The Maritime Executive, with the ability to browse by category, listen to podcasts, and read magazine editions. Find the latest maritime industry information, company directories, and multimedia content all in one place.
dat.com API
Track real-time market conditions, fuel prices, and freight rate trends to make data-driven logistics decisions. Access industry insights through blog posts and resource materials to stay informed on transportation market dynamics.
dhl.com API
Track DHL shipments worldwide by entering a tracking number to retrieve real-time status updates, delivery location details, product information, and a complete history of all shipment events. Monitor packages from origin to destination with comprehensive tracking data.