Trapac ============================================================================= :Provider Information: +-----------------+------------------------------------------------+ | **Id** | trapac | +-----------------+------------------------------------------------+ | **Type** | terminal | +-----------------+------------------------------------------------+ | **Trace Type** | API | +-----------------+------------------------------------------------+ | **Credentials** | No credentials, Requires only whitelist IP | +-----------------+------------------------------------------------+ | **Limits** | Maximum number of containers per request is 10 | +-----------------+------------------------------------------------+ | **Status** | draft | +-----------------+------------------------------------------------+ | **Doc Status** | draft | +-----------------+------------------------------------------------+ | **Doc Version** | 1 | +-----------------+------------------------------------------------+ :URLs: +---------+------------------------+-------------+ | Type | URL | Environment | +=========+========================+=============+ | Request | https://ws.trapac.com/ | PRD | +---------+------------------------+-------------+ | Request | https://ws.trapac.com/ | DEV/STG | +---------+------------------------+-------------+ :Sites: +------+---------+-----------------+ | Name | Site Id | Description | +======+=========+=================+ | name | ern | the description | +------+---------+-----------------+ Request ----------------------------------------------------------------------------- Query Containers Request ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Query containers using the following request by adding the LocationCode and container numbers in the request url as following. .. code-block:: shell GET https://ws.trapac.com/TrapacAPI/api/Availabilities?terminal={locationCode}&list={ContainerNumbers} .. note:: Trapac API supports 2 terminals, in order to query data related to one of them, the **locationCode** has to be provided ContainerNumbers in the request should be separated with commas. +------------------+---------------+ | Terminal Name | Location Code | +==================+===============+ | B136 Los Angeles | LAX | +------------------+---------------+ | B30 Oakland | OAK | +------------------+---------------+ Responses ----------------------------------------------------------------------------- Query Containers Response ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Next response is for three containers CAIU7668800, HDMU6510889 and GAOU6554952. .. code-block:: json [ { "availabilityType": "Container", "number": "CAIU7668800", "line": "TF", "holdsLine": "Released", "holdsCustoms": "Released", "holdsUSDA": "Released", "terminalHold": ["VESSEL WORKING AREA"], "lfd": "N/A", "amount": 0.0000, "hold": "NO", "yardDescription": "Delivered 03/16/2022 01:40", "yardStatus": "", "size": 40, "cargoType": "SD", "height": 96, "vessel": "ZFJ", "voyage": "003E", "demurrageStatus": "No demurrage to display. Cargo has been delivered", "demurrageSchedule": null, "errorCode": 0, "errorDescription": null }, { "availabilityType": "Container", "number": "HDMU6510889", "line": "ED", "holdsLine": "HELD", "holdsCustoms": "HELD", "holdsUSDA": "HELD", "terminalHold": ["PIERPASS TMF HOLD"], "lfd": "N/A", "amount": 0.0000, "hold": "N/A", "yardDescription": "In Yard (#B011 row) Grounded", "yardStatus": "Grounded", "size": 40, "cargoType": "SD", "height": 96, "vessel": "CET", "voyage": "080E", "demurrageStatus": "No demurrage to display. Cargo has been delivered", "demurrageSchedule": null, "errorCode": 0, "errorDescription": null }, { "availabilityType": null, "number": "GAOU6554952", "line": "", "holdsLine": "N/A", "holdsCustoms": "N/A", "holdsUSDA": "N/A", "terminalHold": null, "lfd": null, "amount": 0.0, "hold": null, "yardDescription": "N/A", "yardStatus": "N/A", "size": 0, "cargoType": null, "height": 0, "vessel": "", "voyage": "", "demurrageStatus": "N/A (please check by individual container number)", "demurrageSchedule": null, "errorCode": 1, "errorDescription": "No result found for the reference number: GAOU6554952" } ] Not found containers Response ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If containers GAOU6554952 is given as not found container then API returns the next response. .. code-block:: json [ { "availabilityType": null, "number": "GAOU6554952", "line": "", "holdsLine": "N/A", "holdsCustoms": "N/A", "holdsUSDA": "N/A", "terminalHold": null, "lfd": null, "amount": 0.0, "hold": null, "yardDescription": "N/A", "yardStatus": "N/A", "size": 0, "cargoType": null, "height": 0, "vessel": "", "voyage": "", "demurrageStatus": "N/A (please check by individual container number)", "demurrageSchedule": null, "errorCode": 1, "errorDescription": "No result found for the reference number: GAOU6554952" } ] :Data Mapping: +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | Property | Source Property | Description | +========================+================================+======================================================================================+ | container_number | containers[n].number | The container reference number | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | carrier.steamshipLine | containers[n].line | Carrier scac. | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | carrier.vessel | containers[n].vessel | Carrier vessel number | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | carrier.voyage | containers[n].voyage | Carrier voyage number | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | destination.name | locationCode | Name of the location given in query request | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ || destination.type || Default || This is a static value represents where the | || || || event happens and it is set to 'terminal'. | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | event[n].code | yard_description | Eta event is created if estimated in yard_description | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | event[n].code | containers[n].yard_status | Arrived event is created if grounded in yard_status | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | event[n].code | containers[n].yard_status | Grounded event is created if grounded in yard_status | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | event[n].code | containers[n].lfd | Lfd event is created if lfd has a date | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | event[n].code | containers[n].yard_description | Outgated event is created if delivered in yard_description | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | event[n].data.holdType | containers[n].holds_line | Hold event is created with hold type as Line Hold if it has HELD | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | event[n].data.holdType | containers[n].hold | Hold event is created with hold type as Customs Hold if it has HELD | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | event[n].data.holdType | containers[n].holds_usda | Hold event is created with hold type as USDA Hold if it has HELD | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | event[n].data.holdType | containers[n].terminal_hold | Hold event is created with hold type as TMF Hold if it has 'PierPass TMF Hold' | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | event[n].data.holdType | containers[n].terminal_hold | Hold event is created with hold type as CTF Hold if it has 'Clean Trucks Fee' | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | event[n].data.holdType | containers[n].amount | Hold event is created with hold type as Demurage Hold if it has value not equal to 0 | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | event[n].date | Default | Today date is a default date | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | event[n].location.name | locationCode | Name of the location given in query request | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ | event[n].location.type | Default | Default value is Terminal. | +------------------------+--------------------------------+--------------------------------------------------------------------------------------+ Eta Event Response ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: json [ { "availabilityType": "Container", "number": "TTRL0000004", "line": "TF", "holdsLine": "Released", "holdsCustoms": "Released", "holdsUSDA": "Released", "terminalHold": [ "None" ], "lfd": "N/A", "amount": 0.0000, "hold": "N/A", "yardDescription": "On-Board Vessel 05/16/2022 2nd Shift (Estimated)", "yardStatus": "On-Board Vessel", "size": 40, "cargoType": "SD", "height": 96, "vessel": "ZFJ", "voyage": "003E", "demurrageStatus": "No Demurrage to Calculate
Last Free Date unknown. Vessel has not arrived", "demurrageSchedule": null, "errorCode": 0, "errorDescription": null } ] .. note:: Eta event is created if estimated in **yardDescription** like the one in the previous response. :ETA Event Data Mapping: +------------------------+-------------------------------+-------------------------------+ | Property | Source Property | Description | +========================+===============================+===============================+ | event[n].code | Default | Value is defaulted to arrived | +------------------------+-------------------------------+-------------------------------+ | event[n].date | Default | Today date is a default date | +------------------------+-------------------------------+-------------------------------+ | event[n].location.name | LocationCode | Location used on request | +------------------------+-------------------------------+-------------------------------+ | event[n].location.type | Default | Default value is Terminal. | +------------------------+-------------------------------+-------------------------------+ | event[n].data.Eta | containers[n].yardDescription | Date of the Eta event. | +------------------------+-------------------------------+-------------------------------+ Arrived Event Response ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: json [ { "availabilityType": "Container", "number": "TTRA1000004", "line": "ED", "holdsLine": "HELD", "holdsCustoms": "HELD", "holdsUSDA": "HELD", "terminalHold": [ "PIERPASS TMF HOLD" ], "lfd": "N/A", "amount": 0.0000, "hold": "N/A", "yardDescription": "In Yard (#B011 row) Grounded", "yardStatus": "Grounded", "size": 40, "cargoType": "SD", "height": 96, "vessel": "CET", "voyage": "080E", "demurrageStatus": "No demurrage to display. Cargo has been delivered", "demurrageSchedule": null, "errorCode": 0, "errorDescription": null } ] .. note:: Arrived event is created if grounded in **yardDescription** like the one in the previous response. :Arrived Event Data Mapping: +------------------------+-----------------+-------------------------------+ | Property | Source Property | Description | +========================+=================+===============================+ | event[n].code | Default | Value is defaulted to arrived | +------------------------+-----------------+-------------------------------+ | event[n].date | Default | Today date is a default date | +------------------------+-----------------+-------------------------------+ | event[n].location.name | LocationCode | Location used on request | +------------------------+-----------------+-------------------------------+ | event[n].location.type | Default | Default value is Terminal. | +------------------------+-----------------+-------------------------------+ | event[n].data.arrived | Default | Today date is a default date | +------------------------+-----------------+-------------------------------+ Grounded Event Response ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: json [ { "availabilityType": "Container", "number": "TTRA1000004", "line": "ED", "holdsLine": "HELD", "holdsCustoms": "HELD", "holdsUSDA": "HELD", "terminalHold": [ "PIERPASS TMF HOLD" ], "lfd": "N/A", "amount": 0.0000, "hold": "N/A", "yardDescription": "In Yard (#B011 row) Grounded", "yardStatus": "Grounded", "size": 40, "cargoType": "SD", "height": 96, "vessel": "CET", "voyage": "080E", "demurrageStatus": "No demurrage to display. Cargo has been delivered", "demurrageSchedule": null, "errorCode": 0, "errorDescription": null } ] .. note:: Grounded event is created if grounded in **yardDescription** like the one in the previous response. :Grounded Event Data Mapping: +------------------------+-----------------+-------------------------------+ | Property | Source Property | Description | +========================+=================+===============================+ | event[n].code | Default | Value is defaulted to grounded| +------------------------+-----------------+-------------------------------+ | event[n].date | Default | Today date is a default date | +------------------------+-----------------+-------------------------------+ | event[n].location.name | LocationCode | Location used on request | +------------------------+-----------------+-------------------------------+ | event[n].location.type | Default | Default value is Terminal. | +------------------------+-----------------+-------------------------------+ | event[n].data.grounded | Default | Today date is a default date | +------------------------+-----------------+-------------------------------+ Lfd Event Response ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: json [ { "availabilityType": "Container", "number": "UACU5547929", "line": "HL", "holdsLine": "Released", "holdsCustoms": "Released", "holdsUSDA": "Released", "terminalHold": [ "None" ], "lfd": "2022-05-19", "amount": 0.0000, "hold": "No", "yardDescription": "In Yard (#B008 row) Grounded", "yardStatus": "Grounded", "size": 40, "cargoType": "SD", "height": 96, "vessel": "YUQ", "voyage": "053E", "demurrageStatus": null, "demurrageSchedule": null, "errorCode": 0, "errorDescription": null } ] .. note:: Lfd event is created if **lfd** has a date :Lfd Event Data Mapping: +------------------------+-------------------+------------------------------+ | Property | Source Property | Description | +========================+===================+==============================+ | event[n].code | Default | Value is defaulted to lfd | +------------------------+-------------------+------------------------------+ | event[n].date | Default | Today date is a default date | +------------------------+-------------------+------------------------------+ | event[n].location.name | LocationCode | Location used on request | +------------------------+-------------------+------------------------------+ | event[n].location.type | Default | Default value is Terminal. | +------------------------+-------------------+------------------------------+ | event[n].data.lfd | containers[n].lfd | Last free date for container | +------------------------+-------------------+------------------------------+ Released Event Response ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: json [ { "availabilityType": "Container", "number": "UACU5547929", "line": "HL", "holdsLine": "Released", "holdsCustoms": "Released", "holdsUSDA": "Released", "terminalHold": [ "None" ], "lfd": "2022-05-19", "amount": 0.0000, "hold": "No", "yardDescription": "In Yard (#B008 row) Grounded", "yardStatus": "Grounded", "size": 40, "cargoType": "SD", "height": 96, "vessel": "YUQ", "voyage": "053E", "demurrageStatus": null, "demurrageSchedule": null, "errorCode": 0, "errorDescription": null } ] .. note:: Released event is created if **lfd** has a date :Released Event Data Mapping: +------------------------+-------------------+--------------------------------+ | Property | Source Property | Description | +========================+===================+================================+ | event[n].code | Default | Value is defaulted to released | +------------------------+-------------------+--------------------------------+ | event[n].date | Default | Today date is a default date | +------------------------+-------------------+--------------------------------+ | event[n].location.name | LocationCode | Location used on request | +------------------------+-------------------+--------------------------------+ | event[n].location.type | Default | Default value is Terminal. | +------------------------+-------------------+--------------------------------+ | event[n].data.released | Default | Date is defaulted to oday date | +------------------------+-------------------+--------------------------------+ Outgated Event Response ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: json [ { "availabilityType": "Container", "number": "TTRA0000004", "line": "TF", "holdsLine": "Released", "holdsCustoms": "Released", "holdsUSDA": "Released", "terminalHold": [ "VESSEL WORKING AREA" ], "lfd": "N/A", "amount": 0.0000, "hold": "NO", "yardDescription": "Delivered 03/16/2022 01:40", "yardStatus": "", "size": 40, "cargoType": "SD", "height": 96, "vessel": "ZFJ", "voyage": "003E", "demurrageStatus": "No demurrage to display. Cargo has been delivered", "demurrageSchedule": null, "errorCode": 0, "errorDescription": null } ] .. note:: Outgated event is created if Delivered in **yardDescription** like the one in the previous response. :Outgated Event Data Mapping: +----------------------------------+-------------------------------+--------------------------------+ | Property | Source Property | Description | +==================================+===============================+================================+ | event[n].code | Default | Value is defaulted to outgated | +----------------------------------+-------------------------------+--------------------------------+ | event[n].date | Default | Today date is a default date | +----------------------------------+-------------------------------+--------------------------------+ | event[n].location.name | LocationCode | Location used on request | +----------------------------------+-------------------------------+--------------------------------+ | event[n].location.type | Default | Default value is Terminal. | +----------------------------------+-------------------------------+--------------------------------+ | event[n].data.outgated | containers[n].yardDescription | Date of the outgated event. | +----------------------------------+-------------------------------+--------------------------------+ || event[n].data.outgate_confirmed || Default || Value is set to True as it is | || || || and indicator for event as | || || || outgated or not | +----------------------------------+-------------------------------+--------------------------------+ :Hold Event Data Mapping: +------------------------+-----------------------------+--------------------------------------------------------------------------------------+ | Property | Source Property | Description | +========================+=============================+======================================================================================+ | event[n].code | Default | Hold is the default value for the event | +------------------------+-----------------------------+--------------------------------------------------------------------------------------+ | event[n].date | Default | Today date is the default date value | +------------------------+-----------------------------+--------------------------------------------------------------------------------------+ | event[n].location.name | LocationCode | Location used on request | +------------------------+-----------------------------+--------------------------------------------------------------------------------------+ | event[n].location.type | Default | Default value is Terminal. | +------------------------+-----------------------------+--------------------------------------------------------------------------------------+ | event[n].data.holdType | containers[n].holds_line | Hold event is created with hold type as Line Hold if it has HELD | +------------------------+-----------------------------+--------------------------------------------------------------------------------------+ | event[n].data.holdType | containers[n].hold | Hold event is created with hold type as Customs Hold if it has HELD | +------------------------+-----------------------------+--------------------------------------------------------------------------------------+ | event[n].data.holdType | containers[n].holds_usda | Hold event is created with hold type as USDA Hold if it has HELD | +------------------------+-----------------------------+--------------------------------------------------------------------------------------+ | event[n].data.holdType | containers[n].terminal_hold | Hold event is created with hold type as TMF Hold if it has 'PierPass TMF Hold' | +------------------------+-----------------------------+--------------------------------------------------------------------------------------+ | event[n].data.holdType | containers[n].terminal_hold | Hold event is created with hold type as CTF Hold if it has 'Clean Trucks Fee' | +------------------------+-----------------------------+--------------------------------------------------------------------------------------+ | event[n].data.holdType | containers[n].amount | Hold event is created with hold type as Demurage Hold if it has value not equal to 0 | +------------------------+-----------------------------+--------------------------------------------------------------------------------------+ | event[n].data.code | Default | Code is defaulted to Hold | +------------------------+-----------------------------+--------------------------------------------------------------------------------------+