{ "openapi": "3.0.0", "info": { "title": "Terminal49 API Reference", "version": "0.2.0", "contact": { "name": "Terminal49 API support", "url": "https://www.terminal49.com", "email": "support@terminal49.com" }, "description": "The Terminal 49 API offers a convenient way to programmatically track your shipments from origin to destination.", "x-label": "Beta", "termsOfService": "https://www.terminal49.com/terms" }, "servers": [ { "url": "https://api.terminal49.com/v2", "description": "Production" } ], "paths": { "/shipments": { "get": { "summary": "List shipments", "tags": [ "Shipments" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/shipment" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/container" }, { "$ref": "#/components/schemas/port" }, { "$ref": "#/components/schemas/terminal" } ] } }, "links": { "$ref": "#/components/schemas/links" }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "En-route to NY with inland move": { "value": { "data": [ { "id": "62738624-7032-4a50-892e-c55826228c25", "type": "shipment", "attributes": { "created_at": "2024-06-26T17:28:59Z", "ref_numbers": [], "tags": [], "bill_of_lading_number": "OOLU2148468620", "normalized_number": "2148468620", "shipping_line_scac": "OOLU", "shipping_line_name": "Orient Overseas Container Line", "shipping_line_short_name": "OOCL", "customer_name": "Sodor Steamworks", "port_of_lading_locode": "CNNBG", "port_of_lading_name": "Ningbo", "port_of_discharge_locode": "USLAX", "port_of_discharge_name": "Los Angeles", "pod_vessel_name": "EVER FORWARD", "pod_vessel_imo": "9850551", "pod_voyage_number": "1119E", "destination_locode": "USCLE", "destination_name": "Cleveland", "destination_timezone": "America/New_York", "destination_ata_at": null, "destination_eta_at": "2024-07-02T08:00:00Z", "pol_etd_at": null, "pol_atd_at": "2024-06-09T03:42:00Z", "pol_timezone": "Asia/Shanghai", "pod_eta_at": null, "pod_original_eta_at": null, "pod_ata_at": "2024-06-22T13:36:00Z", "pod_timezone": "America/Los_Angeles", "line_tracking_last_attempted_at": "2024-06-26T17:28:59Z", "line_tracking_last_succeeded_at": "2024-06-26T17:28:59Z", "line_tracking_stopped_at": null, "line_tracking_stopped_reason": null }, "links": { "self": "/v2/shipments/62738624-7032-4a50-892e-c55826228c25" }, "relationships": { "port_of_lading": { "data": { "id": "2a90c27b-c2ee-45e2-892f-5c695d74e2d0", "type": "port" } }, "port_of_discharge": { "data": { "id": "47b27584-4ec9-4e2f-95e1-7a42928cc40c", "type": "port" } }, "pod_terminal": { "data": { "id": "42c53b13-0d29-4fa6-8663-7343a56319f1", "type": "terminal" } }, "destination": { "data": { "id": "3b1cc325-ffe9-400a-82ce-f5c4891af382", "type": "port" } }, "destination_terminal": { "data": { "id": "ce22669e-14b2-4501-b782-f0a360f07cd0", "type": "terminal" } }, "line_tracking_stopped_by_user": { "data": null }, "containers": { "data": [ { "id": "7aefc29e-0898-4825-8376-4f998b51d033", "type": "container" } ] } } }, { "id": "baaa725e-aa0e-4937-ac78-54d9e2e8621e", "type": "shipment", "attributes": { "created_at": "2024-06-26T16:47:42Z", "ref_numbers": [], "tags": [], "bill_of_lading_number": "HDMUTAOM72244900", "normalized_number": "TAOM72244900", "shipping_line_scac": "HDMU", "shipping_line_name": "Hyundai Merchant Marine", "shipping_line_short_name": "Hyundai", "customer_name": "Sodor Steamworks", "port_of_lading_locode": "CNQDG", "port_of_lading_name": "Qingdao", "port_of_discharge_locode": "USSAV", "port_of_discharge_name": "Savannah", "pod_vessel_name": "UMM SALAL", "pod_vessel_imo": "9525857", "pod_voyage_number": "0038E", "destination_locode": "USROQ", "destination_name": "Rossville", "destination_timezone": "America/Chicago", "destination_ata_at": null, "destination_eta_at": "2024-06-30T07:05:00Z", "pol_etd_at": null, "pol_atd_at": "2024-05-07T03:01:00Z", "pol_timezone": "Asia/Shanghai", "pod_eta_at": null, "pod_original_eta_at": null, "pod_ata_at": "2024-06-20T21:27:00Z", "pod_timezone": "America/New_York", "line_tracking_last_attempted_at": "2024-06-26T16:48:04Z", "line_tracking_last_succeeded_at": "2024-06-26T16:48:04Z", "line_tracking_stopped_at": null, "line_tracking_stopped_reason": null }, "links": { "self": "/v2/shipments/baaa725e-aa0e-4937-ac78-54d9e2e8621e" }, "relationships": { "port_of_lading": { "data": { "id": "0ccbe8af-c8d0-4abd-a842-3bfad1d82024", "type": "port" } }, "port_of_discharge": { "data": { "id": "6129528d-846e-4571-ae16-b5328a4285ab", "type": "port" } }, "pod_terminal": { "data": { "id": "a243bdf8-0da3-4056-a6a7-05fe8ab43999", "type": "terminal" } }, "destination": { "data": { "id": "87ca3f37-e4d1-46eb-9eb1-6b5ffafde95d", "type": "port" } }, "destination_terminal": { "data": null }, "line_tracking_stopped_by_user": { "data": null }, "containers": { "data": [ { "id": "772cd872-9677-4c68-9b7a-4e9e843b00e2", "type": "container" }, { "id": "52efc544-0de1-452f-bcf8-0290a6ce5c11", "type": "container" }, { "id": "3107692e-61ad-4b4c-b3d4-78348b2e37ff", "type": "container" } ] } } }, { "id": "7721a48c-5e93-43c9-9f5f-5be10a87fdde", "type": "shipment", "attributes": { "created_at": "2024-06-26T16:28:39Z", "ref_numbers": [], "tags": [], "bill_of_lading_number": "OOLU2738424980", "normalized_number": "2738424980", "shipping_line_scac": "OOLU", "shipping_line_name": "Orient Overseas Container Line", "shipping_line_short_name": "OOCL", "customer_name": "Sodor Steamworks", "port_of_lading_locode": "ITSPE", "port_of_lading_name": "La Spezia", "port_of_discharge_locode": "USSAV", "port_of_discharge_name": "Savannah", "pod_vessel_name": "OOCL GUANGZHOU", "pod_vessel_imo": "9404869", "pod_voyage_number": "162E", "destination_locode": "USATL", "destination_name": "Atlanta", "destination_timezone": "America/New_York", "destination_ata_at": null, "destination_eta_at": "2024-06-27T06:42:00Z", "pol_etd_at": null, "pol_atd_at": "2024-06-05T08:03:00Z", "pol_timezone": "Europe/Rome", "pod_eta_at": null, "pod_original_eta_at": null, "pod_ata_at": "2024-06-23T15:34:00Z", "pod_timezone": "America/New_York", "line_tracking_last_attempted_at": "2024-06-26T16:28:39Z", "line_tracking_last_succeeded_at": "2024-06-26T16:28:39Z", "line_tracking_stopped_at": null, "line_tracking_stopped_reason": null }, "links": { "self": "/v2/shipments/7721a48c-5e93-43c9-9f5f-5be10a87fdde" }, "relationships": { "port_of_lading": { "data": { "id": "b5656766-a56f-4b32-8e03-d240e7519604", "type": "port" } }, "port_of_discharge": { "data": { "id": "6129528d-846e-4571-ae16-b5328a4285ab", "type": "port" } }, "pod_terminal": { "data": { "id": "a243bdf8-0da3-4056-a6a7-05fe8ab43999", "type": "terminal" } }, "destination": { "data": { "id": "7daf9ea3-3018-4d62-b88c-43803df9030c", "type": "port" } }, "destination_terminal": { "data": { "id": "022ef8fc-1e2a-4ad6-8eae-330d65eb1c8e", "type": "terminal" } }, "line_tracking_stopped_by_user": { "data": null }, "containers": { "data": [ { "id": "2a25fd3e-a18e-47cc-9cea-62771e82d0f2", "type": "container" }, { "id": "6cdc725d-2b31-40f9-86dd-76225390a488", "type": "container" }, { "id": "2f1e9a9d-4689-4f4d-84a8-64409b56521d", "type": "container" } ] } } }, { "id": "32b5ad78-43ba-42d9-bdc0-4cf12320e020", "type": "shipment", "attributes": { "created_at": "2024-06-26T15:59:52Z", "ref_numbers": [], "tags": [], "bill_of_lading_number": "OOLU2738277190", "normalized_number": "2738277190", "shipping_line_scac": "OOLU", "shipping_line_name": "Orient Overseas Container Line", "shipping_line_short_name": "OOCL", "customer_name": "Sodor Steamworks", "port_of_lading_locode": "CNQDG", "port_of_lading_name": "Qingdao", "port_of_discharge_locode": "USLAX", "port_of_discharge_name": "Los Angeles", "pod_vessel_name": "EVER FORWARD", "pod_vessel_imo": "9850551", "pod_voyage_number": "1119E", "destination_locode": "USMEM", "destination_name": "Memphis", "destination_timezone": "America/Chicago", "destination_ata_at": null, "destination_eta_at": "2024-07-01T14:00:00Z", "pol_etd_at": null, "pol_atd_at": "2024-06-02T18:22:00Z", "pol_timezone": "Asia/Shanghai", "pod_eta_at": null, "pod_original_eta_at": null, "pod_ata_at": "2024-06-22T13:36:00Z", "pod_timezone": "America/Los_Angeles", "line_tracking_last_attempted_at": "2024-06-26T15:59:52Z", "line_tracking_last_succeeded_at": "2024-06-26T15:59:52Z", "line_tracking_stopped_at": null, "line_tracking_stopped_reason": null }, "links": { "self": "/v2/shipments/32b5ad78-43ba-42d9-bdc0-4cf12320e020" }, "relationships": { "port_of_lading": { "data": { "id": "0ccbe8af-c8d0-4abd-a842-3bfad1d82024", "type": "port" } }, "port_of_discharge": { "data": { "id": "47b27584-4ec9-4e2f-95e1-7a42928cc40c", "type": "port" } }, "pod_terminal": { "data": { "id": "42c53b13-0d29-4fa6-8663-7343a56319f1", "type": "terminal" } }, "destination": { "data": { "id": "ba0b9f68-2025-40ca-ae12-1c2210cca333", "type": "port" } }, "destination_terminal": { "data": { "id": "d0ec0da1-8a3a-4b11-b1e3-5716bbc71dc3", "type": "terminal" } }, "line_tracking_stopped_by_user": { "data": null }, "containers": { "data": [ { "id": "60d2fd62-14e2-4ca2-a927-9633fc58fdff", "type": "container" }, { "id": "0ffe3e75-b3df-4d20-b9f4-97bbbcec404d", "type": "container" } ] } } }, { "id": "bd117d3b-8fa4-487c-9bab-25c15e227d1a", "type": "shipment", "attributes": { "created_at": "2024-06-26T15:59:35Z", "ref_numbers": [], "tags": [], "bill_of_lading_number": "OOLU2147973020", "normalized_number": "2147973020", "shipping_line_scac": "OOLU", "shipping_line_name": "Orient Overseas Container Line", "shipping_line_short_name": "OOCL", "customer_name": "Sodor Steamworks", "port_of_lading_locode": "IDSUB", "port_of_lading_name": "Surabaya", "port_of_discharge_locode": "USLAX", "port_of_discharge_name": "Los Angeles", "pod_vessel_name": "CMA CGM A.LINCOLN", "pod_vessel_imo": "9780859", "pod_voyage_number": "1TU70E1MA", "destination_locode": null, "destination_name": null, "destination_timezone": null, "destination_ata_at": null, "destination_eta_at": null, "pol_etd_at": null, "pol_atd_at": "2024-05-14T02:37:00Z", "pol_timezone": "Asia/Jakarta", "pod_eta_at": null, "pod_original_eta_at": null, "pod_ata_at": "2024-06-23T21:58:00Z", "pod_timezone": "America/Los_Angeles", "line_tracking_last_attempted_at": "2024-06-26T15:59:35Z", "line_tracking_last_succeeded_at": "2024-06-26T15:59:35Z", "line_tracking_stopped_at": null, "line_tracking_stopped_reason": null }, "links": { "self": "/v2/shipments/bd117d3b-8fa4-487c-9bab-25c15e227d1a" }, "relationships": { "port_of_lading": { "data": { "id": "4201ab42-c51f-48ac-b7a1-12146e02c6a2", "type": "port" } }, "port_of_discharge": { "data": { "id": "47b27584-4ec9-4e2f-95e1-7a42928cc40c", "type": "port" } }, "pod_terminal": { "data": { "id": "eaa2580c-5f5b-4198-85e4-821145d62098", "type": "terminal" } }, "destination": { "data": null }, "destination_terminal": { "data": null }, "line_tracking_stopped_by_user": { "data": null }, "containers": { "data": [ { "id": "815ff702-fdb5-4455-a28e-314c345d7481", "type": "container" } ] } } } ], "meta": { "size": 5, "total": 34044 }, "links": { "self": "https://api.terminal49.com/v2/shipments?page[size]=5", "current": "https://api.terminal49.com/v2/shipments?page[number]=1&page[size]=5", "next": "https://api.terminal49.com/v2/shipments?page[number]=2&page[size]=5", "last": "https://api.terminal49.com/v2/shipments?page[number]=6809&page[size]=5" } } } } } } }, "422": { "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "$ref": "#/components/schemas/error" } } } }, "examples": { "Errors": { "value": { "error": [ { "title": "Invalid arrival_date_from", "detail": "filter['arrival_from'] must be in the format 'YYYY-MM-DD' and a valid date" }, { "title": "Invalid arrival_date_to", "detail": "filter['arrival_from'] must be in the format 'YYYY-MM-DD' and a valid date" }, { "title": "Invalid port_of_lading", "detail": "port_of_discharge must be an array of 5 character UN/LOCODEs" }, { "title": "Invalid port_of_discharge", "detail": "port_of_discharge must be an array of 5 character UN/LOCODEs" } ] } } } } } } }, "operationId": "get-shipments", "description": "Returns a list of your shipments. The shipments are returned sorted by creation date, with the most recent shipments appearing first.\n\nThis api will return all shipments associated with the account. Shipments created via the `tracking_request` API aswell as the ones added via the dashboard will be retuned via this endpoint. ", "parameters": [ { "schema": { "type": "integer", "default": 1 }, "in": "query", "name": "page[number]", "description": "\n" }, { "schema": { "type": "integer", "default": 30 }, "in": "query", "name": "page[size]", "description": "\n" }, { "schema": { "type": "string" }, "in": "query", "name": "q", "description": "\nSearch shipments by master bill of lading, reference number, or container number.", "deprecated": true }, { "schema": { "type": "string" }, "in": "query", "name": "include", "description": "Comma delimited list of relations to include" }, { "schema": { "type": "string" }, "in": "query", "name": "number", "description": "Search shipments by the original request tracking `request_number`" } ] } }, "/shipments/{id}": { "parameters": [ { "schema": { "type": "string" }, "name": "id", "in": "path", "required": true, "description": "Shipment Id" } ], "get": { "summary": "Get a shipment", "tags": [ "Shipments" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/shipment" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/container" }, { "$ref": "#/components/schemas/port" }, { "$ref": "#/components/schemas/terminal" } ] } } } }, "examples": { "En-route to NY with inland move": { "value": { "data": { "id": "02b1bd6f-407c-45bb-8645-06e7ee34e7e3", "type": "shipment", "attributes": { "created_at": "2024-06-26T15:05:20Z", "ref_numbers": [], "tags": [], "bill_of_lading_number": "MEDUF5399896", "normalized_number": "MEDUF5399896", "shipping_line_scac": "MSCU", "shipping_line_name": "Mediterranean Shipping Company", "shipping_line_short_name": "MSC", "customer_name": "Sodor Steamworks", "port_of_lading_locode": "FRLEH", "port_of_lading_name": "Le Havre", "port_of_discharge_locode": "USNYC", "port_of_discharge_name": "New York / New Jersey", "pod_vessel_name": "MSC ANISHA R.", "pod_vessel_imo": "9227297", "pod_voyage_number": "421A", "destination_locode": "USIND", "destination_name": "Indianapolis", "destination_timezone": "US/Eastern", "destination_ata_at": null, "destination_eta_at": null, "pol_etd_at": null, "pol_atd_at": "2024-06-11T22:00:00Z", "pol_timezone": "Europe/Paris", "pod_eta_at": null, "pod_original_eta_at": null, "pod_ata_at": null, "pod_timezone": "America/New_York", "line_tracking_last_attempted_at": "2024-06-26T15:05:20Z", "line_tracking_last_succeeded_at": "2024-06-26T15:05:20Z", "line_tracking_stopped_at": null, "line_tracking_stopped_reason": null }, "links": { "self": "/v2/shipments/02b1bd6f-407c-45bb-8645-06e7ee34e7e3" }, "relationships": { "port_of_lading": { "data": { "id": "fe7fc831-8a81-4079-8938-b90015912e8b", "type": "port" } }, "port_of_discharge": { "data": { "id": "f7cb530a-9e60-412c-a5bc-205a2f34ba54", "type": "port" } }, "pod_terminal": { "data": { "id": "b859f5c3-8515-41da-bf20-39c0a5ada887", "type": "terminal" } }, "destination": { "data": { "id": "e1e492f6-c8ba-45a9-ad1a-67a7e74547ce", "type": "port" } }, "destination_terminal": { "data": null }, "line_tracking_stopped_by_user": { "data": null }, "containers": { "data": [ { "id": "55a700e4-7005-45a9-92fd-1ff38641dbd9", "type": "container" } ] } } }, "links": { "self": "https://api.terminal49.com/v2/shipments/02b1bd6f-407c-45bb-8645-06e7ee34e7e3?include=containers" }, "included": [ { "id": "55a700e4-7005-45a9-92fd-1ff38641dbd9", "type": "container", "attributes": { "number": "CAIU7432986", "seal_number": null, "created_at": "2024-06-26T15:05:21Z", "ref_numbers": [], "pod_arrived_at": null, "pod_discharged_at": "2024-06-22T04:00:00Z", "final_destination_full_out_at": null, "holds_at_pod_terminal": [], "available_for_pickup": true, "equipment_type": "dry", "equipment_length": 40, "equipment_height": "high_cube", "weight_in_lbs": null, "pod_full_out_at": null, "empty_terminated_at": null, "terminal_checked_at": "2024-06-26T17:51:12Z", "fees_at_pod_terminal": [], "pickup_lfd": "2024-07-07T04:00:00Z", "pickup_appointment_at": null, "pod_full_out_chassis_number": null, "location_at_pod_terminal": "Yard - Y0709A", "pod_last_tracking_request_at": "2024-06-26T17:51:12Z", "shipment_last_tracking_request_at": "2024-06-26T15:05:20Z", "availability_known": true, "pod_timezone": "America/New_York", "final_destination_timezone": "US/Eastern", "empty_terminated_timezone": "US/Eastern", "pickup_rail_carrier_scac": "CSXT", "pod_rail_loaded_at": null, "pod_rail_departed_at": null, "inland_destination_eta_at": null, "inland_destination_ata_at": null, "inland_destination_rail_unloaded_at": null, "pickup_facility_holds": null, "pickup_facility_fees": null, "pickup_facility_yard_location": null, "pickup_facility_lfd_on": null }, "relationships": { "shipment": { "data": { "id": "02b1bd6f-407c-45bb-8645-06e7ee34e7e3", "type": "shipment" } }, "pickup_facility": { "data": null }, "pod_terminal": { "data": { "id": "b859f5c3-8515-41da-bf20-39c0a5ada887", "type": "terminal" } }, "transport_events": { "data": [ { "id": "45b542cb-332b-4684-b915-42e3a0759823", "type": "transport_event" }, { "id": "174ed528-a1a9-4002-aef0-f2c9369199da", "type": "transport_event" }, { "id": "7a2f30a6-a756-4c14-9477-fbfc1c7fe2f8", "type": "transport_event" }, { "id": "e7365004-175a-46e8-96cd-dbed0f3daf21", "type": "transport_event" }, { "id": "7c567bf3-7f01-4a3d-a176-eaa1f7165585", "type": "transport_event" } ] }, "raw_events": { "data": [ { "id": "2956f71c-bfb9-4e49-b9e2-1b4d53c74cac", "type": "raw_event" }, { "id": "391e0eda-65b5-4fc3-a53d-25ecd9570259", "type": "raw_event" }, { "id": "74810c04-6c8a-4194-8cff-52936584a965", "type": "raw_event" }, { "id": "4b1500e2-b23b-4896-87bd-c38b1d16f385", "type": "raw_event" }, { "id": "8b9a7d88-720a-4304-8c1e-a3336e39f481", "type": "raw_event" }, { "id": "bf1f59c5-5dd8-4013-87f9-d7056bc87114", "type": "raw_event" } ] } } } ] } } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "$ref": "#/components/schemas/error" } } } }, "examples": { "En-route to NY with inland move": { "value": { "data": { "id": "512ae32c-a604-44f8-9c15-2ca9cd3d2ae8", "type": "shipment", "attributes": { "bill_of_lading_number": "6140575020", "ref_numbers": [ "my-ref-49", "PO#18412" ], "created_at": "2020-02-20T13:37:12Z", "tags": [], "port_of_lading_locode": "INVTZ", "port_of_lading_name": "Visakhapatnam, IN", "port_of_discharge_locode": "USNYC", "port_of_discharge_name": "New York / New Jersey, NY", "destination_locode": "USDET", "destination_name": "Detroit, MI", "shipping_line_scac": "HLCU", "pod_vessel_name": "CMA CGM ALMAVIVA", "pod_voyage_number": "0108", "pol_etd_at": null, "pol_atd_at": "2020-02-15T21:53Z", "pol_timezone": "Asia/Calcutta", "pod_eta_at": "2020-03-18T08:00Z", "pod_ata_at": null, "pod_timezone": "America/New_York", "destination_eta_at": "2020-03-26T17:00Z", "destination_ata_at": null, "destination_timezone": "America/Detroit" }, "relationships": { "containers": { "data": [ { "id": "c99a81c0-ff69-4bdf-aa5f-8e33a787f5fa", "type": "container" } ] }, "port_of_lading": { "data": { "id": "bde5465a-1160-4fde-a026-74df9c362f65", "type": "port" } }, "port_of_discharge": { "data": { "id": "f7cb530a-9e60-412c-a5bc-205a2f34ba54", "type": "port" } }, "destination": { "data": { "id": "c9ae2b6b-5088-4e07-ba09-2872121e4fa2", "type": "metro_area" } }, "customer": { "data": { "id": "ff76b51a-371e-45ec-86d1-9d03ccae566a", "type": "account" } } } }, "included": [ { "id": "c99a81c0-ff69-4bdf-aa5f-8e33a787f5fa", "type": "container", "attributes": { "number": "UACU4743531", "equipment_type": "reefer", "length": 40, "height": "high_cube", "weight_in_lbs": 35075, "created_at": "2020-02-20T08:19:52Z", "seal_number": null, "pickup_lfd": null, "availability_known": false, "available_for_pickup": null, "current_transportation_mode": "vessel", "pod_discharged_at": null, "pod_picked_up_at": null, "destination_unloaded_at": null, "destination_picked_up_at": null, "empty_returned_at": null, "pod_timezone": "America/Los_Angeles", "final_destination_timezone": null, "empty_terminated_timezone": null }, "relationships": { "most_recent_location": { "data": { "id": "dd179094-a1d4-4129-842d-b952e43df4b7", "type": "port" } }, "shipment": { "data": { "id": "512ae32c-a604-44f8-9c15-2ca9cd3d2ae8", "type": "shipment" } } } }, { "id": "bde5465a-1160-4fde-a026-74df9c362f65", "type": "port", "attributes": { "name": "Visakhapatnam", "code": "INVTZ", "country_code": "IN", "timezone": "Asia/Calcutta" } }, { "id": "dd179094-a1d4-4129-842d-b952e43df4b7", "type": "port", "attributes": { "name": "Damietta", "code": "EGDAM", "country_code": "EG", "time_zone": "Africa/Cairo" } }, { "id": "f7cb530a-9e60-412c-a5bc-205a2f34ba54", "type": "port", "attributes": { "name": "New York / New Jersey", "code": "USNYC", "country_code": "US", "timezone": "America/New_York" } }, { "id": "c9ae2b6b-5088-4e07-ba09-2872121e4fa2", "type": "metro_area", "attributes": { "name": "Detroit", "code": "USDET", "country_code": "US", "state_abbr": "MI", "timezone": "America/Detroit" } }, { "id": "ff76b51a-371e-45ec-86d1-9d03ccae566a", "type": "account", "attributes": { "name": "A-Z Imports" } }, { "id": "252a5450-2893-4207-b5c4-81ce3152ce84", "type": "vessel", "attributes": { "name": "CMA CGM ALMAVIVA", "imo": "9450648", "mmsi": "228339600", "latitude": 70.22625823437389, "longitude": 45.06279126658865, "nautical_speed_knots": 100, "navigational_heading_degrees": 1, "position_timestamp": "2023-06-05T19:46:18Z" } } ] } } } } } } }, "operationId": "get-shipment-id", "description": "Retrieves the details of an existing shipment. You need only supply the unique shipment `id` that was returned upon `tracking_request` creation.", "parameters": [ { "schema": { "type": "string" }, "in": "query", "name": "include", "description": "Comma delimited list of relations to include" } ] }, "patch": { "summary": "Edit a shipment", "operationId": "patch-shipments-id", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/shipment" } } } } } } }, "description": "Update a shipment", "tags": [ "Shipments" ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "attributes" ], "properties": { "attributes": { "type": "object", "properties": { "ref_numbers": { "type": "array", "example": [ "REFNUMBER10" ], "description": "Shipment ref numbers.", "items": { "type": "string" } }, "shipment_tags": { "type": "array", "x-stoplight": { "id": "02itol38fmg55" }, "uniqueItems": true, "description": "Tags related to a shipment", "items": { "x-stoplight": { "id": "64x90wvr9d6nd" }, "type": "string", "example": "tag1, tag2" } } } } } } } } } } } } }, "/shipments/{id}/stop_tracking": { "parameters": [ { "schema": { "type": "string" }, "name": "id", "in": "path", "required": true } ], "patch": { "summary": "Stop tracking a shipment", "operationId": "patch-shipments-id-stop-tracking", "tags": [ "Shipments" ], "description": "We'll stop tracking the shipment, which means that there will be no more updates. You can still access the shipment's previously-collected information via the API or dashboard.\n\nYou can resume tracking a shipment by calling the `resume_tracking` endpoint, but keep in mind that some information is only made available by our data sources at specific times, so a stopped and resumed shipment may have some information missing.", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/shipment" } } } } } } } } }, "/shipments/{id}/resume_tracking": { "parameters": [ { "schema": { "type": "string" }, "name": "id", "in": "path", "required": true } ], "patch": { "summary": "Resume tracking a shipment", "operationId": "patch-shipments-id-resume-tracking", "tags": [ "Shipments" ], "description": "Resume tracking a shipment. Keep in mind that some information is only made available by our data sources at specific times, so a stopped and resumed shipment may have some information missing.", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/shipment" } } } } } } } } }, "/tracking_requests": { "post": { "summary": "Create a tracking request", "operationId": "post-track", "responses": { "201": { "description": "Tracking Request Created", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/tracking_request" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/account" }, { "$ref": "#/components/schemas/shipping_line" } ] } } } }, "examples": { "Pending Tracking Request": { "value": { "data": { "id": "ba4cb904-827f-4038-8e31-1e92b3356218", "type": "tracking_request", "attributes": { "request_number": "MEDUFR030802", "request_type": "bill_of_lading", "scac": "MSCU", "ref_numbers": [], "created_at": "2020-04-04T16:13:35-07:00", "status": "pending", "failed_reason": null }, "relationships": { "tracked_object": { "data": null } }, "links": { "self": "/v2/tracking_requests/ba4cb904-827f-4038-8e31-1e92b3356218" } } } } } } }, "headers": {} }, "422": { "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "$ref": "#/components/schemas/error" } } } }, "examples": { "Error Examples": { "value": { "errors": [ { "status": "422", "source": { "pointer": "/data/attributes/scac" }, "title": "Unprocessable Entity", "detail": "Scac can't be blank", "code": "blank" }, { "status": "422", "source": { "pointer": "/data/attributes/scac" }, "title": "Unprocessable Entity", "detail": "Scac 'XXXX' is not recognized", "code": "blank" }, { "status": "422", "source": { "pointer": "/data/attributes/scac" }, "title": "Unprocessable Entity", "detail": "Scac 'UALC' is not supported. We do not currently integrate with Universal Africa Lines", "code": "blank" }, { "status": "422", "source": { "pointer": "/data/attributes/request_number" }, "title": "Unprocessable Entity", "detail": "Request number can't be blank", "code": "blank" } ] } } } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "request_type": { "type": "string", "example": "bill_of_lading", "enum": [ "bill_of_lading", "booking_number", "container" ], "description": " The type of document number to be supplied. Container number support is currently in BETA." }, "request_number": { "type": "string", "example": "MEDUFR030802" }, "scac": { "type": "string", "example": "MSCU", "minLength": 4, "maxLength": 4 }, "ref_numbers": { "type": "array", "description": "Optional list of reference numbers to be added to the shipment when tracking request completes", "items": { "type": "string" } }, "shipment_tags": { "type": "array", "description": "Optional list of tags to be added to the shipment when tracking request completes", "items": { "type": "string" } } }, "required": [ "request_type", "request_number", "scac" ] }, "type": { "enum": [ "tracking_request" ], "type": "string" } }, "required": [ "type" ] } } }, "examples": { "Example: MSC BL": { "value": { "data": { "attributes": { "request_type": "bill_of_lading", "request_number": "MEDUFR030802", "ref_numbers": [ "PO12345", "HBL12345", "CUSREF1234" ], "shipment_tags": [ "camembert" ], "scac": "MSCU" }, "type": "tracking_request" } } } } } }, "description": "Create a shipment tracking request" }, "security": [ { "authorization": [] } ], "description": "To track an ocean shipment, you create a new tracking request. \nTwo attributes are required to track a shipment. A `bill of lading/booking number` and a shipping line `SCAC`. \n\nOnce a tracking request is created we will attempt to fetch the shipment details and it's related containers from the shipping line. If the attempt is successful we will create in new shipment object including any related container objects. We will send a `tracking_request.succeeded` webhook notification to your webhooks. \n\nIf the attempt to fetch fails then we will send a `tracking_request.failed` webhook notification to your `webhooks`. \n\nA `tracking_request.succeeded` or `tracking_request.failed` webhook notificaiton will only be sent if you have atleast one active webhook. ", "tags": [ "Tracking Requests" ], "parameters": [] }, "parameters": [], "get": { "summary": "List tracking requests", "operationId": "get-tracking-requests", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/tracking_request" } }, "links": { "$ref": "#/components/schemas/links" }, "meta": { "$ref": "#/components/schemas/meta" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/account" }, { "$ref": "#/components/schemas/shipping_line" }, { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "shipment" ] }, "links": { "type": "object", "properties": { "self": { "type": "string", "format": "uri" } } } }, "description": "" } ] } } } }, "examples": {} } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "$ref": "#/components/schemas/error" } } } } } } } }, "description": "Returns a list of your tracking requests. The tracking requests are returned sorted by creation date, with the most recent tracking request appearing first.", "tags": [ "Tracking Requests" ], "parameters": [ { "schema": { "type": "string" }, "in": "query", "name": "q", "description": "A search term to be applied against request_number and reference_numbers.", "deprecated": true }, { "schema": { "type": "string", "enum": [ "created", "pending", "failed" ], "example": "created" }, "in": "query", "name": "filter[status]", "description": "filter by `status`" }, { "schema": { "type": "string", "example": "MSCU" }, "in": "query", "name": "filter[scac]", "description": "filter by shipping line `scac`" }, { "schema": { "type": "string", "example": "2020-04-28T22:59:15Z", "format": "date-time" }, "in": "query", "name": "filter[created_at][start]", "description": "filter by tracking_requests `created_at` after a certain ISO8601 timestamp" }, { "schema": { "type": "string", "format": "date-time", "example": "2020-04-28T22:59:15Z" }, "in": "query", "description": "filter by tracking_requests `created_at` before a certain ISO8601 timestamp", "name": "filter[created_at][end]" }, { "schema": { "type": "string" }, "in": "query", "name": "include", "description": "Comma delimited list of relations to include. 'tracked_object' is included by default." }, { "schema": { "type": "integer" }, "in": "query", "name": "page[number]" }, { "schema": { "type": "integer" }, "in": "query", "name": "page[size]" }, { "schema": { "type": "string" }, "in": "query", "name": "filter[request_number]", "description": "filter by `request_number`" } ] } }, "/tracking_requests/{id}": { "parameters": [ { "schema": { "type": "string" }, "name": "id", "in": "path", "required": true, "description": "Tracking Request ID" } ], "get": { "summary": "Get a single tracking request", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/tracking_request" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/account" }, { "$ref": "#/components/schemas/shipment" }, { "$ref": "#/components/schemas/shipping_line" } ] } } } }, "examples": { "With Status Created": { "value": { "data": { "id": "ba4cb904-827f-4038-8e31-1e92b3356218", "type": "tracking_request", "attributes": { "request_number": "MEDUFR030802", "request_type": "bill_of_lading", "scac": "MSCU", "ref_numbers": [], "created_at": "2020-04-04T16:13:35-07:00", "status": "created", "failed_reason": null }, "relationships": { "tracked_object": { "data": { "id": "eb6f218a-0b4a-47f9-8ef9-759aa5e0ea83", "type": "shipment" } } }, "links": { "self": "/v2/tracking_requests/ba4cb904-827f-4038-8e31-1e92b3356218" } }, "included": [ { "id": "eb6f218a-0b4a-47f9-8ef9-759aa5e0ea83", "type": "shipment", "attributes": { "created_at": "2020-04-04T16:13:37-07:00", "bill_of_lading_number": "MEDUFR030802", "ref_numbers": [], "shipping_line_scac": "MSCU", "shipping_line_name": "Mediterranean Shipping Company", "port_of_lading_locode": "FRFOS", "port_of_lading_name": "Fos-Sur-Mer", "port_of_discharge_locode": "USOAK", "port_of_discharge_name": "Oakland", "pod_vessel_name": "MSC ALGECIRAS", "pod_vessel_imo": "9605243", "pod_voyage_number": "920A", "destination_locode": "USOAK", "destination_name": "Oakland", "destination_timezone": "America/Los_Angeles", "destination_ata_at": "2019-06-21T18:46:00-07:00", "destination_eta_at": null, "pol_etd_at": null, "pol_atd_at": "2019-05-24T03:00:00-07:00", "pol_timezone": "Europe/Paris", "pod_eta_at": null, "pod_ata_at": "2019-06-21T18:46:00-07:00", "pod_timezone": "America/Los_Angeles" }, "relationships": { "port_of_lading": { "data": { "id": "6d8c6c29-72a6-49ad-87b7-fd045f202212", "type": "port" } }, "port_of_discharge": { "data": { "id": "42d1ba3a-f4b8-431d-a6fe-49fd748a59e7", "type": "port" } }, "pod_terminal": { "data": null }, "destination": { "data": { "id": "42d1ba3a-f4b8-431d-a6fe-49fd748a59e7", "type": "port" } }, "containers": { "data": [ { "id": "11c1fa10-52a5-48e2-82f4-5523756b3d0f", "type": "container" } ] } }, "links": { "self": "/v2/shipments/eb6f218a-0b4a-47f9-8ef9-759aa5e0ea83" } } ] } }, "Multiple containers": { "value": { "data": { "id": "62c30bd4-d7fc-40dc-9fd6-fb39224301f5", "type": "tracking_request", "attributes": { "request_number": "212157148", "request_type": "bill_of_lading", "scac": "MAEU", "ref_numbers": [], "shipment_tags": [], "created_at": "2021-07-27T16:44:14Z", "status": "created", "failed_reason": null, "is_retrying": false, "retry_count": null }, "relationships": { "tracked_object": { "data": { "id": "dfc9f601-f6fe-412e-a71c-feabcc2dd4e3", "type": "shipment" } }, "customer": { "data": null } }, "links": { "self": "/v2/tracking_requests/62c30bd4-d7fc-40dc-9fd6-fb39224301f5" } }, "links": { "self": "https://api.terminal49.com/v2/tracking_requests/62c30bd4-d7fc-40dc-9fd6-fb39224301f5?filter%5Bstatus%5D=created" }, "included": [ { "id": "dfc9f601-f6fe-412e-a71c-feabcc2dd4e3", "type": "shipment", "attributes": { "created_at": "2021-07-27T16:44:16Z", "ref_numbers": null, "tags": [], "bill_of_lading_number": "212157148", "shipping_line_scac": "MAEU", "shipping_line_name": "Maersk", "shipping_line_short_name": "Maersk", "port_of_lading_locode": "MYTPP", "port_of_lading_name": "Tanjung Pelepas", "port_of_discharge_locode": null, "port_of_discharge_name": null, "pod_vessel_name": null, "pod_vessel_imo": null, "pod_voyage_number": null, "destination_locode": null, "destination_name": null, "destination_timezone": null, "destination_ata_at": null, "destination_eta_at": null, "pol_etd_at": null, "pol_atd_at": null, "pol_timezone": "Asia/Kuala_Lumpur", "pod_eta_at": "2021-09-15T15:00:00Z", "pod_ata_at": null, "pod_timezone": null, "line_tracking_last_attempted_at": null, "line_tracking_last_succeeded_at": "2021-07-27T16:44:16Z", "line_tracking_stopped_at": null, "line_tracking_stopped_reason": null }, "relationships": { "port_of_lading": { "data": { "id": "6c387786-252c-476d-9f99-7d835b6b978b", "type": "port" } }, "port_of_discharge": { "data": null }, "pod_terminal": { "data": null }, "destination": { "data": null }, "destination_terminal": { "data": null }, "containers": { "data": [ { "id": "965880c9-a37e-4ed7-a060-9c49c0f0c5ed", "type": "container" }, { "id": "ea1f8e08-fcdf-498d-9cb5-0c370b023eeb", "type": "container" }, { "id": "67f55105-8ea2-4137-9244-f9cc204f5766", "type": "container" }, { "id": "5ab5d058-772c-466c-bc73-0b8767ad5a79", "type": "container" } ] } }, "links": { "self": "/v2/shipments/dfc9f601-f6fe-412e-a71c-feabcc2dd4e3" } } ] } } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "$ref": "#/components/schemas/error" } } } }, "examples": {} } } } }, "operationId": "get-track-request-by-id", "description": "Get the details and status of an existing tracking request. ", "tags": [ "Tracking Requests" ], "parameters": [ { "schema": { "type": "string" }, "in": "query", "name": "include", "description": "Comma delimited list of relations to include. 'tracked_object' is included by default." } ], "x-internal": false }, "patch": { "summary": "Edit a tracking request", "operationId": "patch-track-request-by-id", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/tracking_request" } } } } } } }, "description": "Update a tracking request", "tags": [ "Tracking requests" ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "type": "object", "properties": { "ref_number": { "type": "string", "example": "REFNUMBER11", "description": "Tracking request ref number." } } } } } } } } } } } }, "/webhooks/{id}": { "parameters": [ { "schema": { "type": "string" }, "name": "id", "in": "path", "required": true } ], "get": { "summary": "Get single webhook", "tags": [ "Webhooks" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/webhook" } } } } } } }, "operationId": "get-webhooks-id", "description": "Get the details of a single webhook" }, "patch": { "summary": "Edit a webhook", "operationId": "patch-webhooks-id", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/webhook" } } } } } } }, "description": "Update a single webhook", "tags": [ "Webhooks" ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "type": "object", "properties": { "url": { "type": "string", "example": "https://webhook.site/#!/39084fbb-d887-42e8-be08-b9183ad02362", "format": "uri", "description": "The URL of the webhook endpoint." }, "events": { "type": "array", "description": "The list of events to enable for this endpoint.", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "container.transport.vessel_arrived", "container.transport.vessel_discharged", "container.transport.vessel_loaded", "container.transport.vessel_departed", "container.transport.rail_departed", "container.transport.rail_arrived", "container.transport.rail_loaded", "container.transport.rail_unloaded", "container.transport.transshipment_arrived", "container.transport.transshipment_discharged", "container.transport.transshipment_loaded", "container.transport.transshipment_departed", "container.transport.feeder_arrived", "container.transport.feeder_discharged", "container.transport.feeder_loaded", "container.transport.feeder_departed", "container.transport.empty_out", "container.transport.full_in", "container.transport.full_out", "container.transport.empty_in", "container.transport.vessel_berthed", "shipment.estimated.arrival", "tracking_request.succeeded", "tracking_request.failed", "tracking_request.awaiting_manifest", "tracking_request.tracking_stopped", "container.created", "container.updated", "container.pod_terminal_changed", "container.transport.arrived_at_inland_destination", "container.transport.estimated.arrived_at_inland_destination", "container.pickup_lfd.changed" ] } }, "active": { "type": "boolean" }, "headers": { "type": "array", "description": "Optional custom headers to pass with each webhook invocation", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the header. (Please not this will be auto-capitalized) " }, "value": { "type": "string", "description": "The value to pass for the header\n" } } } } } }, "type": { "type": "string", "enum": [ "webhook" ] } } } }, "required": [ "data" ] }, "examples": {} } } } }, "delete": { "summary": "Delete a webhook", "operationId": "delete-webhooks-id", "responses": { "200": { "description": "OK" } }, "description": "Delete a webhook", "tags": [ "Webhooks" ] } }, "/webhooks": { "get": { "summary": "List webhooks", "tags": [ "Webhooks" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/webhook" } }, "meta": { "$ref": "#/components/schemas/meta" }, "links": { "$ref": "#/components/schemas/links" } } }, "examples": { "example-1": { "value": { "data": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "type": "webhook", "attributes": { "url": "http://example.com", "active": true, "events": [ "tracking_request.succeeded" ], "secret": "672bd7b58b54645934a830d8fa", "headers": [ { "name": "x-secret-sauce", "value": "sriracha" } ] } } ], "meta": { "size": 0, "total": 0 }, "links": { "last": "http://example.com", "next": "http://example.com", "prev": "http://example.com", "first": "http://example.com", "self": "http://example.com" } } } } } } } }, "operationId": "get-webhooks", "description": "Get a list of all the webhooks", "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "page[number]" }, { "schema": { "type": "integer" }, "in": "query", "name": "page[size]" } ] }, "post": { "summary": "Create a webhook", "operationId": "post-webhooks", "tags": [ "Webhooks" ], "description": "You can configure a webhook via the API to be notified about events that happen in your Terminal49 account. These events can be realted to tracking_requests, shipments and containers. \n\nThis is the recommended way tracking shipments and containers via the API. You should use this instead of polling our the API periodically. ", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "type": "object", "required": [ "url", "active" ], "properties": { "url": { "type": "string", "example": "https://webhook.site/#!/39084fbb-d887-42e8-be08-b9183ad02362", "format": "uri", "description": "The URL of the webhook endpoint." }, "events": { "type": "array", "uniqueItems": true, "description": "The list of events to enable for this endpoint.", "minItems": 1, "items": { "type": "string", "enum": [ "container.transport.vessel_arrived", "container.transport.vessel_discharged", "container.transport.vessel_loaded", "container.transport.vessel_departed", "container.transport.rail_departed", "container.transport.rail_arrived", "container.transport.rail_loaded", "container.transport.rail_unloaded", "container.transport.transshipment_arrived", "container.transport.transshipment_discharged", "container.transport.transshipment_loaded", "container.transport.transshipment_departed", "container.transport.feeder_arrived", "container.transport.feeder_discharged", "container.transport.feeder_loaded", "container.transport.feeder_departed", "container.transport.empty_out", "container.transport.full_in", "container.transport.full_out", "container.transport.empty_in", "container.transport.vessel_berthed", "shipment.estimated.arrival", "tracking_request.succeeded", "tracking_request.failed", "tracking_request.awaiting_manifest", "tracking_request.tracking_stopped", "container.created", "container.updated", "container.pod_terminal_changed", "container.transport.arrived_at_inland_destination", "container.transport.estimated.arrived_at_inland_destination", "container.pickup_lfd.changed" ], "example": "tracking_request.succeeded" } }, "active": { "type": "boolean" }, "headers": { "type": "array", "description": "Optional custom headers to pass with each webhook invocation", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the header. (Please note this will be auto-capitalized) " }, "value": { "type": "string", "description": "The value to pass for the header\n" } } } } } }, "type": { "type": "string", "enum": [ "webhook" ] } } } }, "required": [ "data" ] }, "examples": { "Test Webhook (all events)": { "value": { "data": { "attributes": { "url": "https://webhook.site/", "events": [ "container.transport.vessel_arrived", "container.transport.vessel_discharged", "container.transport.vessel_loaded", "container.transport.vessel_departed", "container.transport.rail_departed", "container.transport.rail_arrived", "container.transport.rail_loaded", "container.transport.rail_unloaded", "container.transport.transshipment_arrived", "container.transport.transshipment_discharged", "container.transport.transshipment_loaded", "container.transport.transshipment_departed", "container.transport.feeder_arrived", "container.transport.feeder_discharged", "container.transport.feeder_loaded", "container.transport.feeder_departed", "container.transport.empty_out", "container.transport.full_in", "container.transport.full_out", "container.transport.empty_in", "container.transport.vessel_berthed", "shipment.estimated.arrival", "tracking_request.succeeded", "tracking_request.failed", "tracking_request.awaiting_manifest", "tracking_request.tracking_stopped", "container.created", "container.updated", "container.pod_terminal_changed", "container.transport.arrived_at_inland_destination", "container.transport.estimated.arrived_at_inland_destination", "container.pickup_lfd.changed" ], "active": true }, "type": "webhook" } } } } } }, "description": "" }, "responses": { "201": { "description": "Create a test webhook endpoint", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/webhook" } } }, "examples": { "Test Endpoint Created": { "value": { "data": { "type": "webhook", "id": "9809fb96-7754-488f-99df-29ca8d410d89", "attributes": { "url": "https://webhook.site/", "active": true, "events": [ "tracking_request.succeeded" ], "secret": "C193J3QOXMFH", "created_at": "2020-06-05T19:06:13Z" } } } } } }, "application/xml": { "schema": { "$ref": "#/components/schemas/webhook" } } } } } }, "parameters": [] }, "/webhook_notifications/{id}": { "parameters": [ { "schema": { "type": "string" }, "name": "id", "in": "path", "required": true } ], "get": { "summary": "Get a single webhook notification", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/webhook_notification" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/webhook" }, { "$ref": "#/components/schemas/tracking_request" }, { "$ref": "#/components/schemas/transport_event" }, { "$ref": "#/components/schemas/estimated_event" }, { "$ref": "#/components/schemas/container_updated_event" } ] } } } }, "examples": { "Tracking Request": { "value": { "data": { "id": "a76187fc-5749-43f9-9053-cfaad9790a31", "type": "webhook_notification", "attributes": { "id": "a76187fc-5749-43f9-9053-cfaad9790a31", "event": "tracking_request.succeeded", "delivery_status": "pending", "created_at": "2020-09-11T21:25:34Z" }, "relationships": { "reference_object": { "data": { "id": "bdeca506-9741-4ab1-a0a7-cfd1d908e923", "type": "tracking_request" } }, "webhook": { "data": { "id": "914b21ce-dd7d-4c49-8503-65aba488e9a9", "type": "webhook" } }, "webhook_notification_logs": { "data": [] } } }, "included": [ { "id": "bdeca506-9741-4ab1-a0a7-cfd1d908e923", "type": "tracking_request", "attributes": { "request_number": "TE497ED1063E", "request_type": "bill_of_lading", "scac": "MSCU", "ref_numbers": [], "created_at": "2020-09-11T21:25:34Z", "status": "created", "failed_reason": null, "is_retrying": false, "retry_count": null }, "relationships": { "tracked_object": { "data": { "id": "b5b10c0a-8d18-46da-b4c2-4e5fa790e7da", "type": "shipment" } } }, "links": { "self": "/v2/tracking_requests/bdeca506-9741-4ab1-a0a7-cfd1d908e923" } }, { "id": "b5b10c0a-8d18-46da-b4c2-4e5fa790e7da", "type": "shipment", "attributes": { "created_at": "2020-09-11T21:25:33Z", "bill_of_lading_number": "TE497ED1063E", "ref_numbers": [], "shipping_line_scac": "MSCU", "shipping_line_name": "Mediterranean Shipping Company", "port_of_lading_locode": "MXZLO", "port_of_lading_name": "Manzanillo", "port_of_discharge_locode": "USOAK", "port_of_discharge_name": "Port of Oakland", "pod_vessel_name": "MSC CHANNE", "pod_vessel_imo": "9710438", "pod_voyage_number": "098N", "destination_locode": null, "destination_name": null, "destination_timezone": null, "destination_ata_at": null, "destination_eta_at": null, "pol_etd_at": null, "pol_atd_at": "2020-08-29T21:25:33Z", "pol_timezone": "America/Mexico_City", "pod_eta_at": "2020-09-18T21:25:33Z", "pod_ata_at": null, "pod_timezone": "America/Los_Angeles" }, "relationships": { "port_of_lading": { "data": { "id": "4384d6a5-5ccc-43b7-8d19-4a9525e74c08", "type": "port" } }, "port_of_discharge": { "data": { "id": "2a765fdd-c479-4345-b71d-c4ef839952e2", "type": "port" } }, "pod_terminal": { "data": { "id": "17891bc8-52da-40bf-8ff0-0247ec05faf1", "type": "terminal" } }, "destination": { "data": null }, "containers": { "data": [ { "id": "b2fc728c-e2f5-4a99-8899-eb7b34ef22d7", "type": "container" } ] } }, "links": { "self": "/v2/shipments/b5b10c0a-8d18-46da-b4c2-4e5fa790e7da" } }, { "id": "b2fc728c-e2f5-4a99-8899-eb7b34ef22d7", "type": "container", "attributes": { "number": "ARDU1824900", "seal_number": "139F1451", "created_at": "2020-09-11T21:25:34Z", "equipment_type": "dry", "equipment_length": 40, "equipment_height": "standard", "weight_in_lbs": 53507, "fees_at_pod_terminal": [], "holds_at_pod_terminal": [], "pickup_lfd": null, "pickup_appointment_at": null, "availability_known": true, "available_for_pickup": false, "pod_arrived_at": null, "pod_discharged_at": null, "final_destination_full_out_at": null, "pod_full_out_at": null, "empty_terminated_at": null, "pod_timezone": "America/Los_Angeles", "final_destination_timezone": null, "empty_terminated_timezone": null }, "relationships": { "shipment": { "data": { "id": "b5b10c0a-8d18-46da-b4c2-4e5fa790e7da", "type": "shipment" } }, "pod_terminal": { "data": { "id": "17891bc8-52da-40bf-8ff0-0247ec05faf1", "type": "terminal" } }, "transport_events": { "data": [ { "id": "56078596-5293-4c84-9245-cca00a787265", "type": "transport_event" } ] } } }, { "id": "56078596-5293-4c84-9245-cca00a787265", "type": "transport_event", "attributes": { "event": "container.transport.vessel_departed", "created_at": "2020-09-11T21:25:34Z", "voyage_number": null, "timestamp": "2020-08-29T21:25:33Z", "location_locode": "MXZLO", "timezone": "America/Los_Angeles" }, "relationships": { "shipment": { "data": { "id": "b5b10c0a-8d18-46da-b4c2-4e5fa790e7da", "type": "shipment" } }, "container": { "data": { "id": "b2fc728c-e2f5-4a99-8899-eb7b34ef22d7", "type": "container" } }, "vessel": { "data": null }, "location": { "data": { "id": "2a765fdd-c479-4345-b71d-c4ef839952e2", "type": "port" } }, "terminal": { "data": null } } } ] } }, "Estimated Event": { "value": { "data": { "id": "d7e04138-b59d-4c41-9d2d-251d95bedd6e", "type": "webhook_notification", "attributes": { "id": "d7e04138-b59d-4c41-9d2d-251d95bedd6e", "event": "shipment.estimated.arrival", "delivery_status": "pending", "created_at": "2020-09-11T21:25:34Z" }, "relationships": { "reference_object": { "data": { "id": "b68bc6cb-2c37-43f6-889b-86a16b2b6fe6", "type": "estimated_event" } }, "webhook": { "data": { "id": "614eab61-ae3c-4d40-bbe9-41200a172691", "type": "webhook" } } } }, "included": [ { "id": "b68bc6cb-2c37-43f6-889b-86a16b2b6fe6", "type": "estimated_event", "attributes": { "created_at": "2020-04-06T19:02:46-07:00", "estimated_timestamp": "2020-04-09T19:02:46-07:00", "voyage_number": "A1C", "event": "shipment.estimated.arrival", "timezone": "America/Los_Angeles" }, "relationships": { "shipment": { "data": { "id": "715ed64b-6195-49f6-9407-1383a8088bfd", "type": "shipment" } }, "port": { "data": { "id": "ed4001a5-ad9d-43c3-883c-79354f422510", "type": "port" } }, "vessel": { "data": { "id": "ebf68c6c-9d0d-4383-aa41-e097009dfb4c", "type": "vessel" } } } }, { "id": "ed4001a5-ad9d-43c3-883c-79354f422510", "type": "port", "attributes": { "id": "ed4001a5-ad9d-43c3-883c-79354f422510", "name": "Port of Oakland", "code": "USOAK", "state_abbr": "CA", "city": "Oakland", "country_code": "US", "time_zone": "America/Los_Angeles" } }, { "id": "715ed64b-6195-49f6-9407-1383a8088bfd", "type": "shipment", "attributes": { "created_at": "2020-04-06T19:02:46-07:00", "bill_of_lading_number": "TE49DD6650B9", "ref_numbers": [ "REF-4A25EA" ], "shipping_line_scac": "MSCU", "shipping_line_name": "Mediterranean Shipping Company", "port_of_lading_locode": "MXZLO", "port_of_lading_name": "Manzanillo", "port_of_discharge_locode": "USOAK", "port_of_discharge_name": "Port of Oakland", "pod_vessel_name": "MSC CHANNE", "pod_vessel_imo": "9710438", "pod_voyage_number": "098N", "destination_locode": null, "destination_name": null, "destination_timezone": null, "destination_ata_at": null, "destination_eta_at": null, "pol_etd_at": null, "pol_atd_at": null, "pol_timezone": "America/Mexico_City", "pod_eta_at": "2020-04-13T19:02:46-07:00", "pod_ata_at": null, "pod_timezone": "America/Los_Angeles" }, "relationships": { "port_of_lading": { "data": { "id": "1378c720-efe9-4562-a2ad-562002eb4b1d", "type": "port" } }, "port_of_discharge": { "data": { "id": "ed4001a5-ad9d-43c3-883c-79354f422510", "type": "port" } }, "pod_terminal": { "data": { "id": "2508d879-4451-4d7f-ab23-92258b5df553", "type": "terminal" } }, "destination": { "data": null }, "containers": { "data": [] } }, "links": { "self": "/v2/shipments/715ed64b-6195-49f6-9407-1383a8088bfd" } } ] } }, "Transport Event": { "value": { "data": { "id": "abec839a-48fe-4540-93d7-d3ea3d67bdbf", "type": "webhook_notification", "attributes": { "id": "abec839a-48fe-4540-93d7-d3ea3d67bdbf", "event": "container.transport.vessel_arrived", "delivery_status": "pending", "created_at": "2020-07-28T23:12:53Z" }, "relationships": { "reference_object": { "data": { "id": "a6ecb8ab-98d6-4cab-8487-ce9dd7be082b", "type": "transport_event" } }, "webhook": { "data": { "id": "534d498b-8332-439a-accb-129dfd144ceb", "type": "webhook" } }, "webhook_notification_logs": { "data": [] } } }, "included": [ { "id": "a6ecb8ab-98d6-4cab-8487-ce9dd7be082b", "type": "transport_event", "attributes": { "event": "container.transport.vessel_arrived", "created_at": "2020-07-28T23:12:53Z", "voyage_number": null, "timestamp": "2020-07-28T23:12:53Z", "timezone": "America/Los_Angeles" }, "relationships": { "shipment": { "data": { "id": "1fc35241-4c8b-420d-803a-9e6661720a05", "type": "shipment" } }, "container": { "data": { "id": "8c2f335a-b155-4021-87f0-9b040159a981", "type": "container" } }, "vessel": { "data": { "id": "b381c692-8dad-4f04-873f-d9e567143335", "type": "vessel" } }, "location": { "data": { "id": "f5a8a49f-d8b2-4d2a-8a43-0e4ff0ce7995", "type": "port" } }, "terminal": { "data": { "id": "26fede8d-2c6d-4bf5-98d6-5a86d30f17a9", "type": "terminal" } } } }, { "id": "f5a8a49f-d8b2-4d2a-8a43-0e4ff0ce7995", "type": "port", "attributes": { "id": "f5a8a49f-d8b2-4d2a-8a43-0e4ff0ce7995", "name": "Port of Oakland", "code": "USOAK", "state_abbr": "CA", "city": "Oakland", "country_code": "US", "time_zone": "America/Los_Angeles" } }, { "id": "1fc35241-4c8b-420d-803a-9e6661720a05", "type": "shipment", "attributes": { "created_at": "2020-07-28T23:12:53Z", "bill_of_lading_number": "TE491846459E", "ref_numbers": [ null ], "shipping_line_scac": "MSCU", "shipping_line_name": "Mediterranean Shipping Company", "port_of_lading_locode": "MXZLO", "port_of_lading_name": "Manzanillo", "port_of_discharge_locode": "USOAK", "port_of_discharge_name": "Port of Oakland", "pod_vessel_name": "MSC CHANNE", "pod_vessel_imo": "9710438", "pod_voyage_number": "098N", "destination_locode": null, "destination_name": null, "destination_timezone": null, "destination_ata_at": null, "destination_eta_at": null, "pol_etd_at": null, "pol_atd_at": "2020-07-15T23:12:53Z", "pol_timezone": "America/Mexico_City", "pod_eta_at": "2020-08-04T23:12:53Z", "pod_ata_at": null, "pod_timezone": "America/Los_Angeles" }, "relationships": { "port_of_lading": { "data": { "id": "06564cb7-77d6-4e0e-8e4a-37756ca21bc9", "type": "port" } }, "port_of_discharge": { "data": { "id": "f5a8a49f-d8b2-4d2a-8a43-0e4ff0ce7995", "type": "port" } }, "pod_terminal": { "data": { "id": "06f5d3bb-f258-4f1b-8c2f-db78248f6e29", "type": "terminal" } }, "destination": { "data": null }, "containers": { "data": [ { "id": "8c2f335a-b155-4021-87f0-9b040159a981", "type": "container" } ] } }, "links": { "self": "/v2/shipments/1fc35241-4c8b-420d-803a-9e6661720a05" } } ] } }, "Container Updated Event": { "value": { "data": { "id": "416e293f-4423-47f7-abf3-1ae97054f41f", "type": "webhook_notification", "attributes": { "id": "416e293f-4423-47f7-abf3-1ae97054f41f", "event": "container.updated", "delivery_status": "pending", "created_at": "2020-06-04T22:03:09Z" }, "relationships": { "reference_object": { "data": { "id": "fc48cb10-b7a8-47a4-a12f-89bce7434978", "type": "container_updated_event" } }, "webhook": { "data": { "id": "cda37836-aa40-455e-8b43-5fd74930c7f6", "type": "webhook" } }, "webhook_notification_logs": { "data": [] } } }, "included": [ { "id": "fc48cb10-b7a8-47a4-a12f-89bce7434978", "type": "container_updated_event", "attributes": { "changeset": { "available_for_pickup": [ false, true ], "pod_terminal_holds": [ null, [ { "name": "customs", "status": "hold", "description": "CUST EXAM" } ] ] }, "timestamp": "2020-06-04T22:03:09Z", "timezone": "America/Los_Angeles" }, "relationships": { "container": { "data": { "id": "1445af31-991c-4d52-a183-6c3ea97cd6e8", "type": "container" } }, "terminal": { "data": { "id": "07db0258-1911-4acf-8e70-0cfe4b100f80", "type": "terminal" } } } }, { "id": "1445af31-991c-4d52-a183-6c3ea97cd6e8", "type": "container", "attributes": { "number": "GLDU1355602", "seal_number": "431ac97412228532", "created_at": "2020-05-04T22:03:09Z", "equipment_type": "dry", "equipment_length": 40, "equipment_height": "standard", "weight_in_lbs": 55634, "fees_at_pod_terminal": [], "holds_at_pod_terminal": [], "pickup_lfd": null, "availability_known": true, "available_for_pickup": null, "pod_arrived_at": "2020-06-04T22:03:08Z", "pod_discharged_at": "2020-06-04T22:03:08Z", "final_destination_full_out_at": "2020-06-04T22:03:08Z", "pod_full_out_at": null, "empty_terminated_at": null, "pod_timezone": "America/Los_Angeles", "final_destination_timezone": null, "empty_terminated_timezone": null }, "relationships": { "shipment": { "data": null } } }, { "id": "07db0258-1911-4acf-8e70-0cfe4b100f80", "type": "terminal", "attributes": { "id": "07db0258-1911-4acf-8e70-0cfe4b100f80", "nickname": "Denesik-Hintz", "name": "Adams LLC Terminal", "firms_code": "E005" }, "relationships": { "port": { "data": { "id": "d8a92775-95f9-47be-a6d2-42542a32d5fc", "type": "port" } } } } ] } } } } } } }, "operationId": "get-webhook-notification-id", "description": "\n", "tags": [ "Webhook Notifications" ], "parameters": [ { "schema": { "type": "string" }, "in": "query", "description": "Comma delimited list of relations to include.", "name": "include" } ] } }, "/webhook_notifications": { "get": { "summary": "List webhook notifications", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/webhook_notification" } }, "links": { "$ref": "#/components/schemas/links" }, "meta": { "$ref": "#/components/schemas/meta" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/webhook" }, { "$ref": "#/components/schemas/tracking_request" }, { "$ref": "#/components/schemas/transport_event" }, { "$ref": "#/components/schemas/estimated_event" } ] } } } } } } } }, "operationId": "get-webhook-notifications", "description": "Return the list of webhook notifications. This can be useful for reconciling your data if your endpoint has been down. ", "tags": [ "Webhook Notifications" ], "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "page[number]" }, { "schema": { "type": "integer" }, "in": "query", "name": "page[size]" }, { "schema": { "type": "string" }, "in": "query", "name": "include", "description": "Comma delimited list of relations to include." } ] } }, "/webhook_notifications/examples": { "get": { "summary": "Get webhook notification payload examples", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/webhook_notification" } }, "links": { "$ref": "#/components/schemas/links" }, "meta": { "$ref": "#/components/schemas/meta" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/webhook" }, { "$ref": "#/components/schemas/tracking_request" }, { "$ref": "#/components/schemas/transport_event" }, { "$ref": "#/components/schemas/estimated_event" } ] } } } } } } } }, "operationId": "get-webhook-notifications-example", "description": "Returns an example payload as it would be sent to a webhook endpoint for the provided `event` ", "tags": [ "Webhook Notifications" ], "parameters": [ { "schema": { "type": "string", "enum": [ "container.transport.vessel_arrived", "container.transport.vessel_discharged", "container.transport.vessel_loaded", "container.transport.vessel_departed", "container.transport.rail_departed", "container.transport.rail_arrived", "container.transport.rail_loaded", "container.transport.rail_unloaded", "container.transport.transshipment_arrived", "container.transport.transshipment_discharged", "container.transport.transshipment_loaded", "container.transport.transshipment_departed", "container.transport.feeder_arrived", "container.transport.feeder_discharged", "container.transport.feeder_loaded", "container.transport.feeder_departed", "container.transport.empty_out", "container.transport.full_in", "container.transport.full_out", "container.transport.empty_in", "container.transport.vessel_berthed", "shipment.estimated.arrival", "tracking_request.succeeded", "tracking_request.failed", "tracking_request.awaiting_manifest", "tracking_request.tracking_stopped", "container.created", "container.updated", "container.pod_terminal_changed", "container.transport.arrived_at_inland_destination", "container.transport.estimated.arrived_at_inland_destination", "container.pickup_lfd.changed" ], "example": "container.transport.full_out" }, "in": "query", "name": "event", "description": "The webhook notification event name you wish to see an example of" } ] }, "parameters": [] }, "/webhooks/ips": { "get": { "summary": "List webhook IPs", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "webhook_notification_ips": { "type": "array", "items": { "type": "string", "format": "ipv4" } }, "last_updated": { "type": "string", "format": "date-time" } } }, "examples": { "Example List of IPs": { "value": { "webhook_notification_ips": [ "35.222.62.171", "3.230.67.145", "44.217.15.129" ], "last_updated": "2023-10-17T21:23:16Z" } } } } } } }, "operationId": "get-webhooks-ips", "description": "Return the list of IPs used for sending webhook notifications. This can be useful for whitelisting the IPs on the firewall.", "tags": [ "Webhooks" ], "parameters": [] } }, "/containers": { "get": { "summary": "List containers", "tags": [ "Containers" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/container" } }, "included": { "type": "array", "items": { "$ref": "#/components/schemas/shipment" } }, "links": { "$ref": "#/components/schemas/links" }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "Example List of containers": { "value": { "data": [ { "id": "be0b247b-c144-4163-8919-cf9178930736", "type": "container", "attributes": { "number": "TCLU6718159", "seal_number": null, "created_at": "2024-06-26T15:05:18Z", "ref_numbers": [], "pod_arrived_at": "2024-06-21T14:12:00Z", "pod_discharged_at": "2024-06-23T00:19:00Z", "final_destination_full_out_at": null, "holds_at_pod_terminal": [], "available_for_pickup": false, "equipment_type": "dry", "equipment_length": 40, "equipment_height": "high_cube", "weight_in_lbs": 53502, "pod_full_out_at": "2024-06-26T16:15:00Z", "empty_terminated_at": null, "terminal_checked_at": "2024-06-26T18:47:56Z", "fees_at_pod_terminal": [], "pickup_lfd": null, "pickup_appointment_at": null, "pod_full_out_chassis_number": null, "location_at_pod_terminal": "Community", "pod_last_tracking_request_at": "2024-06-26T18:47:56Z", "shipment_last_tracking_request_at": "2024-06-26T15:05:18Z", "availability_known": true, "pod_timezone": "America/New_York", "final_destination_timezone": null, "empty_terminated_timezone": "America/New_York", "pickup_rail_carrier_scac": null, "pod_rail_loaded_at": null, "pod_rail_departed_at": null, "inland_destination_eta_at": null, "inland_destination_ata_at": null, "inland_destination_rail_unloaded_at": null, "pickup_facility_holds": null, "pickup_facility_fees": null, "pickup_facility_yard_location": null, "pickup_facility_lfd_on": null }, "relationships": { "shipment": { "data": { "id": "cc8f8e43-d6a9-4edb-a8c0-d0ab03c113d3", "type": "shipment" } }, "pickup_facility": { "data": null }, "pod_terminal": { "data": { "id": "a243bdf8-0da3-4056-a6a7-05fe8ab43999", "type": "terminal" } }, "transport_events": { "data": [ { "id": "fb53b35c-6a0c-4e22-b196-b623e8ba7db5", "type": "transport_event" }, { "id": "179897a3-04f5-450b-86e1-db57970c0248", "type": "transport_event" }, { "id": "a119b8e6-10c5-4967-8364-885f7dbf8e50", "type": "transport_event" }, { "id": "3372d58c-df89-46a2-b064-b308a9dc7040", "type": "transport_event" }, { "id": "800a3e59-8231-4e42-a80f-73c97cfb1be9", "type": "transport_event" }, { "id": "d466676b-0073-4b0c-89aa-d42486e9ed4f", "type": "transport_event" }, { "id": "85665836-5915-4cb9-ab78-b8487598cd0d", "type": "transport_event" }, { "id": "94cca22a-520a-4d19-a551-0554aceb3794", "type": "transport_event" }, { "id": "032e812f-d5e4-48af-8d79-2c2b41a07032", "type": "transport_event" }, { "id": "1b7dd74d-eff6-4e06-9a15-234295ce6fd5", "type": "transport_event" }, { "id": "b9f07b7e-1653-4209-b375-4588653d5275", "type": "transport_event" }, { "id": "a35f3c1b-ad35-4347-b0f2-9e08f0d4ca64", "type": "transport_event" } ] }, "raw_events": { "data": [ { "id": "e26fc659-f79d-4cc0-8efc-5ce5e8444891", "type": "raw_event" }, { "id": "8820af5e-cb77-41c5-a897-906f2c56eb1e", "type": "raw_event" }, { "id": "a628a2c2-dab6-4b04-b3ae-d7ec99098a89", "type": "raw_event" }, { "id": "6ca157f9-3b58-4db5-8155-fc7b41a62611", "type": "raw_event" }, { "id": "6fb06390-4b0a-4c1f-9703-ec89927df7f3", "type": "raw_event" }, { "id": "26fe408d-e091-412a-a2fb-23a4d778b6b9", "type": "raw_event" }, { "id": "16490dd8-d79f-468a-91b1-dbb30bb45c85", "type": "raw_event" }, { "id": "ff3db923-a644-4706-8057-1bd53c95fbd5", "type": "raw_event" }, { "id": "3fd27ffd-9618-477f-b1a9-cbc179defefe", "type": "raw_event" }, { "id": "f92efdd3-f79c-4a1c-97ce-9a47588b525c", "type": "raw_event" }, { "id": "3b2a88ef-df0b-4e61-99c1-d4a175910111", "type": "raw_event" }, { "id": "9b367e33-9e43-488f-8217-081698adf40d", "type": "raw_event" }, { "id": "ee0915df-e2f8-46b0-acf1-816871ca142d", "type": "raw_event" } ] } } }, { "id": "a9e52f3d-2fa9-467c-8deb-09e90dac2f0b", "type": "container", "attributes": { "number": "TCLU2224327", "seal_number": null, "created_at": "2024-06-26T15:05:34Z", "ref_numbers": [], "pod_arrived_at": "2024-06-21T14:12:00Z", "pod_discharged_at": "2024-06-23T17:21:00Z", "final_destination_full_out_at": null, "holds_at_pod_terminal": [], "available_for_pickup": false, "equipment_type": "dry", "equipment_length": 20, "equipment_height": "standard", "weight_in_lbs": 44225, "pod_full_out_at": null, "empty_terminated_at": null, "terminal_checked_at": "2024-06-26T18:47:56Z", "fees_at_pod_terminal": [], "pickup_lfd": null, "pickup_appointment_at": null, "pod_full_out_chassis_number": null, "location_at_pod_terminal": "Yard", "pod_last_tracking_request_at": "2024-06-26T18:47:56Z", "shipment_last_tracking_request_at": "2024-06-26T15:05:34Z", "availability_known": true, "pod_timezone": "America/New_York", "final_destination_timezone": "America/Chicago", "empty_terminated_timezone": "America/Chicago", "pickup_rail_carrier_scac": "CSXT", "pod_rail_loaded_at": null, "pod_rail_departed_at": null, "inland_destination_eta_at": "2024-07-02T14:20:00Z", "inland_destination_ata_at": null, "inland_destination_rail_unloaded_at": null, "pickup_facility_holds": null, "pickup_facility_fees": null, "pickup_facility_yard_location": null, "pickup_facility_lfd_on": null }, "relationships": { "shipment": { "data": { "id": "99f84294-3bda-4765-81b3-31765e6d2a24", "type": "shipment" } }, "pickup_facility": { "data": { "id": "e6fa9a01-511b-4f43-a7e1-d628315b84ef", "type": "terminal" } }, "pod_terminal": { "data": { "id": "a243bdf8-0da3-4056-a6a7-05fe8ab43999", "type": "terminal" } }, "transport_events": { "data": [ { "id": "4a5a04b7-8974-4c46-beaa-bf55004422c9", "type": "transport_event" }, { "id": "11c90391-aa9c-408b-b20e-daed8dd09586", "type": "transport_event" }, { "id": "d7f23c71-7084-4fbb-9fef-740f624182aa", "type": "transport_event" }, { "id": "c4c3537d-5c47-4623-afe0-edc0dd6f75c5", "type": "transport_event" }, { "id": "e4002e13-0a74-4bd4-9147-787bb21e2fda", "type": "transport_event" }, { "id": "57b5568f-d8a6-443d-b1c8-be5cd080e5ed", "type": "transport_event" }, { "id": "0771cff1-79bf-4eaa-9d9d-790cb433ce44", "type": "transport_event" }, { "id": "031021b9-7b39-41f7-bd45-26cc8cb799d2", "type": "transport_event" }, { "id": "9956448d-34d3-4c23-bcfd-19807eb4034f", "type": "transport_event" }, { "id": "f1caf6ea-3e92-4b68-bcea-556828301062", "type": "transport_event" }, { "id": "2dd558a8-fa07-454c-acf3-b53d072264af", "type": "transport_event" }, { "id": "83118511-d9ed-4b16-b323-5e685d9b266e", "type": "transport_event" } ] }, "raw_events": { "data": [ { "id": "f256289f-219d-45f6-b727-56fb9c6bc433", "type": "raw_event" }, { "id": "c5581f60-ffb2-4ef0-a855-b70acd3b294f", "type": "raw_event" }, { "id": "3c6716f9-814c-4459-9bbb-753f010446b2", "type": "raw_event" }, { "id": "62c7b849-c99b-4e37-9861-105141cc0a4c", "type": "raw_event" }, { "id": "7db37d43-426a-4f84-82af-2957621ce466", "type": "raw_event" }, { "id": "d4342119-db56-46fc-8299-f573f5b52e73", "type": "raw_event" }, { "id": "ba159c3b-590c-43ff-bc04-b0354fd326f4", "type": "raw_event" }, { "id": "ec1be31a-17f1-4f6f-85ab-c74cb0dbe6cb", "type": "raw_event" }, { "id": "d12c4656-0d1f-4f30-a0fa-a2ee887741a8", "type": "raw_event" }, { "id": "146d56e2-b41d-4469-8202-0c7d7315e794", "type": "raw_event" }, { "id": "6b86b4d1-f85f-4c26-9fbc-3132a62f0fbc", "type": "raw_event" }, { "id": "bb2c9105-e421-4372-9265-e61b3fa54851", "type": "raw_event" }, { "id": "3a09c49f-c12e-49e9-b2de-b8dca2b3d608", "type": "raw_event" }, { "id": "54d91ebc-8f57-4764-b7c6-a3f4dc2459be", "type": "raw_event" }, { "id": "9e788c46-9431-41eb-baee-c8b14fb4f590", "type": "raw_event" }, { "id": "d3051802-8b6f-497d-ad16-fb35547c8662", "type": "raw_event" }, { "id": "af3090e7-c6d3-4d8e-88aa-9cd757102f9b", "type": "raw_event" }, { "id": "95daf204-d95d-4a89-bedf-358bedb8b3b8", "type": "raw_event" } ] } } }, { "id": "8d1faeeb-3890-4fac-8659-cd13737b26f1", "type": "container", "attributes": { "number": "CMAU0619052", "seal_number": null, "created_at": "2024-06-26T15:02:11Z", "ref_numbers": [], "pod_arrived_at": "2024-06-22T22:10:00Z", "pod_discharged_at": "2024-06-23T20:38:00Z", "final_destination_full_out_at": null, "holds_at_pod_terminal": [], "available_for_pickup": false, "equipment_type": "dry", "equipment_length": 20, "equipment_height": "standard", "weight_in_lbs": null, "pod_full_out_at": null, "empty_terminated_at": null, "terminal_checked_at": "2024-06-26T18:47:47Z", "fees_at_pod_terminal": [], "pickup_lfd": "2024-06-27T07:00:00Z", "pickup_appointment_at": null, "pod_full_out_chassis_number": null, "location_at_pod_terminal": "Grounded", "pod_last_tracking_request_at": "2024-06-26T18:47:47Z", "shipment_last_tracking_request_at": "2024-06-26T15:02:11Z", "availability_known": true, "pod_timezone": "America/Los_Angeles", "final_destination_timezone": "Asia/Shanghai", "empty_terminated_timezone": "Asia/Shanghai", "pickup_rail_carrier_scac": null, "pod_rail_loaded_at": null, "pod_rail_departed_at": null, "inland_destination_eta_at": null, "inland_destination_ata_at": null, "inland_destination_rail_unloaded_at": null, "pickup_facility_holds": null, "pickup_facility_fees": null, "pickup_facility_yard_location": null, "pickup_facility_lfd_on": null }, "relationships": { "shipment": { "data": { "id": "f706cbea-3264-473d-8d26-af257f3bc1be", "type": "shipment" } }, "pickup_facility": { "data": null }, "pod_terminal": { "data": { "id": "eaa2580c-5f5b-4198-85e4-821145d62098", "type": "terminal" } }, "transport_events": { "data": [ { "id": "1bb3a814-edab-403f-8ef2-a6d0966df423", "type": "transport_event" }, { "id": "19f197bf-444c-40ee-8478-6f02abe715a9", "type": "transport_event" }, { "id": "4c9223bb-0218-4175-8a2e-7bb99c40642a", "type": "transport_event" }, { "id": "432da964-6e99-45e9-b4b1-00b7be858591", "type": "transport_event" }, { "id": "b462b4d1-1e02-4037-af7f-6c8fa981f268", "type": "transport_event" }, { "id": "e3ca4a25-692f-474a-aa71-48fb9840aef1", "type": "transport_event" }, { "id": "014b9d1f-f033-4a3e-89f9-c57569883436", "type": "transport_event" }, { "id": "2cec71c9-721a-4060-993f-0ffcf01151cd", "type": "transport_event" }, { "id": "24941515-1b5e-4fca-87eb-092e56ed156a", "type": "transport_event" }, { "id": "0fd06bc0-1fda-467c-ab67-90a30c6d62ab", "type": "transport_event" }, { "id": "0bce915e-b9ba-42a0-a484-136266fe8b9a", "type": "transport_event" }, { "id": "582006aa-6547-4712-b964-5637aad839b4", "type": "transport_event" }, { "id": "11458420-b354-4288-a275-7572d3c60e33", "type": "transport_event" }, { "id": "5c900fa1-11bf-4f96-89e7-b12f6a98edc4", "type": "transport_event" } ] }, "raw_events": { "data": [ { "id": "999d7de7-eaed-4313-85df-772a6d24a85e", "type": "raw_event" }, { "id": "ac9c2780-240d-443f-87f4-95465fa5447b", "type": "raw_event" }, { "id": "a0ee3724-91c3-4b78-af32-2f16e8c2d600", "type": "raw_event" }, { "id": "79725b1f-19f7-4fc3-8c69-586e237c1719", "type": "raw_event" }, { "id": "4f07f257-ea4f-4e61-94ed-a01598899020", "type": "raw_event" }, { "id": "41612acb-b3d4-495f-9138-f34105851d21", "type": "raw_event" }, { "id": "84ffdd37-ec39-404a-9b68-d72d8fb96d48", "type": "raw_event" }, { "id": "7e9d8a6d-5339-4266-a6fb-22c28f41149f", "type": "raw_event" }, { "id": "2359b787-b218-42dc-b9a5-84b608aee671", "type": "raw_event" }, { "id": "ea33303e-0e48-4442-9886-0dfe38b726b5", "type": "raw_event" }, { "id": "3689d013-8525-418b-92ed-95ec684130b4", "type": "raw_event" }, { "id": "a64f7f7e-a6fa-4913-aba0-b28ba189d68b", "type": "raw_event" }, { "id": "c264a859-4fcb-4fab-95c0-29be99ec54a4", "type": "raw_event" }, { "id": "2aabf25c-9a3e-44bc-b6c8-ed7b1e3c3630", "type": "raw_event" }, { "id": "6ae70038-02d7-425a-99c1-8761c69a9033", "type": "raw_event" }, { "id": "c30021d8-93e9-4bfd-a978-e9e24de148c8", "type": "raw_event" } ] } } }, { "id": "853f1794-9b94-4118-9970-4e28e549440d", "type": "container", "attributes": { "number": "TGHU6578122", "seal_number": null, "created_at": "2024-06-26T15:08:30Z", "ref_numbers": [], "pod_arrived_at": "2024-06-23T21:58:00Z", "pod_discharged_at": "2024-06-24T02:28:00Z", "final_destination_full_out_at": null, "holds_at_pod_terminal": [], "available_for_pickup": false, "equipment_type": "dry", "equipment_length": 40, "equipment_height": "high_cube", "weight_in_lbs": 8898, "pod_full_out_at": null, "empty_terminated_at": null, "terminal_checked_at": "2024-06-26T18:47:47Z", "fees_at_pod_terminal": [], "pickup_lfd": "2024-06-27T07:00:00Z", "pickup_appointment_at": null, "pod_full_out_chassis_number": null, "location_at_pod_terminal": "Wheeled", "pod_last_tracking_request_at": "2024-06-26T18:47:46Z", "shipment_last_tracking_request_at": "2024-06-26T15:08:30Z", "availability_known": true, "pod_timezone": "America/Los_Angeles", "final_destination_timezone": "America/New_York", "empty_terminated_timezone": "America/New_York", "pickup_rail_carrier_scac": "BNSF", "pod_rail_loaded_at": null, "pod_rail_departed_at": null, "inland_destination_eta_at": "2024-07-07T08:00:00Z", "inland_destination_ata_at": null, "inland_destination_rail_unloaded_at": null, "pickup_facility_holds": null, "pickup_facility_fees": null, "pickup_facility_yard_location": null, "pickup_facility_lfd_on": null }, "relationships": { "shipment": { "data": { "id": "f3cfe624-706e-4a0c-89d5-140980d986fd", "type": "shipment" } }, "pickup_facility": { "data": { "id": "7e4557b9-cc5a-4298-aaec-1a32e90202c9", "type": "terminal" } }, "pod_terminal": { "data": { "id": "eaa2580c-5f5b-4198-85e4-821145d62098", "type": "terminal" } }, "transport_events": { "data": [ { "id": "94f687d0-dc6b-4342-8710-cb98bc98716e", "type": "transport_event" }, { "id": "a8d0a842-95fe-4c12-a80e-bd12e87a1421", "type": "transport_event" }, { "id": "c1f1a186-3737-41ca-ae2b-f79a17519991", "type": "transport_event" }, { "id": "7fcc5496-d402-4b1c-a6c5-8514e6433070", "type": "transport_event" }, { "id": "ab7cd84a-edc5-476d-a1c4-190011582314", "type": "transport_event" }, { "id": "68d91384-3eb3-4d21-ac7a-c1f688f649c2", "type": "transport_event" }, { "id": "5a702f46-4356-4570-bd2e-2b8adab5ba3e", "type": "transport_event" } ] }, "raw_events": { "data": [ { "id": "a4b7e4b6-5227-4f34-9e91-9e75223798ae", "type": "raw_event" }, { "id": "4f3e3c7b-d1e6-4fde-b95e-ce9a8835445c", "type": "raw_event" }, { "id": "39e8570d-1a8f-4e10-8d2e-ac930abc5971", "type": "raw_event" }, { "id": "b8015a72-9741-4fbf-8adc-d30b87de6aa3", "type": "raw_event" }, { "id": "61512b1a-a94e-4cac-8bab-763588dbbddf", "type": "raw_event" }, { "id": "c0bf87f2-37c3-4895-90b0-9f97ac4b5c13", "type": "raw_event" }, { "id": "3856c7e7-f832-42ca-873b-096952599e29", "type": "raw_event" }, { "id": "485be998-0861-4d10-8a60-f66d27eb46a7", "type": "raw_event" }, { "id": "29cde194-bbd9-40c2-adba-5dcb1514f5fc", "type": "raw_event" } ] } } }, { "id": "681d713d-bcd6-4303-b082-b9f893e7d1d9", "type": "container", "attributes": { "number": "CSNU8439129", "seal_number": null, "created_at": "2024-06-26T15:02:32Z", "ref_numbers": [], "pod_arrived_at": "2024-06-23T21:58:00Z", "pod_discharged_at": "2024-06-26T04:30:00Z", "final_destination_full_out_at": null, "holds_at_pod_terminal": [], "available_for_pickup": true, "equipment_type": "dry", "equipment_length": 40, "equipment_height": "high_cube", "weight_in_lbs": 40488, "pod_full_out_at": null, "empty_terminated_at": null, "terminal_checked_at": "2024-06-26T18:47:47Z", "fees_at_pod_terminal": [], "pickup_lfd": "2024-07-01T07:00:00Z", "pickup_appointment_at": "2024-06-28T15:00:00Z", "pod_full_out_chassis_number": null, "location_at_pod_terminal": "Grounded", "pod_last_tracking_request_at": "2024-06-26T18:47:46Z", "shipment_last_tracking_request_at": "2024-06-26T15:02:32Z", "availability_known": true, "pod_timezone": "America/Los_Angeles", "final_destination_timezone": "America/Chicago", "empty_terminated_timezone": "America/Chicago", "pickup_rail_carrier_scac": "BNSF", "pod_rail_loaded_at": null, "pod_rail_departed_at": null, "inland_destination_eta_at": "2024-07-04T22:00:00Z", "inland_destination_ata_at": null, "inland_destination_rail_unloaded_at": null, "pickup_facility_holds": null, "pickup_facility_fees": null, "pickup_facility_yard_location": null, "pickup_facility_lfd_on": null }, "relationships": { "shipment": { "data": { "id": "edd626cf-b0b5-4679-8a6c-80c8e9fe7698", "type": "shipment" } }, "pickup_facility": { "data": { "id": "572b372f-21c7-4403-8fb0-948377c74642", "type": "terminal" } }, "pod_terminal": { "data": { "id": "eaa2580c-5f5b-4198-85e4-821145d62098", "type": "terminal" } }, "transport_events": { "data": [ { "id": "9d19125a-2944-442c-8132-bf0d83670e5c", "type": "transport_event" }, { "id": "b2ff0b47-3151-41e2-8c46-7f95cdbe4167", "type": "transport_event" }, { "id": "e52feaa3-7a50-4570-a2ea-bf06f955ce23", "type": "transport_event" }, { "id": "c56d95e5-774f-432c-b6f4-c53967f07292", "type": "transport_event" }, { "id": "9b1d8b48-e870-46fa-bc46-10f9b30c64d4", "type": "transport_event" }, { "id": "3e1d3571-6b24-4ad2-a071-4e70d59af521", "type": "transport_event" }, { "id": "60f5eefe-13d5-4f85-9b65-d13b4c67115a", "type": "transport_event" } ] }, "raw_events": { "data": [ { "id": "2af51127-0971-4741-9b97-ea1b338e3a7c", "type": "raw_event" }, { "id": "4472ded6-eb69-4f21-8666-9a4f2342dfeb", "type": "raw_event" }, { "id": "ce238754-d5fd-4dc8-9f55-2ac6efdfbb5e", "type": "raw_event" }, { "id": "5cd3b5ef-843f-4f60-87ce-5beaeea86f7b", "type": "raw_event" }, { "id": "55291737-98b6-403c-9424-1605e6e01007", "type": "raw_event" }, { "id": "cdc55ea8-a075-45b3-9570-ade6fb2f0d94", "type": "raw_event" }, { "id": "c0ab5406-4e10-4fdc-85a4-e17ce8d956f5", "type": "raw_event" }, { "id": "965f0172-1c20-4342-a44a-7be0e594ff76", "type": "raw_event" }, { "id": "db178011-c795-42a4-9537-b4e77ffb4f98", "type": "raw_event" } ] } } } ], "meta": { "size": 5, "total": 59229 }, "links": { "self": "https://api.terminal49.com/v2/containers?page[size]=5", "current": "https://api.terminal49.com/v2/containers?page[number]=1&page[size]=5", "next": "https://api.terminal49.com/v2/containers?page[number]=2&page[size]=5", "last": "https://api.terminal49.com/v2/containers?page[number]=11846&page[size]=5" } } } } } } } }, "operationId": "get-containers", "description": "Returns a list of container. The containers are returned sorted by creation date, with the most recently refreshed containers appearing first.\n\nThis API will return all containers associated with the account.", "parameters": [ { "schema": { "type": "integer", "default": 1 }, "in": "query", "name": "page[number]" }, { "schema": { "type": "integer", "default": 30 }, "in": "query", "name": "page[size]", "description": "" }, { "schema": { "type": "string" }, "in": "query", "name": "include", "description": "Comma delimited list of relations to include" }, { "schema": { "type": "integer" }, "in": "query", "name": "terminal_checked_before", "description": "Number of seconds in which containers were refreshed" } ] }, "patch": { "summary": "Edit a container", "operationId": "patch-containers-id", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/container" } } } } } } }, "description": "Update a container", "tags": [ "Containers" ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "type": "object", "properties": { "ref_numbers": { "type": "array", "items": { "type": "string", "example": "REF-12345" } } } } } } } } } } } } }, "/containers/{id}": { "parameters": [ { "schema": { "type": "string" }, "name": "id", "in": "path", "required": true } ], "get": { "summary": "Get a container", "tags": [ "Containers" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/container" }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/shipment" }, { "$ref": "#/components/schemas/terminal" }, { "$ref": "#/components/schemas/transport_event" } ] } } } }, "examples": { "Example Container": { "value": { "data": { "id": "55a700e4-7005-45a9-92fd-1ff38641dbd9", "type": "container", "attributes": { "number": "CAIU7432986", "seal_number": null, "created_at": "2024-06-26T15:05:21Z", "ref_numbers": [], "pod_arrived_at": null, "pod_discharged_at": "2024-06-22T04:00:00Z", "final_destination_full_out_at": null, "holds_at_pod_terminal": [], "available_for_pickup": true, "equipment_type": "dry", "equipment_length": 40, "equipment_height": "high_cube", "weight_in_lbs": null, "pod_full_out_at": null, "empty_terminated_at": null, "terminal_checked_at": "2024-06-26T17:51:12Z", "fees_at_pod_terminal": [], "pickup_lfd": "2024-07-07T04:00:00Z", "pickup_appointment_at": null, "pod_full_out_chassis_number": null, "location_at_pod_terminal": "Yard - Y0709A", "pod_last_tracking_request_at": "2024-06-26T17:51:12Z", "shipment_last_tracking_request_at": "2024-06-26T15:05:20Z", "availability_known": true, "pod_timezone": "America/New_York", "final_destination_timezone": "US/Eastern", "empty_terminated_timezone": "US/Eastern", "pickup_rail_carrier_scac": "CSXT", "pod_rail_loaded_at": null, "pod_rail_departed_at": null, "inland_destination_eta_at": null, "inland_destination_ata_at": null, "inland_destination_rail_unloaded_at": null, "pickup_facility_holds": null, "pickup_facility_fees": null, "pickup_facility_yard_location": null, "pickup_facility_lfd_on": null }, "relationships": { "shipment": { "data": { "id": "02b1bd6f-407c-45bb-8645-06e7ee34e7e3", "type": "shipment" } }, "pickup_facility": { "data": null }, "pod_terminal": { "data": { "id": "b859f5c3-8515-41da-bf20-39c0a5ada887", "type": "terminal" } }, "transport_events": { "data": [ { "id": "45b542cb-332b-4684-b915-42e3a0759823", "type": "transport_event" }, { "id": "174ed528-a1a9-4002-aef0-f2c9369199da", "type": "transport_event" }, { "id": "7a2f30a6-a756-4c14-9477-fbfc1c7fe2f8", "type": "transport_event" }, { "id": "e7365004-175a-46e8-96cd-dbed0f3daf21", "type": "transport_event" }, { "id": "7c567bf3-7f01-4a3d-a176-eaa1f7165585", "type": "transport_event" } ] }, "raw_events": { "data": [ { "id": "2956f71c-bfb9-4e49-b9e2-1b4d53c74cac", "type": "raw_event" }, { "id": "391e0eda-65b5-4fc3-a53d-25ecd9570259", "type": "raw_event" }, { "id": "74810c04-6c8a-4194-8cff-52936584a965", "type": "raw_event" }, { "id": "4b1500e2-b23b-4896-87bd-c38b1d16f385", "type": "raw_event" }, { "id": "8b9a7d88-720a-4304-8c1e-a3336e39f481", "type": "raw_event" }, { "id": "bf1f59c5-5dd8-4013-87f9-d7056bc87114", "type": "raw_event" } ] } } }, "links": { "self": "https://api.terminal49.com/v2/containers/55a700e4-7005-45a9-92fd-1ff38641dbd9" } } } } } } } }, "operationId": "get-containers-id", "description": "Retrieves the details of a container.", "parameters": [ { "schema": { "type": "string" }, "in": "query", "name": "include", "description": "Comma delimited list of relations to include" } ] } }, "/containers/{id}/raw_events": { "parameters": [ { "schema": { "type": "string" }, "name": "id", "in": "path", "required": true } ], "get": { "summary": "Get a container's raw events", "tags": [ "Containers" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/raw_event" } } } }, "examples": { "Example Raw Events": { "value": { "data": [ { "id": "ca6b760f-13e9-4bf6-ab49-3cf2e40757fb", "type": "raw_event", "attributes": { "timestamp": "2020-03-03T00:00:00Z", "estimated": false, "actual_on": "2020-03-03", "estimated_at": null, "actual_at": null, "event": "empty_out", "index": 0, "original_event": "Truck Gate out empty", "created_at": "2020-04-18T00:18:27Z", "voyage_number": null, "location_name": "Oakland", "location_locode": null, "vessel_name": null, "vessel_imo": null, "timezone": null }, "relationships": { "location": { "data": null }, "vessel": { "data": null } } }, { "id": "bcdfc796-0570-4c85-9336-d6c7d0da02d2", "type": "raw_event", "attributes": { "timestamp": "2020-03-09T00:00:00Z", "estimated": false, "actual_on": "2020-03-09", "estimated_at": null, "actual_at": null, "event": "full_in", "index": 1, "original_event": "Truck Arrival in", "created_at": "2020-04-18T00:18:27Z", "voyage_number": null, "location_name": null, "location_locode": null, "vessel_name": null, "vessel_imo": null, "timezone": null }, "relationships": { "location": { "data": null }, "vessel": { "data": null } } }, { "id": "a4ff01b0-b374-4123-ae65-3dc0c7ea41ea", "type": "raw_event", "attributes": { "timestamp": "2020-03-14T00:00:00Z", "estimated": false, "actual_on": "2020-03-14", "estimated_at": null, "actual_at": null, "event": "vessel_loaded", "index": 2, "original_event": "Vessel Loaded", "created_at": "2020-04-18T00:18:27Z", "voyage_number": "FA009R", "location_name": null, "location_locode": null, "vessel_name": "MSC FAITH", "vessel_imo": null, "timezone": null }, "relationships": { "location": { "data": null }, "vessel": { "data": { "id": "4b473d0e-7073-4171-8b5b-15e71e9e13cc", "type": "vessel" } } } }, { "id": "ca5862ef-6e27-4245-a281-0cec6bbe1fb7", "type": "raw_event", "attributes": { "timestamp": "2020-03-15T00:00:00Z", "estimated": false, "actual_on": "2020-03-15", "estimated_at": null, "actual_at": null, "event": "vessel_departed", "index": 3, "original_event": "Vessel departed", "created_at": "2020-04-18T00:18:27Z", "voyage_number": "FA009R", "location_name": null, "location_locode": null, "vessel_name": "MSC FAITH", "vessel_imo": null, "timezone": null }, "relationships": { "location": { "data": null }, "vessel": { "data": { "id": "4b473d0e-7073-4171-8b5b-15e71e9e13cc", "type": "vessel" } } } }, { "id": "f47a903e-e6d1-41c5-aec6-8401b2abf297", "type": "raw_event", "attributes": { "timestamp": "2020-03-25T00:00:00Z", "estimated": false, "actual_on": "2020-03-25", "estimated_at": null, "actual_at": null, "event": "transshipment_arrived", "index": 4, "original_event": "Vessel arrived", "created_at": "2020-04-18T00:18:27Z", "voyage_number": "FA009R", "location_name": null, "location_locode": null, "vessel_name": "MSC FAITH", "vessel_imo": null, "timezone": null }, "relationships": { "location": { "data": null }, "vessel": { "data": { "id": "4b473d0e-7073-4171-8b5b-15e71e9e13cc", "type": "vessel" } } } }, { "id": "72a1a13b-a2e0-4ac0-851d-eec41e9e9087", "type": "raw_event", "attributes": { "timestamp": "2020-03-25T00:00:00Z", "estimated": false, "actual_on": "2020-03-25", "estimated_at": null, "actual_at": null, "event": "transshipment_discharged", "index": 5, "original_event": "Vessel Discharged", "created_at": "2020-04-18T00:18:27Z", "voyage_number": "FA009R", "location_name": null, "location_locode": null, "vessel_name": "MSC FAITH", "vessel_imo": null, "timezone": null }, "relationships": { "location": { "data": null }, "vessel": { "data": { "id": "4b473d0e-7073-4171-8b5b-15e71e9e13cc", "type": "vessel" } } } }, { "id": "cd91f0cf-ee73-4c47-b99f-63245cb5bc96", "type": "raw_event", "attributes": { "timestamp": "2020-04-07T00:00:00Z", "estimated": false, "actual_on": "2020-04-07", "estimated_at": null, "actual_at": null, "event": "transshipment_loaded", "index": 6, "original_event": "Vessel Loaded", "created_at": "2020-04-18T00:18:27Z", "voyage_number": "15W10", "location_name": null, "location_locode": null, "vessel_name": "SINGAPORE EXPRESS", "vessel_imo": null, "timezone": null }, "relationships": { "location": { "data": null }, "vessel": { "data": { "id": "345c05ab-4217-4ffe-a1a4-6c03b9ad2b36", "type": "vessel" } } } }, { "id": "561dbb7e-c3ab-4e63-b09b-957878b1425f", "type": "raw_event", "attributes": { "timestamp": "2020-04-07T00:00:00Z", "estimated": false, "actual_on": "2020-04-07", "estimated_at": null, "actual_at": null, "event": "transshipment_departed", "index": 7, "original_event": "Vessel departed", "created_at": "2020-04-18T00:18:27Z", "voyage_number": "15W10", "location_name": null, "location_locode": null, "vessel_name": "SINGAPORE EXPRESS", "vessel_imo": null, "timezone": null }, "relationships": { "location": { "data": null }, "vessel": { "data": { "id": "345c05ab-4217-4ffe-a1a4-6c03b9ad2b36", "type": "vessel" } } } }, { "id": "551711a6-62ad-4205-8da2-00e0c0cbd2db", "type": "raw_event", "attributes": { "timestamp": "2020-04-12T00:00:00Z", "estimated": false, "actual_on": "2020-04-12", "estimated_at": null, "actual_at": null, "event": "vessel_arrived", "index": 8, "original_event": "Vessel arrived", "created_at": "2020-04-18T00:18:27Z", "voyage_number": "15W10", "location_name": null, "location_locode": null, "vessel_name": "SINGAPORE EXPRESS", "vessel_imo": null, "timezone": null }, "relationships": { "location": { "data": null }, "vessel": { "data": { "id": "345c05ab-4217-4ffe-a1a4-6c03b9ad2b36", "type": "vessel" } } } }, { "id": "f4027470-75ca-4e2a-b4f0-47654a25ac48", "type": "raw_event", "attributes": { "timestamp": "2020-04-13T00:00:00Z", "estimated": false, "actual_on": "2020-04-13", "estimated_at": null, "actual_at": null, "event": "vessel_discharged", "index": 9, "original_event": "Vessel Discharged", "created_at": "2020-04-18T00:18:27Z", "voyage_number": "15W10", "location_name": null, "location_locode": null, "vessel_name": "SINGAPORE EXPRESS", "vessel_imo": null, "timezone": null }, "relationships": { "location": { "data": null }, "vessel": { "data": { "id": "345c05ab-4217-4ffe-a1a4-6c03b9ad2b36", "type": "vessel" } } } }, { "id": "50f11e4f-411e-48e2-8141-64226500df9c", "type": "raw_event", "attributes": { "timestamp": "2020-04-14T00:00:00Z", "estimated": false, "actual_on": "2020-04-14", "estimated_at": null, "actual_at": null, "event": "full_out", "index": 10, "original_event": "Truck Departure from", "created_at": "2020-04-18T00:18:27Z", "voyage_number": null, "location_name": null, "location_locode": null, "vessel_name": null, "vessel_imo": null, "timezone": null }, "relationships": { "location": { "data": null }, "vessel": { "data": null } } }, { "id": "49aea23c-b8c5-4a97-b133-f7a9723fa1b4", "type": "raw_event", "attributes": { "timestamp": "2020-04-15T00:00:00Z", "estimated": false, "actual_on": "2020-04-15", "estimated_at": null, "actual_at": null, "event": "empty_in", "index": 11, "original_event": "Truck Gate in empty", "created_at": "2020-04-18T00:18:27Z", "voyage_number": null, "location_name": null, "location_locode": null, "vessel_name": null, "vessel_imo": null, "timezone": null }, "relationships": { "location": { "data": null }, "vessel": { "data": null } } } ], "included": [ { "id": "4b473d0e-7073-4171-8b5b-15e71e9e13cc", "type": "vessel", "attributes": { "name": "MSC FAITH", "imo": null, "mmsi": "636019213", "latitude": 70.22625823437389, "longitude": 45.06279126658865, "nautical_speed_knots": 100, "navigational_heading_degrees": 1, "position_timestamp": "2023-06-05T19:46:18Z" } }, { "id": "345c05ab-4217-4ffe-a1a4-6c03b9ad2b36", "type": "vessel", "attributes": { "name": "SINGAPORE EXPRESS", "imo": null, "mmsi": "477300500", "latitude": 70.22625823437389, "longitude": 45.06279126658865, "nautical_speed_knots": 100, "navigational_heading_degrees": 1, "position_timestamp": "2023-06-05T19:46:18Z" } } ] } } } } } } }, "operationId": "get-containers-id-raw_events", "description": "\n> #### Deprecation warning\n>\n> The `raw_events` endpoint is provided as-is.\n>\n> For past events we recommend consuming `transport_events`.\n\n\nGet a list of past and future (estimated) milestones for a container as reported by the carrier. Some of the data is normalized even though the API is called raw_events. \n\nNormalized attributes: `event` and `timestamp` timestamp. Not all of the `event` values have been normalized. You can expect the the events related to container movements to be normalized but there are cases where events are not normalized. \n\nFor past historical events we recommend consuming `transport_events`. Although there are fewer events here those events go through additional vetting and normalization to avoid false positives and get you correct data.", "deprecated": true } }, "/containers/{id}/transport_events": { "parameters": [ { "schema": { "type": "string" }, "name": "id", "in": "path", "required": true } ], "get": { "summary": "Get a container's transport events", "tags": [ "Containers" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/transport_event" } }, "included": { "type": "array", "items": { "anyOf": [ { "$ref": "#/components/schemas/shipment" }, { "$ref": "#/components/schemas/container" }, { "$ref": "#/components/schemas/port" }, { "$ref": "#/components/schemas/metro_area" }, { "$ref": "#/components/schemas/terminal" }, { "$ref": "#/components/schemas/rail_terminal" }, { "$ref": "#/components/schemas/vessel" } ] } }, "links": { "$ref": "#/components/schemas/links" }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "Example transport events": { "value": { "data": [ { "id": "efc3f3c1-cdc2-4a7d-a176-762ddec107b8", "type": "transport_event", "attributes": { "event": "container.transport.vessel_loaded", "created_at": "2021-01-05T08:41:12Z", "voyage_number": "15W10", "timestamp": null, "location_locode": "CLSAI", "timezone": "America/Santiago" }, "relationships": { "shipment": { "data": { "id": "06264731-503e-498e-bc76-f90b87b31562", "type": "shipment" } }, "container": { "data": { "id": "eeafd337-72b5-4e5c-87cb-9ef83fa99cf4", "type": "container" } }, "vessel": { "data": { "id": "345c05ab-4217-4ffe-a1a4-6c03b9ad2b36", "type": "vessel" } }, "location": { "data": { "id": "0ad2cf2b-e694-4ccc-9cd2-40af0d1fa1b5", "type": "port" } }, "terminal": { "data": null } } }, { "id": "951058bd-2c3b-4bcc-94e1-9be2526b9687", "type": "transport_event", "attributes": { "event": "container.transport.vessel_departed", "created_at": "2021-01-05T08:41:11Z", "voyage_number": "15W10", "timestamp": null, "location_locode": "CLSAI", "timezone": "America/Santiago" }, "relationships": { "shipment": { "data": { "id": "06264731-503e-498e-bc76-f90b87b31562", "type": "shipment" } }, "container": { "data": { "id": "eeafd337-72b5-4e5c-87cb-9ef83fa99cf4", "type": "container" } }, "vessel": { "data": { "id": "345c05ab-4217-4ffe-a1a4-6c03b9ad2b36", "type": "vessel" } }, "location": { "data": { "id": "0ad2cf2b-e694-4ccc-9cd2-40af0d1fa1b5", "type": "port" } }, "terminal": { "data": null } } }, { "id": "69af6795-56c2-4157-9a87-afd761cc85a0", "type": "transport_event", "attributes": { "event": "container.transport.full_out", "created_at": "2020-05-14T00:05:41Z", "voyage_number": null, "timestamp": "2020-04-14T00:00:00Z", "location_locode": "USOAK", "timezone": "America/Los_Angeles" }, "relationships": { "shipment": { "data": { "id": "06264731-503e-498e-bc76-f90b87b31562", "type": "shipment" } }, "container": { "data": { "id": "eeafd337-72b5-4e5c-87cb-9ef83fa99cf4", "type": "container" } }, "vessel": { "data": null }, "location": { "data": { "id": "42d1ba3a-f4b8-431d-a6fe-49fd748a59e7", "type": "port" } }, "terminal": { "data": null } } }, { "id": "68c3c29a-504a-4dbb-ad27-7194ef42d484", "type": "transport_event", "attributes": { "event": "container.transport.vessel_discharged", "created_at": "2020-05-14T00:05:41Z", "voyage_number": "15W10", "timestamp": "2020-04-13T00:00:00Z", "location_locode": "USOAK", "timezone": "America/Los_Angeles" }, "relationships": { "shipment": { "data": { "id": "06264731-503e-498e-bc76-f90b87b31562", "type": "shipment" } }, "container": { "data": { "id": "eeafd337-72b5-4e5c-87cb-9ef83fa99cf4", "type": "container" } }, "vessel": { "data": { "id": "345c05ab-4217-4ffe-a1a4-6c03b9ad2b36", "type": "vessel" } }, "location": { "data": { "id": "42d1ba3a-f4b8-431d-a6fe-49fd748a59e7", "type": "port" } }, "terminal": { "data": { "id": "3e550f0e-ac2a-48fb-b242-5be45ecf2c78", "type": "terminal" } } } }, { "id": "03349405-a9be-4f3e-abde-28f2cb3922bd", "type": "transport_event", "attributes": { "event": "container.transport.vessel_arrived", "created_at": "2020-05-14T00:05:41Z", "voyage_number": "15W10", "timestamp": "2020-04-13T01:24:00Z", "location_locode": "USOAK", "timezone": "America/Los_Angeles" }, "relationships": { "shipment": { "data": { "id": "06264731-503e-498e-bc76-f90b87b31562", "type": "shipment" } }, "container": { "data": { "id": "eeafd337-72b5-4e5c-87cb-9ef83fa99cf4", "type": "container" } }, "vessel": { "data": { "id": "345c05ab-4217-4ffe-a1a4-6c03b9ad2b36", "type": "vessel" } }, "location": { "data": { "id": "42d1ba3a-f4b8-431d-a6fe-49fd748a59e7", "type": "port" } }, "terminal": { "data": { "id": "3e550f0e-ac2a-48fb-b242-5be45ecf2c78", "type": "terminal" } } } }, { "id": "ba9f85b4-658d-4f23-9308-635964df8037", "type": "transport_event", "attributes": { "event": "container.transport.empty_in", "created_at": "2020-05-14T00:05:42Z", "voyage_number": null, "timestamp": "2020-04-15T00:00:00Z", "location_locode": null, "timezone": null }, "relationships": { "shipment": { "data": { "id": "06264731-503e-498e-bc76-f90b87b31562", "type": "shipment" } }, "container": { "data": { "id": "eeafd337-72b5-4e5c-87cb-9ef83fa99cf4", "type": "container" } }, "vessel": { "data": null }, "location": { "data": null }, "terminal": { "data": null } } } ], "links": { "self": "https://api.terminal49.com/v2/containers/eeafd337-72b5-4e5c-87cb-9ef83fa99cf4/transport_events", "current": "https://api.terminal49.com/v2/containers/eeafd337-72b5-4e5c-87cb-9ef83fa99cf4/transport_events?page[number]=1" } } } } } } } }, "operationId": "get-containers-id-transport_events", "description": "Get a list of past transport events (canonical) for a container. All data has been normalized across all carriers. These are a verified subset of the raw events may also be sent as Webhook Notifications to a webhook endpoint.\n\nThis does not provide any estimated future events. See `container/:id/raw_events` endpoint for that. ", "parameters": [ { "schema": { "type": "string" }, "in": "query", "name": "include", "description": "Comma delimited list of relations to include" } ] } }, "/shipping_lines": { "get": { "summary": "Shipping Lines", "tags": [ "Shipping Lines" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/shipping_line" } }, "links": { "$ref": "#/components/schemas/links" } } } } } } }, "operationId": "get-shipping_lines", "requestBody": { "content": { "application/json": { "schema": { "type": "object" } } } }, "description": "Return a list of shipping lines supported by Terminal49. \nN.B. There is no pagination for this endpoint." } }, "/shipping_lines/{id}": { "parameters": [ { "schema": { "type": "string" }, "name": "id", "in": "path", "required": true } ], "get": { "summary": "Get a single shipping line", "tags": [ "Shipping Lines" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/shipping_line" } } } } } } }, "operationId": "get-shipping_lines-id", "description": "Return the details of a single shipping line." } }, "/metro_areas/{id}": { "parameters": [ { "schema": { "type": "string" }, "name": "id", "in": "path", "required": true } ], "get": { "summary": "Get a metro area using the un/locode or the id", "tags": [ "Metro Areas" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/metro_area" } } } } } } }, "operationId": "get-metro-area-id", "description": "Return the details of a single metro area." } }, "/ports/{id}": { "parameters": [ { "schema": { "type": "string" }, "name": "id", "in": "path", "required": true } ], "get": { "summary": "Get a port using the locode or the id", "tags": [ "Ports" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/port" } } } } } } }, "operationId": "get-port-id", "description": "Return the details of a single port." } }, "/vessels/{id}": { "parameters": [ { "schema": { "type": "string" }, "name": "id", "in": "path", "required": true } ], "get": { "summary": "Get a vessel using the id", "tags": [ "Vessels" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/vessel" } } } } } } }, "operationId": "get-vessels-id", "description": "Returns a vessel by it's given identifier" } }, "/vessels/{imo}": { "parameters": [ { "schema": { "type": "string" }, "name": "imo", "in": "path", "required": true } ], "get": { "summary": "Get a vessel using the imo", "tags": [ "Vessels" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/vessel" } } } } } } }, "operationId": "get-vessels-imo", "description": "Returns a vessel by the given IMO number.", "x-internal": true } }, "/terminals/{id}": { "parameters": [ { "schema": { "type": "string" }, "name": "id", "in": "path", "required": true } ], "get": { "summary": "Get a terminal using the id", "tags": [ "Terminals" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/terminal" } } } } } } }, "operationId": "get-terminal-id", "description": "Return the details of a single terminal." } } }, "x-tagGroups": [ { "name": "End Points", "tags": [ "Shipments", "Containers", "Tracking Requests", "Webhooks", "Webhook Notifications", "Metro Areas" ] } ], "components": { "schemas": { "shipment": { "title": "Shipment model", "type": "object", "x-examples": {}, "description": "", "properties": { "id": { "type": "string", "format": "uuid" }, "relationships": { "type": "object", "properties": { "destination": { "type": "object", "properties": { "data": { "type": "object", "nullable": true, "properties": { "type": { "type": "string", "enum": [ "port", "metro_area" ] }, "id": { "type": "string", "format": "uuid" } }, "required": [ "type", "id" ] } } }, "port_of_lading": { "type": "object", "properties": { "data": { "type": "object", "nullable": true, "properties": { "type": { "type": "string", "enum": [ "port" ] }, "id": { "type": "string", "format": "uuid" } }, "required": [ "type", "id" ] } } }, "containers": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "container" ] }, "id": { "type": "string", "format": "uuid" } }, "required": [ "type", "id" ] } } } }, "port_of_discharge": { "type": "object", "properties": { "data": { "type": "object", "nullable": true, "properties": { "type": { "type": "string", "enum": [ "port" ] }, "id": { "type": "string", "format": "uuid" } }, "required": [ "type", "id" ] } } }, "pod_terminal": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "terminal" ] }, "id": { "type": "string", "format": "uuid" } }, "required": [ "type", "id" ] } } }, "destination_terminal": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "terminal", "rail_terminal" ] }, "id": { "type": "string", "format": "uuid" } }, "required": [ "type", "id" ] } } }, "line_tracking_stopped_by_user": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "user" ] }, "id": { "type": "string", "format": "uuid" } }, "required": [ "type", "id" ] } } } } }, "attributes": { "type": "object", "properties": { "bill_of_lading_number": { "type": "string" }, "normalized_number": { "type": "string", "description": "The normalized version of the shipment number used for querying the carrier" }, "ref_numbers": { "type": "array", "items": { "type": "string" }, "nullable": true }, "created_at": { "type": "string", "format": "date-time" }, "tags": { "type": "array", "items": { "type": "string" } }, "port_of_lading_locode": { "type": "string", "description": "UN/LOCODE", "nullable": true }, "port_of_lading_name": { "type": "string", "nullable": true }, "port_of_discharge_locode": { "type": "string", "description": "UN/LOCODE", "nullable": true }, "port_of_discharge_name": { "type": "string", "nullable": true }, "destination_locode": { "type": "string", "description": "UN/LOCODE", "nullable": true }, "destination_name": { "type": "string", "nullable": true }, "shipping_line_scac": { "type": "string" }, "shipping_line_name": { "type": "string" }, "shipping_line_short_name": { "type": "string" }, "customer_name": { "type": "string", "nullable": true }, "pod_vessel_name": { "type": "string", "nullable": true }, "pod_vessel_imo": { "type": "string", "nullable": true }, "pod_voyage_number": { "type": "string", "nullable": true }, "pol_etd_at": { "type": "string", "format": "date-time", "nullable": true }, "pol_atd_at": { "type": "string", "format": "date-time", "nullable": true }, "pod_eta_at": { "type": "string", "format": "date-time", "nullable": true }, "pod_original_eta_at": { "type": "string", "format": "date-time", "nullable": true }, "pod_ata_at": { "type": "string", "format": "date-time", "nullable": true }, "destination_eta_at": { "type": "string", "format": "date-time", "nullable": true }, "destination_ata_at": { "type": "string", "format": "date-time", "nullable": true }, "pol_timezone": { "type": "string", "description": "IANA tz", "nullable": true }, "pod_timezone": { "type": "string", "description": "IANA tz", "nullable": true }, "destination_timezone": { "type": "string", "description": "IANA tz", "nullable": true }, "line_tracking_last_attempted_at": { "type": "string", "format": "date-time", "description": "When Terminal49 last tried to update the shipment status from the shipping line", "nullable": true }, "line_tracking_last_succeeded_at": { "type": "string", "format": "date-time", "description": "When Terminal49 last successfully updated the shipment status from the shipping line", "nullable": true }, "line_tracking_stopped_at": { "type": "string", "format": "date-time", "description": "When Terminal49 stopped checking at the shipping line", "nullable": true }, "line_tracking_stopped_reason": { "type": "string", "enum": [ "all_containers_terminated", "past_arrival_window", "no_updates_at_line", "cancelled_by_user", "booking_cancelled", null ], "description": "The reason Terminal49 stopped checking", "nullable": true } }, "required": [ "bill_of_lading_number" ] }, "type": { "type": "string", "enum": [ "shipment" ] }, "links": { "type": "object", "properties": { "self": { "type": "string", "format": "uri" } }, "required": [ "self" ] } }, "required": [ "id", "type", "attributes", "relationships", "links" ] }, "meta": { "title": "meta", "type": "object", "properties": { "size": { "type": "integer" }, "total": { "type": "integer" } } }, "links": { "title": "links", "type": "object", "properties": { "last": { "type": "string", "format": "uri" }, "next": { "type": "string", "format": "uri" }, "prev": { "type": "string", "format": "uri" }, "first": { "type": "string", "format": "uri" }, "self": { "type": "string", "format": "uri" } } }, "container": { "title": "Container model", "type": "object", "x-examples": { "Example Container": { "id": "ff77a822-23a7-4ccd-95ca-g534c071baaf3", "type": "container", "attributes": { "number": "KOCU4959010", "ref_numbers": [ "REF-1", "REF-2" ], "seal_number": "210084213", "created_at": "2021-10-18T09:52:33Z", "equipment_type": "dry", "equipment_length": 40, "equipment_height": "high_cube", "weight_in_lbs": 20210, "fees_at_pod_terminal": [], "holds_at_pod_terminal": [], "pickup_lfd": "2022-01-21T08:00:00Z", "pickup_appointment_at": null, "pod_full_out_chassis_number": "APMZ418805", "location_at_pod_terminal": "Delivered 02/11/2022 14:18", "availability_known": true, "available_for_pickup": false, "pod_arrived_at": "2022-01-03T10:30:00Z", "pod_discharged_at": "2022-01-08T09:15:00Z", "final_destination_full_out_at": null, "pod_full_out_at": "2022-02-11T22:18:00Z", "empty_terminated_at": null, "terminal_checked_at": "2022-02-11T22:45:32Z", "pickup_rail_carrier_scac": "UPRR", "pod_timezone": "America/Los_Angeles", "final_destination_timezone": null, "empty_terminated_timezone": null, "pod_last_tracking_request_at": "2022-02-11T22:40:00Z", "shipment_last_tracking_request_at": "2022-02-11T22:40:00Z", "pod_rail_loaded_at": "2022-02-11T22:18:00Z", "pod_rail_departed_at": "2022-02-11T23:30:00Z", "inland_destination_eta_at": null, "inland_destination_ata_at": "2022-02-15T01:12:00Z", "inland_destination_rail_unloaded_at": "2022-02-15T07:54:00Z", "pickup_facility_holds": null, "pickup_facility_fees": null, "pickup_facility_yard_location": null, "pickup_facility_lfd_on": null }, "relationships": { "shipment": { "data": { "id": "x92acf88-c263-43ddf-b005-aca2a32d47f1", "type": "shipment" } }, "pod_terminal": { "data": { "id": "x551cac7-aff5-40a6-9c63-49facf19cc3df", "type": "terminal" } }, "pickup_facility": { "data": { "id": "d7d8d314-b02b-4caa-b04f-d3d4726f4107", "type": "terminal" } }, "transport_events": { "data": [ { "id": "xecfe2d1-c498-4022-a9f8-ec56722e1215", "type": "transport_event" }, { "id": "2900a9b8-d9e2-4696-abd86-4a767b885d23", "type": "transport_event" }, { "id": "5ad0dce1-x78e4-464d-af5f-a36190428a2c", "type": "transport_event" }, { "id": "876575d5-5ede-40d6-a093-c3a4cfcxaa1c7", "type": "transport_event" }, { "id": "dc2a9d8f-75e6-43xa5-a04e-58458495f08c", "type": "transport_event" }, { "id": "50xd2ea1-01ac-473d-8a08-3b5d77d2b793", "type": "transport_event" }, { "id": "9d1f55xe3-6758-4be7-872a-30451ddd957e", "type": "transport_event" } ] }, "raw_events": { "data": [ { "id": "38084a1d-a2eb-434e-81ac3-606c89a61c4b", "type": "raw_event" }, { "id": "53680df3-93d5-4385-86c5-a33ee41b4c1f", "type": "raw_event" }, { "id": "7d9cdf70-51e8-4b75-a8229-f5d691495ab6", "type": "raw_event" }, { "id": "e62d41ac-8738-42e8-b582-35ef28ae88e2", "type": "raw_event" }, { "id": "1209172b-acd8-4ce0-8821-dbc4934208b3", "type": "raw_event" }, { "id": "4265ea5f-2b9a-436f-98fa-803d8ed49acb2", "type": "raw_event" }, { "id": "c3cb2eb7-6c0a-4db8-8742-517b97b175d5", "type": "raw_event" }, { "id": "b1959f36-a218-4b6e-863a9-2e0b4ad5159c", "type": "raw_event" } ] } } } }, "description": "Represents the equipment during a specific journey.", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": ["container"] }, "attributes": { "type": "object", "properties": { "number": { "type": "string" }, "ref_numbers": { "type": "array", "items": { "type": "string" } }, "equipment_type": { "type": "string", "enum": [ "dry", "reefer", "open top", "flat rack", "bulk", "tank", null ], "nullable": true }, "equipment_length": { "type": "integer", "enum": [null, 10, 20, 40, 45], "nullable": true }, "equipment_height": { "type": "string", "enum": ["standard", "high_cube", null], "nullable": true }, "weight_in_lbs": { "type": "number", "nullable": true }, "created_at": { "type": "string", "format": "date-time" }, "seal_number": { "type": "string", "nullable": true }, "pickup_lfd": { "type": "string", "format": "date-time", "description": "The last free day for pickup before demmurage accrues. Corresponding timezone is pod_timezone.", "nullable": true }, "pickup_appointment_at": { "type": "string", "format": "date-time", "description": "When available the pickup appointment time at the terminal is returned.", "nullable": true }, "availability_known": { "type": "boolean", "description": "Whether Terminal 49 is receiving availability status from the terminal." }, "available_for_pickup": { "type": "boolean", "description": "If availability_known is true, then whether container is available to be picked up at terminal.", "nullable": true }, "pod_arrived_at": { "type": "string", "format": "date-time", "description": "Time the vessel arrived at the POD", "nullable": true }, "pod_discharged_at": { "type": "string", "format": "date-time", "description": "Discharge time at the port of discharge", "nullable": true }, "pod_full_out_at": { "type": "string", "format": "date-time", "description": "Full Out time at port of discharge. Null for inland moves.", "nullable": true }, "terminal_checked_at": { "type": "string", "format": "date-time", "description": "When the terminal was last checked.", "nullable": true }, "pod_full_out_chassis_number": { "type": "string", "description": "The chassis number used when container was picked up at POD (if available)", "nullable": true }, "location_at_pod_terminal": { "type": "string", "description": "Location at port of discharge terminal", "nullable": true }, "final_destination_full_out_at": { "type": "string", "format": "date-time", "description": "Pickup time at final destination for inland moves.", "nullable": true }, "empty_terminated_at": { "type": "string", "format": "date-time", "description": "Time empty container was returned.", "nullable": true }, "holds_at_pod_terminal": { "type": "array", "items": { "$ref": "#/components/schemas/terminal_hold" } }, "fees_at_pod_terminal": { "type": "array", "items": { "$ref": "#/components/schemas/terminal_fee" } }, "pod_timezone": { "type": "string", "description": "IANA tz. Applies to attributes pod_arrived_at, pod_discharged_at, pickup_appointment_at, pod_full_out_at.", "nullable": true }, "final_destination_timezone": { "type": "string", "description": "IANA tz. Applies to attribute final_destination_full_out_at.", "nullable": true }, "empty_terminated_timezone": { "type": "string", "description": "IANA tz. Applies to attribute empty_terminated_at.", "nullable": true }, "pickup_rail_carrier_scac": { "type": "string", "description": "The SCAC of the rail carrier for the pickup leg of the container's journey.(BETA)", "nullable": true }, "pod_last_tracking_request_at": { "type": "string", "format": "date-time", "nullable": true }, "shipment_last_tracking_request_at": { "type": "string", "format": "date-time", "nullable": true }, "pod_rail_loaded_at": { "type": "string", "format": "date-time", "nullable": true }, "pod_rail_departed_at": { "type": "string", "format": "date-time", "nullable": true }, "inland_destination_eta_at": { "type": "string", "format": "date-time", "nullable": true }, "inland_destination_ata_at": { "type": "string", "format": "date-time", "nullable": true }, "inland_destination_rail_unloaded_at": { "type": "string", "format": "date-time", "nullable": true }, "pickup_facility_holds": { "type": "array", "items": { "type": "string" }, "nullable": true }, "pickup_facility_fees": { "type": "array", "items": { "type": "object" }, "nullable": true }, "pickup_facility_yard_location": { "type": "string", "nullable": true }, "pickup_facility_lfd_on": { "type": "string", "format": "date-time", "nullable": true } } }, "relationships": { "type": "object", "properties": { "shipment": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["shipment"] } } } } }, "pickup_facility": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["terminal"] } } } } }, "pod_terminal": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["terminal"] } } } } }, "transport_events": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["transport_event"] } } } } } }, "raw_events": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string", "enum": ["raw_event"] } } } } } } } } }, "required": ["id", "type", "attributes"] }, "port": { "title": "Port model", "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "attributes": { "type": "object", "properties": { "name": { "type": "string" }, "code": { "type": "string", "description": "UN/LOCODE" }, "state_abbr": { "type": "string", "x-stoplight": { "id": "jixah1a0q3exs" }, "nullable": true }, "city": { "type": "string", "x-stoplight": { "id": "657ij4boc7kyv" }, "nullable": true }, "country_code": { "type": "string", "description": "2 digit country code" }, "time_zone": { "type": "string", "description": "IANA tz" }, "latitude": { "type": "number", "x-stoplight": { "id": "480os7a90z6kk" }, "nullable": true }, "longitude": { "type": "number", "x-stoplight": { "id": "nfdetqgx5p1yv" }, "nullable": true } } }, "type": { "type": "string", "enum": [ "port" ] } }, "required": [ "id", "type" ] }, "shipping_line": { "title": "Shipping line model", "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "attributes": { "type": "object", "required": [ "scac", "name", "alternative_scacs", "short_name", "bill_of_lading_tracking_support", "booking_number_tracking_support", "container_number_tracking_support" ], "properties": { "scac": { "type": "string", "minLength": 4, "maxLength": 4 }, "name": { "type": "string" }, "alternative_scacs": { "type": "array", "x-stoplight": { "id": "jwf70hnip0xwb" }, "description": "Additional SCACs which will be accepted in tracking requests", "items": { "x-stoplight": { "id": "nrqnwg5y2u0ni" }, "type": "string", "minLength": 4, "maxLength": 4 } }, "short_name": { "type": "string" }, "bill_of_lading_tracking_support": { "type": "boolean" }, "booking_number_tracking_support": { "type": "boolean" }, "container_number_tracking_support": { "type": "boolean" } } }, "type": { "type": "string", "enum": [ "shipping_line" ] } }, "required": [ "id", "attributes", "type" ] }, "account": { "title": "Account model", "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "container" ] }, "attributes": { "type": "object", "required": [ "company_name" ], "properties": { "company_name": { "type": "string" } } } }, "required": [ "id", "type", "attributes" ], "x-examples": {} }, "error": { "title": "Error model", "type": "object", "properties": { "detail": { "type": "string", "nullable": true }, "title": { "type": "string", "nullable": true }, "source": { "type": "object", "nullable": true, "properties": { "pointer": { "type": "string", "nullable": true }, "parameter": { "type": "string", "nullable": true } } }, "code": { "type": "string", "nullable": true }, "status": { "type": "string", "nullable": true }, "meta": { "type": "object", "nullable": true, "properties": { "tracking_request_id": { "type": "string", "format": "uuid", "nullable": true } } } }, "required": [ "title" ] }, "metro_area": { "title": "Metro area model", "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "attributes": { "type": "object", "properties": { "name": { "type": "string" }, "code": { "type": "string", "description": "UN/LOCODE" }, "state_abbr": { "type": "string", "x-stoplight": { "id": "j9yuwej2ym7yq" }, "nullable": true }, "country_code": { "type": "string", "x-stoplight": { "id": "hfupdk750wcrj" } }, "time_zone": { "type": "string", "description": "IANA tz", "x-stoplight": { "id": "izvtty345nfsz" } }, "latitude": { "type": "number", "x-stoplight": { "id": "9l62t4cwsp53w" }, "nullable": true }, "longitude": { "type": "number", "x-stoplight": { "id": "3tzibc0li8xvg" }, "nullable": true } } }, "type": { "type": "string", "enum": [ "metro_area" ] }, "": { "type": "string", "x-stoplight": { "id": "kwcjunrtu3r5o" } } }, "required": [ "id", "type" ] }, "terminal": { "title": "Terminal model", "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "relationships": { "type": "object", "required": [ "port" ], "properties": { "port": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "port" ] } } } } } } }, "attributes": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string" }, "nickname": { "type": "string" }, "firms_code": { "type": "string", "description": "CBP FIRMS Code or CBS Sublocation Code" }, "smdg_code": { "type": "string", "description": "SMDG Code" }, "bic_facility_code": { "type": "string", "description": "BIC Facility Code" }, "street": { "type": "string", "description": "Street part of the address" }, "city": { "type": "string", "description": "City part of the address" }, "state": { "type": "string", "description": "State part of the address" }, "state_abbr": { "type": "string", "description": "State abbreviation for the state" }, "zip": { "type": "string", "description": "ZIP code part of the address" }, "country": { "type": "string", "description": "Country part of the address" } } }, "type": { "type": "string", "enum": [ "terminal" ] } }, "required": [ "attributes", "relationships" ] }, "rail_terminal": { "title": "Rail Terminal model", "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "relationships": { "type": "object", "properties": { "port": { "type": "object", "properties": { "data": { "type": "object", "nullable": true, "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "port" ] } } } } }, "metro_area": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "metro_area" ] } } } } } } }, "attributes": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string" }, "nickname": { "type": "string" }, "firms_code": { "type": "string", "description": "CBP FIRMS Code or CBS Sublocation Code" } } }, "type": { "type": "string", "enum": [ "rail_terminal" ] } }, "required": [ "attributes" ] }, "tracking_request": { "title": "Tracking Request", "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "tracking_request" ] }, "attributes": { "type": "object", "properties": { "request_number": { "type": "string", "example": "ONEYSH9AME650500" }, "ref_numbers": { "type": "array", "nullable": true, "items": { "type": "string" } }, "tags": { "type": "array", "items": { "type": "string" } }, "status": { "type": "string", "enum": [ "pending", "awaiting_manifest", "created", "failed", "tracking_stopped" ] }, "failed_reason": { "type": "string", "enum": [ "booking_cancelled", "duplicate", "expired", "internal_processing_error", "invalid_number", "not_found", "retries_exhausted", "shipping_line_unreachable", "unrecognized_response", "data_unavailable", null ], "description": "If the tracking request has failed, or is currently failing, the last reason we were unable to complete the request", "nullable": true }, "request_type": { "type": "string", "enum": [ "bill_of_lading", "booking_number", "container" ], "example": "bill_of_lading" }, "scac": { "type": "string", "example": "ONEY", "minLength": 4, "maxLength": 4 }, "created_at": { "type": "string", "format": "date-time" }, "is_retrying": { "type": "boolean" }, "retry_count": { "type": "integer", "description": "How many times T49 has attempted to get the shipment from the shipping line", "nullable": true } }, "required": [ "request_number", "status", "request_type", "scac", "created_at" ] }, "relationships": { "type": "object", "properties": { "tracked_object": { "type": "object", "properties": { "data": { "type": "object", "nullable": true, "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "shipment" ] } } } } } } } }, "required": [ "id", "type" ] }, "webhook": { "title": "webhook", "type": "object", "x-examples": {}, "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "webhook" ] }, "attributes": { "type": "object", "properties": { "url": { "type": "string", "format": "uri", "description": "https end point" }, "active": { "type": "boolean", "default": true, "description": "Whether the webhook will be delivered when events are triggered" }, "events": { "type": "array", "description": "The list of events to enabled for this endpoint", "uniqueItems": true, "minItems": 1, "items": { "type": "string", "enum": [ "container.transport.vessel_arrived", "container.transport.vessel_discharged", "container.transport.vessel_loaded", "container.transport.vessel_departed", "container.transport.rail_departed", "container.transport.rail_arrived", "container.transport.rail_loaded", "container.transport.rail_unloaded", "container.transport.transshipment_arrived", "container.transport.transshipment_discharged", "container.transport.transshipment_loaded", "container.transport.transshipment_departed", "container.transport.feeder_arrived", "container.transport.feeder_discharged", "container.transport.feeder_loaded", "container.transport.feeder_departed", "container.transport.empty_out", "container.transport.full_in", "container.transport.full_out", "container.transport.empty_in", "container.transport.vessel_berthed", "shipment.estimated.arrival", "tracking_request.succeeded", "tracking_request.failed", "tracking_request.awaiting_manifest", "tracking_request.tracking_stopped", "container.created", "container.updated", "container.pod_terminal_changed", "container.transport.arrived_at_inland_destination", "container.transport.estimated.arrived_at_inland_destination", "container.pickup_lfd.changed" ] } }, "secret": { "type": "string", "description": "A random token that will sign all delivered webhooks" }, "headers": { "type": "array", "nullable": true, "items": { "type": "object", "properties": { "name": { "type": "string" }, "value": { "type": "string" } } } } }, "required": [ "url", "active", "events", "secret" ] } }, "required": [ "id", "type" ], "description": "" }, "vessel": { "title": "vessel", "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "vessel" ] }, "attributes": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the ship or vessel", "example": "Ever Given" }, "imo": { "type": "string", "description": "International Maritime Organization (IMO) number", "nullable": true, "example": "9811000" }, "mmsi": { "type": "string", "description": "Maritime Mobile Service Identity (MMSI)", "nullable": true, "example": "353136000" }, "latitude": { "type": "number", "description": "The current latitude position of the vessel", "nullable": true, "example": 25.29845 }, "longitude": { "type": "number", "description": "The current longitude position of the vessel", "nullable": true, "example": 121.217 }, "nautical_speed_knots": { "type": "number", "description": "The current speed of the ship in knots (nautical miles per hour)", "nullable": true, "example": 90 }, "navigational_heading_degrees": { "type": "number", "description": "The current heading of the ship in degrees, where 0 is North, 90 is East, 180 is South, and 270 is West", "nullable": true, "example": 194 }, "position_timestamp": { "type": "string", "description": "The timestamp of when the ship's position was last recorded, in ISO 8601 date and time format", "nullable": true, "example": "2023-07-28T14:01:37Z" } } } } }, "transport_event": { "title": "Transport Event Model", "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "transport_event" ] }, "attributes": { "type": "object", "properties": { "event": { "type": "string", "enum": [ "container.transport.vessel_arrived", "container.transport.vessel_discharged", "container.transport.vessel_loaded", "container.transport.vessel_departed", "container.transport.rail_departed", "container.transport.rail_arrived", "container.transport.rail_loaded", "container.transport.rail_unloaded", "container.transport.transshipment_arrived", "container.transport.transshipment_discharged", "container.transport.transshipment_loaded", "container.transport.transshipment_departed", "container.transport.feeder_arrived", "container.transport.feeder_discharged", "container.transport.feeder_loaded", "container.transport.feeder_departed", "container.transport.empty_out", "container.transport.full_in", "container.transport.full_out", "container.transport.empty_in", "container.transport.vessel_berthed", "container.transport.arrived_at_inland_destination", "container.transport.estimated.arrived_at_inland_destination", "container.pickup_lfd.changed" ] }, "voyage_number": { "type": "string", "nullable": true }, "timestamp": { "type": "string", "format": "date-time", "nullable": true }, "timezone": { "type": "string", "description": "IANA tz", "nullable": true }, "location_locode": { "type": "string", "description": "UNLOCODE of the event location", "nullable": true }, "created_at": { "type": "string", "format": "date-time" }, "data_source": { "type": "string", "enum": [ "shipping_line", "terminal", "ais" ], "example": "shipping_line", "description": "The original source of the event data" } } }, "relationships": { "type": "object", "properties": { "shipment": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "shipment" ] } } } } }, "location": { "type": "object", "properties": { "data": { "type": "object", "nullable": true, "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "port", "metro_area" ] } } } } }, "vessel": { "type": "object", "properties": { "data": { "type": "object", "nullable": true, "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string", "enum": [ "vessel" ] } } } } }, "terminal": { "type": "object", "properties": { "data": { "type": "object", "nullable": true, "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "terminal", "rail_terminal" ] } } } } }, "container": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "container" ] } } } } } } } }, "required": [ "id", "type" ] }, "estimated_event": { "title": "Estimated Event Model", "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "estimated_event" ] }, "attributes": { "type": "object", "required": [ "created_at", "estimated_timestamp", "event" ], "properties": { "created_at": { "type": "string", "description": "When the estimated event was created", "format": "date-time" }, "estimated_timestamp": { "type": "string", "format": "date-time" }, "event": { "type": "string", "enum": [ "shipment.estimated.arrival" ] }, "location_locode": { "type": "string", "description": "UNLOCODE of the event location", "nullable": true }, "timezone": { "type": "string", "description": "IANA tz", "nullable": true }, "voyage_number": { "type": "string", "nullable": true }, "data_source": { "type": "string", "enum": [ "shipping_line", "terminal" ], "description": "The original source of the event data" } } }, "relationships": { "type": "object", "required": [ "shipment" ], "properties": { "shipment": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "object", "required": [ "id", "type" ], "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "shipment" ] } } } } }, "port": { "type": "object", "properties": { "data": { "type": "object", "nullable": true, "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "port" ] } } } } }, "vessel": { "type": "object", "description": "\n", "properties": { "data": { "type": "object", "nullable": true, "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "vessel" ] } } } } } } } }, "required": [ "id", "type", "attributes", "relationships" ] }, "webhook_notification": { "title": "webhook_notification", "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "webhook_notification" ] }, "attributes": { "type": "object", "properties": { "event": { "type": "string", "enum": [ "container.transport.vessel_arrived", "container.transport.vessel_discharged", "container.transport.vessel_loaded", "container.transport.vessel_departed", "container.transport.rail_departed", "container.transport.rail_arrived", "container.transport.rail_loaded", "container.transport.rail_unloaded", "container.transport.transshipment_arrived", "container.transport.transshipment_discharged", "container.transport.transshipment_loaded", "container.transport.transshipment_departed", "container.transport.feeder_arrived", "container.transport.feeder_discharged", "container.transport.feeder_loaded", "container.transport.feeder_departed", "container.transport.empty_out", "container.transport.full_in", "container.transport.full_out", "container.transport.empty_in", "container.transport.vessel_berthed", "shipment.estimated.arrival", "tracking_request.succeeded", "tracking_request.failed", "tracking_request.awaiting_manifest", "tracking_request.tracking_stopped", "container.created", "container.updated", "container.pod_terminal_changed", "container.transport.arrived_at_inland_destination", "container.transport.estimated.arrived_at_inland_destination", "container.pickup_lfd.changed" ] }, "delivery_status": { "type": "string", "default": "pending", "enum": [ "pending", "succeeded", "failed" ], "description": "Whether the notification has been delivered to the webhook endpoint" }, "created_at": { "type": "string" } }, "required": [ "event", "delivery_status", "created_at" ] }, "relationships": { "type": "object", "properties": { "webhook": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "webhook" ] } } } } }, "reference_object": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "tracking_request", "estimated_event", "transport_event", "container_updated_event" ] } } } } } }, "required": [ "webhook" ] } } }, "terminal_hold": { "title": "terminal_hold", "type": "object", "properties": { "name": { "type": "string" }, "status": { "type": "string", "enum": [ "pending", "hold" ] }, "description": { "type": "string", "description": "Text description from the terminal (if any)", "nullable": true } }, "required": [ "name", "status" ] }, "terminal_fee": { "title": "terminal_fee", "type": "object", "properties": { "type": { "type": "string", "enum": [ "demurrage", "exam", "extended_dwell_time", "other", "total" ] }, "amount": { "type": "number", "description": "The fee amount in local currency" }, "currency_code": { "type": "string", "description": "The ISO 4217 currency code of the fee is charged in. E.g. USD", "example": "USD" } }, "required": [ "type", "amount" ] }, "container_updated_event": { "title": "container_updated_event", "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string" }, "attributes": { "type": "object", "properties": { "changeset": { "type": "object", "description": "A hash of all the changed attributes with the values being an array of the before and after. E.g. \n`{\"pickup_lfd\": [null, \"2020-05-20\"]}`\n\nThe current attributes that can be alerted on are:\n- `available_for_pickup`\n- `pickup_lfd`\n- `fees_at_pod_terminal`\n- `holds_at_pod_terminal`\n- `pickup_appointment_at`\n- `pod_terminal`" }, "timestamp": { "type": "string", "format": "date-time", "description": "" }, "timezone": { "type": "string", "description": "IANA tz " }, "data_source": { "type": "string", "enum": [ "terminal" ], "example": "terminal" } }, "required": [ "changeset", "timestamp" ] }, "relationships": { "type": "object", "required": [ "container", "terminal" ], "properties": { "container": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "object", "required": [ "id", "type" ], "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "container" ] } } } } }, "terminal": { "type": "object", "description": "", "required": [ "data" ], "properties": { "data": { "type": "object", "required": [ "id", "type" ], "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "terminal" ] } } } } } } } }, "required": [ "relationships" ] }, "raw_event": { "title": "Raw Event Model", "type": "object", "description": "Raw Events represent the milestones from the shipping line for a given container.\n\n### About raw_event datetimes\n\nThe events may include estimated future events. The event is a future event if an `estimated_` timestamp is not null. \n\nThe datetime properties `timestamp` and `estimated`. \n\nWhen the `time_zone` property is present the datetimes are UTC timestamps, which can be converted to the local time by parsing the provided `time_zone`.\n\nWhen the `time_zone` property is absent, the datetimes represent local times which serialized as UTC timestamps for consistency. ", "properties": { "id": { "type": "string" }, "type": { "type": "string", "description": "", "enum": [ "raw_event" ] }, "attributes": { "type": "object", "properties": { "event": { "type": "string", "enum": [ "empty_out", "full_in", "positioned_in", "positioned_out", "vessel_loaded", "vessel_departed", "transshipment_arrived", "transshipment_discharged", "transshipment_loaded", "transshipment_departed", "feeder_arrived", "feeder_discharged", "feeder_loaded", "feeder_departed", "rail_loaded", "rail_departed", "rail_arrived", "rail_unloaded", "vessel_arrived", "vessel_discharged", "arrived_at_destination", "delivered", "full_out", "empty_in", "vgm_received", "carrier_release", "customs_release" ], "description": "Normalized string representing the event", "nullable": true }, "original_event": { "type": "string", "description": "The event name as returned by the carrier" }, "timestamp": { "type": "string", "format": "date-time", "description": "The datetime the event either transpired or will occur in UTC" }, "estimated": { "type": "boolean", "description": "True if the timestamp is estimated, false otherwise" }, "actual_on": { "type": "string", "format": "date", "description": "Deprecated: The date of the event at the event location when no time information is available. ", "nullable": true }, "estimated_on": { "type": "string", "format": "date", "description": "Deprecated: The estimated date of the event at the event location when no time information is available. ", "nullable": true }, "actual_at": { "type": "string", "format": "date-time", "description": "Deprecated: The datetime the event transpired in UTC", "nullable": true }, "estimated_at": { "type": "string", "format": "date-time", "description": "Deprecated: The estimated datetime the event will occur in UTC", "nullable": true }, "timezone": { "type": "string", "description": "IANA tz where the event occured", "nullable": true }, "created_at": { "type": "string", "format": "date-time", "description": "When the raw_event was created in UTC" }, "location_name": { "type": "string", "description": "The city or facility name of the event location" }, "location_locode": { "type": "string", "description": "UNLOCODE of the event location", "nullable": true }, "vessel_name": { "type": "string", "description": "The name of the vessel where applicable", "nullable": true }, "vessel_imo": { "type": "string", "description": "The IMO of the vessel where applicable", "nullable": true }, "index": { "type": "integer", "description": "The order of the event. This may be helpful when only dates (i.e. actual_on) are available." }, "voyage_number": { "type": "string", "nullable": true } } }, "relationships": { "type": "object", "properties": { "location": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "port", "metro_area" ] } } } } }, "vessel": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "vessel" ] } } } } } } } } }, "container_pod_terminal_changed_event": { "title": "Container Pod Terminal Changed Event", "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string" }, "attributes": { "type": "object", "properties": { "data_source": { "type": "string", "enum": [ "shipping_line", "terminal", "pierpass" ], "example": "shipping_line", "description": "Where the information about the terminal change came from" }, "timestamp": { "type": "string", "format": "date-time", "description": "When the terminal change was recorded" } } }, "relationships": { "type": "object", "properties": { "container": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "container" ] } } }, "shipment": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "shipment" ] } } }, "terminal": { "type": "object", "description": "The terminal the container has changed to. If this container is still on the vessel this represents an advisory. If it was previously at the terminal this represents an off-dock move.", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "terminal" ] } } } } } }, "description": "" } }, "securitySchemes": { "authorization": { "name": "Authorization", "type": "apiKey", "in": "header", "description": "`Token YOUR_API_TOKEN`\n\nThe APIs require authentication to be done using header-based API Key and Secret Authentication. \n\nAPI key and secret are sent va the `Authorization` request header.\n\nYou send your API key and secret in the following way:\n\n`Authorization: Token YOUR_API_KEY`" } } }, "tags": [ { "name": "Containers" }, { "name": "Shipments" }, { "name": "Locations" }, { "name": "Events" }, { "name": "Tracking Requests" }, { "name": "Webhooks" }, { "name": "Webhook Notifications" }, { "name": "Ports" }, { "name": "Metro Areas" }, { "name": "Terminals" } ], "security": [ { "authorization": [] } ] }