openapi: 3.0.1 info: title: APMT Track & Trace - Export Booking Enquiry description: Provides the details and the latest status of one or mutliple bookings, both at booking level and container/s level contact: name: APM Terminals API Management Team url: https://developer.apmterminals.com email: api@apmterminals.com license: name: APM Terminals url: https://developer.apmterminals.com/terms version: '0.1' servers: - url: https://api-sandbox.apmterminals.com description: Sandbox API - url: https://api.apmterminals.com description: Production API paths: /booking-enquiry: get: description: Returns booking level details/status along with container information for the requested Booking References and terminal. parameters: - name: facilityCode in: query description: The Terminal UN Location Code to search for (USLAX for Los Angeles etc). Only accepts a single Terminal Code. Possible values are USLAX (Los Angeles, US), USMOB (Mobile, US), USNWK (Port Elizabeth, US), SEGOT (Gothenburg, Sweden), ITVDL (Vado, Italy) NGAPP (Apapa, Nigeria), BHKBS (Bahrain), USMIA (Miami, US), ARBUE (Buenos Aires, Argentina), DKAAR (Aarhus, Denmark), GTPRQ (Puerto Quetzal,Guatemala), JOAQJ (Aqaba, Jordan), ESBCN (Barcelona, Spain) and GEPTI (Poti, Georgia). required: true style: form explode: true schema: type: string example: LSA - name: assetId in: query description: Either single or multiple Booking Reference numbers seperated by commas (e.g. 038NY0630872,OHLB374140). required: true style: form explode: true schema: type: string example: 038NY0630872 responses: '200': description: OK content: application/json: schema: type: object properties: isContainer: type : string description : This field represents whether container or not. bookingReference: type : string description : This field represents the booking number. containerISOCode: type : string description : This field represents the equipment type ISO code for the container related to the booking. shippingLine: type : string description : This field represents line operator connected to the container for that booking. vesselName: type : string description : This field represents the name of the vessel. outboundVoyageNumber: type : string description : This field represents the vessels' outbound voyage number. beginRecieveDateTimeLocal: type : string description : This field represents the earliest date time by which cargo for a vessel voyage will be accepted by the line operator(if available) otherwise by vessel operator. cargoCutoffDateTimeLocal: type : string description : his field represents the latest date time by which cargo for a vessel voyage will be accepted by the line operator (if available) otherwise by vessel operator. vesselEtdDateTimeLocal: type : string description : This field represents estimated time of departure of the vessel. sizeTypeHeight: type : string description : This field represents size,type and height of the container related to the booking. containerQuantityCount: type : string description : This field represents the container quantity. containersReceivedCount: type : string description : This field represents the container received quantity. emtpiesOutCount: type : string description : This field represents number of individual equipment type of empty containers sent out of the terminal as a part of booking. isReservedOnly: type : string description : This field represents if the container is Reserved. containersPreadvisedCount: type : string description : This field represents number of individual equipment type of containers that have been notified to the terminal that will be coming as a part of the booking. vgmReceivedCount: type : string description : This field represents number of individual equipment type of containers having VGM(Verified Gross Mass). bookingHolds: type : string description : This field represents any hold applied on the containers or at booking level. holdsDescription: type : string description : This field represents description/reason of holds applied on the containers or for booking. hazardous: type : string description : This field represents ISO class <1-9> of hazardous content in the container. isReadyForLoad: type : string description : This field represents if the container is readyfordelivery. isReceived: type : string description : This field represents if the container is Received. isEmptyOut: type : string description : This field represents if the container is empty isPreadvised: type : string description : This field represents if the container is PreAdvised. facilityInDateTimeLocal: type : string description : This field represents estimated time of container enter in facility. isVgmReceived: type : string description : This field represents if the cotnainer has VGM(Verified Gross Mass) received. containerHolds: type : string description : This field represents holds applied on the containers. loadedOnVesselDateTimeLocal: type: string description: This field represents estimated time of departure of the vessel. format: date-time hasAppointment: type: boolean description: This field represents container appointment as 'true; if container has any of the following road gate appointment states 'CREATED', 'USED', 'LATE', 'USED_LATE'. appointmentDateTimeLocal: type: string description: This fields represents the appointment date time for the container. format: date-time containerStuffDateTimeLocal: type: string description: This fields represents the date time that the container was packed. format: date-time example: [ { "isContainer": "false", "bookingReference": "038NY0630872", "containerISOCode": 2210, "shippingLine": "MSCU", "vesselName": "MSC VENICE", "outboundVoyageNumber": "034S", "beginRecieveDateTimeLocal": "2020-08-11T07:00:00-07:00", "cargoCutoffDateTimeLocal": "2020-08-19T16:00:00-07:00", "vesselEtdDateTimeLocal": "2020-08-27T05:00:00-07:00", "sizeTypeHeight": "20/GP/86 (Sub OK)", "containerQuantityCount": 1, "containersReceivedCount": 0, "emtpiesOutCount": 0, "isReservedOnly": "false", "containersPreadvisedCount": 1, "vgmReceivedCount": 1, "bookingHolds": "TMF BOOKING", "holdsDescription": "", "hazardous": "" }, { "isContainer": "false", "bookingReference": "038NY0630872", "containerISOCode": 4510, "shippingLine": "MSCU", "vesselName": "MSC VENICE", "outboundVoyageNumber": "034S", "beginRecieveDateTimeLocal": "2020-08-11T07:00:00-07:00", "cargoCutoffDateTimeLocal": "2020-08-19T16:00:00-07:00", "vesselEtdDateTimeLocal": "2020-08-27T05:00:00-07:00", "sizeTypeHeight": "40/GP/96 (Sub OK)", "containerQuantityCount": 3, "containersReceivedCount": 0, "emtpiesOutCount": 0, "isReservedOnly": "false", "containersPreadvisedCount": 3, "vgmReceivedCount": 3, "bookingHolds": "TMF BOOKING", "holdsDescription": "", "hazardous": "" }, { "isContainer": "true", "bookingReference": "038NY0630872", "containerISOCode": "CAIU7128931", "isoCode": 4510, "isReadyForLoad": "false", "shippingLine": "MSCU", "sizeTypeHeight": "40/GP/96 (Sub OK)", "isReceived": "", "isEmptyOut": "true", "isReservedOnly": "false", "isPreadvised": "true", "facilityInDateTimeLocal": "2020-08-22T18:30:02-07:00", "isVgmReceived": "true", "containerHolds": "TMF BOOKING", "holdsDescription": "", "hazardous": {} }, { "isContainer": "true", "bookingReference": "038NY0630872", "containerISOCode": "GLDU5610007", "isoCode": 2210, "isReadyForLoad": "false", "shippingLine": "MSCU", "sizeTypeHeight": "20/GP/86 (Sub OK)", "isReceived": "", "isEmptyOut": "true", "isReservedOnly": "false", "isPreadvised": "true", "facilityInDateTimeLocal": "2020-08-22T02:41:31-07:00", "isVgmReceived": "true", "containerHolds": "TMF BOOKING", "holdsDescription": "", "hazardous": {} }, { "isContainer": "true", "bookingReference": "038NY0630872", "containerISOCode": "MEDU7736254", "isoCode": 4510, "isReadyForLoad": "false", "shippingLine": "MSCU", "sizeTypeHeight": "40/GP/96 (Sub OK)", "isReceived": "", "isEmptyOut": "true", "isReservedOnly": "false", "isPreadvised": "true", "facilityInDateTimeLocal": "2020-08-21T18:59:03-07:00", "isVgmReceived": "true", "containerHolds": "TMF BOOKING", "holdsDescription": "", "hazardous": {} }, { "isContainer": "true", "bookingReference": "038NY0630872", "containerISOCode": "MEDU8699833", "isoCode": 4510, "isReadyForLoad": "false", "shippingLine": "MSCU", "sizeTypeHeight": "40/GP/96 (Sub OK)", "isReceived": "", "isEmptyOut": "true", "isReservedOnly": "false", "isPreadvised": "true", "facilityInDateTimeLocal": "2020-08-22T19:21:06-07:00", "isVgmReceived": "true", "containerHolds": "TMF BOOKING", "holdsDescription": "", "hazardous": {} } ] '400': description: Bad Request. content: application/json: schema: $ref: '#/components/schemas/Exception' example: StatusCode: "400" ReasonPhrase: "Bad Request" Payload: code: "400" message: "Bad Request" debugMessage: "Invalid content or request details" '401': description: The user is not authenticated in the system content: application/json: schema: $ref: '#/components/schemas/Exception' example : 1 : StatusCode: "401" ReasonPhrase: "Unauthorized" Payload: code: "401" message: "Unauthorized" debugMessage: "Failed to Authenticate, invalid access token" 2: StatusCode: "401" ReasonPhrase: "Unauthorized" Payload: code: "401" message: "Unauthorized" debugMessage: "Access Token Expired, please renew" '403': description: The user does not have permissions to access this endpoint, Inadequate credits for the api call or Rate Plan not selected content: application/json: schema: $ref: '#/components/schemas/Exception' example : StatusCode: "403" ReasonPhrase: "Forbidden" Payload: code: "400" message: "Bad Request" debugMessage: "Inadequate credits for the api call or Rate Plan not selected" '404': description: Not Found. content: application/json: schema: $ref: '#/components/schemas/Exception' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Exception' example : StatusCode: "405" ReasonPhrase: "Method Not Allowed" Payload: code: "405" message: "Method Not Allowed" debugMessage: "Method Not Allowed" '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/Exception' example : StatusCode: "429" ReasonPhrase: "Too Many Requests" Payload: code: "429" message: "Too Many Requests" debugMessage: "Sudden usage spike, please try after sometime" '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Exception' example : StatusCode: "500" ReasonPhrase: "InternalServerError" Payload: code: "500" message: "InternalServerError" debugMessage: "Unexpected server error" '502': description: BadGateway content: application/json: schema: $ref: '#/components/schemas/Exception' example : StatusCode: "502" ReasonPhrase: "BadGateway" Payload: code: "502" message: "BadGateway" debugMessage: "The remote server returned an error: Bad Gateway" '503': description: ServiceUnavailable content: application/json: schema: $ref: '#/components/schemas/Exception' example : StatusCode: "503" ReasonPhrase: "ServiceUnavailable" Payload: code: "503" message: "ServiceUnavailable" debugMessage: "Target Service Unavailable" components: schemas: Exception: type: object properties: payload: $ref: '#/components/schemas/ExceptionPayload' statusCode: type: string description: Standard http error code reasonPhrase: type: string description: Reason for the error ExceptionPayload: type: object properties: code: type: string description: Standard http code. message: type: string description: Standard http message with respect to http code. debugMessage: type: string description: Reason for the failure of message. securitySchemes: oauth2: type: oauth2 description: APMT IAM OAuth 2.0 with client credentials only. flows: clientCredentials: tokenUrl: https://api.apmterminals.com/oauth/client_credential/accesstoken?grant_type=client_credentials scopes: client_write: Write data