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) and ARBUE (Buenos Aires, Argentina). 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 : tbd bookingReference: type : string description : tbd containerISOCode: type : string description : tbd shippingLine: type : string description : tbd vesselName: type : string description : tbd outboundVoyageNumber: type : string description : tbd beginRecieveDateTimeLocal: type : string description : tbd cargoCutoffDateTimeLocal: type : string description : tbd vesselEtdDateTimeLocal: type : string description : tbd sizeTypeHeight: type : string description : tbd containerQuantityCount: type : string description : tbd containersReceivedCount: type : string description : tbd emtpiesOutCount: type : string description : tbd isReservedOnly: type : string description : tbd containersPreadvisedCount: type : string description : tbd vgmReceivedCount: type : string description : tbd bookingHolds: type : string description : tbd hazardous: type : string description : tbd isReadyForLoad: type : string description : tbd isReceived: type : string description : tbd isEmptyOut: type : string description : tbd isPreadvised: type : string description : tbd facilityInDateTimeLocal: type : string description : tbd isVgmReceived: type : string description : tbd containerHolds: type : string description : tbd 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", "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", "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", "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", "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", "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", "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