Benefit of using APIs

Our APIs connect directly to our terminal operating system, so you'll always benefit from real-time data. We'll maintain and manage our APIs, so once you've set them up, you can be confident that you'll continue to reap the benefits, including:

  • Increased accuracy - data is transferred automatically removing the chance of human error or reliance on outdated information
  • Time saving & cost effective - enables large volumes of data to be handled with no manual intervention
  • Improved planning - guarantees you’re using the most up-to-date information available in the supply chain

 

What data will I have access to?

Plan your port call with real-time and reliable terminal Estimated Time of Arrival/Departure, Earliest Receiving Date, cut-off times and actual milestones for all vessels calling a terminal in the previous week and upcoming 14 days . Based on the terminal code, the following information is available:

  • Vessel Schedules: The list of all Vessel visits for a terminal.
  • Vessel Name: Name of the vessel.
  • Vessel Lloyds Code: Lloyds code of the vessel.
  • Vessel Operator: Shipping line operator code.
  • Inbound/Outbound Voyage Number: Vessel voyage inbound/outbound number for this visit.
  • Scheduled Arrival/Departure: Date and local time when the vessel was initially scheduled to arrive at/depart from the terminal.
  • Actual Arrival/Departure Time: Actual date and local time that the vessel arrived at/departed from at the terminal.
  • Estimated Arrival/Departure Time: Estimated date and local time that the vessel arrived at/departed from at the terminal.
  • First Available Time: Earliest date time when import containers are available for collection for this visit. Represented in local time at terminal (Except Aarhus).
  • Start Receive Date: Earliest receiving date time when export container will be accepted by terminal for this visit. Represented in local time at terminal (Except Aarhus).
  • Cargo Cut-Off: Latest date and local time that cargo will be accepted for the vessel/voyage (Except Aarhus).
  • Reefer Cut-Off: Latest date and local time that reefer cargo will be accepted for the vessel/voyage (Except Aarhus).
  • Hazardous Cut-Off: Cutoff date time for hazardous cargo by the terminal. Represented in local time at terminal (Except Aarhus).
  • Shipping Lines: List of all shipping lines on the vessel.
  • Berth Name: The physical Berth where the ship is docked (Except Aarhus).
  • Vessel Status: The current vessel status known by the terminal.

For which terminals is data available?

Data is available for the following terminals and will be gradually rolled out to our fully owned terminals. Register for updates and we'll let you know as soon as data is available for the terminal(s) you're interested in. Terminal codes shown between ().

  • Aarhus, Denmark (DKAAR)
  • Algeciras, Spain (ESALG)
  • Apapa, Nigeria (NGAPP)
  • Aqaba, Jordan (JOAQB)
  • Bahrain (BHKBS)
  • Buenos Aires, Argentina (ARBUE)
  • Gothenburg, Sweden (SEGOT)
  • Lázaro Cárdenas, Mexico (MXLZC)
  • Los Angeles, USA (USLAX)
  • Maasvlakte II, Rotterdam (NLMSV)
  • Medport Tangier, Morocco (MATNG)
  • Monrovia, Liberia (LRMLW)
  • Mobile, USA (USMOB)
  • Moin, Costa Rica (CRPMN)
  • Mumbai, India (INNSA)
  • Onne, Nigeria (NGONN)
  • Pecém, Brazil (BRPEC)
  • Pipavav, India (INPAV)
  • Port Elizabeth, USA (USNWK)
  • Puerto Quetzal, Guatemala (GTPRQ)
  • South Florida Container Terminal, Miami, USA (USMIA)
  • Suez Canal Container Terminals, Egypt (EGPSD)
  • Tangier, Morocco (MAPTM)
  • Vado, Italy (ITVDL)
  • Valencia, Spain (ESVLC)
  • Yucatán, Mexico (MXPGO)

