POST /api/maersk/schedules/vessel
Price: 10 credits
Get a Maersk vessel's port calls by IMO number over a date window: port, terminal, arrival and departure times with their actual or estimated status, voyages and services.
Returns the ports one Maersk vessel calls between from_date and from_date plus `days`. `arrival_timing` and `departure_timing` say whether each time is actual or estimated.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)imo string required — IMO number of a Maersk-operated vessel (examples: "9784300")from_date string required — First day of the window, YYYY-MM-DD (format: date; examples: "2026-09-14")days integer required — Number of days in the window starting at from_date (examples: 42; min: 1; max: 365)@type string (default: "MaerskVesselCall")vessel_maersk_code string nullablevessel_name string nullablevessel_imo string nullablevessel_call_sign string nullablevessel_flag_code string nullableport_un_locode string nullableport_name string nullableport_geo_code string nullableregion_code string nullablecity_name string nullablecountry_code string nullablecountry_name string nullableterminal_name string nullableterminal_code string nullableterminal_geo_code string nullablearrival_at string nullablearrival_timing string nullabledeparture_at string nullabledeparture_timing string nullablearrival_voyage_number string nullabledeparture_voyage_number string nullablearrival_service_name string nullablearrival_service_code string nullabledeparture_service_name string nullabledeparture_service_code string nullable422 — The request body did not validate Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — Maersk does not operate a vessel with this IMO, or it has no calls in the window Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.