Page cover

chart-networkDOKK API

Welcome to the DOKK API documentation. This guide provides all the necessary information to access and integrate with the DOKK platform's API.

Integrations

The Integrations API offers a suite of endpoints tailored for third-party developers to interact with DOKK's platform. Access to these endpoints requires an API Key, which serves as an authentication credential. You can request an API Key from our development team by contacting us at [email protected] or submitting a request here: Support Request Form.

As according to Plans and Pricing, Port Organizations receive an API-Key free of charge. Cruise Line -, Agency -, and Media Organizations are required to pay yearly for an access to an API key.

API Key Usage and Throttling

  • Each API Key is unique and tied to an organization or developer.

  • Throttling limits may apply to ensure fair usage and prevent server congestion. While we recommend limiting requests to once every 10–30 minutes, higher request frequencies may be acceptable during development and testing.

  • Auth: API Key required

    • Throttling: 300 requests per day per API Key

  • To test the endpoints, we recommend tools like Postmanarrow-up-right.

Screenshot from Postman

Note: Refer to our 9.6 API Key Usage and Restrictions in our Terms of use for additional details on usage guidelines and policies.

Cruise Details

GET /v1/integration/cruise-details-orgkey new

GET /v1/integration/{organization_uuid}/cruise-details old and retiring (still works)

The Cruise Details endpoint provides a simplified view of port call schedules, abstracted from the internal calendar. It is designed for external use and is currently applicable only to Port organizations. For Agencies, a similar endpoint will be introduced soon to address their specific data requirements.

This endpoint is deprecated. Please use cruise-details-orgkey from now on.

The new GET request will not include the {uuid} for an organization and will simply look at the allocated API key for organization:

Parameter
Type
Description

start_date

string

(Optional) Filter results starting from this date (format: YYYY-MM-DD).

end_date

string

(Optional) Filter results up to this date (format: YYYY-MM-DD).

uuid

string

Required 32 character long string.

Usage Notes

  • UUID: This identifier is provided by DOKK and uniquely represents the organization.

  • Date Filtering: The start_date and end_date parameters are optional and can be used to narrow down the results to a specific time range.

  • Data Integrity: Results returned are subject to the accuracy and currency of the information inputted into the DOKK platform.

The response is an array of cruise details, structured as follows:

Ports Metadata

GET /v1/integration/ports-metadata

The Ports Metadata endpoint returns ports and their active locations (quays/berths). It’s intended to help integrations discover valid port and location IDs for other endpoints.

Parameter
Type
Description

q

string

(Optional) Search in port.name, port.locode, location.name

country

string

(Optional) Filter by port country (ISO code, e.g. IS)

port

int

(Optional) Return a single port by ID (int)

Notes:

  • Only locations where is_active=true are included.

  • Ports are only included if they have at least one active location (quay)

Visible Port Calls

GET /v1/integration/visible-portcalls

This endpoint returns public/visible port calls. It is intended for third-party integrations (e.g., travel sites and public schedule pages).

Visibility rules

A port call is included only if:

  • show_booking = true, and

  • either:

    • status = accepted, or

    • status = updated and last_status = accepted

Time window

  • Results are capped to max 12 months into the future (from the current date), regardless of requested end_date.

  • If start_date is not provided, it defaults to last 30 days.

Headers

Name
Value

Content-Type

application/json

Authorization

Api-Key

Body

Name
Type
Description

start_date

string

Optional. Start date (YYYY-MM-DD). Defaults to last 30 days.

end_date

string

Optional. End date (YYYY-MM-DD). Clamped to max 12 months ahead.

port

int

Optional. Filter by port id.

location

int

Optional. Filter by location id.

vessel

int

Optional. Filter by vessel id.

q

string

Optional. Text search across port name/locode, location name, vessel name, vessel owner, cruise line name. Numeric q also matches IMO/MMSI.

Response

Vessels

GET /v1/integration/vessels

The Vessels endpoint returns all active vessels registered in the DOKK platform with key identification fields. Intended for integrations that need to maintain a local vessel directory or resolve vessel identifiers.

Parameter
Type
Description

q

string

Optional. Search by vessel name, IMO, MMSI, owner, or cruise line name. Numeric q also matches IMO/MMSI exactly.

Notes:

  • Only vessels where is_active = true are returned.

  • cruise_line is the name of the associated cruise line organization, if one is linked.

Response example (200):

Port Call Changes

GET /v1/integration/visible-vessels

Returns portcalls that have had changes to their location, arrival time, or departure time within a given time window. This endpoint is designed for integrations that store portcall data locally and need to detect updates without re-fetching the full schedule.

Only visible portcalls are included. The same visibility rules as the Visible Port Calls endpoint apply.

Visibility rules:

A portcall is included only if:

  • show_booking = true, and

  • either:

    • status = accepted, or

    • status = updated and last_status = accepted

Time window:

  • Results are capped to a maximum lookback of 30 days.

  • If since is not provided, it defaults to the last 24 hours.

Headers:

Name
Value

Content-Type

application/json

Authorization

Api-Key

Parameters:

Parameter
Type
Description

since

string

Optional. ISO 8601 datetime. Returns changes that occurred after this point. Default: 24 hours ago. Max: 30 days back. Example: 2025-06-01T08:00:00Z

vessels

string

Optional. Comma-separated vessel IDs to filter by, e.g. 1,4,7

cruise_line

string

Optional. Filter by cruise line name (partial match).

Response example (200):

Notes on the response:

  • Each object in the array represents one portcall that had at least one tracked change within the window.

  • Each entry in changes represents a single save event. Only the fields that actually changed are included in that entry — if arrival didn't change in a given event, no arrival_* keys will appear.

  • Multiple fields can change in a single save event (e.g. both arrival and location in the same entry).

  • changes is ordered chronologically, oldest first.

Last updated

Was this helpful?