Once you have Signed Up for an account, Accepted a Plan and registered your App to generate your own API keys, you are ready to start testing our APIs. Everything you need is detailed below, starting with Step 1.  Sandbox - Terminal Vessel Schedule.  Once you are satisfied with your own development and testing, migration to production can be found in Step 2. Production -  Terminal Vessel Schedule.  It's here that you will learn about our OAuth 2.0 authorisation which is needed to generate a bearer token for subsequent calls.  Finally, feel free to read our Open API spec found below via our APMT Terminal Vessel Schedule.yaml file.

 

Step 1. Sandbox - Terminal Vessel Schedule

To get you started, we've created a simple GET request API for you:  

To call this API, you will need to add a Terminal Code to the terminal query parameter, e.g. either NLMSV for Maasvlakte II or USNWK for Port Elizabeth. This API uses test data only. Go ahead and make calls using the any of the examples below noting that you can only search for one terminal at a time.

Your GET request should look something like this:

 

Step 2. Production - Terminal Vessel Schedule

To access our Production APIs we have a base security policy enforcing the OAuth2.0 Client Credentials Grant. This means that you must request an access token from us which is then used in subsequent calls to the APIs. The access token is added to the "Authorization" header with a "Bearer " prefix. So, the full Authorization header looks like - "Authorization: Bearer {access_token}". This access token expires after 30 minutes, so you will need to repeat this request to get a new token.

How to request an access token?

  • Issue a POST request to https://api.apmterminals.com/oauth/client_credential/accesstoken?grant_type=client_credentials
  • Please ensure your POST body is x-www-form-urlencoded and includes the two following key:value pairs created when you register your App
    • client_id = your Consumer Key
    • client_secret = your Consumer Secret
  • In the response you will see a key called "access_token", this is what you will include in the Authorization header for the Import Availability API

How to access the Production Terminal Vessel Schedule API?

As with our Sandbox API you can issue a simple GET request, to the endpoint listed below, but this time you will need to add your access token.

  • https://api.apmterminals.com/all-vessel-schedules
  • Headers: Authorization: Bearer Token {access_token}
  • Headers: Consumer-Key: {Your Consumer Key}

The production API is connected directly to our terminal operating systems for real-time data. As such, when calling this API, you will need current terminal code, e.g. USLAX for Pier 400, Los Angeles. Terminal codes shown between ():

  • Aarhus, Denmark (DKAAR)
  • Algeciras, Spain (ESALG)
  • Apapa, Nigeria (NGAPP)
  • Aqaba, Jordan (JOAQB)
  • Bahrain (BHKBS)
  • Buenos Aires, Argentina (ARBUE)
  • Gothenburg, Sweden (SEGOT)
  • Lázaro Cárdenas, Mexico (MXLZC)
  • Los Angeles, USA (USLAX)
  • Maasvlakte II, Rotterdam (NLMSV)
  • Medport Tangier, Morocco (MATNG)
  • Monrovia, Liberia (LRMLW)
  • Mobile, USA (USMOB)
  • Moin, Costa Rica (CRPMN)
  • Mumbai, India (INNSA)
  • Onne, Nigeria (NGONN)
  • Pecém, Brazil (BRPEC)
  • Pipavav, India (INPAV)
  • Port Elizabeth, USA (USNWK)
  • Puerto Quetzal, Guatemala (GTPRQ)
  • South Florida Container Terminal, Miami, USA (USMIA)
  • Suez Canal Container Terminals, Egypt (EGPSD)
  • Tangier, Morocco (MAPTM)
  • Vado, Italy (ITVDL)
  • Valencia, Spain (ESVLC)
  • Yucatán, Mexico (MXPGO)
Attachment Size
APMT Terminal Vessel Schedule_8.yaml (12.04 KB) 12.04 KB

Check here for version history

Our Terminal Vessel Schedule API is currently version 1.0.  As and when the API evolves to provide more customer value and new iterations become available, our version history will be documented here.

There is currently no additional information required for this API. Please see the Specification tab for Technical Implementation details