From 1062d413b164b0d56570392a11bdc4a5450fbc78 Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Wed, 14 Oct 2026 16:37:05 -0700 Subject: [PATCH 01/20] docs(openapi)!: document 204 deletes and shared error responses Add shared BadRequest, Unauthorized, NotFound and UnprocessableEntity responses and reference them where staging returns those statuses. Deletes of webhooks, custom fields, definitions and options return 204. The error object no longer requires title, because Pundit 401s carry only detail. Types are regenerated. BREAKING CHANGE: in the exported `paths` type from @terminal49/sdk, DELETE /webhooks/{id}, /custom_fields/{id}, /custom_field_definitions/{id}, and /custom_field_definitions/{definition_id}/options/{option_id} answer 204 instead of 200, so their `responses[200]` keys become `responses[204]`. `components['schemas']['error'].title` becomes optional. Co-Authored-By: Claude Opus 5.5 --- docs/openapi.json | 266 ++++++++++++++++-- .../src/generated/terminal49.ts | 204 ++++++++++---- 2 files changed, 398 insertions(+), 72 deletions(-) diff --git a/docs/openapi.json b/docs/openapi.json index 52c2e341..472ca1f8 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -1590,6 +1590,15 @@ } } } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } } } @@ -1627,6 +1636,15 @@ } } } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } } } @@ -2282,6 +2300,9 @@ } } }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, "404": { "description": "Not Found", "content": { @@ -2964,6 +2985,9 @@ } } }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, "404": { "description": "Not Found", "content": { @@ -3030,6 +3054,9 @@ } } } + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } }, "description": "Update a tracking request", @@ -3137,6 +3164,12 @@ } } } + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } }, "requestBody": { @@ -3236,6 +3269,9 @@ } } } + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } }, "requestBody": { @@ -3343,6 +3379,9 @@ } } } + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } }, "description": "Update a single webhook", @@ -3469,8 +3508,11 @@ "summary": "Delete a webhook", "operationId": "delete-webhooks-id", "responses": { - "200": { - "description": "OK" + "204": { + "description": "No Content" + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "description": "Delete a webhook", @@ -3789,6 +3831,9 @@ } } } + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } } }, @@ -8449,6 +8494,9 @@ } } } + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "operationId": "get-containers-id", @@ -9747,6 +9795,9 @@ } } } + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "operationId": "get-containers-id-map-geojson", @@ -10889,6 +10940,12 @@ } } } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } }, "requestBody": { @@ -10949,10 +11006,20 @@ "Custom Field Definitions" ], "responses": { - "200": { - "description": "OK" + "204": { + "description": "No Content" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } - } + }, + "description": "Deletes a custom field definition. A definition that has values, or a template other accounts use, returns 422; archive it instead." } }, "/custom_field_definitions/{definition_id}/options": { @@ -11024,6 +11091,12 @@ } } } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } }, "requestBody": { @@ -11118,6 +11191,9 @@ } } } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" } } }, @@ -11145,6 +11221,12 @@ } } } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } }, "requestBody": { @@ -11193,8 +11275,14 @@ "Custom Field Options" ], "responses": { - "200": { - "description": "OK" + "204": { + "description": "No Content" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" } } } @@ -11299,6 +11387,12 @@ } } } + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } }, "requestBody": { @@ -11455,6 +11549,9 @@ } } } + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } }, "requestBody": { @@ -11502,8 +11599,11 @@ "Custom Fields" ], "responses": { - "200": { - "description": "OK" + "204": { + "description": "No Content" + }, + "404": { + "$ref": "#/components/responses/NotFound" } } } @@ -11577,6 +11677,12 @@ } } } + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } }, "requestBody": { @@ -11676,6 +11782,9 @@ } } } + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } }, "requestBody": { @@ -11838,7 +11947,7 @@ } }, "404": { - "description": "Not Found" + "$ref": "#/components/responses/NotFound" } } }, @@ -12045,7 +12154,7 @@ } }, "404": { - "description": "Not Found" + "$ref": "#/components/responses/NotFound" }, "422": { "description": "Unprocessable Entity", @@ -12145,7 +12254,7 @@ } }, "404": { - "description": "Not Found" + "$ref": "#/components/responses/NotFound" } } } @@ -12219,6 +12328,12 @@ } } } + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } }, "requestBody": { @@ -12318,6 +12433,9 @@ } } } + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } }, "requestBody": { @@ -12480,7 +12598,7 @@ } }, "404": { - "description": "Not Found" + "$ref": "#/components/responses/NotFound" } } }, @@ -12681,7 +12799,7 @@ } }, "404": { - "description": "Not Found" + "$ref": "#/components/responses/NotFound" }, "422": { "description": "Unprocessable Entity", @@ -12796,7 +12914,7 @@ } }, "404": { - "description": "Not Found" + "$ref": "#/components/responses/NotFound" } } } @@ -16135,10 +16253,7 @@ "nullable": true, "additionalProperties": true } - }, - "required": [ - "title" - ] + } }, "metro_area": { "title": "Metro area model", @@ -19668,6 +19783,119 @@ } } }, + "responses": { + "BadRequest": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/error" + } + } + } + }, + "example": { + "errors": [ + { + "status": "400", + "title": "Bad Request", + "source": { + "parameter": "include" + } + } + ] + } + } + } + }, + "Unauthorized": { + "description": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/error" + } + } + } + }, + "example": { + "errors": [ + { + "detail": "You are not allowed to perform this action" + } + ] + } + } + } + }, + "NotFound": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/error" + } + } + } + }, + "example": { + "errors": [ + { + "status": "404", + "title": "Not Found" + } + ] + } + } + } + }, + "UnprocessableEntity": { + "description": "Unprocessable Entity", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/error" + } + } + } + }, + "example": { + "errors": [ + { + "status": "422", + "source": { + "pointer": "/data/attributes/label" + }, + "title": "Unprocessable Entity", + "detail": "Label can't be blank", + "code": "blank" + } + ] + } + } + } + } + }, "securitySchemes": { "authorization": { "name": "Authorization", diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index d4c53944..2333af72 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -820,7 +820,10 @@ export interface paths { get: operations["get-custom-field-definitions-id"]; put?: never; post?: never; - /** Delete a custom field definition */ + /** + * Delete a custom field definition + * @description Deletes a custom field definition. A definition that has values, or a template other accounts use, returns 422; archive it instead. + */ delete: operations["delete-custom-field-definitions-id"]; options?: never; head?: never; @@ -1803,7 +1806,7 @@ export interface components { /** Error model */ error: { detail?: string | null; - title: string | null; + title?: string | null; source?: { pointer?: string | null; parameter?: string | null; @@ -3234,7 +3237,99 @@ export interface components { }; }; }; - responses: never; + responses: { + /** @description Bad Request */ + BadRequest: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "errors": [ + * { + * "status": "400", + * "title": "Bad Request", + * "source": { + * "parameter": "include" + * } + * } + * ] + * } + */ + "application/json": { + errors?: components["schemas"]["error"][]; + }; + }; + }; + /** @description Unauthorized. The API token is missing or invalid, or the account may not perform this action. */ + Unauthorized: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "errors": [ + * { + * "detail": "You are not allowed to perform this action" + * } + * ] + * } + */ + "application/json": { + errors?: components["schemas"]["error"][]; + }; + }; + }; + /** @description Not Found */ + NotFound: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "errors": [ + * { + * "status": "404", + * "title": "Not Found" + * } + * ] + * } + */ + "application/json": { + errors?: components["schemas"]["error"][]; + }; + }; + }; + /** @description Unprocessable Entity */ + UnprocessableEntity: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "errors": [ + * { + * "status": "422", + * "source": { + * "pointer": "/data/attributes/label" + * }, + * "title": "Unprocessable Entity", + * "detail": "Label can't be blank", + * "code": "blank" + * } + * ] + * } + */ + "application/json": { + errors?: components["schemas"]["error"][]; + }; + }; + }; + }; parameters: never; requestBodies: never; headers: never; @@ -3659,6 +3754,9 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; + 422: components["responses"]["UnprocessableEntity"]; }; }; "patch-shipments-id-resume-tracking": { @@ -3683,6 +3781,9 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; + 422: components["responses"]["UnprocessableEntity"]; }; }; "get-tracking-requests": { @@ -3741,6 +3842,7 @@ export interface operations { }; }; }; + 400: components["responses"]["BadRequest"]; /** @description Not Found */ 404: { headers: { @@ -4048,6 +4150,7 @@ export interface operations { }; }; }; + 400: components["responses"]["BadRequest"]; /** @description Not Found */ 404: { headers: { @@ -4098,6 +4201,7 @@ export interface operations { }; }; }; + 422: components["responses"]["UnprocessableEntity"]; }; }; "get-tracking-requests-custom-fields": { @@ -4175,6 +4279,8 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; + 422: components["responses"]["UnprocessableEntity"]; }; }; "delete-tracking-requests-custom-fields-api-slug": { @@ -4238,6 +4344,7 @@ export interface operations { }; }; }; + 422: components["responses"]["UnprocessableEntity"]; }; }; "get-webhooks-id": { @@ -4275,13 +4382,14 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ - 200: { + /** @description No Content */ + 204: { headers: { [name: string]: unknown; }; content?: never; }; + 404: components["responses"]["NotFound"]; }; }; "patch-webhooks-id": { @@ -4333,6 +4441,7 @@ export interface operations { }; }; }; + 422: components["responses"]["UnprocessableEntity"]; }; }; "get-webhooks": { @@ -4410,6 +4519,7 @@ export interface operations { "application/xml": components["schemas"]["webhook"]; }; }; + 422: components["responses"]["UnprocessableEntity"]; }; }; "get-webhooks-events": { @@ -5715,6 +5825,7 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; }; }; "patch-containers-id": { @@ -5882,6 +5993,7 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; }; }; "patch-containers-id-refresh": { @@ -6463,13 +6575,16 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ - 200: { + /** @description No Content */ + 204: { headers: { [name: string]: unknown; }; content?: never; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; + 422: components["responses"]["UnprocessableEntity"]; }; }; "patch-custom-field-definitions-id": { @@ -6514,6 +6629,8 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 422: components["responses"]["UnprocessableEntity"]; }; }; "get-custom-field-options": { @@ -6581,6 +6698,8 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 422: components["responses"]["UnprocessableEntity"]; }; }; "get-custom-field-options-id": { @@ -6609,6 +6728,7 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; }; }; "delete-custom-field-options-id": { @@ -6625,13 +6745,15 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ - 200: { + /** @description No Content */ + 204: { headers: { [name: string]: unknown; }; content?: never; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; }; }; "patch-custom-field-options-id": { @@ -6673,6 +6795,8 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 422: components["responses"]["UnprocessableEntity"]; }; }; "get-custom-fields": { @@ -6771,6 +6895,8 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; + 422: components["responses"]["UnprocessableEntity"]; }; }; "get-custom-fields-id": { @@ -6811,13 +6937,14 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ - 200: { + /** @description No Content */ + 204: { headers: { [name: string]: unknown; }; content?: never; }; + 404: components["responses"]["NotFound"]; }; }; "patch-custom-fields-id": { @@ -6856,6 +6983,7 @@ export interface operations { }; }; }; + 422: components["responses"]["UnprocessableEntity"]; }; }; "get-shipments-custom-fields": { @@ -6933,6 +7061,8 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; + 422: components["responses"]["UnprocessableEntity"]; }; }; "delete-shipments-custom-fields-api-slug": { @@ -6996,6 +7126,7 @@ export interface operations { }; }; }; + 422: components["responses"]["UnprocessableEntity"]; }; }; "get-shipments-party-roles": { @@ -7035,13 +7166,7 @@ export interface operations { }; }; }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; + 404: components["responses"]["NotFound"]; }; }; "post-shipments-party-roles": { @@ -7127,13 +7252,7 @@ export interface operations { }; }; }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; + 404: components["responses"]["NotFound"]; /** @description Unprocessable Entity */ 422: { headers: { @@ -7179,13 +7298,7 @@ export interface operations { }; }; }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; + 404: components["responses"]["NotFound"]; }; }; "get-containers-custom-fields": { @@ -7263,6 +7376,8 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; + 422: components["responses"]["UnprocessableEntity"]; }; }; "delete-containers-custom-fields-api-slug": { @@ -7326,6 +7441,7 @@ export interface operations { }; }; }; + 422: components["responses"]["UnprocessableEntity"]; }; }; "get-containers-party-roles": { @@ -7365,13 +7481,7 @@ export interface operations { }; }; }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; + 404: components["responses"]["NotFound"]; }; }; "post-containers-party-roles": { @@ -7457,13 +7567,7 @@ export interface operations { }; }; }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; + 404: components["responses"]["NotFound"]; /** @description Unprocessable Entity */ 422: { headers: { @@ -7509,13 +7613,7 @@ export interface operations { }; }; }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; + 404: components["responses"]["NotFound"]; }; }; "get-parties-id": { From 0223e7d26d0e99d550344b5db72abfd2825e586d Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Wed, 14 Oct 2026 16:37:33 -0700 Subject: [PATCH 02/20] docs(openapi)!: mark relationships and columns staging serves as null Shipment pod_terminal, destination_terminal and line_tracking_stopped_by_user are belongs_to links that serialize {data: null}. Terminal address and code columns are nullable. Raw event location and vessel can be null, and the container and terminal links are now documented. Map GeoJSON port country, country_code and time_zone copy nullable port columns. Types are regenerated. BREAKING CHANGE: in the exported @terminal49/sdk types, relationship data, terminal address and code, raw event location and vessel, and map GeoJSON port country, country_code, and time_zone allow null. `container_pod_terminal_changed_event` relationships `container`, `shipment`, and `terminal` move `id` and `type` under a nullable `data` object, and `type` narrows from string to 'container_pod_terminal_changed_event'. Read `relationships.container.data?.id` instead of `relationships.container.id`. Co-Authored-By: Claude Opus 5.5 --- docs/openapi.json | 108 ++++++++++++++---- .../src/generated/terminal49.ts | 60 ++++++---- 2 files changed, 124 insertions(+), 44 deletions(-) diff --git a/docs/openapi.json b/docs/openapi.json index 472ca1f8..9b3694a8 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -15218,7 +15218,8 @@ "required": [ "type", "id" - ] + ], + "nullable": true } } }, @@ -15243,7 +15244,8 @@ "required": [ "type", "id" - ] + ], + "nullable": true } } }, @@ -15267,7 +15269,8 @@ "required": [ "type", "id" - ] + ], + "nullable": true } } } @@ -15967,7 +15970,8 @@ "terminal" ] } - } + }, + "nullable": true } } }, @@ -16373,43 +16377,53 @@ "type": "string" }, "nickname": { - "type": "string" + "type": "string", + "nullable": true }, "firms_code": { "type": "string", - "description": "CBP FIRMS Code or CBS Sublocation Code" + "description": "CBP FIRMS Code or CBS Sublocation Code", + "nullable": true }, "smdg_code": { "type": "string", - "description": "SMDG Code" + "description": "SMDG Code", + "nullable": true }, "bic_facility_code": { "type": "string", - "description": "BIC Facility Code" + "description": "BIC Facility Code", + "nullable": true }, "street": { "type": "string", - "description": "Street part of the address" + "description": "Street part of the address", + "nullable": true }, "city": { "type": "string", - "description": "City part of the address" + "description": "City part of the address", + "nullable": true }, "state": { "type": "string", - "description": "State part of the address" + "description": "State part of the address", + "nullable": true }, "state_abbr": { "type": "string", - "description": "State abbreviation for the state" + "description": "State abbreviation for the state", + "nullable": true }, "zip": { "type": "string", - "description": "ZIP code part of the address" + "description": "ZIP code part of the address", + "nullable": true }, "country": { "type": "string", - "description": "Country part of the address" + "description": "Country part of the address", + "nullable": true } } }, @@ -17641,7 +17655,8 @@ }, "location_name": { "type": "string", - "description": "The city or facility name of the event location" + "description": "The city or facility name of the event location", + "nullable": true }, "location_locode": { "type": "string", @@ -17688,7 +17703,8 @@ "metro_area" ] } - } + }, + "nullable": true } } }, @@ -17708,6 +17724,48 @@ "vessel" ] } + }, + "nullable": true + } + } + }, + "container": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "container" + ] + } + } + } + } + }, + "terminal": { + "type": "object", + "properties": { + "data": { + "type": "object", + "nullable": true, + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "terminal" + ] + } } } } @@ -17973,15 +18031,18 @@ }, "country_code": { "type": "string", - "description": "ISO country code" + "description": "ISO country code", + "nullable": true }, "country": { "type": "string", - "description": "Country name" + "description": "Country name", + "nullable": true }, "time_zone": { "type": "string", - "description": "IANA timezone identifier" + "description": "IANA timezone identifier", + "nullable": true }, "label": { "type": "string", @@ -18088,11 +18149,13 @@ }, "departure_port_country_code": { "type": "string", - "description": "Country code of departure port" + "description": "Country code of departure port", + "nullable": true }, "departure_port_country": { "type": "string", - "description": "Country name of departure port" + "description": "Country name of departure port", + "nullable": true }, "departure_port_label": { "type": "string", @@ -18106,7 +18169,8 @@ }, "departure_port_time_zone": { "type": "string", - "description": "Timezone of departure port" + "description": "Timezone of departure port", + "nullable": true }, "arrival_port_id": { "type": "string", diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index 2333af72..4ddddcfe 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -1442,7 +1442,7 @@ export interface components { type: "terminal"; /** Format: uuid */ id: string; - }; + } | null; }; destination_terminal?: { data?: { @@ -1450,7 +1450,7 @@ export interface components { type: "terminal" | "rail_terminal"; /** Format: uuid */ id: string; - }; + } | null; }; line_tracking_stopped_by_user?: { data?: { @@ -1458,7 +1458,7 @@ export interface components { type: "user"; /** Format: uuid */ id: string; - }; + } | null; }; }; attributes: { @@ -1731,7 +1731,7 @@ export interface components { id?: string; /** @enum {string} */ type?: "terminal"; - }; + } | null; }; pod_terminal?: { data?: { @@ -1852,25 +1852,25 @@ export interface components { }; attributes: { name: string; - nickname?: string; + nickname?: string | null; /** @description CBP FIRMS Code or CBS Sublocation Code */ - firms_code?: string; + firms_code?: string | null; /** @description SMDG Code */ - smdg_code?: string; + smdg_code?: string | null; /** @description BIC Facility Code */ - bic_facility_code?: string; + bic_facility_code?: string | null; /** @description Street part of the address */ - street?: string; + street?: string | null; /** @description City part of the address */ - city?: string; + city?: string | null; /** @description State part of the address */ - state?: string; + state?: string | null; /** @description State abbreviation for the state */ - state_abbr?: string; + state_abbr?: string | null; /** @description ZIP code part of the address */ - zip?: string; + zip?: string | null; /** @description Country part of the address */ - country?: string; + country?: string | null; }; /** @enum {string} */ type?: "terminal"; @@ -2338,7 +2338,7 @@ export interface components { */ created_at?: string; /** @description The city or facility name of the event location */ - location_name?: string; + location_name?: string | null; /** @description UNLOCODE of the event location */ location_locode?: string | null; /** @description The name of the vessel where applicable */ @@ -2356,7 +2356,7 @@ export interface components { id?: string; /** @enum {string} */ type?: "port" | "metro_area"; - }; + } | null; }; vessel?: { data?: { @@ -2364,8 +2364,24 @@ export interface components { id?: string; /** @enum {string} */ type?: "vessel"; + } | null; + }; + container?: { + data?: { + /** Format: uuid */ + id?: string; + /** @enum {string} */ + type?: "container"; }; }; + terminal?: { + data?: { + /** Format: uuid */ + id?: string; + /** @enum {string} */ + type?: "terminal"; + } | null; + }; }; }; /** Container Pod Terminal Changed Event */ @@ -2477,11 +2493,11 @@ export interface components { /** @description State name (if applicable) */ state?: string | null; /** @description ISO country code */ - country_code?: string; + country_code?: string | null; /** @description Country name */ - country?: string; + country?: string | null; /** @description IANA timezone identifier */ - time_zone?: string; + time_zone?: string | null; /** @description Port label: POL, POD, or TS1, TS2, etc. */ label?: string; /** @@ -2545,9 +2561,9 @@ export interface components { /** @description State name of departure port */ departure_port_state?: string | null; /** @description Country code of departure port */ - departure_port_country_code?: string; + departure_port_country_code?: string | null; /** @description Country name of departure port */ - departure_port_country?: string; + departure_port_country?: string | null; /** @description Label of departure port (POL, POD, TS1, etc.) */ departure_port_label?: string; /** @@ -2556,7 +2572,7 @@ export interface components { */ departure_port_atd?: string | null; /** @description Timezone of departure port */ - departure_port_time_zone?: string; + departure_port_time_zone?: string | null; /** @description ID of the next port the vessel is heading to */ arrival_port_id?: string | null; /** @description Name of the arrival port */ From dc423fb92abdf5892726381ae72b58fd86658942 Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Wed, 14 Oct 2026 16:38:01 -0700 Subject: [PATCH 03/20] docs(openapi)!: type port and metro area coordinates as decimal strings ports.latitude and longitude are numeric(13,9) columns. MetroArea reads the same table, and Rails serializes BigDecimal as a string, so both resources return values like "22.57489971". Types are regenerated. BREAKING CHANGE: port and metro area latitude and longitude in the exported @terminal49/sdk types change from number to string, which matches the decimal strings the API returns. Co-Authored-By: Claude Opus 5.5 --- docs/openapi.json | 24 ++++++++++++------- .../src/generated/terminal49.ts | 24 +++++++++++++++---- 2 files changed, 36 insertions(+), 12 deletions(-) diff --git a/docs/openapi.json b/docs/openapi.json index 9b3694a8..2c35728b 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -16088,18 +16088,22 @@ "description": "IANA tz" }, "latitude": { - "type": "number", + "type": "string", "x-stoplight": { "id": "480os7a90z6kk" }, - "nullable": true + "nullable": true, + "description": "Latitude in decimal degrees, serialized as a decimal string (for example `\"22.57489971\"`).", + "example": "22.57489971" }, "longitude": { - "type": "number", + "type": "string", "x-stoplight": { "id": "nfdetqgx5p1yv" }, - "nullable": true + "nullable": true, + "description": "Longitude in decimal degrees, serialized as a decimal string (for example `\"22.57489971\"`).", + "example": "114.27769989" } } }, @@ -16298,18 +16302,22 @@ } }, "latitude": { - "type": "number", + "type": "string", "x-stoplight": { "id": "9l62t4cwsp53w" }, - "nullable": true + "nullable": true, + "description": "Latitude in decimal degrees, serialized as a decimal string (for example `\"22.57489971\"`).", + "example": "22.57489971" }, "longitude": { - "type": "number", + "type": "string", "x-stoplight": { "id": "3tzibc0li8xvg" }, - "nullable": true + "nullable": true, + "description": "Longitude in decimal degrees, serialized as a decimal string (for example `\"22.57489971\"`).", + "example": "114.27769989" } } }, diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index 4ddddcfe..5fd6d026 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -1770,8 +1770,16 @@ export interface components { country_code?: string; /** @description IANA tz */ time_zone?: string; - latitude?: number | null; - longitude?: number | null; + /** + * @description Latitude in decimal degrees, serialized as a decimal string (for example `"22.57489971"`). + * @example 22.57489971 + */ + latitude?: string | null; + /** + * @description Longitude in decimal degrees, serialized as a decimal string (for example `"22.57489971"`). + * @example 114.27769989 + */ + longitude?: string | null; }; /** @enum {string} */ type: "port"; @@ -1829,8 +1837,16 @@ export interface components { country_code?: string; /** @description IANA tz */ time_zone?: string; - latitude?: number | null; - longitude?: number | null; + /** + * @description Latitude in decimal degrees, serialized as a decimal string (for example `"22.57489971"`). + * @example 22.57489971 + */ + latitude?: string | null; + /** + * @description Longitude in decimal degrees, serialized as a decimal string (for example `"22.57489971"`). + * @example 114.27769989 + */ + longitude?: string | null; }; /** @enum {string} */ type: "metro_area"; From ec6e7370ad8f33a44bd25fe287e30f6d22c16b7f Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Wed, 14 Oct 2026 16:38:29 -0700 Subject: [PATCH 04/20] docs(openapi): describe resource links and raw pagination links Per-resource links.self values, such as data.links.self on a shipment, are paths like /v2/shipments/{id}, so they use uri-reference. The top-level links.self on single-resource responses is the absolute request URL with its query string, so it drops the uri format. On a create it is the collection URL, not the new resource. Pagination links come from jsonapi.rb. self repeats the request URL as sent. The other links CGI-unescape the query and leave page[number] brackets raw. None of them use the uri format. Pagination links also include current. Co-Authored-By: Claude Opus 5.5 --- docs/openapi.json | 37 ++++++++++--------- .../src/generated/terminal49.ts | 31 +++++++++------- 2 files changed, 37 insertions(+), 31 deletions(-) diff --git a/docs/openapi.json b/docs/openapi.json index 2c35728b..b2e12b58 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -2284,7 +2284,8 @@ "properties": { "self": { "type": "string", - "format": "uri" + "format": "uri-reference", + "description": "Path of this resource, relative to the API host (for example `/v2/shipments/{id}`)." } } } @@ -15460,7 +15461,8 @@ "properties": { "self": { "type": "string", - "format": "uri" + "format": "uri-reference", + "description": "Path of this resource, relative to the API host (for example `/v2/shipments/{id}`)." } }, "required": [ @@ -15494,7 +15496,7 @@ "properties": { "self": { "type": "string", - "format": "uri" + "description": "Absolute URL of the request, including its query string as sent. On a create, this is the collection URL the request was posted to, not the URL of the new resource." } } }, @@ -15502,27 +15504,26 @@ "title": "links", "type": "object", "properties": { - "last": { - "type": "string", - "format": "uri" + "self": { + "type": "string" }, - "next": { - "type": "string", - "format": "uri" + "current": { + "type": "string" + }, + "first": { + "type": "string" }, "prev": { - "type": "string", - "format": "uri" + "type": "string" }, - "first": { - "type": "string", - "format": "uri" + "next": { + "type": "string" }, - "self": { - "type": "string", - "format": "uri" + "last": { + "type": "string" } - } + }, + "description": "Pagination links. Each value is an absolute URL. `self` repeats the request URL as sent, including its query string and its encoding. `current`, `first`, `prev`, `next`, and `last` repeat the request's query parameters, with `page[number]` and `page[size]` in unencoded brackets." }, "container": { "title": "Container model", diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index 5fd6d026..2e61438a 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -1550,7 +1550,10 @@ export interface components { /** @enum {string} */ type: "shipment"; links: { - /** Format: uri */ + /** + * Format: uri-reference + * @description Path of this resource, relative to the API host (for example `/v2/shipments/{id}`). + */ self: string; }; }; @@ -1561,21 +1564,20 @@ export interface components { }; /** link */ "link-self": { - /** Format: uri */ + /** @description Absolute URL of the request, including its query string as sent. On a create, this is the collection URL the request was posted to, not the URL of the new resource. */ self?: string; }; - /** links */ + /** + * links + * @description Pagination links. Each value is an absolute URL. `self` repeats the request URL as sent, including its query string and its encoding. `current`, `first`, `prev`, `next`, and `last` repeat the request's query parameters, with `page[number]` and `page[size]` in unencoded brackets. + */ links: { - /** Format: uri */ - last?: string; - /** Format: uri */ - next?: string; - /** Format: uri */ - prev?: string; - /** Format: uri */ - first?: string; - /** Format: uri */ self?: string; + current?: string; + first?: string; + prev?: string; + next?: string; + last?: string; }; /** * Container model @@ -3867,7 +3869,10 @@ export interface operations { /** @enum {string} */ type?: "shipment"; links?: { - /** Format: uri */ + /** + * Format: uri-reference + * @description Path of this resource, relative to the API host (for example `/v2/shipments/{id}`). + */ self?: string; }; })[]; From 4ab046f60f77c99a34bc8ab039c362673c1687ba Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Wed, 14 Oct 2026 16:38:49 -0700 Subject: [PATCH 05/20] docs(openapi)!: allow terminals, transport events, and raw events in container included ContainerSerializer exposes pod_terminal, pickup_facility, transport_events, and raw_events, and the default include already returns terminals. GET /containers `included` now allows shipment, terminal, transport_event, and raw_event items. GET /containers/{id} `included` gains raw_event, so both endpoints document the same item types. Types are regenerated. BREAKING CHANGE: in the exported `paths` type from @terminal49/sdk, GET /containers `included` widens from `shipment[]` to `(shipment | terminal | transport_event | raw_event)[]`, so code must narrow on `type` before it reads shipment attributes. GET /containers/{id} `included` gains `raw_event`, so an exhaustive switch over its item `type` must handle raw events. Co-Authored-By: Claude Opus 5.5 --- docs/openapi.json | 18 +++++++++++++++++- .../typescript-sdk/src/generated/terminal49.ts | 4 ++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/docs/openapi.json b/docs/openapi.json index b2e12b58..6e56a9b2 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -5105,7 +5105,20 @@ "included": { "type": "array", "items": { - "$ref": "#/components/schemas/shipment" + "anyOf": [ + { + "$ref": "#/components/schemas/shipment" + }, + { + "$ref": "#/components/schemas/terminal" + }, + { + "$ref": "#/components/schemas/transport_event" + }, + { + "$ref": "#/components/schemas/raw_event" + } + ] } }, "links": { @@ -8362,6 +8375,9 @@ }, { "$ref": "#/components/schemas/transport_event" + }, + { + "$ref": "#/components/schemas/raw_event" } ] } diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index 2e61438a..decf2741 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -5471,7 +5471,7 @@ export interface operations { content: { "application/json": { data?: components["schemas"]["container"][]; - included?: components["schemas"]["shipment"][]; + included?: (components["schemas"]["shipment"] | components["schemas"]["terminal"] | components["schemas"]["transport_event"] | components["schemas"]["raw_event"])[]; links?: components["schemas"]["links"]; meta?: components["schemas"]["meta"]; }; @@ -5858,7 +5858,7 @@ export interface operations { content: { "application/json": { data?: components["schemas"]["container"]; - included?: (components["schemas"]["shipment"] | components["schemas"]["terminal"] | components["schemas"]["transport_event"])[]; + included?: (components["schemas"]["shipment"] | components["schemas"]["terminal"] | components["schemas"]["transport_event"] | components["schemas"]["raw_event"])[]; }; }; }; From 71cf3d2f87ed119e5b085250e9cf24c14209e064 Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Wed, 14 Oct 2026 16:39:37 -0700 Subject: [PATCH 06/20] docs(openapi)!: document tracking request cancellation and ref_numbers edits TrackingRequestStateMachine has a cancelled state that sets failed_reason to "Cancelled by user", and the index filter accepts status=cancelled. Document PATCH /tracking_requests/{id}/cancel, which returns {} or a 422 whose errors value is a string. PATCH /tracking_requests/{id} accepts only ref_numbers, which replaces the list; ref_number was silently ignored. Types are regenerated. BREAKING CHANGE: in the exported `paths` type from @terminal49/sdk, PATCH /tracking_requests/{id} takes `ref_numbers: string[]` instead of `ref_number`. Tracking request `status` adds 'cancelled', and `failed_reason` adds 'Cancelled by user', 'awaiting_manifest', and 'shipping_line_not_supported'. Exhaustive switches over either field must handle the new values. Co-Authored-By: Claude Opus 5.5 --- .../cancel-a-tracking-request.mdx | 15 +++ .../tracking-request-lifecycle.mdx | 6 +- docs/docs.json | 1 + docs/openapi.json | 107 +++++++++++++++-- .../src/generated/terminal49.ts | 108 ++++++++++++++++-- 5 files changed, 220 insertions(+), 17 deletions(-) create mode 100644 docs/api-docs/api-reference/tracking-requests/cancel-a-tracking-request.mdx diff --git a/docs/api-docs/api-reference/tracking-requests/cancel-a-tracking-request.mdx b/docs/api-docs/api-reference/tracking-requests/cancel-a-tracking-request.mdx new file mode 100644 index 00000000..623c226b --- /dev/null +++ b/docs/api-docs/api-reference/tracking-requests/cancel-a-tracking-request.mdx @@ -0,0 +1,15 @@ +--- +title: "Cancel a tracking request" +description: "Cancel a pending or awaiting_manifest tracking request in the Terminal49 API so Terminal49 stops trying to find the shipment." +og:title: Cancel a Tracking Request | Terminal49 API +og:description: Cancel a tracking request that is still pending or awaiting_manifest. The request moves to status cancelled with failed_reason Cancelled by user. +openapi: patch /tracking_requests/{id}/cancel +--- + +Cancels a tracking request whose `status` is `pending` or `awaiting_manifest`. The request moves to `status` `cancelled`, and `failed_reason` becomes `Cancelled by user`. + +- A request in any other status returns `422`. The `errors` value in that response is a string, not a JSON:API errors array. +- A request that belongs to another account also returns `422`, not `404`. +- An unknown tracking request ID currently returns a `500` server error, not `404`. This differs from other lookups by ID, which return `404`. A `401` comes only from authentication. It means your API token is missing or invalid, or your account may not use the API. +- A request that has already created a shipment cannot be cancelled. To stop tracking that shipment, use [Stop tracking a shipment](/api-docs/api-reference/shipments/stop-tracking-shipment). +- To find cancelled requests, filter the list with `filter[status]=cancelled`. diff --git a/docs/api-docs/in-depth-guides/tracking-request-lifecycle.mdx b/docs/api-docs/in-depth-guides/tracking-request-lifecycle.mdx index dfe1b1cc..40e45081 100644 --- a/docs/api-docs/in-depth-guides/tracking-request-lifecycle.mdx +++ b/docs/api-docs/in-depth-guides/tracking-request-lifecycle.mdx @@ -57,6 +57,10 @@ Temporary reasons can become permanent when the `status` changes to `failed`: [Failed Reasons when tracking request through dashboard](https://help.terminal49.com/en/articles/6116676-what-happens-after-i-add-a-shipment-to-terminal49-recently-added-shipments#h_ac9b93504f) +## Cancelled + +You can cancel a tracking request while its `status` is `pending` or `awaiting_manifest` with [Cancel a tracking request](/api-docs/api-reference/tracking-requests/cancel-a-tracking-request) (`PATCH /tracking_requests/{id}/cancel`). The `status` changes to `cancelled` and `failed_reason` is set to `Cancelled by user`. A request in any other status cannot be cancelled. + ## Stopped When a shipment is no longer being updated then the tracking request `status` is marked as `tracking_stopped`. @@ -78,7 +82,7 @@ You can also stop tracking a shipment from the dashboard. Tracking is stopped at the **shipment level**, not on the tracking request or on an individual container. Use [Stop tracking a shipment](/api-docs/api-reference/shipments/stop-tracking-shipment) (`PATCH /shipments/{id}/stop_tracking`). - A tracking request initiates tracking and can create a shipment. Once the shipment exists, the shipment is the resource you manage. -- There is no `DELETE` or "stop" endpoint on the `tracking_requests` resource. The tracking request `status` reflects the request outcome (`pending`, `created`, `failed`, `tracking_stopped`); the shipment is where active tracking is stopped or resumed. +- There is no `DELETE` or "stop" endpoint on the `tracking_requests` resource. Before a shipment exists, you can [cancel](#cancelled) the request instead. The tracking request `status` reflects the request outcome (`pending`, `awaiting_manifest`, `created`, `failed`, `cancelled`, `tracking_stopped`); the shipment is where active tracking is stopped or resumed. - Stopping a shipment stops tracking for **all containers on that shipment**. There is no per-container stop endpoint. This behavior is the same whether the shipment was originally tracked by bill of lading, booking, or container number. - To resume, use [Resume tracking a shipment](/api-docs/api-reference/shipments/resume-tracking-shipment). diff --git a/docs/docs.json b/docs/docs.json index fc1fa6ee..e6ce182b 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -112,6 +112,7 @@ "api-docs/api-reference/tracking-requests/create-a-tracking-request", "api-docs/api-reference/tracking-requests/get-a-single-tracking-request", "api-docs/api-reference/tracking-requests/edit-a-tracking-request", + "api-docs/api-reference/tracking-requests/cancel-a-tracking-request", "api-docs/api-reference/tracking-requests/auto-detect-carrier", "api-docs/api-reference/tracking-requests/list-tracking-request-custom-fields", "api-docs/api-reference/tracking-requests/create-tracking-request-custom-field", diff --git a/docs/openapi.json b/docs/openapi.json index 6e56a9b2..286b2da2 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -2363,13 +2363,14 @@ "enum": [ "created", "pending", - "failed" + "failed", + "cancelled" ], "example": "created" }, "in": "query", "name": "filter[status]", - "description": "filter by `status`" + "description": "filter by `status`. `pending` matches requests with status `pending`; any value other than `created`, `failed` or `cancelled` is treated as `pending`." }, { "schema": { @@ -3080,10 +3081,15 @@ "attributes": { "type": "object", "properties": { - "ref_number": { - "type": "string", - "example": "REFNUMBER11", - "description": "Tracking request ref number." + "ref_numbers": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "REFNUMBER11" + ], + "description": "Customer reference numbers. The list you send replaces the existing list." } } } @@ -14841,6 +14847,87 @@ } } }, + "/tracking_requests/{id}/cancel": { + "parameters": [ + { + "schema": { + "type": "string", + "format": "uuid" + }, + "name": "id", + "in": "path", + "required": true, + "description": "Tracking Request ID" + } + ], + "patch": { + "summary": "Cancel a tracking request", + "operationId": "patch-tracking-request-cancel", + "description": "Cancel a tracking request that is still `pending` or `awaiting_manifest`. The request moves to status `cancelled` with failed_reason `Cancelled by user`. Requests in any other status return 422. A request that belongs to another account also returns 422 with a string `errors`. An unknown tracking request ID currently returns a 500 server error, not 404. A 401 comes only from authentication. It means the API token is missing or invalid, or the account may not use the API.", + "tags": [ + "Tracking Requests" + ], + "responses": { + "200": { + "description": "Cancelled. The response body is an empty JSON object.", + "content": { + "application/json": { + "schema": { + "type": "object" + }, + "example": {} + } + } + }, + "401": { + "description": "Unauthorized. The API token is missing or invalid, or the account may not use the API. Ownership never causes a 401 here: another account's tracking request returns 422.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/error" + } + } + } + }, + "example": { + "errors": [ + { + "detail": "invalid API token" + } + ] + } + } + } + }, + "422": { + "description": "The tracking request is not in a cancellable status, or it belongs to another account.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "string" + } + } + }, + "example": { + "errors": "Can't cancel tracking request in created state. Must be in pending or awaiting_manifest state." + } + } + } + }, + "500": { + "description": "Server error. An unknown tracking request ID currently returns 500 instead of 404." + } + } + } + }, "/me": { "get": { "summary": "Get the current credential", @@ -16588,7 +16675,8 @@ "awaiting_manifest", "created", "failed", - "tracking_stopped" + "tracking_stopped", + "cancelled" ] }, "failed_reason": { @@ -16605,9 +16693,12 @@ "unrecognized_response", "data_unavailable", "scac_auto_detect_failed", + "awaiting_manifest", + "shipping_line_not_supported", + "Cancelled by user", null ], - "description": "If the tracking request has failed, or is currently failing, the last reason we were unable to complete the request. `scac_auto_detect_failed` means `auto_detect_vocc_scac` was set but no supported carrier SCAC could be inferred from the request number.", + "description": "If the tracking request has failed, or is currently failing, the last reason we were unable to complete the request. `scac_auto_detect_failed` means `auto_detect_vocc_scac` was set but no supported carrier SCAC could be inferred from the request number. A request waiting for the carrier to publish the shipment or its containers has status `awaiting_manifest` and failed_reason null. Only older records carry the `awaiting_manifest` failed_reason value. `shipping_line_not_supported` means Terminal49 cannot track that shipping line. A request cancelled through `PATCH /tracking_requests/{id}/cancel` has status `cancelled` and failed_reason `Cancelled by user`.", "nullable": true }, "request_type": { diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index decf2741..733570f1 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -1371,6 +1371,29 @@ export interface paths { patch?: never; trace?: never; }; + "/tracking_requests/{id}/cancel": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Tracking Request ID */ + id: string; + }; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + /** + * Cancel a tracking request + * @description Cancel a tracking request that is still `pending` or `awaiting_manifest`. The request moves to status `cancelled` with failed_reason `Cancelled by user`. Requests in any other status return 422. A request that belongs to another account also returns 422 with a string `errors`. An unknown tracking request ID currently returns a 500 server error, not 404. A 401 comes only from authentication. It means the API token is missing or invalid, or the account may not use the API. + */ + patch: operations["patch-tracking-request-cancel"]; + trace?: never; + }; "/me": { parameters: { query?: never; @@ -1936,12 +1959,12 @@ export interface components { ref_numbers?: string[] | null; tags?: string[]; /** @enum {string} */ - status: "pending" | "awaiting_manifest" | "created" | "failed" | "tracking_stopped"; + status: "pending" | "awaiting_manifest" | "created" | "failed" | "tracking_stopped" | "cancelled"; /** - * @description If the tracking request has failed, or is currently failing, the last reason we were unable to complete the request. `scac_auto_detect_failed` means `auto_detect_vocc_scac` was set but no supported carrier SCAC could be inferred from the request number. + * @description If the tracking request has failed, or is currently failing, the last reason we were unable to complete the request. `scac_auto_detect_failed` means `auto_detect_vocc_scac` was set but no supported carrier SCAC could be inferred from the request number. A request waiting for the carrier to publish the shipment or its containers has status `awaiting_manifest` and failed_reason null. Only older records carry the `awaiting_manifest` failed_reason value. `shipping_line_not_supported` means Terminal49 cannot track that shipping line. A request cancelled through `PATCH /tracking_requests/{id}/cancel` has status `cancelled` and failed_reason `Cancelled by user`. * @enum {string|null} */ - failed_reason?: "booking_cancelled" | "duplicate" | "expired" | "internal_processing_error" | "invalid_number" | "not_found" | "retries_exhausted" | "shipping_line_unreachable" | "unrecognized_response" | "data_unavailable" | "scac_auto_detect_failed" | null; + failed_reason?: "booking_cancelled" | "duplicate" | "expired" | "internal_processing_error" | "invalid_number" | "not_found" | "retries_exhausted" | "shipping_line_unreachable" | "unrecognized_response" | "data_unavailable" | "scac_auto_detect_failed" | "awaiting_manifest" | "shipping_line_not_supported" | "Cancelled by user" | null; /** * @example bill_of_lading * @enum {string} @@ -3830,8 +3853,8 @@ export interface operations { q?: string; /** @description filter by `request_number` */ "filter[request_number]"?: string; - /** @description filter by `status` */ - "filter[status]"?: "created" | "pending" | "failed"; + /** @description filter by `status`. `pending` matches requests with status `pending`; any value other than `created`, `failed` or `cancelled` is treated as `pending`. */ + "filter[status]"?: "created" | "pending" | "failed" | "cancelled"; /** @description filter by shipping line `scac` */ "filter[scac]"?: string; /** @description filter by tracking_requests `created_at` after a certain ISO8601 timestamp */ @@ -4217,10 +4240,12 @@ export interface operations { data?: { attributes: { /** - * @description Tracking request ref number. - * @example REFNUMBER11 + * @description Customer reference numbers. The list you send replaces the existing list. + * @example [ + * "REFNUMBER11" + * ] */ - ref_number?: string; + ref_numbers?: string[]; }; }; }; @@ -8545,6 +8570,73 @@ export interface operations { }; }; }; + "patch-tracking-request-cancel": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Tracking Request ID */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Cancelled. The response body is an empty JSON object. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + /** @example {} */ + "application/json": Record; + }; + }; + /** @description Unauthorized. The API token is missing or invalid, or the account may not use the API. Ownership never causes a 401 here: another account's tracking request returns 422. */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "errors": [ + * { + * "detail": "invalid API token" + * } + * ] + * } + */ + "application/json": { + errors?: components["schemas"]["error"][]; + }; + }; + }; + /** @description The tracking request is not in a cancellable status, or it belongs to another account. */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "errors": "Can't cancel tracking request in created state. Must be in pending or awaiting_manifest state." + * } + */ + "application/json": { + errors?: string; + }; + }; + }; + /** @description Server error. An unknown tracking request ID currently returns 500 instead of 404. */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; "get-me": { parameters: { query?: never; From c9a02f7c2b7189244d7fba9d8371bb5444b11a2a Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Wed, 14 Oct 2026 16:40:36 -0700 Subject: [PATCH 07/20] docs(openapi)!: add missing webhook events and default active to true WebhookEventsValidator accepts container.detention_lfd_line.changed, container.delivery_appointment.changed, shipment.routing.filled and link.created, so add them to every webhook event enum and the event catalog. POST /webhooks requires url and a non-empty events list (the validator rejects an empty list with 422). active is optional because the webhooks.active column defaults to true. Types are regenerated. BREAKING CHANGE: in the exported `paths` type from @terminal49/sdk, POST /webhooks requires `events` instead of `active`, which becomes optional. Webhook `events`, webhook notification `event`, and the other webhook event enums gain values, so exhaustive switches over them must handle the new members. Co-Authored-By: Claude Opus 5.5 --- docs/api-docs/webhooks/event-catalog.mdx | 4 + docs/api-docs/webhooks/payloads.mdx | 4 + docs/openapi.json | 413 +++++++++++++++++- .../src/generated/terminal49.ts | 170 ++++++- 4 files changed, 572 insertions(+), 19 deletions(-) diff --git a/docs/api-docs/webhooks/event-catalog.mdx b/docs/api-docs/webhooks/event-catalog.mdx index af007707..9c8f37fb 100644 --- a/docs/api-docs/webhooks/event-catalog.mdx +++ b/docs/api-docs/webhooks/event-catalog.mdx @@ -111,7 +111,9 @@ These events fire when container attributes change. | `container.pickup_lfd_line.changed` | The shipping line's Last Free Day (`import_deadlines.pickup_lfd_line`) changed. | | `container.pickup_lfd_terminal.changed` | The terminal-reported Last Free Day (`import_deadlines.pickup_lfd_terminal`) at the destination terminal changed. | | `container.pickup_lfd_rail.changed` | The rail-carrier-reported Last Free Day (`import_deadlines.pickup_lfd_rail`) at the inland rail destination changed. Rail Plan only — see [Entitlements](/api-docs/useful-info/entitlements). | +| `container.detention_lfd_line.changed` | The shipping line's detention Last Free Day changed. | | `container.pickup_appointment.changed` | The pickup appointment changed. | +| `container.delivery_appointment.changed` | The delivery appointment changed. | There are no field-specific events for holds, fees, or availability, such as `container.holds_at_pod_terminal.changed`. Changes to `holds_at_pod_terminal`, `fees_at_pod_terminal`, and `available_for_pickup` are delivered through `container.updated`. Read the `changeset` in the payload to detect which fields changed. See [Container Holds, Fees, and Release Readiness](/api-docs/in-depth-guides/holds-and-fees). @@ -136,6 +138,8 @@ These events fire when document extraction completes for accounts using document |-------|-------------| | `document.extracted` | Document classification and extraction completed successfully. | | `document.extraction_failed` | Document extraction did not complete successfully. | +| `shipment.routing.filled` | A document filled a blank routing field (port of lading, port of discharge, or destination) on the shipment. | +| `link.created` | A document was linked to a shipment or container. | See [Document Processing Workflows](/api-docs/in-depth-guides/document-processing-workflows) for payload structure and related document resources. diff --git a/docs/api-docs/webhooks/payloads.mdx b/docs/api-docs/webhooks/payloads.mdx index b5860096..c5fc2d49 100644 --- a/docs/api-docs/webhooks/payloads.mdx +++ b/docs/api-docs/webhooks/payloads.mdx @@ -72,7 +72,11 @@ Use `data.id` on the notification as the idempotency key when deduplicating retr | `shipment.estimated.arrival` | `estimated_event` | Includes the estimate event and related shipment records. | | `container.updated` | `container_updated_event` | Includes a `changeset` describing changed container attributes. | | `container.created` | `container_created_event` | Includes the new container and related shipment. | +| `container.pod_terminal_changed` | `container_pod_terminal_changed_event` | Includes the container, its shipment, and the new terminal. | +| `shipment.routing.filled` | `document_observation` | Names the shipment field a document filled, with its before and after values. Includes the shipment and the document. | +| `link.created` | `link` | Includes the linked document (`source`) and the shipment or container it was linked to (`target`). | | `container.pickup_lfd.changed` and the `pickup_lfd_line` / `pickup_lfd_terminal` / `pickup_lfd_rail` variants | `transport_event` | The transport event's `value` attribute carries the new Last Free Day. The container with updated LFD fields may also be included, as in the `container.pickup_lfd.changed` example. | +| `container.detention_lfd_line.changed` and `container.delivery_appointment.changed` | `transport_event` | The transport event's `event` attribute names which of the two changed. | | `document.*` | document-related event resource | Available for accounts using document processing. See [Document Processing Workflows](/api-docs/in-depth-guides/document-processing-workflows). | ## Included resources diff --git a/docs/openapi.json b/docs/openapi.json index 286b2da2..a6bd8515 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -3467,7 +3467,11 @@ "container.transport.not_available", "container.transport.delivered", "document_representation.created", - "document_representation.failed" + "document_representation.failed", + "container.detention_lfd_line.changed", + "container.delivery_appointment.changed", + "shipment.routing.filled", + "link.created" ] } }, @@ -3640,7 +3644,7 @@ "type": "object", "required": [ "url", - "active" + "events" ], "properties": { "url": { @@ -3699,13 +3703,18 @@ "container.transport.not_available", "container.transport.delivered", "document_representation.created", - "document_representation.failed" + "document_representation.failed", + "container.detention_lfd_line.changed", + "container.delivery_appointment.changed", + "shipment.routing.filled", + "link.created" ], "example": "tracking_request.succeeded" } }, "active": { - "type": "boolean" + "type": "boolean", + "default": true }, "headers": { "type": "array", @@ -4786,6 +4795,15 @@ }, { "$ref": "#/components/schemas/document_email_submission" + }, + { + "$ref": "#/components/schemas/container_created_event" + }, + { + "$ref": "#/components/schemas/link" + }, + { + "$ref": "#/components/schemas/document_observation" } ] } @@ -4848,7 +4866,11 @@ "container.transport.not_available", "container.transport.delivered", "document_representation.created", - "document_representation.failed" + "document_representation.failed", + "container.detention_lfd_line.changed", + "container.delivery_appointment.changed", + "shipment.routing.filled", + "link.created" ], "example": "container.transport.full_out" }, @@ -16873,7 +16895,11 @@ "container.transport.not_available", "container.transport.delivered", "document_representation.created", - "document_representation.failed" + "document_representation.failed", + "container.detention_lfd_line.changed", + "container.delivery_appointment.changed", + "shipment.routing.filled", + "link.created" ] } }, @@ -17030,6 +17056,7 @@ "properties": { "event": { "type": "string", + "description": "The event name. The three `container.pickup_lfd_*_calculated.changed` events are Last Free Day estimates that Terminal49 calculates. They can appear when you read transport events, but you cannot subscribe a webhook to them.", "enum": [ "container.transport.vessel_arrived", "container.transport.estimated.vessel_arrived", @@ -17065,7 +17092,12 @@ "container.transport.not_available", "container.transport.delivered", "document_representation.created", - "document_representation.failed" + "document_representation.failed", + "container.detention_lfd_line.changed", + "container.delivery_appointment.changed", + "container.pickup_lfd_line_calculated.changed", + "container.pickup_lfd_terminal_calculated.changed", + "container.pickup_lfd_rail_calculated.changed" ] }, "voyage_number": { @@ -17430,7 +17462,11 @@ "container.transport.not_available", "container.transport.delivered", "document_representation.created", - "document_representation.failed" + "document_representation.failed", + "container.detention_lfd_line.changed", + "container.delivery_appointment.changed", + "shipment.routing.filled", + "link.created" ] }, "delivery_status": { @@ -17493,7 +17529,11 @@ "estimated_event", "transport_event", "container_updated_event", - "document" + "document", + "container_created_event", + "container_pod_terminal_changed_event", + "link", + "document_observation" ] } } @@ -19572,6 +19612,361 @@ } } }, + "container_created_event": { + "title": "container_created_event", + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "container_created_event" + ] + }, + "attributes": { + "type": "object", + "properties": { + "timestamp": { + "type": "string", + "format": "date-time" + }, + "timezone": { + "type": "string", + "nullable": true, + "description": "IANA tz" + } + } + }, + "relationships": { + "type": "object", + "properties": { + "container": { + "type": "object", + "properties": { + "data": { + "type": "object", + "nullable": true, + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "container" + ] + } + } + } + } + }, + "shipment": { + "type": "object", + "properties": { + "data": { + "type": "object", + "nullable": true, + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "shipment" + ] + } + } + } + } + } + } + } + } + }, + "link": { + "title": "link", + "type": "object", + "description": "A link between a document and the shipment or container it belongs to.", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "link" + ] + }, + "attributes": { + "type": "object", + "properties": { + "kind": { + "type": "string" + }, + "kind_label": { + "type": "string" + }, + "created_by": { + "type": "string" + }, + "created_by_label": { + "type": "string" + }, + "source_type": { + "type": "string", + "example": "Document" + }, + "source_id": { + "type": "string", + "format": "uuid" + }, + "target_type": { + "type": "string", + "example": "Shipment" + }, + "target_id": { + "type": "string", + "format": "uuid" + }, + "has_parent": { + "type": "boolean" + }, + "link_description": { + "type": "string", + "example": "Document to Shipment" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + } + }, + "relationships": { + "type": "object", + "properties": { + "source": { + "type": "object", + "properties": { + "data": { + "type": "object", + "nullable": true, + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "document" + ] + } + } + } + } + }, + "target": { + "type": "object", + "properties": { + "data": { + "type": "object", + "nullable": true, + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "container", + "shipment" + ] + } + } + } + } + }, + "user": { + "type": "object", + "properties": { + "data": { + "type": "object", + "nullable": true, + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "user" + ] + } + } + } + } + }, + "parent": { + "type": "object", + "properties": { + "data": { + "type": "object", + "nullable": true, + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "link" + ] + } + } + } + } + }, + "child_links": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "link" + ] + } + } + } + } + } + } + } + } + } + }, + "document_observation": { + "title": "document_observation", + "type": "object", + "description": "A shipment field value read from a document. The reference object of `shipment.routing.filled`.", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "document_observation" + ] + }, + "attributes": { + "type": "object", + "properties": { + "kind": { + "type": "string" + }, + "field": { + "type": "string" + }, + "before": {}, + "after": {}, + "source": { + "type": "string", + "nullable": true + }, + "observed_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "document_name": { + "type": "string", + "nullable": true + }, + "document_processing_id": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "schema_version": { + "type": "string", + "nullable": true, + "example": "2026-09-24" + } + } + }, + "relationships": { + "type": "object", + "properties": { + "shipment": { + "type": "object", + "properties": { + "data": { + "type": "object", + "nullable": true, + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "shipment" + ] + } + } + } + } + }, + "document": { + "type": "object", + "properties": { + "data": { + "type": "object", + "nullable": true, + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "document" + ] + } + } + } + } + } + } + } + } + }, "feature_availability": { "title": "Feature availability", "type": "object", diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index 733570f1..1493dad9 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -2018,7 +2018,7 @@ export interface components { */ active: boolean; /** @description The list of events to enabled for this endpoint */ - events: ("container.transport.vessel_arrived" | "container.transport.estimated.vessel_arrived" | "container.transport.vessel_discharged" | "container.transport.vessel_loaded" | "container.transport.vessel_departed" | "container.transport.estimated.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" | "container.pickup_lfd_line.changed" | "container.pickup_lfd_terminal.changed" | "container.pickup_lfd_rail.changed" | "container.pickup_appointment.changed" | "container.transport.available" | "container.transport.not_available" | "container.transport.delivered" | "document_representation.created" | "document_representation.failed")[]; + events: ("container.transport.vessel_arrived" | "container.transport.estimated.vessel_arrived" | "container.transport.vessel_discharged" | "container.transport.vessel_loaded" | "container.transport.vessel_departed" | "container.transport.estimated.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" | "container.pickup_lfd_line.changed" | "container.pickup_lfd_terminal.changed" | "container.pickup_lfd_rail.changed" | "container.pickup_appointment.changed" | "container.transport.available" | "container.transport.not_available" | "container.transport.delivered" | "document_representation.created" | "document_representation.failed" | "container.detention_lfd_line.changed" | "container.delivery_appointment.changed" | "shipment.routing.filled" | "link.created")[]; /** @description A random token that will sign all delivered webhooks */ secret: string; headers?: { @@ -2099,8 +2099,11 @@ export interface components { /** @enum {string} */ type: "transport_event"; attributes?: { - /** @enum {string} */ - event?: "container.transport.vessel_arrived" | "container.transport.estimated.vessel_arrived" | "container.transport.vessel_discharged" | "container.transport.vessel_loaded" | "container.transport.vessel_departed" | "container.transport.estimated.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" | "container.pickup_lfd_line.changed" | "container.pickup_lfd_terminal.changed" | "container.pickup_lfd_rail.changed" | "container.pickup_appointment.changed" | "container.transport.available" | "container.transport.not_available" | "container.transport.delivered" | "document_representation.created" | "document_representation.failed"; + /** + * @description The event name. The three `container.pickup_lfd_*_calculated.changed` events are Last Free Day estimates that Terminal49 calculates. They can appear when you read transport events, but you cannot subscribe a webhook to them. + * @enum {string} + */ + event?: "container.transport.vessel_arrived" | "container.transport.estimated.vessel_arrived" | "container.transport.vessel_discharged" | "container.transport.vessel_loaded" | "container.transport.vessel_departed" | "container.transport.estimated.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" | "container.pickup_lfd_line.changed" | "container.pickup_lfd_terminal.changed" | "container.pickup_lfd_rail.changed" | "container.pickup_appointment.changed" | "container.transport.available" | "container.transport.not_available" | "container.transport.delivered" | "document_representation.created" | "document_representation.failed" | "container.detention_lfd_line.changed" | "container.delivery_appointment.changed" | "container.pickup_lfd_line_calculated.changed" | "container.pickup_lfd_terminal_calculated.changed" | "container.pickup_lfd_rail_calculated.changed"; voyage_number?: string | null; /** Format: date-time */ timestamp?: string | null; @@ -2223,7 +2226,7 @@ export interface components { type?: "webhook_notification"; attributes?: { /** @enum {string} */ - event: "container.transport.vessel_arrived" | "container.transport.estimated.vessel_arrived" | "container.transport.vessel_discharged" | "container.transport.vessel_loaded" | "container.transport.vessel_departed" | "container.transport.estimated.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" | "container.pickup_lfd_line.changed" | "container.pickup_lfd_terminal.changed" | "container.pickup_lfd_rail.changed" | "container.pickup_appointment.changed" | "container.transport.available" | "container.transport.not_available" | "container.transport.delivered" | "document_representation.created" | "document_representation.failed"; + event: "container.transport.vessel_arrived" | "container.transport.estimated.vessel_arrived" | "container.transport.vessel_discharged" | "container.transport.vessel_loaded" | "container.transport.vessel_departed" | "container.transport.estimated.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" | "container.pickup_lfd_line.changed" | "container.pickup_lfd_terminal.changed" | "container.pickup_lfd_rail.changed" | "container.pickup_appointment.changed" | "container.transport.available" | "container.transport.not_available" | "container.transport.delivered" | "document_representation.created" | "document_representation.failed" | "container.detention_lfd_line.changed" | "container.delivery_appointment.changed" | "shipment.routing.filled" | "link.created"; /** * @description Whether the notification has been delivered to the webhook endpoint * @default pending @@ -2246,7 +2249,7 @@ export interface components { /** Format: uuid */ id?: string; /** @enum {string} */ - type?: "tracking_request" | "estimated_event" | "transport_event" | "container_updated_event" | "document"; + type?: "tracking_request" | "estimated_event" | "transport_event" | "container_updated_event" | "document" | "container_created_event" | "container_pod_terminal_changed_event" | "link" | "document_observation"; }; }; }; @@ -3156,6 +3159,152 @@ export interface components { [key: string]: unknown; }; }; + /** container_created_event */ + container_created_event: { + /** Format: uuid */ + id?: string; + /** @enum {string} */ + type?: "container_created_event"; + attributes?: { + /** Format: date-time */ + timestamp?: string; + /** @description IANA tz */ + timezone?: string | null; + }; + relationships?: { + container?: { + data?: { + /** Format: uuid */ + id?: string; + /** @enum {string} */ + type?: "container"; + } | null; + }; + shipment?: { + data?: { + /** Format: uuid */ + id?: string; + /** @enum {string} */ + type?: "shipment"; + } | null; + }; + }; + }; + /** + * link + * @description A link between a document and the shipment or container it belongs to. + */ + link: { + /** Format: uuid */ + id?: string; + /** @enum {string} */ + type?: "link"; + attributes?: { + kind?: string; + kind_label?: string; + created_by?: string; + created_by_label?: string; + /** @example Document */ + source_type?: string; + /** Format: uuid */ + source_id?: string; + /** @example Shipment */ + target_type?: string; + /** Format: uuid */ + target_id?: string; + has_parent?: boolean; + /** @example Document to Shipment */ + link_description?: string; + /** Format: date-time */ + created_at?: string; + /** Format: date-time */ + updated_at?: string; + }; + relationships?: { + source?: { + data?: { + /** Format: uuid */ + id?: string; + /** @enum {string} */ + type?: "document"; + } | null; + }; + target?: { + data?: { + /** Format: uuid */ + id?: string; + /** @enum {string} */ + type?: "container" | "shipment"; + } | null; + }; + user?: { + data?: { + /** Format: uuid */ + id?: string; + /** @enum {string} */ + type?: "user"; + } | null; + }; + parent?: { + data?: { + /** Format: uuid */ + id?: string; + /** @enum {string} */ + type?: "link"; + } | null; + }; + child_links?: { + data?: { + /** Format: uuid */ + id?: string; + /** @enum {string} */ + type?: "link"; + }[]; + }; + }; + }; + /** + * document_observation + * @description A shipment field value read from a document. The reference object of `shipment.routing.filled`. + */ + document_observation: { + /** Format: uuid */ + id?: string; + /** @enum {string} */ + type?: "document_observation"; + attributes?: { + kind?: string; + field?: string; + before?: unknown; + after?: unknown; + source?: string | null; + /** Format: date-time */ + observed_at?: string | null; + document_name?: string | null; + /** Format: uuid */ + document_processing_id?: string | null; + /** @example 2026-09-24 */ + schema_version?: string | null; + }; + relationships?: { + shipment?: { + data?: { + /** Format: uuid */ + id?: string; + /** @enum {string} */ + type?: "shipment"; + } | null; + }; + document?: { + data?: { + /** Format: uuid */ + id?: string; + /** @enum {string} */ + type?: "document"; + } | null; + }; + }; + }; /** Feature availability */ feature_availability: { /** @@ -4475,7 +4624,7 @@ export interface operations { */ url?: string; /** @description The list of events to enable for this endpoint. */ - events?: ("container.transport.vessel_arrived" | "container.transport.estimated.vessel_arrived" | "container.transport.vessel_discharged" | "container.transport.vessel_loaded" | "container.transport.vessel_departed" | "container.transport.estimated.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" | "container.pickup_lfd_line.changed" | "container.pickup_lfd_terminal.changed" | "container.pickup_lfd_rail.changed" | "container.pickup_appointment.changed" | "container.transport.available" | "container.transport.not_available" | "container.transport.delivered" | "document_representation.created" | "document_representation.failed")[]; + events?: ("container.transport.vessel_arrived" | "container.transport.estimated.vessel_arrived" | "container.transport.vessel_discharged" | "container.transport.vessel_loaded" | "container.transport.vessel_departed" | "container.transport.estimated.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" | "container.pickup_lfd_line.changed" | "container.pickup_lfd_terminal.changed" | "container.pickup_lfd_rail.changed" | "container.pickup_appointment.changed" | "container.transport.available" | "container.transport.not_available" | "container.transport.delivered" | "document_representation.created" | "document_representation.failed" | "container.detention_lfd_line.changed" | "container.delivery_appointment.changed" | "shipment.routing.filled" | "link.created")[]; active?: boolean; /** @description Optional custom headers to pass with each webhook invocation */ headers?: { @@ -4552,8 +4701,9 @@ export interface operations { */ url: string; /** @description The list of events to enable for this endpoint. */ - events?: ("container.transport.vessel_arrived" | "container.transport.estimated.vessel_arrived" | "container.transport.vessel_discharged" | "container.transport.vessel_loaded" | "container.transport.vessel_departed" | "container.transport.estimated.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" | "container.pickup_lfd_line.changed" | "container.pickup_lfd_terminal.changed" | "container.pickup_lfd_rail.changed" | "container.pickup_appointment.changed" | "container.transport.available" | "container.transport.not_available" | "container.transport.delivered" | "document_representation.created" | "document_representation.failed")[]; - active: boolean; + events: ("container.transport.vessel_arrived" | "container.transport.estimated.vessel_arrived" | "container.transport.vessel_discharged" | "container.transport.vessel_loaded" | "container.transport.vessel_departed" | "container.transport.estimated.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" | "container.pickup_lfd_line.changed" | "container.pickup_lfd_terminal.changed" | "container.pickup_lfd_rail.changed" | "container.pickup_appointment.changed" | "container.transport.available" | "container.transport.not_available" | "container.transport.delivered" | "document_representation.created" | "document_representation.failed" | "container.detention_lfd_line.changed" | "container.delivery_appointment.changed" | "shipment.routing.filled" | "link.created")[]; + /** @default true */ + active?: boolean; /** @description Optional custom headers to pass with each webhook invocation */ headers?: { /** @description The name of the header. (Please note this will be auto-capitalized) */ @@ -4679,7 +4829,7 @@ export interface operations { parameters: { query?: { /** @description The webhook notification event name you wish to see an example of */ - event?: "container.transport.vessel_arrived" | "container.transport.estimated.vessel_arrived" | "container.transport.vessel_discharged" | "container.transport.vessel_loaded" | "container.transport.vessel_departed" | "container.transport.estimated.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" | "container.pickup_lfd_line.changed" | "container.pickup_lfd_terminal.changed" | "container.pickup_lfd_rail.changed" | "container.pickup_appointment.changed" | "container.transport.available" | "container.transport.not_available" | "container.transport.delivered" | "document_representation.created" | "document_representation.failed"; + event?: "container.transport.vessel_arrived" | "container.transport.estimated.vessel_arrived" | "container.transport.vessel_discharged" | "container.transport.vessel_loaded" | "container.transport.vessel_departed" | "container.transport.estimated.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" | "container.pickup_lfd_line.changed" | "container.pickup_lfd_terminal.changed" | "container.pickup_lfd_rail.changed" | "container.pickup_appointment.changed" | "container.transport.available" | "container.transport.not_available" | "container.transport.delivered" | "document_representation.created" | "document_representation.failed" | "container.detention_lfd_line.changed" | "container.delivery_appointment.changed" | "shipment.routing.filled" | "link.created"; }; header?: never; path?: never; @@ -4697,7 +4847,7 @@ export interface operations { data?: components["schemas"]["webhook_notification"][]; links?: components["schemas"]["links"]; meta?: components["schemas"]["meta"]; - included?: (components["schemas"]["webhook"] | components["schemas"]["tracking_request"] | components["schemas"]["transport_event"] | components["schemas"]["estimated_event"] | components["schemas"]["container_updated_event"] | components["schemas"]["document"] | components["schemas"]["document_representation"] | components["schemas"]["document_email_submission"])[]; + included?: (components["schemas"]["webhook"] | components["schemas"]["tracking_request"] | components["schemas"]["transport_event"] | components["schemas"]["estimated_event"] | components["schemas"]["container_updated_event"] | components["schemas"]["document"] | components["schemas"]["document_representation"] | components["schemas"]["document_email_submission"] | components["schemas"]["container_created_event"] | components["schemas"]["link"] | components["schemas"]["document_observation"])[]; }; }; }; From 8ae1fa28752bb087ae9418786da5f590ffec6ec6 Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Wed, 14 Oct 2026 16:41:31 -0700 Subject: [PATCH 08/20] docs(openapi)!: document GET /search result type as search_result SearchResultSerializer has no set_type, so every row is typed search_result. The matched kind is attributes.entity_type, which is shipment, cargo or tracking_request. Types are regenerated. BREAKING CHANGE: in the exported `paths` type from @terminal49/sdk, GET /search result `type` is 'search_result' instead of 'shipment' | 'cargo' | 'tracking_request', and `attributes.entity_type` is 'shipment' | 'cargo' | 'tracking_request' instead of a string. Read the kind from `attributes.entity_type`. Co-Authored-By: Claude Opus 5.5 --- docs/openapi.json | 17 ++++++++++------- sdks/typescript-sdk/src/generated/terminal49.ts | 15 +++++++++------ 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/docs/openapi.json b/docs/openapi.json index a6bd8515..0d68882c 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -14668,11 +14668,9 @@ }, "type": { "type": "string", - "description": "Resource type", + "description": "Always `search_result`. The matched resource kind is in `attributes.entity_type`.", "enum": [ - "shipment", - "cargo", - "tracking_request" + "search_result" ] }, "attributes": { @@ -14680,7 +14678,12 @@ "properties": { "entity_type": { "type": "string", - "description": "Type of the matched entity: `shipment`, `cargo`, or `tracking_request`" + "description": "Type of the matched entity: `shipment`, `cargo` (a container), or `tracking_request`", + "enum": [ + "shipment", + "cargo", + "tracking_request" + ] }, "number": { "type": "string", @@ -14759,7 +14762,7 @@ "data": [ { "id": "abc12345-6789-40ef-9012-3456789abcde", - "type": "shipment", + "type": "search_result", "attributes": { "entity_type": "shipment", "number": "MEDUA1234567", @@ -14781,7 +14784,7 @@ }, { "id": "def45678-9012-43ab-9cde-f0123456789a", - "type": "cargo", + "type": "search_result", "attributes": { "entity_type": "cargo", "number": "MSCU1234567", diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index 1493dad9..1a1feddb 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -8593,7 +8593,7 @@ export interface operations { * "data": [ * { * "id": "abc12345-6789-40ef-9012-3456789abcde", - * "type": "shipment", + * "type": "search_result", * "attributes": { * "entity_type": "shipment", * "number": "MEDUA1234567", @@ -8615,7 +8615,7 @@ export interface operations { * }, * { * "id": "def45678-9012-43ab-9cde-f0123456789a", - * "type": "cargo", + * "type": "search_result", * "attributes": { * "entity_type": "cargo", * "number": "MSCU1234567", @@ -8641,13 +8641,16 @@ export interface operations { /** @description Unique identifier of the matched resource */ id?: string; /** - * @description Resource type + * @description Always `search_result`. The matched resource kind is in `attributes.entity_type`. * @enum {string} */ - type?: "shipment" | "cargo" | "tracking_request"; + type?: "search_result"; attributes?: { - /** @description Type of the matched entity: `shipment`, `cargo`, or `tracking_request` */ - entity_type?: string; + /** + * @description Type of the matched entity: `shipment`, `cargo` (a container), or `tracking_request` + * @enum {string} + */ + entity_type?: "shipment" | "cargo" | "tracking_request"; /** @description BL number (shipments), container number (cargos), or request number (tracking requests) */ number?: string; /** @description Associated shipment ID (for cargos and tracking requests only) */ From 971589f6cea5ff8e3ba3c668089e5adf2371d58d Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Wed, 14 Oct 2026 16:42:38 -0700 Subject: [PATCH 09/20] docs(openapi)!: match the webhook notification examples response GET /webhook_notifications/examples renders one serializable_hash, so data is a single webhook_notification and there are no links or meta. included carries the shipment, container, port, terminal, vessel and event records the postman INCLUDE_MAP names. event is required: a missing or unavailable event returns 400. The example payload page no longer shows a top-level links object, which delivered payloads lack. Types are regenerated. BREAKING CHANGE: in the exported `paths` type from @terminal49/sdk, GET /webhook_notifications/examples requires `query.event` and returns one `data: webhook_notification` with `included: webhook_notification_included[]`, instead of a `webhook_notification[]` list with `links` and `meta`. Co-Authored-By: Claude Opus 5.5 --- .../useful-info/webhook-events-examples.mdx | 30 -- docs/openapi.json | 262 +++++++++--------- .../src/generated/terminal49.ts | 56 ++-- 3 files changed, 164 insertions(+), 184 deletions(-) diff --git a/docs/api-docs/useful-info/webhook-events-examples.mdx b/docs/api-docs/useful-info/webhook-events-examples.mdx index 931f38fc..0f1f52c3 100644 --- a/docs/api-docs/useful-info/webhook-events-examples.mdx +++ b/docs/api-docs/useful-info/webhook-events-examples.mdx @@ -4139,9 +4139,6 @@ Container is no longer available for pickup at the destination. "data": [] } } - }, - "links": { - "self": "https://api.terminal49.com/v2/webhook_notifications/examples?event=container.transport.not_available" } } ``` @@ -4516,9 +4513,6 @@ Container was manually marked as delivered. "data": [] } } - }, - "links": { - "self": "https://api.terminal49.com/v2/webhook_notifications/examples?event=container.transport.delivered" } } ``` @@ -6441,9 +6435,6 @@ Container arrived at the final inland destination. } } }, - "links": { - "self": "https://api.terminal49.com/v2/webhook_notifications/examples?event=container.transport.arrived_at_inland_destination" - }, "included": [ { "id": "e7a78724-6ddd-48a2-85c9-e88def7a8406", @@ -6782,9 +6773,6 @@ ETA changed for vessel departure at the port of lading. } } }, - "links": { - "self": "https://api.terminal49.com/v2/webhook_notifications/examples?event=container.transport.estimated.vessel_departed" - }, "included": [ { "id": "3e1f544c-72a4-45d3-9cf0-14c892a63f34", @@ -7014,9 +7002,6 @@ ETA changed for vessel arrival at the port of discharge (container level). } } }, - "links": { - "self": "https://api.terminal49.com/v2/webhook_notifications/examples?event=container.transport.estimated.vessel_arrived" - }, "included": [ { "id": "e400b938-19d9-4d78-888f-351af48a915e", @@ -7068,9 +7053,6 @@ ETA changed for the inland destination. } } }, - "links": { - "self": "https://api.terminal49.com/v2/webhook_notifications/examples?event=container.transport.estimated.arrived_at_inland_destination" - }, "included": [ { "id": "a8d9896f-a483-4548-9bae-3107e6adca3b", @@ -8248,9 +8230,6 @@ The coalesced `pickup_lfd` attribute changed. This field combines the `import_de } } }, - "links": { - "self": "https://api.terminal49.com/v2/webhook_notifications/examples?event=container.pickup_lfd.changed" - }, "included": [ { "id": "29a59f1d-cd71-4c0c-9be8-bc453f945d27", @@ -8584,9 +8563,6 @@ The terminal-reported Last Free Day (`import_deadlines.pickup_lfd_terminal`) at } } }, - "links": { - "self": "https://api.terminal49.com/v2/webhook_notifications/examples?event=container.pickup_lfd_terminal.changed" - }, "included": [ { "id": "3b0adf2f-25b7-4dc8-bb98-8e43f804c3c7", @@ -8638,9 +8614,6 @@ The rail-carrier-reported Last Free Day (`import_deadlines.pickup_lfd_rail`) at } } }, - "links": { - "self": "https://api.terminal49.com/v2/webhook_notifications/examples?event=container.pickup_lfd_rail.changed" - }, "included": [ { "id": "5a62d9de-7ab6-49a5-87a8-b829286a2c5e", @@ -8692,9 +8665,6 @@ The pickup appointment changed. } } }, - "links": { - "self": "https://api.terminal49.com/v2/webhook_notifications/examples?event=container.pickup_appointment.changed" - }, "included": [ { "id": "6b9fc846-c244-4791-9ee4-f63d95620ec9", diff --git a/docs/openapi.json b/docs/openapi.json index 0d68882c..bd5eff2a 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -3981,32 +3981,7 @@ "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" - }, - { - "$ref": "#/components/schemas/document" - }, - { - "$ref": "#/components/schemas/document_representation" - }, - { - "$ref": "#/components/schemas/document_email_submission" - } - ] + "$ref": "#/components/schemas/webhook_notification_included" } } } @@ -4680,32 +4655,7 @@ "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" - }, - { - "$ref": "#/components/schemas/document" - }, - { - "$ref": "#/components/schemas/document_representation" - }, - { - "$ref": "#/components/schemas/document_email_submission" - } - ] + "$ref": "#/components/schemas/webhook_notification_included" } } } @@ -4757,65 +4707,25 @@ "type": "object", "properties": { "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/webhook_notification" - } - }, - "links": { - "$ref": "#/components/schemas/links" - }, - "meta": { - "$ref": "#/components/schemas/meta" + "$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" - }, - { - "$ref": "#/components/schemas/document" - }, - { - "$ref": "#/components/schemas/document_representation" - }, - { - "$ref": "#/components/schemas/document_email_submission" - }, - { - "$ref": "#/components/schemas/container_created_event" - }, - { - "$ref": "#/components/schemas/link" - }, - { - "$ref": "#/components/schemas/document_observation" - } - ] + "$ref": "#/components/schemas/webhook_notification_included" } } } } } } + }, + "400": { + "$ref": "#/components/responses/BadRequest" } }, "operationId": "get-webhook-notifications-example", - "description": "Returns an example payload as it would be sent to a webhook endpoint for the provided `event` ", + "description": "Returns an example payload as it would be sent to a webhook endpoint for the provided `event`. The event must be one your account can subscribe to; otherwise the API returns 400.", "tags": [ "Webhook Notifications" ], @@ -4876,7 +4786,8 @@ }, "in": "query", "name": "event", - "description": "The webhook notification event name you wish to see an example of" + "description": "The webhook notification event name you wish to see an example of", + "required": true } ] }, @@ -17938,10 +17849,14 @@ "type": "object", "properties": { "id": { - "type": "string" + "type": "string", + "format": "uuid" }, "type": { - "type": "string" + "type": "string", + "enum": [ + "container_pod_terminal_changed_event" + ] }, "attributes": { "type": "object", @@ -17969,53 +17884,70 @@ "container": { "type": "object", "properties": { - "id": { - "type": "string", - "format": "uuid" - }, - "type": { - "type": "string", - "enum": [ - "container" - ] + "data": { + "type": "object", + "nullable": true, + "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" - ] + "data": { + "type": "object", + "nullable": true, + "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" - ] + "data": { + "type": "object", + "nullable": true, + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "terminal" + ] + } + } } - } + }, + "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." } } } - }, - "description": "" + } }, "party": { "title": "Party model", @@ -19970,6 +19902,72 @@ } } }, + "webhook_notification_included": { + "title": "Webhook notification included resource", + "description": "A resource that can appear in `included` on a webhook notification response.", + "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" + }, + { + "$ref": "#/components/schemas/container_pod_terminal_changed_event" + }, + { + "$ref": "#/components/schemas/container_created_event" + }, + { + "$ref": "#/components/schemas/document" + }, + { + "$ref": "#/components/schemas/document_representation" + }, + { + "$ref": "#/components/schemas/document_email_submission" + }, + { + "$ref": "#/components/schemas/document_observation" + }, + { + "$ref": "#/components/schemas/link" + }, + { + "$ref": "#/components/schemas/shipment" + }, + { + "$ref": "#/components/schemas/container" + }, + { + "$ref": "#/components/schemas/port" + }, + { + "$ref": "#/components/schemas/metro_area" + }, + { + "$ref": "#/components/schemas/terminal" + }, + { + "$ref": "#/components/schemas/vessel" + }, + { + "$ref": "#/components/schemas/shipping_line" + }, + { + "$ref": "#/components/schemas/account" + } + ] + }, "feature_availability": { "title": "Feature availability", "type": "object", diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index 1a1feddb..b80e8869 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -345,7 +345,7 @@ export interface paths { }; /** * Get webhook notification payload examples - * @description Returns an example payload as it would be sent to a webhook endpoint for the provided `event` + * @description Returns an example payload as it would be sent to a webhook endpoint for the provided `event`. The event must be one your account can subscribe to; otherwise the API returns 400. */ get: operations["get-webhook-notifications-example"]; put?: never; @@ -2430,8 +2430,10 @@ export interface components { }; /** Container Pod Terminal Changed Event */ container_pod_terminal_changed_event: { + /** Format: uuid */ id?: string; - type?: string; + /** @enum {string} */ + type?: "container_pod_terminal_changed_event"; attributes?: { /** * @description Where the information about the terminal change came from @@ -2447,23 +2449,29 @@ export interface components { }; relationships?: { container?: { - /** Format: uuid */ - id?: string; - /** @enum {string} */ - type?: "container"; + data?: { + /** Format: uuid */ + id?: string; + /** @enum {string} */ + type?: "container"; + } | null; }; shipment?: { - /** Format: uuid */ - id?: string; - /** @enum {string} */ - type?: "shipment"; + data?: { + /** Format: uuid */ + id?: string; + /** @enum {string} */ + type?: "shipment"; + } | null; }; /** @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. */ terminal?: { - /** Format: uuid */ - id?: string; - /** @enum {string} */ - type?: "terminal"; + data?: { + /** Format: uuid */ + id?: string; + /** @enum {string} */ + type?: "terminal"; + } | null; }; }; }; @@ -3305,6 +3313,11 @@ export interface components { }; }; }; + /** + * Webhook notification included resource + * @description A resource that can appear in `included` on a webhook notification response. + */ + webhook_notification_included: components["schemas"]["webhook"] | components["schemas"]["tracking_request"] | components["schemas"]["transport_event"] | components["schemas"]["estimated_event"] | components["schemas"]["container_updated_event"] | components["schemas"]["container_pod_terminal_changed_event"] | components["schemas"]["container_created_event"] | components["schemas"]["document"] | components["schemas"]["document_representation"] | components["schemas"]["document_email_submission"] | components["schemas"]["document_observation"] | components["schemas"]["link"] | components["schemas"]["shipment"] | components["schemas"]["container"] | components["schemas"]["port"] | components["schemas"]["metro_area"] | components["schemas"]["terminal"] | components["schemas"]["vessel"] | components["schemas"]["shipping_line"] | components["schemas"]["account"]; /** Feature availability */ feature_availability: { /** @@ -4789,7 +4802,7 @@ export interface operations { content: { "application/json": { data?: components["schemas"]["webhook_notification"]; - included?: (components["schemas"]["webhook"] | components["schemas"]["tracking_request"] | components["schemas"]["transport_event"] | components["schemas"]["estimated_event"] | components["schemas"]["container_updated_event"] | components["schemas"]["document"] | components["schemas"]["document_representation"] | components["schemas"]["document_email_submission"])[]; + included?: components["schemas"]["webhook_notification_included"][]; }; }; }; @@ -4819,7 +4832,7 @@ export interface operations { data?: components["schemas"]["webhook_notification"][]; links?: components["schemas"]["links"]; meta?: components["schemas"]["meta"]; - included?: (components["schemas"]["webhook"] | components["schemas"]["tracking_request"] | components["schemas"]["transport_event"] | components["schemas"]["estimated_event"] | components["schemas"]["container_updated_event"] | components["schemas"]["document"] | components["schemas"]["document_representation"] | components["schemas"]["document_email_submission"])[]; + included?: components["schemas"]["webhook_notification_included"][]; }; }; }; @@ -4827,9 +4840,9 @@ export interface operations { }; "get-webhook-notifications-example": { parameters: { - query?: { + query: { /** @description The webhook notification event name you wish to see an example of */ - event?: "container.transport.vessel_arrived" | "container.transport.estimated.vessel_arrived" | "container.transport.vessel_discharged" | "container.transport.vessel_loaded" | "container.transport.vessel_departed" | "container.transport.estimated.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" | "container.pickup_lfd_line.changed" | "container.pickup_lfd_terminal.changed" | "container.pickup_lfd_rail.changed" | "container.pickup_appointment.changed" | "container.transport.available" | "container.transport.not_available" | "container.transport.delivered" | "document_representation.created" | "document_representation.failed" | "container.detention_lfd_line.changed" | "container.delivery_appointment.changed" | "shipment.routing.filled" | "link.created"; + event: "container.transport.vessel_arrived" | "container.transport.estimated.vessel_arrived" | "container.transport.vessel_discharged" | "container.transport.vessel_loaded" | "container.transport.vessel_departed" | "container.transport.estimated.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" | "container.pickup_lfd_line.changed" | "container.pickup_lfd_terminal.changed" | "container.pickup_lfd_rail.changed" | "container.pickup_appointment.changed" | "container.transport.available" | "container.transport.not_available" | "container.transport.delivered" | "document_representation.created" | "document_representation.failed" | "container.detention_lfd_line.changed" | "container.delivery_appointment.changed" | "shipment.routing.filled" | "link.created"; }; header?: never; path?: never; @@ -4844,13 +4857,12 @@ export interface operations { }; content: { "application/json": { - data?: components["schemas"]["webhook_notification"][]; - links?: components["schemas"]["links"]; - meta?: components["schemas"]["meta"]; - included?: (components["schemas"]["webhook"] | components["schemas"]["tracking_request"] | components["schemas"]["transport_event"] | components["schemas"]["estimated_event"] | components["schemas"]["container_updated_event"] | components["schemas"]["document"] | components["schemas"]["document_representation"] | components["schemas"]["document_email_submission"] | components["schemas"]["container_created_event"] | components["schemas"]["link"] | components["schemas"]["document_observation"])[]; + data?: components["schemas"]["webhook_notification"]; + included?: components["schemas"]["webhook_notification_included"][]; }; }; }; + 400: components["responses"]["BadRequest"]; }; }; "get-webhooks-ips": { From 1eb41ff74dc6da9235728a0e4056b7f709c47448 Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Wed, 14 Oct 2026 16:43:46 -0700 Subject: [PATCH 10/20] docs(openapi)!: document account custom field definitions and entity types For customer accounts the top-level /custom_field_definitions list returns Terminal49 templates and create returns 401. Document GET and POST /accounts/{account_id}/custom_field_definitions, which serve the account's own definitions and accept template_id. Definitions accept entity_type Shipment or Cargo, and the custom_fields filter matches Shipment, Cargo or TrackingRequest exactly. POST /custom_fields accepts a tracking_request entity. The per-entity custom_fields lists accept include=definition,entity,updated_by. Options are not paginated. Reference pages now describe the template routes, the 422 on deleting a definition that has data, and the account-only api_slug lookup. Types and SDK reference pages are regenerated. To keep the SDK compiling, customFields.list types its entityType filter from the GET /custom_fields query, and the two custom field list queries keep accepting page params until the SDK stops sending them. BREAKING CHANGE: in the exported `paths` type from @terminal49/sdk, custom field definition `entity_type` is 'Shipment' | 'Cargo' in requests and responses; 'Container' and 'TrackingRequest' are removed. `filter[entity_type]` is an enum instead of a string: 'Shipment' | 'Cargo' on GET /custom_field_definitions, and 'Shipment' | 'Cargo' | 'TrackingRequest' on GET /custom_fields. GET /custom_fields and GET /custom_field_definitions no longer accept `page[number]` or `page[size]`. Their 200 bodies, and that of GET /custom_field_definitions/{definition_id}/options, drop `meta`. PATCH /custom_field_definitions/{id} attributes drop `validation` and `default_value`, which the API ignores. In the SDK, customFields.list and customFieldDefinitions.list no longer accept 'Container' as an entityType filter. Co-Authored-By: Claude Opus 5.5 --- .../create-a-custom-field-definition.mdx | 12 +- .../custom-fields/create-a-custom-field.mdx | 6 +- ...create-account-custom-field-definition.mdx | 29 + .../delete-a-custom-field-definition.mdx | 10 +- .../list-account-custom-field-definitions.mdx | 19 + .../list-custom-field-definitions.mdx | 12 +- .../list-custom-field-options.mdx | 2 +- .../custom-fields/list-custom-fields.mdx | 4 +- docs/api-docs/api-reference/introduction.mdx | 2 +- .../create-a-tracking-request.mdx | 2 +- docs/docs.json | 2 + docs/openapi.json | 559 +++++++++++++++--- .../CustomFieldDefinitionListFilters.mdx | 2 +- .../interfaces/CustomFieldListFilters.mdx | 2 +- docs/snippets/home/capabilities-data.mdx | 2 +- docs/updates/home.mdx | 12 +- sdks/typescript-sdk/src/client.ts | 15 +- .../src/client.write-endpoints.test.ts | 8 +- sdks/typescript-sdk/src/client/query.ts | 2 +- .../src/generated/terminal49.ts | 284 ++++++++- 20 files changed, 846 insertions(+), 140 deletions(-) create mode 100644 docs/api-docs/api-reference/custom-fields/create-account-custom-field-definition.mdx create mode 100644 docs/api-docs/api-reference/custom-fields/list-account-custom-field-definitions.mdx diff --git a/docs/api-docs/api-reference/custom-fields/create-a-custom-field-definition.mdx b/docs/api-docs/api-reference/custom-fields/create-a-custom-field-definition.mdx index 7d47d308..4d64af70 100644 --- a/docs/api-docs/api-reference/custom-fields/create-a-custom-field-definition.mdx +++ b/docs/api-docs/api-reference/custom-fields/create-a-custom-field-definition.mdx @@ -1,18 +1,18 @@ --- -title: Create a custom field definition -description: "Create a new custom field definition in the Terminal49 API to attach structured metadata like reference codes or enums to shipments and containers." -og:title: Create a Custom Field Definition | Terminal49 API Documentation -og:description: Create a new custom field definition for shipments or containers in the Terminal49 API. Define the field name, data type, and api_slug for programmatic access. +title: Create a custom field definition template +description: "Create a Terminal49 custom field definition template. Only Terminal49 accounts can create templates; use the account-scoped route for your own definitions." +og:title: Create a Custom Field Definition Template | Terminal49 API Documentation +og:description: Create a Terminal49 custom field definition template. Other accounts receive 401 and should create definitions with the account-scoped route. openapi: post /custom_field_definitions --- -Create a custom field definition to describe metadata you want to store on shipments or containers. +Creates a Terminal49 template definition. Only Terminal49 accounts can create templates; other accounts receive `401`. To create a definition on your account, use [Create an account custom field definition](/api-docs/api-reference/custom-fields/create-account-custom-field-definition). ## Request body | Parameter | Required | Description | |-----------|----------|-------------| -| `entity_type` | Yes | The entity type this field applies to (`Shipment` or `Container`) | +| `entity_type` | Yes | The entity type this field applies to: `Shipment` or `Cargo` (containers) | | `api_slug` | Yes | Unique identifier for the field | | `display_name` | Yes | Human-readable name for the field | | `data_type` | Yes | Data type for values (for example: `short_text`, `number`, `date`, `reference`) | diff --git a/docs/api-docs/api-reference/custom-fields/create-a-custom-field.mdx b/docs/api-docs/api-reference/custom-fields/create-a-custom-field.mdx index 88e8c659..0d94c4b7 100644 --- a/docs/api-docs/api-reference/custom-fields/create-a-custom-field.mdx +++ b/docs/api-docs/api-reference/custom-fields/create-a-custom-field.mdx @@ -15,8 +15,8 @@ Use this endpoint to create a custom field value on a shipment or container when | `data.type` | Yes | Must be `custom_field` | | `data.attributes.api_slug` | Yes | The slug of the custom field definition | | `data.attributes.value` | Yes | The field value (must match the definition's data type) | -| `data.relationships.entity.data.type` | Yes | `shipment` or `container` | -| `data.relationships.entity.data.id` | Yes | The shipment or container ID | +| `data.relationships.entity.data.type` | Yes | `shipment`, `container`, or `tracking_request` | +| `data.relationships.entity.data.id` | Yes | The shipment, container, or tracking request ID | ## Value formats by data type @@ -36,7 +36,7 @@ Use this endpoint to create a custom field value on a shipment or container when - Values are validated against the definition's data type - Enum values must match one of the definition's configured options - Reference values must match the definition's configured `reference_type` -- The `api_slug` must reference a definition belonging to your account or a Terminal49 template +- The `api_slug` must reference a definition belonging to your account; otherwise the request returns `404` ## Example request diff --git a/docs/api-docs/api-reference/custom-fields/create-account-custom-field-definition.mdx b/docs/api-docs/api-reference/custom-fields/create-account-custom-field-definition.mdx new file mode 100644 index 00000000..b7800b60 --- /dev/null +++ b/docs/api-docs/api-reference/custom-fields/create-account-custom-field-definition.mdx @@ -0,0 +1,29 @@ +--- +title: Create an account custom field definition +description: "Create a custom field definition on your Terminal49 account to attach structured metadata, like reference codes or enums, to shipments and containers." +og:title: Create an Account Custom Field Definition | Terminal49 API Documentation +og:description: Create a custom field definition on your Terminal49 account for shipments or containers. Define the display name, data type, and api_slug, or copy a template. +openapi: post /accounts/{account_id}/custom_field_definitions +--- + +Creates a custom field definition on your account. The API always creates the definition on the authenticated user's account, whatever `account_id` you pass. + +## Request body + +Send `template_id`, or all of `entity_type`, `api_slug`, `display_name` and `data_type`. + +| Parameter | Required | Description | +|-----------|----------|-------------| +| `entity_type` | Without `template_id` | The entity type this field applies to: `Shipment` or `Cargo` (containers). Other values return `422`. | +| `api_slug` | Without `template_id` | Unique identifier for the field | +| `display_name` | Without `template_id` | Human-readable name for the field | +| `data_type` | Without `template_id` | Data type for values (for example: `short_text`, `number`, `date`, `reference`) | +| `template_id` | No | ID of a Terminal49 template definition to copy. The template supplies `entity_type`, `api_slug`, `display_name`, `data_type` and the other attributes. Attributes you send override the template's values. An unknown `template_id` returns `404`. | +| `description` | No | Optional description of the field's purpose | +| `validation` | No | Validation rules (for example: `required`, `pattern`, `max_length`) | +| `default_format` | No | Default format string for numbers or dates | +| `default_value` | No | Default value for new custom fields | +| `reference_type` | No | Required when `data_type` is `reference` | +| `reference_number` | No | Whether values are reference numbers. Terminal49 indexes reference-number values for global search and document matching. Defaults to `false`. | +| `sensitive` | No | Whether the field is sensitive. Sensitive fields are hidden from recipients of externally shared container views. Defaults to `false`. | +| `inline_option_creation` | No | Whether users can add a new option while entering an `enum` or `enum_multi` value in the Terminal49 app. Defaults to `false`. | diff --git a/docs/api-docs/api-reference/custom-fields/delete-a-custom-field-definition.mdx b/docs/api-docs/api-reference/custom-fields/delete-a-custom-field-definition.mdx index 0bcfe8bf..07b22b29 100644 --- a/docs/api-docs/api-reference/custom-fields/delete-a-custom-field-definition.mdx +++ b/docs/api-docs/api-reference/custom-fields/delete-a-custom-field-definition.mdx @@ -1,8 +1,8 @@ --- title: Delete a custom field definition -description: "Delete a custom field definition from your Terminal49 account, removing the field type and its applied values from shipments and containers permanently." +description: "Delete a custom field definition from your Terminal49 account. A definition that already has values cannot be deleted; archive it instead." og:title: Delete a Custom Field Definition | Terminal49 API Documentation -og:description: Delete a custom field definition from the Terminal49 API. Removes the field schema and all associated values from every shipment and container record. +og:description: Delete a custom field definition from the Terminal49 API. Returns 204 on success, 422 when the definition has values, or 401 when a non-Terminal49 account deletes a template. openapi: delete /custom_field_definitions/{id} --- @@ -16,4 +16,8 @@ Delete a custom field definition by its ID. ## Behavior -Deleting a custom field definition also removes all associated custom field values. +Returns `204` when the definition is deleted. + +- A definition that has values returns `422` with the title `This field has data. You can archive it instead.` +- Templates are managed by Terminal49. Other accounts get `401` when they delete a template. +- For a Terminal49 account, a template that other accounts use returns `422` with the title `This template is in use by other accounts. You can archive it instead.` diff --git a/docs/api-docs/api-reference/custom-fields/list-account-custom-field-definitions.mdx b/docs/api-docs/api-reference/custom-fields/list-account-custom-field-definitions.mdx new file mode 100644 index 00000000..96ccedaf --- /dev/null +++ b/docs/api-docs/api-reference/custom-fields/list-account-custom-field-definitions.mdx @@ -0,0 +1,19 @@ +--- +title: List account custom field definitions +description: "List the custom field definitions configured for your Terminal49 account, including data type, api_slug, and the entity type each definition applies to." +og:title: List Account Custom Field Definitions | Terminal49 API Documentation +og:description: List the custom field definitions configured for your Terminal49 account. Returns display names, data types, api_slugs, and entity types for shipments and containers. +openapi: get /accounts/{account_id}/custom_field_definitions +--- + +Lists the custom field definitions configured for your account. The list is not paginated. The API ignores `page[number]` and `page[size]` and returns every row, but still sends pagination `links`. Do not follow `links.next`. + +The API always returns the definitions of the authenticated user's account, whatever `account_id` you pass. + +## Query filters + +| Filter | Description | +|--------|-------------| +| `filter[entity_type]` | Filter by entity type: `Shipment` or `Cargo` (containers) | +| `filter[data_type]` | Filter by data type | +| `filter[display_name]` | Filter by display name (prefix match) | diff --git a/docs/api-docs/api-reference/custom-fields/list-custom-field-definitions.mdx b/docs/api-docs/api-reference/custom-fields/list-custom-field-definitions.mdx index cf80f732..3fbe453c 100644 --- a/docs/api-docs/api-reference/custom-fields/list-custom-field-definitions.mdx +++ b/docs/api-docs/api-reference/custom-fields/list-custom-field-definitions.mdx @@ -1,17 +1,17 @@ --- -title: List custom field definitions -description: "List every custom field definition configured for your Terminal49 account, including data type, slug, and the target resource each definition applies to." -og:title: List Custom Field Definitions | Terminal49 API Documentation -og:description: List all custom field definitions configured for shipments and containers in the Terminal49 API. Returns field names, types, api_slugs, and resource scopes. +title: List custom field definition templates +description: "List the Terminal49 custom field definition templates. To list the definitions configured for your account, use the account-scoped route." +og:title: List Custom Field Definition Templates | Terminal49 API Documentation +og:description: List the Terminal49 custom field definition templates. Copy a template into your account with the template_id attribute of the account create route. openapi: get /custom_field_definitions --- -List all custom field definitions available to your account. +Lists the Terminal49 template definitions. It does not return the definitions configured for your account. To list those, use [List account custom field definitions](/api-docs/api-reference/custom-fields/list-account-custom-field-definitions). ## Query filters | Filter | Description | |--------|-------------| -| `filter[entity_type]` | Filter by entity type (`Shipment` or `Container`) | +| `filter[entity_type]` | Filter by entity type: `Shipment` or `Cargo` (containers) | | `filter[data_type]` | Filter by data type | | `filter[display_name]` | Filter by display name (prefix match) | diff --git a/docs/api-docs/api-reference/custom-fields/list-custom-field-options.mdx b/docs/api-docs/api-reference/custom-fields/list-custom-field-options.mdx index be6abd9b..ce83eb31 100644 --- a/docs/api-docs/api-reference/custom-fields/list-custom-field-options.mdx +++ b/docs/api-docs/api-reference/custom-fields/list-custom-field-options.mdx @@ -6,7 +6,7 @@ og:description: List all selectable options for an enum-type custom field defini openapi: get /custom_field_definitions/{definition_id}/options --- -List all options for a custom field definition. +List all options for a custom field definition. The list is not paginated. The API ignores `page[number]` and `page[size]` and returns every row, but still sends pagination `links`. Do not follow `links.next`. ## Path parameters diff --git a/docs/api-docs/api-reference/custom-fields/list-custom-fields.mdx b/docs/api-docs/api-reference/custom-fields/list-custom-fields.mdx index 890d05d2..680d196a 100644 --- a/docs/api-docs/api-reference/custom-fields/list-custom-fields.mdx +++ b/docs/api-docs/api-reference/custom-fields/list-custom-fields.mdx @@ -14,8 +14,8 @@ Filter results using these query parameters: | Filter | Description | |--------|-------------| -| `filter[entity_type]` | Filter by entity type (`Shipment` or `Container`) | -| `filter[entity_id]` | Filter by the ID of the shipment or container | +| `filter[entity_type]` | Filter by entity type. The value must match exactly: `Shipment`, `Cargo` (containers), or `TrackingRequest` | +| `filter[entity_id]` | Filter by the ID of the shipment, container, or tracking request | | `filter[definition_id]` | Filter by custom field definition ID | ## Response diff --git a/docs/api-docs/api-reference/introduction.mdx b/docs/api-docs/api-reference/introduction.mdx index 24906104..04b76dee 100644 --- a/docs/api-docs/api-reference/introduction.mdx +++ b/docs/api-docs/api-reference/introduction.mdx @@ -101,7 +101,7 @@ Some endpoints have their own rate-limit bucket. For example, Infer Tracking Num ## Supporting resources - + Attach your own metadata to shipments and containers. diff --git a/docs/api-docs/api-reference/tracking-requests/create-a-tracking-request.mdx b/docs/api-docs/api-reference/tracking-requests/create-a-tracking-request.mdx index 9a959fae..e328470a 100644 --- a/docs/api-docs/api-reference/tracking-requests/create-a-tracking-request.mdx +++ b/docs/api-docs/api-reference/tracking-requests/create-a-tracking-request.mdx @@ -26,7 +26,7 @@ openapi: post /tracking_requests Use `initial_custom_fields` to stage custom field values at creation time, before the shipment and containers exist. Terminal49 applies `shipment` entries to the shipment and `containers` entries to their containers once the tracking request resolves. -Each `api_slug` must match an existing [custom field definition](/api-docs/api-reference/custom-fields/create-a-custom-field-definition) on your account — a `Shipment`-scoped definition for `shipment` entries, a `Container`-scoped definition for `containers` entries. Container entries without a `number` — or with `number` set to an empty string — are applied to every container on the shipment; include a non-empty `number` to target one specific container. +Each `api_slug` must match an existing [custom field definition](/api-docs/api-reference/custom-fields/create-account-custom-field-definition) on your account — a `Shipment`-scoped definition for `shipment` entries, a `Cargo`-scoped definition for `containers` entries. Container entries without a `number` — or with `number` set to an empty string — are applied to every container on the shipment; include a non-empty `number` to target one specific container. ```json { diff --git a/docs/docs.json b/docs/docs.json index e6ce182b..c21a778a 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -224,6 +224,8 @@ { "group": "Custom Field Definitions", "pages": [ + "api-docs/api-reference/custom-fields/list-account-custom-field-definitions", + "api-docs/api-reference/custom-fields/create-account-custom-field-definition", "api-docs/api-reference/custom-fields/list-custom-field-definitions", "api-docs/api-reference/custom-fields/get-a-custom-field-definition", "api-docs/api-reference/custom-fields/create-a-custom-field-definition", diff --git a/docs/openapi.json b/docs/openapi.json index bd5eff2a..3eb98c63 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -3139,13 +3139,45 @@ }, "meta": { "$ref": "#/components/schemas/meta" + }, + "included": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/custom_field_definition" + }, + { + "$ref": "#/components/schemas/shipment" + }, + { + "$ref": "#/components/schemas/container" + }, + { + "$ref": "#/components/schemas/tracking_request" + }, + { + "$ref": "#/components/schemas/user" + } + ] + } } } } } } } - } + }, + "parameters": [ + { + "schema": { + "type": "string" + }, + "in": "query", + "name": "include", + "description": "Comma-separated relationships to include: `definition`, `entity`, `updated_by`." + } + ] }, "post": { "summary": "Create a tracking request custom field", @@ -10648,7 +10680,7 @@ }, "/custom_field_definitions": { "get": { - "summary": "List custom field definitions", + "summary": "List custom field definition templates", "operationId": "get-custom-field-definitions", "tags": [ "Custom Field Definitions" @@ -10656,27 +10688,15 @@ "parameters": [ { "schema": { - "type": "integer", - "default": 1 - }, - "in": "query", - "name": "page[number]" - }, - { - "schema": { - "type": "integer", - "default": 25 - }, - "in": "query", - "name": "page[size]" - }, - { - "schema": { - "type": "string" + "type": "string", + "enum": [ + "Shipment", + "Cargo" + ] }, "in": "query", "name": "filter[entity_type]", - "description": "Filter by entity type (Shipment or Container)" + "description": "Filter by entity type. `Cargo` means containers." }, { "schema": { @@ -10711,19 +10731,17 @@ }, "links": { "$ref": "#/components/schemas/links" - }, - "meta": { - "$ref": "#/components/schemas/meta" } } } } } } - } + }, + "description": "Lists the Terminal49 template definitions. To list the definitions configured for your account, use `GET /accounts/{account_id}/custom_field_definitions`. The list is not paginated. The API ignores `page[number]` and `page[size]` and returns every row, but still sends pagination `links`. Do not follow `links.next`." }, "post": { - "summary": "Create a custom field definition", + "summary": "Create a custom field definition template", "operationId": "post-custom-field-definitions", "tags": [ "Custom Field Definitions" @@ -10746,6 +10764,12 @@ } } } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } }, "requestBody": { @@ -10780,8 +10804,9 @@ "type": "string", "enum": [ "Shipment", - "Container" - ] + "Cargo" + ], + "description": "`Cargo` means containers." }, "api_slug": { "type": "string" @@ -10821,6 +10846,21 @@ }, "default_value": { "$ref": "#/components/schemas/custom_field_value" + }, + "reference_number": { + "type": "boolean", + "description": "Whether values are reference numbers. Terminal49 indexes reference-number values on account definitions for global search and document matching.", + "default": false + }, + "sensitive": { + "type": "boolean", + "description": "Whether the field is sensitive. Sensitive fields are hidden from recipients of externally shared container views.", + "default": false + }, + "inline_option_creation": { + "type": "boolean", + "description": "Whether users can add a new option while entering an `enum` or `enum_multi` value in the Terminal49 app.", + "default": false } } } @@ -10830,7 +10870,8 @@ } } } - } + }, + "description": "Creates a Terminal49 template definition. Only Terminal49 accounts can create templates; other accounts receive 401. To create a definition for your account, use `POST /accounts/{account_id}/custom_field_definitions`." } }, "/custom_field_definitions/{id}": { @@ -10933,19 +10974,24 @@ "type": "string", "nullable": true }, - "validation": { - "type": "object", - "nullable": true, - "additionalProperties": true - }, "default_format": { "type": "string", "nullable": true }, - "default_value": { - "$ref": "#/components/schemas/custom_field_value" + "reference_number": { + "type": "boolean", + "description": "Whether values are reference numbers. Terminal49 indexes reference-number values on account definitions for global search and document matching." + }, + "sensitive": { + "type": "boolean", + "description": "Whether the field is sensitive. Sensitive fields are hidden from recipients of externally shared container views." + }, + "inline_option_creation": { + "type": "boolean", + "description": "Whether users can add a new option while entering an `enum` or `enum_multi` value in the Terminal49 app." } - } + }, + "description": "The attributes the API updates. It ignores any other attribute, such as `data_type`, `validation` or `default_value`, and still returns 200." } } } @@ -10975,7 +11021,7 @@ "$ref": "#/components/responses/UnprocessableEntity" } }, - "description": "Deletes a custom field definition. A definition that has values, or a template other accounts use, returns 422; archive it instead." + "description": "Deletes a custom field definition. A definition that has values returns 422; archive it instead. Templates are Terminal49-managed: other accounts get 401 when they update or delete one, so only Terminal49 accounts can see the 422 for a template that other accounts use." } }, "/custom_field_definitions/{definition_id}/options": { @@ -11012,16 +11058,14 @@ }, "links": { "$ref": "#/components/schemas/links" - }, - "meta": { - "$ref": "#/components/schemas/meta" } } } } } } - } + }, + "description": "Lists every option of the definition. The list is not paginated. The API ignores `page[number]` and `page[size]` and returns every row, but still sends pagination `links`. Do not follow `links.next`." }, "post": { "summary": "Create a custom field option", @@ -11253,27 +11297,16 @@ "parameters": [ { "schema": { - "type": "integer", - "default": 1 - }, - "in": "query", - "name": "page[number]" - }, - { - "schema": { - "type": "integer", - "default": 25 - }, - "in": "query", - "name": "page[size]" - }, - { - "schema": { - "type": "string" + "type": "string", + "enum": [ + "Shipment", + "Cargo", + "TrackingRequest" + ] }, "in": "query", "name": "filter[entity_type]", - "description": "Filter by entity type (Shipment or Container)" + "description": "Filter by entity type. The value must match exactly: `Shipment`, `Cargo` (containers) or `TrackingRequest`." }, { "schema": { @@ -11308,16 +11341,14 @@ }, "links": { "$ref": "#/components/schemas/links" - }, - "meta": { - "$ref": "#/components/schemas/meta" } } } } } } - } + }, + "description": "The list is not paginated. The API ignores `page[number]` and `page[size]` and returns every row, but still sends pagination `links`. Do not follow `links.next`." }, "post": { "summary": "Create a custom field", @@ -11403,7 +11434,8 @@ "type": "string", "enum": [ "shipment", - "container" + "container", + "tracking_request" ] }, "id": { @@ -11601,13 +11633,45 @@ }, "meta": { "$ref": "#/components/schemas/meta" + }, + "included": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/custom_field_definition" + }, + { + "$ref": "#/components/schemas/shipment" + }, + { + "$ref": "#/components/schemas/container" + }, + { + "$ref": "#/components/schemas/tracking_request" + }, + { + "$ref": "#/components/schemas/user" + } + ] + } } } } } } } - } + }, + "parameters": [ + { + "schema": { + "type": "string" + }, + "in": "query", + "name": "include", + "description": "Comma-separated relationships to include: `definition`, `entity`, `updated_by`." + } + ] }, "post": { "summary": "Create a shipment custom field", @@ -12252,13 +12316,45 @@ }, "meta": { "$ref": "#/components/schemas/meta" + }, + "included": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/custom_field_definition" + }, + { + "$ref": "#/components/schemas/shipment" + }, + { + "$ref": "#/components/schemas/container" + }, + { + "$ref": "#/components/schemas/tracking_request" + }, + { + "$ref": "#/components/schemas/user" + } + ] + } } } } } } } - } + }, + "parameters": [ + { + "schema": { + "type": "string" + }, + "in": "query", + "name": "include", + "description": "Comma-separated relationships to include: `definition`, `entity`, `updated_by`." + } + ] }, "post": { "summary": "Create a container custom field", @@ -14864,6 +14960,211 @@ } } }, + "/accounts/{account_id}/custom_field_definitions": { + "parameters": [ + { + "schema": { + "type": "string", + "format": "uuid" + }, + "name": "account_id", + "in": "path", + "required": true, + "description": "Your account ID. The API always uses the account of the authenticated user." + } + ], + "get": { + "summary": "List custom field definitions", + "operationId": "get-account-custom-field-definitions", + "tags": [ + "Custom Field Definitions" + ], + "parameters": [ + { + "schema": { + "type": "string", + "enum": [ + "Shipment", + "Cargo" + ] + }, + "in": "query", + "name": "filter[entity_type]", + "description": "Filter by entity type. `Cargo` means containers." + }, + { + "schema": { + "type": "string" + }, + "in": "query", + "name": "filter[data_type]", + "description": "Filter by data type" + }, + { + "schema": { + "type": "string" + }, + "in": "query", + "name": "filter[display_name]", + "description": "Filter by display name (prefix match)" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/custom_field_definition" + } + }, + "links": { + "$ref": "#/components/schemas/links" + } + } + } + } + } + } + }, + "description": "Lists the custom field definitions configured for your account. The list is not paginated. The API ignores `page[number]` and `page[size]` and returns every row, but still sends pagination `links`. Do not follow `links.next`." + }, + "post": { + "summary": "Create a custom field definition", + "operationId": "post-account-custom-field-definitions", + "tags": [ + "Custom Field Definitions" + ], + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/custom_field_definition" + }, + "links": { + "$ref": "#/components/schemas/link-self" + } + } + } + } + } + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" + } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "required": [ + "type", + "attributes" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "custom_field_definition" + ] + }, + "attributes": { + "type": "object", + "properties": { + "entity_type": { + "type": "string", + "enum": [ + "Shipment", + "Cargo" + ], + "description": "`Cargo` means containers." + }, + "api_slug": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "data_type": { + "type": "string", + "enum": [ + "short_text", + "number", + "date", + "datetime", + "boolean", + "enum", + "enum_multi", + "reference" + ] + }, + "reference_type": { + "type": "string", + "nullable": true + }, + "validation": { + "type": "object", + "nullable": true, + "additionalProperties": true + }, + "default_format": { + "type": "string", + "nullable": true + }, + "default_value": { + "$ref": "#/components/schemas/custom_field_value" + }, + "template_id": { + "type": "string", + "format": "uuid", + "description": "ID of a Terminal49 template definition to copy." + }, + "reference_number": { + "type": "boolean", + "description": "Whether values are reference numbers. Terminal49 indexes reference-number values on account definitions for global search and document matching.", + "default": false + }, + "sensitive": { + "type": "boolean", + "description": "Whether the field is sensitive. Sensitive fields are hidden from recipients of externally shared container views.", + "default": false + }, + "inline_option_creation": { + "type": "boolean", + "description": "Whether users can add a new option while entering an `enum` or `enum_multi` value in the Terminal49 app.", + "default": false + } + }, + "description": "Send `template_id`, or all of `entity_type`, `api_slug`, `display_name` and `data_type`. With `template_id`, the template supplies any of those four you leave out." + } + } + } + } + } + } + } + }, + "description": "Creates a custom field definition for your account. Pass `template_id` to copy a Terminal49 template; attributes you send override the template's values." + } + }, "/me": { "get": { "summary": "Get the current credential", @@ -18599,9 +18900,9 @@ "type": "string", "enum": [ "Shipment", - "Container", - "TrackingRequest" - ] + "Cargo" + ], + "description": "The entity type this definition applies to. `Cargo` means containers." }, "api_slug": { "type": "string" @@ -18641,6 +18942,42 @@ }, "default_value": { "$ref": "#/components/schemas/custom_field_value" + }, + "reference_number": { + "type": "boolean", + "description": "Whether values are reference numbers. Terminal49 indexes reference-number values on account definitions for global search and document matching." + }, + "sensitive": { + "type": "boolean", + "description": "Whether the field is sensitive. Sensitive fields are hidden from recipients of externally shared container views." + }, + "inline_option_creation": { + "type": "boolean", + "description": "Whether users can add a new option while entering an `enum` or `enum_multi` value in the Terminal49 app." + }, + "template_id": { + "type": "string", + "format": "uuid", + "nullable": true, + "description": "ID of the Terminal49 template this definition was copied from." + }, + "has_data": { + "type": "boolean", + "description": "Whether any entity has a value for this definition." + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "discarded_at": { + "type": "string", + "format": "date-time", + "nullable": true, + "description": "When the definition was archived." } }, "required": [ @@ -18649,6 +18986,90 @@ "display_name", "data_type" ] + }, + "relationships": { + "type": "object", + "properties": { + "account": { + "type": "object", + "description": "The owning account. `null` for Terminal49 templates.", + "properties": { + "data": { + "type": "object", + "nullable": true, + "required": [ + "type", + "id" + ], + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "account" + ] + } + } + } + } + }, + "created_by": { + "type": "object", + "description": "The user who created the definition.", + "properties": { + "data": { + "type": "object", + "nullable": true, + "required": [ + "type", + "id" + ], + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "user" + ] + } + } + } + } + }, + "options": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "custom_field_option" + ] + } + } + } + } + } + } + } } }, "required": [ diff --git a/docs/sdk/reference/client/interfaces/CustomFieldDefinitionListFilters.mdx b/docs/sdk/reference/client/interfaces/CustomFieldDefinitionListFilters.mdx index 9ae26250..b088ac89 100644 --- a/docs/sdk/reference/client/interfaces/CustomFieldDefinitionListFilters.mdx +++ b/docs/sdk/reference/client/interfaces/CustomFieldDefinitionListFilters.mdx @@ -12,4 +12,4 @@ Filters accepted by `customFieldDefinitions.list`. | ------ | ------ | | `dataType?` | `"number"` \| `"boolean"` \| `"datetime"` \| `"date"` \| `"short_text"` \| `"enum"` \| `"enum_multi"` \| `"reference"` | | `displayName?` | `string` | -| `entityType?` | `"Shipment"` \| `"Container"` \| `"TrackingRequest"` | +| `entityType?` | `"Shipment"` \| `"Cargo"` | diff --git a/docs/sdk/reference/client/interfaces/CustomFieldListFilters.mdx b/docs/sdk/reference/client/interfaces/CustomFieldListFilters.mdx index 859cdb26..cb1760c5 100644 --- a/docs/sdk/reference/client/interfaces/CustomFieldListFilters.mdx +++ b/docs/sdk/reference/client/interfaces/CustomFieldListFilters.mdx @@ -12,4 +12,4 @@ Filters accepted by `customFields.list`. | ------ | ------ | | `definitionId?` | `string` | | `entityId?` | `string` | -| `entityType?` | `"Shipment"` \| `"Container"` \| `"TrackingRequest"` | +| `entityType?` | `"Shipment"` \| `"Cargo"` \| `"TrackingRequest"` | diff --git a/docs/snippets/home/capabilities-data.mdx b/docs/snippets/home/capabilities-data.mdx index 4c97b471..2f577a0f 100644 --- a/docs/snippets/home/capabilities-data.mdx +++ b/docs/snippets/home/capabilities-data.mdx @@ -259,7 +259,7 @@ export const capabilityCategories = [ title: "Field Definitions", desc: "Create typed field definitions with validation rules and dropdown options", icon: "sliders", - href: "/api-docs/api-reference/custom-fields/create-a-custom-field-definition", + href: "/api-docs/api-reference/custom-fields/create-account-custom-field-definition", detailLabel: "Definition Types", detailPoints: [ "Text, number, date, and single-select field types", diff --git a/docs/updates/home.mdx b/docs/updates/home.mdx index 2268bbc5..b93d3132 100644 --- a/docs/updates/home.mdx +++ b/docs/updates/home.mdx @@ -198,7 +198,7 @@ rss: true - **Longer field labels** — the custom field label column now expands to 50% for readability - **Hover reveals all custom field values** — hovering a shipment or container's custom field row now expands the display so every configured value is visible without opening a detail view - + Custom Fields API reference @@ -264,7 +264,7 @@ rss: true URLs entered into **short-text custom fields** on shipments and containers now render as **clickable links** in the dashboard, so linked TMS records, shared docs, and support tickets are one click away without copy-paste. CSV exports remain plain text. - + Custom Fields API reference @@ -1192,7 +1192,7 @@ rss: true Custom fields now live under **Data Management** in the dashboard, and tags share the same look-and-feel as custom fields for a more consistent experience when configuring shipment metadata. - + Custom Fields API reference @@ -1227,7 +1227,7 @@ rss: true Shipments and containers can now be searched by **custom field values** alongside built-in identifiers. Use the same search you already use for container numbers or PO numbers to find records by any custom field you've defined. - + Custom Fields API reference @@ -1332,7 +1332,7 @@ rss: true Custom field definitions now support a `reference_number` flag. Mark a custom field as a reference number and Terminal49 will treat its value as a searchable identifier alongside built-in references like PO numbers and BOLs. - + Custom Fields API reference @@ -1524,7 +1524,7 @@ rss: true - **Custom Field Options** — manage allowed values for select-type fields - **Custom Fields** — assign values to specific shipments or containers - + View the Custom Fields API reference diff --git a/sdks/typescript-sdk/src/client.ts b/sdks/typescript-sdk/src/client.ts index 22c33f71..c4684c56 100644 --- a/sdks/typescript-sdk/src/client.ts +++ b/sdks/typescript-sdk/src/client.ts @@ -29,7 +29,11 @@ import type { TrackingRequestListFilters, TrackingRequestType, } from './client/managers/tracking-requests.js'; -import { applyTypedPagination, normalizeInclude } from './client/query.js'; +import { + applyTypedPagination, + normalizeInclude, + type PaginatedQuery, +} from './client/query.js'; import { callerPayload, type JsonBody } from './client/spec.js'; import { mapCurrentCredential } from './client/mappers.js'; import { Transport } from './client/transport.js'; @@ -67,15 +71,18 @@ export { type WebhookEvent = NonNullable< paths['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/webhook_notifications/examples']['get']['parameters']['query'] >['event']; +// The API ignores page[*] on these routes, but accepts it, and the CLI forwards --page. type CustomFieldDefinitionListQuery = NonNullable< paths['/custom_field_definitions']['get']['parameters']['query'] ->; +> & + PaginatedQuery; type WebhookNotificationListQuery = NonNullable< paths['/webhook_notifications']['get']['parameters']['query'] >; type CustomFieldListQuery = NonNullable< paths['/custom_fields']['get']['parameters']['query'] ->; +> & + PaginatedQuery; type TriggerWebhookBody = JsonBody; type PartyAttributes = NonNullable< JsonBody['data'] @@ -125,7 +132,7 @@ export interface TriggerWebhookParams { /** Filters accepted by `customFields.list`. */ export interface CustomFieldListFilters { - entityType?: CustomFieldDefinitionAttributes['entity_type']; + entityType?: CustomFieldListQuery['filter[entity_type]']; entityId?: string; definitionId?: string; } diff --git a/sdks/typescript-sdk/src/client.write-endpoints.test.ts b/sdks/typescript-sdk/src/client.write-endpoints.test.ts index fa259a07..af5ba5ac 100644 --- a/sdks/typescript-sdk/src/client.write-endpoints.test.ts +++ b/sdks/typescript-sdk/src/client.write-endpoints.test.ts @@ -306,7 +306,7 @@ describe('custom field list filters', () => { const { client, calls } = buildClient(); await client.customFields.list({ filters: { - entityType: 'Container', + entityType: 'Cargo', entityId: 'c-1', definitionId: 'def-1', }, @@ -317,7 +317,7 @@ describe('custom field list filters', () => { }); expect(calls[0].query).toEqual({ - 'filter[entity_type]': 'Container', + 'filter[entity_type]': 'Cargo', 'filter[entity_id]': 'c-1', 'filter[definition_id]': 'def-1', }); @@ -334,13 +334,9 @@ describe('custom field list filters', () => { await client.customFields.list({ filters: { entityType: 'TrackingRequest' }, }); - await client.customFieldDefinitions.list({ - filters: { entityType: 'TrackingRequest' }, - }); expect(calls.map((c) => c.query)).toEqual([ { 'filter[entity_type]': 'TrackingRequest' }, - { 'filter[entity_type]': 'TrackingRequest' }, ]); }); }); diff --git a/sdks/typescript-sdk/src/client/query.ts b/sdks/typescript-sdk/src/client/query.ts index 638ceb59..e12da9a5 100644 --- a/sdks/typescript-sdk/src/client/query.ts +++ b/sdks/typescript-sdk/src/client/query.ts @@ -91,7 +91,7 @@ export function applyPagination( } /** Query objects that carry numeric JSON:API pagination keys. */ -type PaginatedQuery = { +export type PaginatedQuery = { 'page[number]'?: number; 'page[size]'?: number; }; diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index b80e8869..e3b9e74e 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -795,10 +795,16 @@ export interface paths { path?: never; cookie?: never; }; - /** List custom field definitions */ + /** + * List custom field definition templates + * @description Lists the Terminal49 template definitions. To list the definitions configured for your account, use `GET /accounts/{account_id}/custom_field_definitions`. The list is not paginated. The API ignores `page[number]` and `page[size]` and returns every row, but still sends pagination `links`. Do not follow `links.next`. + */ get: operations["get-custom-field-definitions"]; put?: never; - /** Create a custom field definition */ + /** + * Create a custom field definition template + * @description Creates a Terminal49 template definition. Only Terminal49 accounts can create templates; other accounts receive 401. To create a definition for your account, use `POST /accounts/{account_id}/custom_field_definitions`. + */ post: operations["post-custom-field-definitions"]; delete?: never; options?: never; @@ -822,7 +828,7 @@ export interface paths { post?: never; /** * Delete a custom field definition - * @description Deletes a custom field definition. A definition that has values, or a template other accounts use, returns 422; archive it instead. + * @description Deletes a custom field definition. A definition that has values returns 422; archive it instead. Templates are Terminal49-managed: other accounts get 401 when they update or delete one, so only Terminal49 accounts can see the 422 for a template that other accounts use. */ delete: operations["delete-custom-field-definitions-id"]; options?: never; @@ -841,7 +847,10 @@ export interface paths { }; cookie?: never; }; - /** List custom field options */ + /** + * List custom field options + * @description Lists every option of the definition. The list is not paginated. The API ignores `page[number]` and `page[size]` and returns every row, but still sends pagination `links`. Do not follow `links.next`. + */ get: operations["get-custom-field-options"]; put?: never; /** Create a custom field option */ @@ -883,7 +892,10 @@ export interface paths { path?: never; cookie?: never; }; - /** List custom fields */ + /** + * List custom fields + * @description The list is not paginated. The API ignores `page[number]` and `page[size]` and returns every row, but still sends pagination `links`. Do not follow `links.next`. + */ get: operations["get-custom-fields"]; put?: never; /** Create a custom field */ @@ -1394,6 +1406,33 @@ export interface paths { patch: operations["patch-tracking-request-cancel"]; trace?: never; }; + "/accounts/{account_id}/custom_field_definitions": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Your account ID. The API always uses the account of the authenticated user. */ + account_id: string; + }; + cookie?: never; + }; + /** + * List custom field definitions + * @description Lists the custom field definitions configured for your account. The list is not paginated. The API ignores `page[number]` and `page[size]` and returns every row, but still sends pagination `links`. Do not follow `links.next`. + */ + get: operations["get-account-custom-field-definitions"]; + put?: never; + /** + * Create a custom field definition + * @description Creates a custom field definition for your account. Pass `template_id` to copy a Terminal49 template; attributes you send override the template's values. + */ + post: operations["post-account-custom-field-definitions"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/me": { parameters: { query?: never; @@ -2772,8 +2811,11 @@ export interface components { /** @enum {string} */ type: "custom_field_definition"; attributes?: { - /** @enum {string} */ - entity_type: "Shipment" | "Container" | "TrackingRequest"; + /** + * @description The entity type this definition applies to. `Cargo` means containers. + * @enum {string} + */ + entity_type: "Shipment" | "Cargo"; api_slug: string; display_name: string; description?: string | null; @@ -2785,6 +2827,56 @@ export interface components { } | null; default_format?: string | null; default_value?: components["schemas"]["custom_field_value"]; + /** @description Whether values are reference numbers. Terminal49 indexes reference-number values on account definitions for global search and document matching. */ + reference_number?: boolean; + /** @description Whether the field is sensitive. Sensitive fields are hidden from recipients of externally shared container views. */ + sensitive?: boolean; + /** @description Whether users can add a new option while entering an `enum` or `enum_multi` value in the Terminal49 app. */ + inline_option_creation?: boolean; + /** + * Format: uuid + * @description ID of the Terminal49 template this definition was copied from. + */ + template_id?: string | null; + /** @description Whether any entity has a value for this definition. */ + has_data?: boolean; + /** Format: date-time */ + created_at?: string; + /** Format: date-time */ + updated_at?: string; + /** + * Format: date-time + * @description When the definition was archived. + */ + discarded_at?: string | null; + }; + relationships?: { + /** @description The owning account. `null` for Terminal49 templates. */ + account?: { + data?: { + /** Format: uuid */ + id: string; + /** @enum {string} */ + type: "account"; + } | null; + }; + /** @description The user who created the definition. */ + created_by?: { + data?: { + /** Format: uuid */ + id: string; + /** @enum {string} */ + type: "user"; + } | null; + }; + options?: { + data?: { + /** Format: uuid */ + id: string; + /** @enum {string} */ + type: "custom_field_option"; + }[]; + }; }; }; /** Custom field option */ @@ -4430,7 +4522,10 @@ export interface operations { }; "get-tracking-requests-custom-fields": { parameters: { - query?: never; + query?: { + /** @description Comma-separated relationships to include: `definition`, `entity`, `updated_by`. */ + include?: string; + }; header?: never; path: { /** @description Tracking request ID */ @@ -4450,6 +4545,7 @@ export interface operations { data?: components["schemas"]["custom_field"][]; links?: components["schemas"]["links"]; meta?: components["schemas"]["meta"]; + included?: (components["schemas"]["custom_field_definition"] | components["schemas"]["shipment"] | components["schemas"]["container"] | components["schemas"]["tracking_request"] | components["schemas"]["user"])[]; }; }; }; @@ -6684,10 +6780,8 @@ export interface operations { "get-custom-field-definitions": { parameters: { query?: { - "page[number]"?: number; - "page[size]"?: number; - /** @description Filter by entity type (Shipment or Container) */ - "filter[entity_type]"?: string; + /** @description Filter by entity type. `Cargo` means containers. */ + "filter[entity_type]"?: "Shipment" | "Cargo"; /** @description Filter by data type */ "filter[data_type]"?: string; /** @description Filter by display name (prefix match) */ @@ -6708,7 +6802,6 @@ export interface operations { "application/json": { data?: components["schemas"]["custom_field_definition"][]; links?: components["schemas"]["links"]; - meta?: components["schemas"]["meta"]; }; }; }; @@ -6728,8 +6821,11 @@ export interface operations { /** @enum {string} */ type: "custom_field_definition"; attributes: { - /** @enum {string} */ - entity_type: "Shipment" | "Container"; + /** + * @description `Cargo` means containers. + * @enum {string} + */ + entity_type: "Shipment" | "Cargo"; api_slug: string; display_name: string; description?: string | null; @@ -6741,6 +6837,21 @@ export interface operations { } | null; default_format?: string | null; default_value?: components["schemas"]["custom_field_value"]; + /** + * @description Whether values are reference numbers. Terminal49 indexes reference-number values on account definitions for global search and document matching. + * @default false + */ + reference_number?: boolean; + /** + * @description Whether the field is sensitive. Sensitive fields are hidden from recipients of externally shared container views. + * @default false + */ + sensitive?: boolean; + /** + * @description Whether users can add a new option while entering an `enum` or `enum_multi` value in the Terminal49 app. + * @default false + */ + inline_option_creation?: boolean; }; }; }; @@ -6759,6 +6870,8 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 422: components["responses"]["UnprocessableEntity"]; }; }; "get-custom-field-definitions-id": { @@ -6827,14 +6940,17 @@ export interface operations { data?: { /** @enum {string} */ type: "custom_field_definition"; + /** @description The attributes the API updates. It ignores any other attribute, such as `data_type`, `validation` or `default_value`, and still returns 200. */ attributes: { display_name?: string; description?: string | null; - validation?: { - [key: string]: unknown; - } | null; default_format?: string | null; - default_value?: components["schemas"]["custom_field_value"]; + /** @description Whether values are reference numbers. Terminal49 indexes reference-number values on account definitions for global search and document matching. */ + reference_number?: boolean; + /** @description Whether the field is sensitive. Sensitive fields are hidden from recipients of externally shared container views. */ + sensitive?: boolean; + /** @description Whether users can add a new option while entering an `enum` or `enum_multi` value in the Terminal49 app. */ + inline_option_creation?: boolean; }; }; }; @@ -6878,7 +6994,6 @@ export interface operations { "application/json": { data?: components["schemas"]["custom_field_option"][]; links?: components["schemas"]["links"]; - meta?: components["schemas"]["meta"]; }; }; }; @@ -7026,10 +7141,8 @@ export interface operations { "get-custom-fields": { parameters: { query?: { - "page[number]"?: number; - "page[size]"?: number; - /** @description Filter by entity type (Shipment or Container) */ - "filter[entity_type]"?: string; + /** @description Filter by entity type. The value must match exactly: `Shipment`, `Cargo` (containers) or `TrackingRequest`. */ + "filter[entity_type]"?: "Shipment" | "Cargo" | "TrackingRequest"; /** @description Filter by entity ID */ "filter[entity_id]"?: string; /** @description Filter by custom field definition ID */ @@ -7050,7 +7163,6 @@ export interface operations { "application/json": { data?: components["schemas"]["custom_field"][]; links?: components["schemas"]["links"]; - meta?: components["schemas"]["meta"]; }; }; }; @@ -7096,7 +7208,7 @@ export interface operations { entity?: { data?: { /** @enum {string} */ - type: "shipment" | "container"; + type: "shipment" | "container" | "tracking_request"; /** Format: uuid */ id: string; }; @@ -7212,7 +7324,10 @@ export interface operations { }; "get-shipments-custom-fields": { parameters: { - query?: never; + query?: { + /** @description Comma-separated relationships to include: `definition`, `entity`, `updated_by`. */ + include?: string; + }; header?: never; path: { /** @description Shipment ID */ @@ -7232,6 +7347,7 @@ export interface operations { data?: components["schemas"]["custom_field"][]; links?: components["schemas"]["links"]; meta?: components["schemas"]["meta"]; + included?: (components["schemas"]["custom_field_definition"] | components["schemas"]["shipment"] | components["schemas"]["container"] | components["schemas"]["tracking_request"] | components["schemas"]["user"])[]; }; }; }; @@ -7527,7 +7643,10 @@ export interface operations { }; "get-containers-custom-fields": { parameters: { - query?: never; + query?: { + /** @description Comma-separated relationships to include: `definition`, `entity`, `updated_by`. */ + include?: string; + }; header?: never; path: { /** @description Container ID */ @@ -7547,6 +7666,7 @@ export interface operations { data?: components["schemas"]["custom_field"][]; links?: components["schemas"]["links"]; meta?: components["schemas"]["meta"]; + included?: (components["schemas"]["custom_field_definition"] | components["schemas"]["shipment"] | components["schemas"]["container"] | components["schemas"]["tracking_request"] | components["schemas"]["user"])[]; }; }; }; @@ -8802,6 +8922,114 @@ export interface operations { }; }; }; + "get-account-custom-field-definitions": { + parameters: { + query?: { + /** @description Filter by entity type. `Cargo` means containers. */ + "filter[entity_type]"?: "Shipment" | "Cargo"; + /** @description Filter by data type */ + "filter[data_type]"?: string; + /** @description Filter by display name (prefix match) */ + "filter[display_name]"?: string; + }; + header?: never; + path: { + /** @description Your account ID. The API always uses the account of the authenticated user. */ + account_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + data?: components["schemas"]["custom_field_definition"][]; + links?: components["schemas"]["links"]; + }; + }; + }; + }; + }; + "post-account-custom-field-definitions": { + parameters: { + query?: never; + header?: never; + path: { + /** @description Your account ID. The API always uses the account of the authenticated user. */ + account_id: string; + }; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": { + data?: { + /** @enum {string} */ + type: "custom_field_definition"; + /** @description Send `template_id`, or all of `entity_type`, `api_slug`, `display_name` and `data_type`. With `template_id`, the template supplies any of those four you leave out. */ + attributes: { + /** + * @description `Cargo` means containers. + * @enum {string} + */ + entity_type?: "Shipment" | "Cargo"; + api_slug?: string; + display_name?: string; + description?: string | null; + /** @enum {string} */ + data_type?: "short_text" | "number" | "date" | "datetime" | "boolean" | "enum" | "enum_multi" | "reference"; + reference_type?: string | null; + validation?: { + [key: string]: unknown; + } | null; + default_format?: string | null; + default_value?: components["schemas"]["custom_field_value"]; + /** + * Format: uuid + * @description ID of a Terminal49 template definition to copy. + */ + template_id?: string; + /** + * @description Whether values are reference numbers. Terminal49 indexes reference-number values on account definitions for global search and document matching. + * @default false + */ + reference_number?: boolean; + /** + * @description Whether the field is sensitive. Sensitive fields are hidden from recipients of externally shared container views. + * @default false + */ + sensitive?: boolean; + /** + * @description Whether users can add a new option while entering an `enum` or `enum_multi` value in the Terminal49 app. + * @default false + */ + inline_option_creation?: boolean; + }; + }; + }; + }; + }; + responses: { + /** @description Created */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + data?: components["schemas"]["custom_field_definition"]; + links?: components["schemas"]["link-self"]; + }; + }; + }; + 422: components["responses"]["UnprocessableEntity"]; + }; + }; "get-me": { parameters: { query?: never; From 7549b83ac4bfd69d776904e20536038205df00be Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Wed, 14 Oct 2026 16:44:07 -0700 Subject: [PATCH 11/20] docs(openapi)!: edit documents with document_type, not document_type_manual DocumentsController#update_params permits only extracted_data_manual, document_type and classification_notes, so document_type_manual was dropped silently. Setting document_type marks document_type_source as customer. The document schema now lists document_type_source, which the serializer emits, instead of document_type_manual, which it never did. Validation failures return 422. Types are regenerated. documents.update sends its documentTypeManual value as document_type, so the override now takes effect. BREAKING CHANGE: in the exported `paths` type from @terminal49/sdk, PATCH /documents/{id} takes `document_type` instead of `document_type_manual`, and document responses replace `document_type_manual` with `document_type_source`. Co-Authored-By: Claude Opus 5.5 --- docs/openapi.json | 25 ++++++++++++++----- .../src/client.write-endpoints.test.ts | 2 +- .../src/client/managers/documents.ts | 2 +- .../src/generated/terminal49.ts | 18 ++++++++----- 4 files changed, 33 insertions(+), 14 deletions(-) diff --git a/docs/openapi.json b/docs/openapi.json index 3eb98c63..12d742fa 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -13655,7 +13655,7 @@ }, "patch": { "summary": "Edit a document", - "description": "Updates manual extraction and classification fields.", + "description": "Updates the document type, classification notes, and manual extraction data.", "tags": [ "Documents" ], @@ -13693,9 +13693,14 @@ "attributes": { "type": "object", "properties": { - "document_type_manual": { + "document_type": { "type": "string", - "description": "Manually override the document type." + "description": "Document type code. Must be one of the codes from `GET /documents/types`. Setting it marks `document_type_source` as `customer`. The API does not validate unknown codes as a 422; it currently returns 500 for them." + }, + "classification_notes": { + "type": "string", + "nullable": true, + "description": "Notes about how the document was classified." }, "extracted_data_manual": { "type": "object", @@ -13790,6 +13795,9 @@ } } } + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } }, "operationId": "patch-documents-id" @@ -19484,12 +19492,17 @@ "type": "string" }, "document_type": { - "description": "System-classified document type.", + "description": "Document type code. See `GET /documents/types` for allowed values.", "type": "string" }, - "document_type_manual": { - "description": "Document type set manually by a user, when available.", + "document_type_source": { + "description": "Who set `document_type`: `customer` (set through the API or app), `admin` (Terminal49 staff) or `llm` (automatic classification).", "type": "string", + "enum": [ + "customer", + "admin", + "llm" + ], "nullable": true }, "classification_notes": { diff --git a/sdks/typescript-sdk/src/client.write-endpoints.test.ts b/sdks/typescript-sdk/src/client.write-endpoints.test.ts index af5ba5ac..007746e9 100644 --- a/sdks/typescript-sdk/src/client.write-endpoints.test.ts +++ b/sdks/typescript-sdk/src/client.write-endpoints.test.ts @@ -219,7 +219,7 @@ describe('documents', () => { data: { type: 'document', attributes: { - document_type_manual: 'bill_of_lading', + document_type: 'bill_of_lading', extracted_data_manual: null, }, }, diff --git a/sdks/typescript-sdk/src/client/managers/documents.ts b/sdks/typescript-sdk/src/client/managers/documents.ts index 6bf114a4..88f635d1 100644 --- a/sdks/typescript-sdk/src/client/managers/documents.ts +++ b/sdks/typescript-sdk/src/client/managers/documents.ts @@ -121,7 +121,7 @@ export class DocumentManager extends BaseManager { ): Promise { const attributes: DocumentUpdateAttributes = {}; if (params.documentTypeManual !== undefined) { - attributes.document_type_manual = params.documentTypeManual; + attributes.document_type = params.documentTypeManual; } if (params.extractedDataManual !== undefined) { attributes.extracted_data_manual = params.extractedDataManual; diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index e3b9e74e..f227b8d9 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -1204,7 +1204,7 @@ export interface paths { head?: never; /** * Edit a document - * @description Updates manual extraction and classification fields. + * @description Updates the document type, classification notes, and manual extraction data. */ patch: operations["patch-documents-id"]; trace?: never; @@ -3062,10 +3062,13 @@ export interface components { id?: string; /** @description Display name of the document. */ name?: string; - /** @description System-classified document type. */ + /** @description Document type code. See `GET /documents/types` for allowed values. */ document_type?: string; - /** @description Document type set manually by a user, when available. */ - document_type_manual?: string | null; + /** + * @description Who set `document_type`: `customer` (set through the API or app), `admin` (Terminal49 staff) or `llm` (automatic classification). + * @enum {string|null} + */ + document_type_source?: "customer" | "admin" | "llm" | null; /** @description Additional notes captured during document classification. */ classification_notes?: string | null; /** @@ -8304,8 +8307,10 @@ export interface operations { /** @enum {string} */ type: "document"; attributes: { - /** @description Manually override the document type. */ - document_type_manual?: string; + /** @description Document type code. Must be one of the codes from `GET /documents/types`. Setting it marks `document_type_source` as `customer`. The API does not validate unknown codes as a 422; it currently returns 500 for them. */ + document_type?: string; + /** @description Notes about how the document was classified. */ + classification_notes?: string | null; /** @description Manually provide extracted key/value data. Set to null to clear manual values. */ extracted_data_manual?: { [key: string]: unknown; @@ -8340,6 +8345,7 @@ export interface operations { }; }; }; + 422: components["responses"]["UnprocessableEntity"]; }; }; "get-documents-id-download_url": { From 19393f7334ed10d5682f9dbc6afb9b57db8adbe3 Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Wed, 14 Oct 2026 16:45:48 -0700 Subject: [PATCH 12/20] docs(openapi)!: document 404 on every lookup by path parameter ApiBaseController rescues ActiveRecord::RecordNotFound with a JSON:API 404 for every action, and staging returned that body for GET /terminals/{id} and GET /webhooks/{id}, which documented no 404. Reference the shared NotFound response from each operation that takes a path parameter and lacked one. GET /metro_areas/{id} is the exception: an unknown id returns 200 with null data. Its data is a oneOf of metro_area and a null-only schema, because OpenAPI 3.0 `nullable` beside a $ref still requires the referenced object, and examples show both responses. Types are regenerated. BREAKING CHANGE: GET /metro_areas/{id} `data` in the exported `paths` type from @terminal49/sdk may be null. Co-Authored-By: Claude Opus 5.5 --- ...etro-area-using-the-unlocode-or-the-id.mdx | 4 +- docs/openapi.json | 268 +++++++++++++++++- .../src/generated/terminal49.ts | 106 ++++++- 3 files changed, 353 insertions(+), 25 deletions(-) diff --git a/docs/api-docs/api-reference/metro-areas/get-a-metro-area-using-the-unlocode-or-the-id.mdx b/docs/api-docs/api-reference/metro-areas/get-a-metro-area-using-the-unlocode-or-the-id.mdx index 2e6b378d..5438be8f 100644 --- a/docs/api-docs/api-reference/metro-areas/get-a-metro-area-using-the-unlocode-or-the-id.mdx +++ b/docs/api-docs/api-reference/metro-areas/get-a-metro-area-using-the-unlocode-or-the-id.mdx @@ -4,4 +4,6 @@ description: "Retrieve a single metro area from the Terminal49 API by metro area og:title: Get Metro Area by UNLOCODE or ID | Terminal49 API og:description: Retrieve detailed metro area information using the UNLOCODE or ID, enhancing geographic data management with Terminal49's API. openapi: get /metro_areas/{id} ---- \ No newline at end of file +--- + +Pass a metro area ID or a UN/LOCODE. An unknown ID or UN/LOCODE returns status `200` with `data: null`, not `404`. diff --git a/docs/openapi.json b/docs/openapi.json index 12d742fa..9007d736 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -1387,6 +1387,9 @@ } } }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, "404": { "description": "Not Found", "content": { @@ -1500,9 +1503,21 @@ } } } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } }, - "description": "Update a shipment", + "description": "Update a shipment.", "tags": [ "Shipments" ], @@ -2990,6 +3005,9 @@ "400": { "$ref": "#/components/responses/BadRequest" }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, "404": { "description": "Not Found", "content": { @@ -3022,7 +3040,7 @@ } }, "operationId": "get-track-request-by-id", - "description": "Get the details and status of an existing tracking request. ", + "description": "Get the details and status of an existing tracking request.", "tags": [ "Tracking Requests" ], @@ -3057,11 +3075,17 @@ } } }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, "422": { "$ref": "#/components/responses/UnprocessableEntity" } }, - "description": "Update a tracking request", + "description": "Update a tracking request.", "tags": [ "Tracking Requests" ], @@ -3166,6 +3190,12 @@ } } } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "parameters": [ @@ -3204,6 +3234,9 @@ } } }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, "404": { "$ref": "#/components/responses/NotFound" }, @@ -3309,6 +3342,12 @@ } } }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, "422": { "$ref": "#/components/responses/UnprocessableEntity" } @@ -3360,6 +3399,12 @@ "responses": { "204": { "description": "No Content" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" } } } @@ -3395,10 +3440,16 @@ } } } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "operationId": "get-webhooks-id", - "description": "Get the details of a single webhook" + "description": "Get the details of a single webhook." }, "patch": { "summary": "Edit a webhook", @@ -3419,11 +3470,17 @@ } } }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, "422": { "$ref": "#/components/responses/UnprocessableEntity" } }, - "description": "Update a single webhook", + "description": "Update a single webhook.", "tags": [ "Webhooks" ], @@ -3554,11 +3611,14 @@ "204": { "description": "No Content" }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, "404": { "$ref": "#/components/responses/NotFound" } }, - "description": "Delete a webhook", + "description": "Delete a webhook.", "tags": [ "Webhooks" ] @@ -4642,10 +4702,15 @@ } } } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "operationId": "get-webhook-notification-id", - "description": "\n", "tags": [ "Webhook Notifications" ], @@ -8483,6 +8548,9 @@ } } }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, "404": { "$ref": "#/components/responses/NotFound" } @@ -9012,6 +9080,9 @@ } } } + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "operationId": "get-containers-id-raw_events", @@ -9342,6 +9413,9 @@ } } } + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "operationId": "get-containers-id-transport_events", @@ -9834,6 +9908,9 @@ } } }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, "403": { "description": "Forbidden - This API endpoint is not enabled for your account. Please contact support@terminal49.com", "content": { @@ -9866,6 +9943,9 @@ } } }, + "404": { + "$ref": "#/components/responses/NotFound" + }, "429": { "description": "Too Many Requests - You've hit the refresh limit. Please try again in a minute.", "content": { @@ -9974,6 +10054,9 @@ } } } + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "operationId": "get-shipping_lines-id", @@ -9998,14 +10081,49 @@ ], "responses": { "200": { - "description": "OK", + "description": "OK. An unknown id or UN/LOCODE returns `data: null` with status 200, not 404.", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { - "$ref": "#/components/schemas/metro_area" + "oneOf": [ + { + "$ref": "#/components/schemas/metro_area" + }, + { + "type": "object", + "nullable": true, + "enum": [ + null + ] + } + ] + } + } + }, + "examples": { + "Metro area": { + "value": { + "data": { + "id": "13a8bea0-36e7-4186-a9a0-5fc4f94ccdd9", + "type": "metro_area", + "attributes": { + "name": "Los Angeles", + "state_abbr": "CA", + "code": "USLAX", + "latitude": "34.0522342", + "longitude": "-118.2436849", + "country_code": "US", + "time_zone": "America/Los_Angeles" + } + } + } + }, + "Unknown id": { + "value": { + "data": null } } } @@ -10048,6 +10166,9 @@ } } } + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "operationId": "get-port-id", @@ -10143,6 +10264,9 @@ } } } + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "operationId": "get-vessels-id", @@ -10238,6 +10362,9 @@ } } } + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "operationId": "get-vessels-imo", @@ -10318,6 +10445,9 @@ } } } + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "operationId": "get-vessels-id-future-positions", @@ -10419,6 +10549,9 @@ } } } + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "operationId": "get-vessels-id-future-positions-with-coordinates", @@ -10496,6 +10629,9 @@ } } } + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "operationId": "get-terminal-id", @@ -10910,6 +11046,9 @@ } } } + }, + "404": { + "$ref": "#/components/responses/NotFound" } } }, @@ -10941,6 +11080,9 @@ "401": { "$ref": "#/components/responses/Unauthorized" }, + "404": { + "$ref": "#/components/responses/NotFound" + }, "422": { "$ref": "#/components/responses/UnprocessableEntity" } @@ -11063,6 +11205,9 @@ } } } + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "description": "Lists every option of the definition. The list is not paginated. The API ignores `page[number]` and `page[size]` and returns every row, but still sends pagination `links`. Do not follow `links.next`." @@ -11095,6 +11240,9 @@ "401": { "$ref": "#/components/responses/Unauthorized" }, + "404": { + "$ref": "#/components/responses/NotFound" + }, "422": { "$ref": "#/components/responses/UnprocessableEntity" } @@ -11194,6 +11342,9 @@ }, "401": { "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" } } }, @@ -11225,6 +11376,9 @@ "401": { "$ref": "#/components/responses/Unauthorized" }, + "404": { + "$ref": "#/components/responses/NotFound" + }, "422": { "$ref": "#/components/responses/UnprocessableEntity" } @@ -11510,6 +11664,9 @@ } } } + }, + "404": { + "$ref": "#/components/responses/NotFound" } } }, @@ -11538,6 +11695,12 @@ } } }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, "422": { "$ref": "#/components/responses/UnprocessableEntity" } @@ -11590,6 +11753,9 @@ "204": { "description": "No Content" }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, "404": { "$ref": "#/components/responses/NotFound" } @@ -11660,6 +11826,12 @@ } } } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "parameters": [ @@ -11698,6 +11870,9 @@ } } }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, "404": { "$ref": "#/components/responses/NotFound" }, @@ -11803,6 +11978,12 @@ } } }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, "422": { "$ref": "#/components/responses/UnprocessableEntity" } @@ -11854,6 +12035,12 @@ "responses": { "204": { "description": "No Content" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" } } } @@ -12343,6 +12530,12 @@ } } } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "parameters": [ @@ -12381,6 +12574,9 @@ } } }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, "404": { "$ref": "#/components/responses/NotFound" }, @@ -12486,6 +12682,12 @@ } } }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, "422": { "$ref": "#/components/responses/UnprocessableEntity" } @@ -12537,6 +12739,12 @@ "responses": { "204": { "description": "No Content" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" } } } @@ -13001,16 +13209,22 @@ } } } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" } }, "operationId": "get-parties-id", - "description": "Returns a party by it's given identifier", + "description": "Returns a party by it's given identifier.", "tags": [ "Parties" ] }, "patch": { - "description": "Updates a party", + "description": "Updates a party.", "operationId": "edit-party", "responses": { "200": { @@ -13031,6 +13245,12 @@ } } }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, "422": { "description": "Unprocessable Entity", "content": { @@ -15067,6 +15287,32 @@ } } }, + "404": { + "description": "`template_id` does not match a Terminal49 template.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/error" + } + } + } + }, + "example": { + "errors": [ + { + "status": "404", + "title": "Not Found" + } + ] + } + } + } + }, "422": { "$ref": "#/components/responses/UnprocessableEntity" } diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index f227b8d9..a499373b 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -46,7 +46,7 @@ export interface paths { head?: never; /** * Edit a shipment - * @description Update a shipment + * @description Update a shipment. */ patch: operations["patch-shipments-id"]; trace?: never; @@ -169,7 +169,7 @@ export interface paths { head?: never; /** * Edit a tracking request - * @description Update a tracking request + * @description Update a tracking request. */ patch: operations["patch-track-request-by-id"]; trace?: never; @@ -229,21 +229,21 @@ export interface paths { }; /** * Get single webhook - * @description Get the details of a single webhook + * @description Get the details of a single webhook. */ get: operations["get-webhooks-id"]; put?: never; post?: never; /** * Delete a webhook - * @description Delete a webhook + * @description Delete a webhook. */ delete: operations["delete-webhooks-id"]; options?: never; head?: never; /** * Edit a webhook - * @description Update a single webhook + * @description Update a single webhook. */ patch: operations["patch-webhooks-id"]; trace?: never; @@ -303,10 +303,7 @@ export interface paths { }; cookie?: never; }; - /** - * Get a single webhook notification - * @description - */ + /** Get a single webhook notification */ get: operations["get-webhook-notification-id"]; put?: never; post?: never; @@ -1129,14 +1126,14 @@ export interface paths { }; cookie?: never; }; - /** @description Returns a party by it's given identifier */ + /** @description Returns a party by it's given identifier. */ get: operations["get-parties-id"]; put?: never; post?: never; delete?: never; options?: never; head?: never; - /** @description Updates a party */ + /** @description Updates a party. */ patch: operations["edit-party"]; trace?: never; }; @@ -3979,6 +3976,7 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; /** @description Not Found */ 404: { headers: { @@ -4044,6 +4042,10 @@ export interface operations { }; }; }; + 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; + 422: components["responses"]["UnprocessableEntity"]; }; }; "patch-shipments-id-stop-tracking": { @@ -4468,6 +4470,7 @@ export interface operations { }; }; 400: components["responses"]["BadRequest"]; + 401: components["responses"]["Unauthorized"]; /** @description Not Found */ 404: { headers: { @@ -4520,6 +4523,8 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; 422: components["responses"]["UnprocessableEntity"]; }; }; @@ -4552,6 +4557,8 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; }; }; "post-tracking-requests-custom-fields": { @@ -4602,6 +4609,7 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; 404: components["responses"]["NotFound"]; 422: components["responses"]["UnprocessableEntity"]; }; @@ -4627,6 +4635,8 @@ export interface operations { }; content?: never; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; }; }; "patch-tracking-requests-custom-fields-api-slug": { @@ -4667,6 +4677,8 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; 422: components["responses"]["UnprocessableEntity"]; }; }; @@ -4692,6 +4704,8 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; }; }; "delete-webhooks-id": { @@ -4712,6 +4726,7 @@ export interface operations { }; content?: never; }; + 401: components["responses"]["Unauthorized"]; 404: components["responses"]["NotFound"]; }; }; @@ -4764,6 +4779,8 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; 422: components["responses"]["UnprocessableEntity"]; }; }; @@ -4905,6 +4922,8 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; }; }; "get-webhook-notifications": { @@ -6148,6 +6167,7 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; 404: components["responses"]["NotFound"]; }; }; @@ -6211,6 +6231,7 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; }; }; "get-containers-id-transport_events": { @@ -6241,6 +6262,7 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; }; }; "get-containers-id-map-geojson": { @@ -6342,6 +6364,7 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; /** @description Forbidden - This API endpoint is not enabled for your account. Please contact support@terminal49.com */ 403: { headers: { @@ -6360,6 +6383,7 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; /** @description Too Many Requests - You've hit the refresh limit. Please try again in a minute. */ 429: { headers: { @@ -6427,6 +6451,7 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; }; }; "get-metro-area-id": { @@ -6440,14 +6465,14 @@ export interface operations { }; requestBody?: never; responses: { - /** @description OK */ + /** @description OK. An unknown id or UN/LOCODE returns `data: null` with status 200, not 404. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { - data?: components["schemas"]["metro_area"]; + data?: components["schemas"]["metro_area"] | (never | null); }; }; }; @@ -6475,6 +6500,7 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; }; }; "get-vessels-id": { @@ -6523,6 +6549,7 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; }; }; "get-vessels-imo": { @@ -6571,6 +6598,7 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; }; }; "get-vessels-id-future-positions": { @@ -6622,6 +6650,7 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; }; }; "get-vessels-id-future-positions-with-coordinates": { @@ -6677,6 +6706,7 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; }; }; "get-terminal-id": { @@ -6701,6 +6731,7 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; }; }; "list-parties": { @@ -6901,6 +6932,7 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; }; }; "delete-custom-field-definitions-id": { @@ -6973,6 +7005,7 @@ export interface operations { }; }; 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; 422: components["responses"]["UnprocessableEntity"]; }; }; @@ -7000,6 +7033,7 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; }; }; "post-custom-field-options": { @@ -7041,6 +7075,7 @@ export interface operations { }; }; 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; 422: components["responses"]["UnprocessableEntity"]; }; }; @@ -7071,6 +7106,7 @@ export interface operations { }; }; 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; }; }; "delete-custom-field-options-id": { @@ -7138,6 +7174,7 @@ export interface operations { }; }; 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; 422: components["responses"]["UnprocessableEntity"]; }; }; @@ -7262,6 +7299,7 @@ export interface operations { }; }; }; + 404: components["responses"]["NotFound"]; }; }; "delete-custom-fields-id": { @@ -7283,6 +7321,7 @@ export interface operations { }; content?: never; }; + 401: components["responses"]["Unauthorized"]; 404: components["responses"]["NotFound"]; }; }; @@ -7322,6 +7361,8 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; 422: components["responses"]["UnprocessableEntity"]; }; }; @@ -7354,6 +7395,8 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; }; }; "post-shipments-custom-fields": { @@ -7404,6 +7447,7 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; 404: components["responses"]["NotFound"]; 422: components["responses"]["UnprocessableEntity"]; }; @@ -7429,6 +7473,8 @@ export interface operations { }; content?: never; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; }; }; "patch-shipments-custom-fields-api-slug": { @@ -7469,6 +7515,8 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; 422: components["responses"]["UnprocessableEntity"]; }; }; @@ -7673,6 +7721,8 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; }; }; "post-containers-custom-fields": { @@ -7723,6 +7773,7 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; 404: components["responses"]["NotFound"]; 422: components["responses"]["UnprocessableEntity"]; }; @@ -7748,6 +7799,8 @@ export interface operations { }; content?: never; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; }; }; "patch-containers-custom-fields-api-slug": { @@ -7788,6 +7841,8 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; 422: components["responses"]["UnprocessableEntity"]; }; }; @@ -7986,6 +8041,8 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; }; }; "edit-party": { @@ -8027,6 +8084,8 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; /** @description Unprocessable Entity */ 422: { headers: { @@ -9033,6 +9092,27 @@ export interface operations { }; }; }; + /** @description `template_id` does not match a Terminal49 template. */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + /** + * @example { + * "errors": [ + * { + * "status": "404", + * "title": "Not Found" + * } + * ] + * } + */ + "application/json": { + errors?: components["schemas"]["error"][]; + }; + }; + }; 422: components["responses"]["UnprocessableEntity"]; }; }; From 3c90db5645c884431e4be78c08082dd46baefbb7 Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Thu, 15 Oct 2026 15:34:16 -0700 Subject: [PATCH 13/20] docs(openapi): document the container edit attributes and errors PATCH /containers/{id} accepts seal_number, equipment_type, equipment_length, equipment_height, and weight_in_lbs as well as ref_numbers (staging containers_controller.rb UPDATE_PARAMS). Document them with the values the API accepts. equipment_type and equipment_height are the cargo.rb container_type and container_height enum keys, and equipment_length is one of EDITABLE_CONTAINER_LENGTHS. None of the three accepts null, because cargo.rb requires all three once any of them changes. Document the 401 from the policy check, the 404 from the lookup by ID, and the 422 for a changed number, a failed validation, or an unknown enum value. Types and SDK reference pages are regenerated. Co-Authored-By: Claude Opus 5.5 --- docs/openapi.json | 51 ++++++++++++++++++- .../managers/classes/ContainerManager.mdx | 17 ++++--- .../src/generated/terminal49.ts | 14 ++++- 3 files changed, 74 insertions(+), 8 deletions(-) diff --git a/docs/openapi.json b/docs/openapi.json index 9007d736..a11f731d 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -8586,9 +8586,18 @@ } } } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "422": { + "$ref": "#/components/responses/UnprocessableEntity" } }, - "description": "Update a container", + "description": "Update a container's reference numbers, seal number, equipment type, length, and height, or weight. The container number cannot be edited: sending a different `number` returns 422. Equipment type, length, and height are validated together. When any of them changes, all three must have a value, or the request returns 422. A value outside the listed equipment enums also returns 422.", "tags": [ "Containers" ], @@ -8624,6 +8633,46 @@ "type": "string", "example": "REF-12345" } + }, + "seal_number": { + "type": "string", + "nullable": true, + "example": "SEAL1234567" + }, + "equipment_type": { + "type": "string", + "enum": [ + "dry", + "flat_rack", + "open_top", + "reefer", + "tank", + "pallet_wide", + "hard_top" + ] + }, + "equipment_length": { + "type": "integer", + "enum": [ + 20, + 24, + 40, + 45, + 48, + 53 + ] + }, + "equipment_height": { + "type": "string", + "enum": [ + "standard", + "high_cube", + "flexible" + ] + }, + "weight_in_lbs": { + "type": "number", + "nullable": true } } } diff --git a/docs/sdk/reference/client/managers/classes/ContainerManager.mdx b/docs/sdk/reference/client/managers/classes/ContainerManager.mdx index f2c04842..78806caf 100644 --- a/docs/sdk/reference/client/managers/classes/ContainerManager.mdx +++ b/docs/sdk/reference/client/managers/classes/ContainerManager.mdx @@ -342,12 +342,17 @@ Update container attributes such as `ref_numbers`. #### Parameters -| Parameter | Type | -| ------ | ------ | -| `id` | `string` | -| `attrs` | \{ `ref_numbers?`: `string`[]; \} | -| `attrs.ref_numbers?` | `string`[] | -| `options?` | [`CallOptions`](/sdk/reference/types/options/interfaces/CallOptions) | +| Parameter | Type | Description | +| ------ | ------ | ------ | +| `id` | `string` | - | +| `attrs` | \{ `equipment_height?`: `"standard"` \| `"high_cube"` \| `"flexible"`; `equipment_length?`: `20` \| `40` \| `45` \| `24` \| `48` \| `53`; `equipment_type?`: `"dry"` \| `"reefer"` \| `"tank"` \| `"flat_rack"` \| `"open_top"` \| `"pallet_wide"` \| `"hard_top"`; `ref_numbers?`: `string`[]; `seal_number?`: `string` \| `null`; `weight_in_lbs?`: `number` \| `null`; \} | - | +| `attrs.equipment_height?` | `"standard"` \| `"high_cube"` \| `"flexible"` | - | +| `attrs.equipment_length?` | `20` \| `40` \| `45` \| `24` \| `48` \| `53` | - | +| `attrs.equipment_type?` | `"dry"` \| `"reefer"` \| `"tank"` \| `"flat_rack"` \| `"open_top"` \| `"pallet_wide"` \| `"hard_top"` | - | +| `attrs.ref_numbers?` | `string`[] | - | +| `attrs.seal_number?` | `string` \| `null` | **Example** `SEAL1234567` | +| `attrs.weight_in_lbs?` | `number` \| `null` | - | +| `options?` | [`CallOptions`](/sdk/reference/types/options/interfaces/CallOptions) | - | #### Returns diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index a499373b..e5b12ac6 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -454,7 +454,7 @@ export interface paths { head?: never; /** * Edit a container - * @description Update a container + * @description Update a container's reference numbers, seal number, equipment type, length, and height, or weight. The container number cannot be edited: sending a different `number` returns 422. Equipment type, length, and height are validated together. When any of them changes, all three must have a value, or the request returns 422. A value outside the listed equipment enums also returns 422. */ patch: operations["patch-containers-id"]; trace?: never; @@ -6190,6 +6190,15 @@ export interface operations { type: "container"; attributes: { ref_numbers?: string[]; + /** @example SEAL1234567 */ + seal_number?: string | null; + /** @enum {string} */ + equipment_type?: "dry" | "flat_rack" | "open_top" | "reefer" | "tank" | "pallet_wide" | "hard_top"; + /** @enum {integer} */ + equipment_length?: 20 | 24 | 40 | 45 | 48 | 53; + /** @enum {string} */ + equipment_height?: "standard" | "high_cube" | "flexible"; + weight_in_lbs?: number | null; }; }; }; @@ -6207,6 +6216,9 @@ export interface operations { }; }; }; + 401: components["responses"]["Unauthorized"]; + 404: components["responses"]["NotFound"]; + 422: components["responses"]["UnprocessableEntity"]; }; }; "get-containers-id-raw_events": { From 1afdc6f20b797043ffd99ff3589f6ff37daea3b5 Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Thu, 15 Oct 2026 15:35:26 -0700 Subject: [PATCH 14/20] docs(openapi)!: allow null pod_terminal data on containers Staging's ContainerSerializer declares has_one :pod_terminal, and cargos.pod_terminal_id is nullable, so a container with no POD terminal yet is served with relationships.pod_terminal.data: null. The live webhook notification examples run failed schema validation on exactly that. The spec typed the data as an object only, while its sibling pickup_facility already allowed null. Types are regenerated, so the exported container type no longer claims the data is always an object. BREAKING CHANGE: a container's relationships.pod_terminal.data in the exported @terminal49/sdk types becomes nullable, so code that reads it must handle null. Co-Authored-By: Claude Opus 5.5 --- docs/openapi.json | 3 ++- sdks/typescript-sdk/src/generated/terminal49.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/openapi.json b/docs/openapi.json index a11f731d..8940c316 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -16634,7 +16634,8 @@ "terminal" ] } - } + }, + "nullable": true } } }, diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index e5b12ac6..d730903a 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -1799,7 +1799,7 @@ export interface components { id?: string; /** @enum {string} */ type?: "terminal"; - }; + } | null; }; transport_events?: { data?: { From 139d0e850f390a028aead0d701ee4ce004e8dc5d Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Thu, 15 Oct 2026 15:37:36 -0700 Subject: [PATCH 15/20] docs(openapi): give every nullable schema a type OpenAPI 3.0 ignores `nullable` on a schema without `type`, and Ajv refuses to compile one ("nullable" cannot be used without "type"), so Spectral's oas3-valid-media-example rule failed on six request examples that reach custom_field_value. Move `nullable` onto the string branch of custom_field_value. The regenerated types are equivalent: custom_field_value still admits null. Co-Authored-By: Claude Opus 5.5 --- docs/openapi.json | 4 ++-- sdks/typescript-sdk/src/generated/terminal49.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/openapi.json b/docs/openapi.json index 8940c316..ff99b878 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -19066,10 +19066,10 @@ }, "custom_field_value": { "description": "Raw custom field value (type depends on definition)", - "nullable": true, "oneOf": [ { - "type": "string" + "type": "string", + "nullable": true }, { "type": "number" diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index d730903a..619b0773 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -2767,9 +2767,9 @@ export interface components { coordinates: number[]; }; /** @description Raw custom field value (type depends on definition) */ - custom_field_value: (string | number | boolean | string[] | { + custom_field_value: (string | null) | number | boolean | string[] | { [key: string]: unknown; - }) | null; + }; /** Custom field */ custom_field: { /** Format: uuid */ From ce7c3ab43f294212e6e792607861831af39c4ac4 Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Fri, 16 Oct 2026 17:20:03 -0700 Subject: [PATCH 16/20] docs(openapi)!: document the tracking request user relationship and accepted includes V2::TrackingRequestSerializer declares belongs_to :user, so tracking requests carry a user relationship and include=user returns the user. The spec now documents that relationship and the includes the endpoints accept. Types are regenerated. BREAKING CHANGE: in the exported `paths` type from @terminal49/sdk, GET /tracking_requests and GET /tracking_requests/{id} `included` items can be `user`, so an exhaustive switch over the item `type` must handle users. Co-Authored-By: Claude Opus 5.5 --- docs/openapi.json | 32 +++++++++++++++++-- .../src/generated/terminal49.ts | 17 +++++++--- 2 files changed, 43 insertions(+), 6 deletions(-) diff --git a/docs/openapi.json b/docs/openapi.json index ff99b878..d13fb1d7 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -2306,6 +2306,9 @@ } }, "description": "" + }, + { + "$ref": "#/components/schemas/user" } ] } @@ -2442,7 +2445,7 @@ }, "in": "query", "name": "include", - "description": "Comma delimited list of relations to include. 'tracked_object' is included by default." + "description": "Comma-delimited list of relationships to include. Accepted values: `tracked_object`, `customer`, and `user`. `tracked_object` is included by default." }, { "schema": { @@ -2779,6 +2782,9 @@ }, { "$ref": "#/components/schemas/shipping_line" + }, + { + "$ref": "#/components/schemas/user" } ] } @@ -3051,7 +3057,7 @@ }, "in": "query", "name": "include", - "description": "Comma delimited list of relations to include. 'tracked_object' is included by default." + "description": "Comma-delimited list of relationships to include. Accepted values: `tracked_object`, `customer`, and `user`. `tracked_object` is included by default." } ], "x-internal": false @@ -17327,6 +17333,28 @@ } } } + }, + "user": { + "type": "object", + "description": "User who created the tracking request, or `null` when the request has no linked user.", + "properties": { + "data": { + "type": "object", + "nullable": true, + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "user" + ] + } + } + } + } } } } diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index 619b0773..741ac3cc 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -2034,6 +2034,15 @@ export interface components { type?: "account"; } | null; }; + /** @description User who created the tracking request, or `null` when the request has no linked user. */ + user?: { + data?: { + /** Format: uuid */ + id?: string; + /** @enum {string} */ + type?: "user"; + } | null; + }; }; }; /** webhook */ @@ -4124,7 +4133,7 @@ export interface operations { "filter[updated_at][start]"?: string; /** @description filter by tracking_requests `updated_at` before a certain ISO8601 timestamp */ "filter[updated_at][end]"?: string; - /** @description Comma delimited list of relations to include. 'tracked_object' is included by default. */ + /** @description Comma-delimited list of relationships to include. Accepted values: `tracked_object`, `customer`, and `user`. `tracked_object` is included by default. */ include?: string; "page[number]"?: number; "page[size]"?: number; @@ -4157,7 +4166,7 @@ export interface operations { */ self?: string; }; - })[]; + } | components["schemas"]["user"])[]; }; }; }; @@ -4445,7 +4454,7 @@ export interface operations { "get-track-request-by-id": { parameters: { query?: { - /** @description Comma delimited list of relations to include. 'tracked_object' is included by default. */ + /** @description Comma-delimited list of relationships to include. Accepted values: `tracked_object`, `customer`, and `user`. `tracked_object` is included by default. */ include?: string; }; header?: never; @@ -4465,7 +4474,7 @@ export interface operations { content: { "application/json": { data?: components["schemas"]["tracking_request"]; - included?: (components["schemas"]["account"] | components["schemas"]["shipment"] | components["schemas"]["shipping_line"])[]; + included?: (components["schemas"]["account"] | components["schemas"]["shipment"] | components["schemas"]["shipping_line"] | components["schemas"]["user"])[]; }; }; }; From fed8e84ba6ade846e187fb54d3bb8f18d8a057d9 Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Fri, 16 Oct 2026 18:17:36 -0700 Subject: [PATCH 17/20] docs(openapi): document the user-provided MBL and booking numbers on shipment edits V2::ShipmentsController#update accepts user_provided_mbl_number and user_provided_booking_number alongside ref_numbers and tags, but the PATCH /shipments/{id} request body listed only ref_numbers and tags. The spec now documents both string attributes. Types are regenerated. Co-Authored-By: Claude Opus 5.5 --- docs/openapi.json | 10 ++++++++++ sdks/typescript-sdk/src/generated/terminal49.ts | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/docs/openapi.json b/docs/openapi.json index d13fb1d7..327bb2f0 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -1546,6 +1546,16 @@ "type": "string" } }, + "user_provided_mbl_number": { + "type": "string", + "example": "MEDUFR030802", + "description": "Master bill of lading number you provide for the shipment." + }, + "user_provided_booking_number": { + "type": "string", + "example": "BK123456", + "description": "Booking number you provide for the shipment." + }, "tags": { "type": "array", "x-stoplight": { diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index 741ac3cc..d06ef541 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -4032,6 +4032,16 @@ export interface operations { * ] */ ref_numbers?: string[]; + /** + * @description Master bill of lading number you provide for the shipment. + * @example MEDUFR030802 + */ + user_provided_mbl_number?: string; + /** + * @description Booking number you provide for the shipment. + * @example BK123456 + */ + user_provided_booking_number?: string; /** @description Tags related to a shipment */ tags?: string[]; }; From aa1b4e5cb9bf37052ac9945ad9175058a1af4f6c Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Fri, 16 Oct 2026 22:40:04 -0700 Subject: [PATCH 18/20] docs(openapi)!: allow null shipment data on containers Cargo declares belongs_to :shipment with optional: true, so a container with no shipment is served with relationships.shipment.data: null. The Container Updated Event example on GET /webhook_notifications/{id} shows exactly that, and it failed validation against the included container variant. Types are regenerated. BREAKING CHANGE: a container's relationships.shipment.data in the exported @terminal49/sdk types becomes nullable, so code that reads it must handle null. Co-Authored-By: Claude Opus 5.5 --- docs/openapi.json | 3 ++- sdks/typescript-sdk/src/generated/terminal49.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/openapi.json b/docs/openapi.json index 327bb2f0..0e1f8b8a 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -16611,7 +16611,8 @@ "shipment" ] } - } + }, + "nullable": true } } }, diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index d06ef541..28096ae3 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -1785,7 +1785,7 @@ export interface components { id?: string; /** @enum {string} */ type?: "shipment"; - }; + } | null; }; pickup_facility?: { data?: { From b00a12fd8e09899e948dc7540a649a6a367f5915 Mon Sep 17 00:00:00 2001 From: Akshay Dodeja Date: Fri, 16 Oct 2026 22:40:24 -0700 Subject: [PATCH 19/20] docs(openapi)!: allow null entries in shipment ref_numbers shipments.ref_numbers is a Postgres text array, and the shipment update deserializes ref_numbers without checking its entries, so a stored entry can be null and is served as null. The Transport Event example on GET /webhook_notifications/{id} includes a shipment with ref_numbers: [null], and it failed validation against the included shipment variant. Types are regenerated. BREAKING CHANGE: a shipment's attributes.ref_numbers in the exported @terminal49/sdk types becomes (string | null)[], so code that reads an entry must handle null. Co-Authored-By: Claude Opus 5.5 --- docs/openapi.json | 3 ++- sdks/typescript-sdk/src/generated/terminal49.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/openapi.json b/docs/openapi.json index 0e1f8b8a..e94e1d56 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -15949,7 +15949,8 @@ "ref_numbers": { "type": "array", "items": { - "type": "string" + "type": "string", + "nullable": true }, "nullable": true }, diff --git a/sdks/typescript-sdk/src/generated/terminal49.ts b/sdks/typescript-sdk/src/generated/terminal49.ts index 28096ae3..ea1b37c0 100644 --- a/sdks/typescript-sdk/src/generated/terminal49.ts +++ b/sdks/typescript-sdk/src/generated/terminal49.ts @@ -1524,7 +1524,7 @@ export interface components { bill_of_lading_number: string; /** @description The normalized version of the shipment number used for querying the carrier */ normalized_number?: string; - ref_numbers?: string[] | null; + ref_numbers?: (string | null)[] | null; /** Format: date-time */ created_at?: string; tags?: string[]; From a725a8515f4ae49cdaf3b0fe46a3d78733548558 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 17 Oct 2026 06:02:34 +0000 Subject: [PATCH 20/20] chore: Auto-generate Postman collection from openapi.json [skip ci] --- Terminal49-API.postman_collection.json | 17200 +++++++++++++++++------ 1 file changed, 12694 insertions(+), 4506 deletions(-) diff --git a/Terminal49-API.postman_collection.json b/Terminal49-API.postman_collection.json index 165b5c4e..ec0a136f 100644 --- a/Terminal49-API.postman_collection.json +++ b/Terminal49-API.postman_collection.json @@ -5,7 +5,7 @@ "description": "", "item": [ { - "id": "1aad9cb7-a303-4463-99dc-d27b6b101f92", + "id": "b4c5c270-6c48-4cdb-b802-4af0b06f4f49", "name": "List containers", "request": { "name": "List containers", @@ -289,7 +289,7 @@ "type": "text/plain" }, "key": "filter[current_status][]", - "value": "on_rail" + "value": "picked_up" }, { "disabled": true, @@ -1062,7 +1062,7 @@ }, "response": [ { - "id": "e4d2a87c-c18f-41e3-8b82-20d9eabc0341", + "id": "f1274620-1774-4a0e-8ec1-fa1afe2297c7", "name": "OK", "originalRequest": { "url": { @@ -1341,7 +1341,7 @@ "type": "text/plain" }, "key": "filter[current_status][]", - "value": "on_rail" + "value": "picked_up" }, { "disabled": true, @@ -2109,12 +2109,12 @@ "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"container\",\n \"attributes\": {\n \"number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"equipment_type\": \"flat rack\",\n \"equipment_length\": 10,\n \"equipment_height\": null,\n \"weight_in_lbs\": \"\",\n \"created_at\": \"\",\n \"seal_number\": \"\",\n \"pickup_lfd\": \"\",\n \"pickup_appointment_at\": \"\",\n \"availability_known\": \"\",\n \"available_for_pickup\": \"\",\n \"pod_arrived_at\": \"\",\n \"pod_discharged_at\": \"\",\n \"pod_full_out_at\": \"\",\n \"terminal_checked_at\": \"\",\n \"pod_full_out_chassis_number\": \"\",\n \"location_at_pod_terminal\": \"\",\n \"final_destination_full_out_at\": \"\",\n \"empty_terminated_at\": \"\",\n \"holds_at_pod_terminal\": [\n {\n \"name\": \"\",\n \"status\": \"pending\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n }\n ],\n \"fees_at_pod_terminal\": [\n {\n \"type\": \"other\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n },\n {\n \"type\": \"other\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n }\n ],\n \"pod_timezone\": \"\",\n \"final_destination_timezone\": \"\",\n \"empty_terminated_timezone\": \"\",\n \"pod_rail_carrier_scac\": \"\",\n \"ind_rail_carrier_scac\": \"\",\n \"pod_last_tracking_request_at\": \"\",\n \"shipment_last_tracking_request_at\": \"\",\n \"pod_rail_loaded_at\": \"\",\n \"pod_rail_departed_at\": \"\",\n \"ind_eta_at\": \"\",\n \"ind_ata_at\": \"\",\n \"ind_rail_unloaded_at\": \"\",\n \"ind_facility_lfd_on\": \"\",\n \"import_deadlines\": {\n \"pickup_lfd_terminal\": \"\",\n \"pickup_lfd_rail\": \"\",\n \"pickup_lfd_line\": \"\"\n },\n \"current_status\": \"off_dock\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"pickup_facility\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"transport_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n }\n ]\n },\n \"raw_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n }\n ]\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"container\",\n \"attributes\": {\n \"number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"equipment_type\": \"tank\",\n \"equipment_length\": 20,\n \"equipment_height\": \"standard\",\n \"weight_in_lbs\": \"\",\n \"created_at\": \"\",\n \"seal_number\": \"\",\n \"pickup_lfd\": \"\",\n \"pickup_appointment_at\": \"\",\n \"availability_known\": \"\",\n \"available_for_pickup\": \"\",\n \"pod_arrived_at\": \"\",\n \"pod_discharged_at\": \"\",\n \"pod_full_out_at\": \"\",\n \"terminal_checked_at\": \"\",\n \"pod_full_out_chassis_number\": \"\",\n \"location_at_pod_terminal\": \"\",\n \"final_destination_full_out_at\": \"\",\n \"empty_terminated_at\": \"\",\n \"holds_at_pod_terminal\": [\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n }\n ],\n \"fees_at_pod_terminal\": [\n {\n \"type\": \"exam\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n },\n {\n \"type\": \"exam\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n }\n ],\n \"pod_timezone\": \"\",\n \"final_destination_timezone\": \"\",\n \"empty_terminated_timezone\": \"\",\n \"pod_rail_carrier_scac\": \"\",\n \"ind_rail_carrier_scac\": \"\",\n \"pod_last_tracking_request_at\": \"\",\n \"shipment_last_tracking_request_at\": \"\",\n \"pod_rail_loaded_at\": \"\",\n \"pod_rail_departed_at\": \"\",\n \"ind_eta_at\": \"\",\n \"ind_ata_at\": \"\",\n \"ind_rail_unloaded_at\": \"\",\n \"ind_facility_lfd_on\": \"\",\n \"import_deadlines\": {\n \"pickup_lfd_terminal\": \"\",\n \"pickup_lfd_rail\": \"\",\n \"pickup_lfd_line\": \"\"\n },\n \"current_status\": \"empty_returned\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"pickup_facility\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"transport_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n }\n ]\n },\n \"raw_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n }\n ]\n }\n }\n }\n ],\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"all_containers_terminated\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"rail_terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"booking_cancelled\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"metro_area\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n }\n ],\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"container\",\n \"attributes\": {\n \"number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"equipment_type\": null,\n \"equipment_length\": 40,\n \"equipment_height\": \"high_cube\",\n \"weight_in_lbs\": \"\",\n \"created_at\": \"\",\n \"seal_number\": \"\",\n \"pickup_lfd\": \"\",\n \"pickup_appointment_at\": \"\",\n \"availability_known\": \"\",\n \"available_for_pickup\": \"\",\n \"pod_arrived_at\": \"\",\n \"pod_discharged_at\": \"\",\n \"pod_full_out_at\": \"\",\n \"terminal_checked_at\": \"\",\n \"pod_full_out_chassis_number\": \"\",\n \"location_at_pod_terminal\": \"\",\n \"final_destination_full_out_at\": \"\",\n \"empty_terminated_at\": \"\",\n \"holds_at_pod_terminal\": [\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n }\n ],\n \"fees_at_pod_terminal\": [\n {\n \"type\": \"exam\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n },\n {\n \"type\": \"demurrage\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n }\n ],\n \"pod_timezone\": \"\",\n \"final_destination_timezone\": \"\",\n \"empty_terminated_timezone\": \"\",\n \"pod_rail_carrier_scac\": \"\",\n \"ind_rail_carrier_scac\": \"\",\n \"pod_last_tracking_request_at\": \"\",\n \"shipment_last_tracking_request_at\": \"\",\n \"pod_rail_loaded_at\": \"\",\n \"pod_rail_departed_at\": \"\",\n \"ind_eta_at\": \"\",\n \"ind_ata_at\": \"\",\n \"ind_rail_unloaded_at\": \"\",\n \"ind_facility_lfd_on\": \"\",\n \"import_deadlines\": {\n \"pickup_lfd_terminal\": \"\",\n \"pickup_lfd_rail\": \"\",\n \"pickup_lfd_line\": \"\"\n },\n \"current_status\": \"not_available\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"pickup_facility\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"transport_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n }\n ]\n },\n \"raw_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n }\n ]\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"container\",\n \"attributes\": {\n \"number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"equipment_type\": \"tank\",\n \"equipment_length\": 20,\n \"equipment_height\": null,\n \"weight_in_lbs\": \"\",\n \"created_at\": \"\",\n \"seal_number\": \"\",\n \"pickup_lfd\": \"\",\n \"pickup_appointment_at\": \"\",\n \"availability_known\": \"\",\n \"available_for_pickup\": \"\",\n \"pod_arrived_at\": \"\",\n \"pod_discharged_at\": \"\",\n \"pod_full_out_at\": \"\",\n \"terminal_checked_at\": \"\",\n \"pod_full_out_chassis_number\": \"\",\n \"location_at_pod_terminal\": \"\",\n \"final_destination_full_out_at\": \"\",\n \"empty_terminated_at\": \"\",\n \"holds_at_pod_terminal\": [\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n }\n ],\n \"fees_at_pod_terminal\": [\n {\n \"type\": \"extended_dwell_time\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n },\n {\n \"type\": \"extended_dwell_time\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n }\n ],\n \"pod_timezone\": \"\",\n \"final_destination_timezone\": \"\",\n \"empty_terminated_timezone\": \"\",\n \"pod_rail_carrier_scac\": \"\",\n \"ind_rail_carrier_scac\": \"\",\n \"pod_last_tracking_request_at\": \"\",\n \"shipment_last_tracking_request_at\": \"\",\n \"pod_rail_loaded_at\": \"\",\n \"pod_rail_departed_at\": \"\",\n \"ind_eta_at\": \"\",\n \"ind_ata_at\": \"\",\n \"ind_rail_unloaded_at\": \"\",\n \"ind_facility_lfd_on\": \"\",\n \"import_deadlines\": {\n \"pickup_lfd_terminal\": \"\",\n \"pickup_lfd_rail\": \"\",\n \"pickup_lfd_line\": \"\"\n },\n \"current_status\": \"new\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"pickup_facility\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"transport_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n }\n ]\n },\n \"raw_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n }\n ]\n }\n }\n }\n ],\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"past_full_out_window\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"metro_area\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"cancelled_by_user\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"metro_area\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n }\n ],\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "dedccafc-49b1-4852-bd42-a40ccb1659aa", + "id": "35a5bc18-00d4-4b4b-9934-1c56fd4c1388", "name": "Malformed supported filter value, operator, range, or strict boolean. The error identifies the invalid parameter where available.", "originalRequest": { "url": { @@ -2393,7 +2393,7 @@ "type": "text/plain" }, "key": "filter[current_status][]", - "value": "on_rail" + "value": "picked_up" }, { "disabled": true, @@ -3161,7 +3161,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -3172,7 +3172,7 @@ } }, { - "id": "481ae381-5e5f-47d9-9852-f446ea0ac6bb", + "id": "3785d85f-2d51-46a6-b1dd-431fa15ea167", "name": "Summarize containers", "request": { "name": "Summarize containers", @@ -3780,7 +3780,7 @@ }, "response": [ { - "id": "5b25d357-89d1-4ddc-b2bf-71013b8f9865", + "id": "9c4919a0-6b30-4071-bc7e-0d291b33053e", "name": "OK", "originalRequest": { "url": { @@ -4387,12 +4387,12 @@ "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"key\": \"\",\n \"label\": \"\",\n \"count\": \"\"\n },\n {\n \"key\": \"\",\n \"label\": \"\",\n \"count\": \"\"\n }\n ],\n \"meta\": {\n \"total\": \"\",\n \"group_by\": \"pod_terminal\",\n \"truncated\": \"\"\n }\n}", + "body": "{\n \"data\": [\n {\n \"key\": \"\",\n \"label\": \"\",\n \"count\": \"\"\n },\n {\n \"key\": \"\",\n \"label\": \"\",\n \"count\": \"\"\n }\n ],\n \"meta\": {\n \"total\": \"\",\n \"group_by\": \"hold_type\",\n \"truncated\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "a5cd7863-d614-4a11-889f-db351a069084", + "id": "9404ae72-3517-408f-af10-37639b198ea9", "name": "Unknown group_by, or an invalid filter.", "originalRequest": { "url": { @@ -5000,7 +5000,7 @@ } }, { - "id": "d311444f-3e41-488f-9ffc-7e7f0eb743b1", + "id": "428efa0e-ea70-4186-b757-248f5ea5fbaa", "name": "Get a container", "request": { "name": "Get a container", @@ -5052,7 +5052,7 @@ }, "response": [ { - "id": "d6e9a3c0-abae-4861-ad3d-2ef74b1f18df", + "id": "c0d805ca-c731-4051-8a89-00c390bf6f3d", "name": "OK", "originalRequest": { "url": { @@ -5112,74 +5112,13 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"container\",\n \"attributes\": {\n \"number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"equipment_type\": \"flat rack\",\n \"equipment_length\": 10,\n \"equipment_height\": null,\n \"weight_in_lbs\": \"\",\n \"created_at\": \"\",\n \"seal_number\": \"\",\n \"pickup_lfd\": \"\",\n \"pickup_appointment_at\": \"\",\n \"availability_known\": \"\",\n \"available_for_pickup\": \"\",\n \"pod_arrived_at\": \"\",\n \"pod_discharged_at\": \"\",\n \"pod_full_out_at\": \"\",\n \"terminal_checked_at\": \"\",\n \"pod_full_out_chassis_number\": \"\",\n \"location_at_pod_terminal\": \"\",\n \"final_destination_full_out_at\": \"\",\n \"empty_terminated_at\": \"\",\n \"holds_at_pod_terminal\": [\n {\n \"name\": \"\",\n \"status\": \"pending\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n }\n ],\n \"fees_at_pod_terminal\": [\n {\n \"type\": \"demurrage\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n },\n {\n \"type\": \"total\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n }\n ],\n \"pod_timezone\": \"\",\n \"final_destination_timezone\": \"\",\n \"empty_terminated_timezone\": \"\",\n \"pod_rail_carrier_scac\": \"\",\n \"ind_rail_carrier_scac\": \"\",\n \"pod_last_tracking_request_at\": \"\",\n \"shipment_last_tracking_request_at\": \"\",\n \"pod_rail_loaded_at\": \"\",\n \"pod_rail_departed_at\": \"\",\n \"ind_eta_at\": \"\",\n \"ind_ata_at\": \"\",\n \"ind_rail_unloaded_at\": \"\",\n \"ind_facility_lfd_on\": \"\",\n \"import_deadlines\": {\n \"pickup_lfd_terminal\": \"\",\n \"pickup_lfd_rail\": \"\",\n \"pickup_lfd_line\": \"\"\n },\n \"current_status\": \"awaiting_inland_transfer\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"pickup_facility\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"transport_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n }\n ]\n },\n \"raw_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n }\n ]\n }\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"past_arrival_window\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"rail_terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"past_full_out_window\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"metro_area\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n }\n ]\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"container\",\n \"attributes\": {\n \"number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"equipment_type\": \"reefer\",\n \"equipment_length\": 45,\n \"equipment_height\": \"standard\",\n \"weight_in_lbs\": \"\",\n \"created_at\": \"\",\n \"seal_number\": \"\",\n \"pickup_lfd\": \"\",\n \"pickup_appointment_at\": \"\",\n \"availability_known\": \"\",\n \"available_for_pickup\": \"\",\n \"pod_arrived_at\": \"\",\n \"pod_discharged_at\": \"\",\n \"pod_full_out_at\": \"\",\n \"terminal_checked_at\": \"\",\n \"pod_full_out_chassis_number\": \"\",\n \"location_at_pod_terminal\": \"\",\n \"final_destination_full_out_at\": \"\",\n \"empty_terminated_at\": \"\",\n \"holds_at_pod_terminal\": [\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n }\n ],\n \"fees_at_pod_terminal\": [\n {\n \"type\": \"exam\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n },\n {\n \"type\": \"extended_dwell_time\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n }\n ],\n \"pod_timezone\": \"\",\n \"final_destination_timezone\": \"\",\n \"empty_terminated_timezone\": \"\",\n \"pod_rail_carrier_scac\": \"\",\n \"ind_rail_carrier_scac\": \"\",\n \"pod_last_tracking_request_at\": \"\",\n \"shipment_last_tracking_request_at\": \"\",\n \"pod_rail_loaded_at\": \"\",\n \"pod_rail_departed_at\": \"\",\n \"ind_eta_at\": \"\",\n \"ind_ata_at\": \"\",\n \"ind_rail_unloaded_at\": \"\",\n \"ind_facility_lfd_on\": \"\",\n \"import_deadlines\": {\n \"pickup_lfd_terminal\": \"\",\n \"pickup_lfd_rail\": \"\",\n \"pickup_lfd_line\": \"\"\n },\n \"current_status\": \"new\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"pickup_facility\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"transport_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n }\n ]\n },\n \"raw_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n }\n ]\n }\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"past_arrival_window\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"metro_area\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"rail_terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"past_arrival_window\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"rail_terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "67d42640-9d77-4252-932f-4e763f116482", - "name": "Edit a container", - "request": { - "name": "Edit a container", - "description": { - "content": "Update a container", - "type": "text/plain" - }, - "url": { - "path": [ - "containers", - ":id" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "id", - "disabled": false, - "description": { - "content": "(Required) ", - "type": "text/plain" - } - } - ] - }, - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "PATCH", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ]\n },\n \"type\": \"container\",\n \"id\": \"\"\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } }, - "auth": null - }, - "response": [ { - "id": "60c09d34-aad7-4b4d-b3c2-c91544e1bac8", - "name": "OK", + "id": "efa0b8da-1afa-4a63-a965-5a4c95218456", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", "originalRequest": { "url": { "path": [ @@ -5189,7 +5128,17 @@ "host": [ "{{baseUrl}}" ], - "query": [], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma delimited list of relations to include", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], "variable": [ { "disabled": false, @@ -5204,10 +5153,6 @@ ] }, "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" @@ -5221,93 +5166,44 @@ "value": "" } ], - "method": "PATCH", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ]\n },\n \"type\": \"container\",\n \"id\": \"\"\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "method": "GET", + "body": {} }, - "status": "OK", - "code": 200, + "status": "Unauthorized", + "code": 401, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"container\",\n \"attributes\": {\n \"number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"equipment_type\": \"open top\",\n \"equipment_length\": 45,\n \"equipment_height\": null,\n \"weight_in_lbs\": \"\",\n \"created_at\": \"\",\n \"seal_number\": \"\",\n \"pickup_lfd\": \"\",\n \"pickup_appointment_at\": \"\",\n \"availability_known\": \"\",\n \"available_for_pickup\": \"\",\n \"pod_arrived_at\": \"\",\n \"pod_discharged_at\": \"\",\n \"pod_full_out_at\": \"\",\n \"terminal_checked_at\": \"\",\n \"pod_full_out_chassis_number\": \"\",\n \"location_at_pod_terminal\": \"\",\n \"final_destination_full_out_at\": \"\",\n \"empty_terminated_at\": \"\",\n \"holds_at_pod_terminal\": [\n {\n \"name\": \"\",\n \"status\": \"pending\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n }\n ],\n \"fees_at_pod_terminal\": [\n {\n \"type\": \"other\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n },\n {\n \"type\": \"other\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n }\n ],\n \"pod_timezone\": \"\",\n \"final_destination_timezone\": \"\",\n \"empty_terminated_timezone\": \"\",\n \"pod_rail_carrier_scac\": \"\",\n \"ind_rail_carrier_scac\": \"\",\n \"pod_last_tracking_request_at\": \"\",\n \"shipment_last_tracking_request_at\": \"\",\n \"pod_rail_loaded_at\": \"\",\n \"pod_rail_departed_at\": \"\",\n \"ind_eta_at\": \"\",\n \"ind_ata_at\": \"\",\n \"ind_rail_unloaded_at\": \"\",\n \"ind_facility_lfd_on\": \"\",\n \"import_deadlines\": {\n \"pickup_lfd_terminal\": \"\",\n \"pickup_lfd_rail\": \"\",\n \"pickup_lfd_line\": \"\"\n },\n \"current_status\": \"loaded\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"pickup_facility\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"transport_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n }\n ]\n },\n \"raw_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n }\n ]\n }\n }\n }\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "f16b3018-fa01-4eef-94d6-488d0c40f763", - "name": "Get a container's raw events", - "request": { - "name": "Get a container's raw events", - "description": { - "content": "#### Deprecation warning\nThe `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.", - "type": "text/plain" - }, - "url": { - "path": [ - "containers", - ":id", - "raw_events" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "id", - "disabled": false, - "description": { - "content": "(Required) ", - "type": "text/plain" - } - } - ] }, - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "GET", - "body": {}, - "auth": null - }, - "response": [ { - "id": "39f55b71-3a36-4676-a162-797ccb347bb8", - "name": "OK", + "id": "1cec794d-a165-4e6b-bce8-5b34d79e6fee", + "name": "Not Found", "originalRequest": { "url": { "path": [ "containers", - ":id", - "raw_events" + ":id" ], "host": [ "{{baseUrl}}" ], - "query": [], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma delimited list of relations to include", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], "variable": [ { "disabled": false, @@ -5338,15 +5234,15 @@ "method": "GET", "body": {} }, - "status": "OK", - "code": 200, + "status": "Not Found", + "code": 404, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"raw_event\",\n \"attributes\": {\n \"event\": \"vessel_arrived\",\n \"original_event\": \"\",\n \"timestamp\": \"\",\n \"estimated\": \"\",\n \"actual_on\": \"\",\n \"estimated_on\": \"\",\n \"actual_at\": \"\",\n \"estimated_at\": \"\",\n \"timezone\": \"\",\n \"created_at\": \"\",\n \"location_name\": \"\",\n \"location_locode\": \"\",\n \"vessel_name\": \"\",\n \"vessel_imo\": \"\",\n \"index\": \"\",\n \"voyage_number\": \"\"\n },\n \"relationships\": {\n \"location\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"port\"\n }\n },\n \"vessel\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"vessel\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"raw_event\",\n \"attributes\": {\n \"event\": \"rail_unloaded\",\n \"original_event\": \"\",\n \"timestamp\": \"\",\n \"estimated\": \"\",\n \"actual_on\": \"\",\n \"estimated_on\": \"\",\n \"actual_at\": \"\",\n \"estimated_at\": \"\",\n \"timezone\": \"\",\n \"created_at\": \"\",\n \"location_name\": \"\",\n \"location_locode\": \"\",\n \"vessel_name\": \"\",\n \"vessel_imo\": \"\",\n \"index\": \"\",\n \"voyage_number\": \"\"\n },\n \"relationships\": {\n \"location\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"port\"\n }\n },\n \"vessel\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"vessel\"\n }\n }\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -5357,34 +5253,23 @@ } }, { - "id": "4c8dc204-ba58-413d-868c-72189846f2d0", - "name": "Get a container's transport events", + "id": "7027311c-2cd8-4697-9d71-a62e37f13e36", + "name": "Edit a container", "request": { - "name": "Get a container's transport events", + "name": "Edit a container", "description": { - "content": "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. ", + "content": "Update a container's reference numbers, seal number, equipment type, length, and height, or weight. The container number cannot be edited: sending a different `number` returns 422. Equipment type, length, and height are validated together. When any of them changes, all three must have a value, or the request returns 422. A value outside the listed equipment enums also returns 422.", "type": "text/plain" }, "url": { "path": [ "containers", - ":id", - "transport_events" + ":id" ], "host": [ "{{baseUrl}}" ], - "query": [ - { - "disabled": true, - "description": { - "content": "Comma delimited list of relations to include", - "type": "text/plain" - }, - "key": "include", - "value": "" - } - ], + "query": [], "variable": [ { "type": "any", @@ -5399,40 +5284,42 @@ ] }, "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" } ], - "method": "GET", - "body": {}, + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"seal_number\": \"\",\n \"equipment_type\": \"hard_top\",\n \"equipment_length\": 53,\n \"equipment_height\": \"high_cube\",\n \"weight_in_lbs\": \"\"\n },\n \"type\": \"container\",\n \"id\": \"\"\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, "auth": null }, "response": [ { - "id": "abe2224c-789d-4dec-b880-458400868a14", + "id": "44f2ec33-94b7-4a62-b3d4-32ded4591067", "name": "OK", "originalRequest": { "url": { "path": [ "containers", - ":id", - "transport_events" + ":id" ], "host": [ "{{baseUrl}}" ], - "query": [ - { - "disabled": true, - "description": { - "content": "Comma delimited list of relations to include", - "type": "text/plain" - }, - "key": "include", - "value": "" - } - ], + "query": [], "variable": [ { "disabled": false, @@ -5447,6 +5334,10 @@ ] }, "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" @@ -5460,8 +5351,17 @@ "value": "" } ], - "method": "GET", - "body": {} + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"seal_number\": \"\",\n \"equipment_type\": \"hard_top\",\n \"equipment_length\": 53,\n \"equipment_height\": \"high_cube\",\n \"weight_in_lbs\": \"\"\n },\n \"type\": \"container\",\n \"id\": \"\"\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, "status": "OK", "code": 200, @@ -5471,68 +5371,86 @@ "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"transport_event\",\n \"attributes\": {\n \"event\": \"container.transport.feeder_arrived\",\n \"voyage_number\": \"\",\n \"timestamp\": \"\",\n \"timezone\": \"\",\n \"location_locode\": \"\",\n \"created_at\": \"\",\n \"data_source\": \"terminal\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"location\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"port\"\n }\n },\n \"vessel\": {\n \"data\": {\n \"id\": \"\",\n \"name\": \"vessel\"\n }\n },\n \"terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"container\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"container\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"transport_event\",\n \"attributes\": {\n \"event\": \"container.transport.delivered\",\n \"voyage_number\": \"\",\n \"timestamp\": \"\",\n \"timezone\": \"\",\n \"location_locode\": \"\",\n \"created_at\": \"\",\n \"data_source\": \"terminal\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"location\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"port\"\n }\n },\n \"vessel\": {\n \"data\": {\n \"id\": \"\",\n \"name\": \"vessel\"\n }\n },\n \"terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"container\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"container\"\n }\n }\n }\n }\n ],\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"all_containers_terminated\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"booking_cancelled\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"metro_area\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n }\n ],\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"container\",\n \"attributes\": {\n \"number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"equipment_type\": null,\n \"equipment_length\": 10,\n \"equipment_height\": null,\n \"weight_in_lbs\": \"\",\n \"created_at\": \"\",\n \"seal_number\": \"\",\n \"pickup_lfd\": \"\",\n \"pickup_appointment_at\": \"\",\n \"availability_known\": \"\",\n \"available_for_pickup\": \"\",\n \"pod_arrived_at\": \"\",\n \"pod_discharged_at\": \"\",\n \"pod_full_out_at\": \"\",\n \"terminal_checked_at\": \"\",\n \"pod_full_out_chassis_number\": \"\",\n \"location_at_pod_terminal\": \"\",\n \"final_destination_full_out_at\": \"\",\n \"empty_terminated_at\": \"\",\n \"holds_at_pod_terminal\": [\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"status\": \"pending\",\n \"description\": \"\"\n }\n ],\n \"fees_at_pod_terminal\": [\n {\n \"type\": \"total\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n },\n {\n \"type\": \"other\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n }\n ],\n \"pod_timezone\": \"\",\n \"final_destination_timezone\": \"\",\n \"empty_terminated_timezone\": \"\",\n \"pod_rail_carrier_scac\": \"\",\n \"ind_rail_carrier_scac\": \"\",\n \"pod_last_tracking_request_at\": \"\",\n \"shipment_last_tracking_request_at\": \"\",\n \"pod_rail_loaded_at\": \"\",\n \"pod_rail_departed_at\": \"\",\n \"ind_eta_at\": \"\",\n \"ind_ata_at\": \"\",\n \"ind_rail_unloaded_at\": \"\",\n \"ind_facility_lfd_on\": \"\",\n \"import_deadlines\": {\n \"pickup_lfd_terminal\": \"\",\n \"pickup_lfd_rail\": \"\",\n \"pickup_lfd_line\": \"\"\n },\n \"current_status\": \"on_ship\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"pickup_facility\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"transport_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n }\n ]\n },\n \"raw_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n }\n ]\n }\n }\n }\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "8b454238-edd8-4d6a-acc1-53c25cb5734f", - "name": "Get container map GeoJSON", - "request": { - "name": "Get container map GeoJSON", - "description": { - "content": "Returns a GeoJSON FeatureCollection containing all map-related data for a container, including port locations, current vessel position (if at sea), past vessel paths, and estimated future routes. The response can be directly used with most mapping libraries (Leaflet, Mapbox GL, Google Maps, etc.). This is a paid feature. Please contact sales@terminal49.com.", - "type": "text/plain" }, - "url": { - "path": [ - "containers", - ":id", - "map_geojson" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "id", - "disabled": false, - "description": { - "content": "(Required) ", - "type": "text/plain" + { + "id": "710c053d-f936-4f5c-be4e-5aca3db4a4a4", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "containers", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"seal_number\": \"\",\n \"equipment_type\": \"hard_top\",\n \"equipment_length\": 53,\n \"equipment_height\": \"high_cube\",\n \"weight_in_lbs\": \"\"\n },\n \"type\": \"container\",\n \"id\": \"\"\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } } } - ] + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" }, - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "GET", - "body": {}, - "auth": null - }, - "response": [ { - "id": "29d5ff89-0fe0-444d-b5f0-22bb8e38c0be", - "name": "OK", + "id": "b3b454e9-d711-433c-b3d7-04012fc374a1", + "name": "Not Found", "originalRequest": { "url": { "path": [ "containers", - ":id", - "map_geojson" + ":id" ], "host": [ "{{baseUrl}}" @@ -5552,6 +5470,10 @@ ] }, "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" @@ -5565,30 +5487,38 @@ "value": "" } ], - "method": "GET", - "body": {} + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"seal_number\": \"\",\n \"equipment_type\": \"hard_top\",\n \"equipment_length\": 53,\n \"equipment_height\": \"high_cube\",\n \"weight_in_lbs\": \"\"\n },\n \"type\": \"container\",\n \"id\": \"\"\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, - "status": "OK", - "code": 200, + "status": "Not Found", + "code": 404, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"type\": \"FeatureCollection\",\n \"features\": [\n {\n \"type\": \"Feature\",\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": [\n \"\",\n \"\"\n ]\n },\n \"properties\": {\n \"feature_type\": \"port\",\n \"ports_sequence\": \"\",\n \"ports_total\": \"\",\n \"location_id\": \"\",\n \"location_type\": \"Port\",\n \"name\": \"\",\n \"state_abbr\": \"\",\n \"state\": \"\",\n \"country_code\": \"\",\n \"country\": \"\",\n \"time_zone\": \"\",\n \"label\": \"\",\n \"inbound_eta_at\": \"\",\n \"inbound_ata_at\": \"\",\n \"outbound_etd_at\": \"\",\n \"outbound_atd_at\": \"\",\n \"updated_at\": \"\"\n }\n },\n {\n \"type\": \"Feature\",\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": [\n \"\",\n \"\"\n ]\n },\n \"properties\": {\n \"feature_type\": \"port\",\n \"ports_sequence\": \"\",\n \"ports_total\": \"\",\n \"location_id\": \"\",\n \"location_type\": \"Port\",\n \"name\": \"\",\n \"state_abbr\": \"\",\n \"state\": \"\",\n \"country_code\": \"\",\n \"country\": \"\",\n \"time_zone\": \"\",\n \"label\": \"\",\n \"inbound_eta_at\": \"\",\n \"inbound_ata_at\": \"\",\n \"outbound_etd_at\": \"\",\n \"outbound_atd_at\": \"\",\n \"updated_at\": \"\"\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "9d6554a8-aa83-488e-b434-190281c487a9", - "name": "Forbidden - Routing data feature is not enabled for this account", + "id": "326bfb7f-a337-4265-a8dd-2c3158081b0a", + "name": "Unprocessable Entity", "originalRequest": { "url": { "path": [ "containers", - ":id", - "map_geojson" + ":id" ], "host": [ "{{baseUrl}}" @@ -5608,6 +5538,10 @@ ] }, "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" @@ -5621,18 +5555,27 @@ "value": "" } ], - "method": "GET", - "body": {} + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"seal_number\": \"\",\n \"equipment_type\": \"hard_top\",\n \"equipment_length\": 53,\n \"equipment_height\": \"high_cube\",\n \"weight_in_lbs\": \"\"\n },\n \"type\": \"container\",\n \"id\": \"\"\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, - "status": "Forbidden", - "code": 403, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -5643,19 +5586,19 @@ } }, { - "id": "47f2f342-dd59-49a0-9b3b-9148a07f1549", - "name": "Refresh container", + "id": "b23a3eec-9fa4-46c9-a72f-358e0fa5de51", + "name": "Get a container's raw events", "request": { - "name": "Refresh container", + "name": "Get a container's raw events", "description": { - "content": "Schedules the container to be refreshed immediately from all relevant sources.

To be alerted of updates you should subscribe to the [relevant webhooks](/api-docs/in-depth-guides/webhooks). This endpoint is limited to 10 requests per minute.This is a paid feature. Please contact sales@terminal49.com.", + "content": "#### Deprecation warning\nThe `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.", "type": "text/plain" }, "url": { "path": [ "containers", ":id", - "refresh" + "raw_events" ], "host": [ "{{baseUrl}}" @@ -5680,20 +5623,20 @@ "value": "application/json" } ], - "method": "PATCH", + "method": "GET", "body": {}, "auth": null }, "response": [ { - "id": "f6f04750-b064-43e7-80b9-76d82392b25c", + "id": "7b2e2f46-baa3-425e-bcb9-8bf0e1440919", "name": "OK", "originalRequest": { "url": { "path": [ "containers", ":id", - "refresh" + "raw_events" ], "host": [ "{{baseUrl}}" @@ -5726,7 +5669,7 @@ "value": "" } ], - "method": "PATCH", + "method": "GET", "body": {} }, "status": "OK", @@ -5737,75 +5680,19 @@ "value": "application/json" } ], - "body": "{\n \"message\": \"\"\n}", - "cookie": [], - "_postman_previewlanguage": "json" - }, - { - "id": "5e87c8f8-c667-4dce-8e2f-69832bdaa46d", - "name": "Forbidden - This API endpoint is not enabled for your account. Please contact support@terminal49.com", - "originalRequest": { - "url": { - "path": [ - "containers", - ":id", - "refresh" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "disabled": false, - "description": { - "content": "(Required) ", - "type": "text/plain" - }, - "type": "any", - "value": "", - "key": "id" - } - ] - }, - "header": [ - { - "key": "Accept", - "value": "application/json" - }, - { - "description": { - "content": "Added as a part of security scheme: apikey", - "type": "text/plain" - }, - "key": "Authorization", - "value": "" - } - ], - "method": "PATCH", - "body": {} - }, - "status": "Forbidden", - "code": 403, - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n }\n ]\n}", + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"raw_event\",\n \"attributes\": {\n \"event\": \"arrived_at_destination\",\n \"original_event\": \"\",\n \"timestamp\": \"\",\n \"estimated\": \"\",\n \"actual_on\": \"\",\n \"estimated_on\": \"\",\n \"actual_at\": \"\",\n \"estimated_at\": \"\",\n \"timezone\": \"\",\n \"created_at\": \"\",\n \"location_name\": \"\",\n \"location_locode\": \"\",\n \"vessel_name\": \"\",\n \"vessel_imo\": \"\",\n \"index\": \"\",\n \"voyage_number\": \"\"\n },\n \"relationships\": {\n \"location\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"metro_area\"\n }\n },\n \"vessel\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"vessel\"\n }\n },\n \"container\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"container\"\n }\n },\n \"terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"raw_event\",\n \"attributes\": {\n \"event\": \"rail_departed\",\n \"original_event\": \"\",\n \"timestamp\": \"\",\n \"estimated\": \"\",\n \"actual_on\": \"\",\n \"estimated_on\": \"\",\n \"actual_at\": \"\",\n \"estimated_at\": \"\",\n \"timezone\": \"\",\n \"created_at\": \"\",\n \"location_name\": \"\",\n \"location_locode\": \"\",\n \"vessel_name\": \"\",\n \"vessel_imo\": \"\",\n \"index\": \"\",\n \"voyage_number\": \"\"\n },\n \"relationships\": {\n \"location\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"metro_area\"\n }\n },\n \"vessel\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"vessel\"\n }\n },\n \"container\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"container\"\n }\n },\n \"terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n }\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "a5019594-579f-495a-84ad-1d7e1ed1800f", - "name": "Too Many Requests - You've hit the refresh limit. Please try again in a minute.", + "id": "f2f33f9f-4ac2-41d3-ae9e-8fb7aa312ba8", + "name": "Not Found", "originalRequest": { "url": { "path": [ "containers", ":id", - "refresh" + "raw_events" ], "host": [ "{{baseUrl}}" @@ -5838,27 +5725,18 @@ "value": "" } ], - "method": "PATCH", + "method": "GET", "body": {} }, - "status": "Too Many Requests", - "code": 429, + "status": "Not Found", + "code": 404, "header": [ { "key": "Content-Type", "value": "application/json" - }, - { - "disabled": true, - "description": { - "content": "Number of seconds to wait before making another request", - "type": "text/plain" - }, - "key": "Retry-After", - "value": "" } ], - "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -5869,29 +5747,42 @@ } }, { - "id": "93e4587b-b66b-43ed-9373-ed11313d5a16", - "name": "List container custom fields", + "id": "0cdcafab-3260-4649-8bd8-02b3e07d91bd", + "name": "Get a container's transport events", "request": { - "name": "List container custom fields", - "description": {}, + "name": "Get a container's transport events", + "description": { + "content": "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. ", + "type": "text/plain" + }, "url": { "path": [ "containers", - ":container_id", - "custom_fields" + ":id", + "transport_events" ], "host": [ "{{baseUrl}}" ], - "query": [], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma delimited list of relations to include", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], "variable": [ { "type": "any", "value": "", - "key": "container_id", + "key": "id", "disabled": false, "description": { - "content": "(Required) Container ID", + "content": "(Required) ", "type": "text/plain" } } @@ -5909,29 +5800,39 @@ }, "response": [ { - "id": "84190efd-8799-4d2b-af40-1638bd9bd9d0", + "id": "f9df8c5b-0a3d-4925-906a-57bb6b46f0bf", "name": "OK", "originalRequest": { "url": { "path": [ "containers", - ":container_id", - "custom_fields" + ":id", + "transport_events" ], "host": [ "{{baseUrl}}" ], - "query": [], - "variable": [ + "query": [ { - "disabled": false, + "disabled": true, "description": { - "content": "(Required) Container ID", + "content": "Comma delimited list of relations to include", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", "type": "text/plain" }, "type": "any", "value": "", - "key": "container_id" + "key": "id" } ] }, @@ -5960,101 +5861,48 @@ "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"tracking_request\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"tracking_request\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n }\n ],\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"transport_event\",\n \"attributes\": {\n \"event\": \"container.transport.vessel_arrived\",\n \"voyage_number\": \"\",\n \"timestamp\": \"\",\n \"timezone\": \"\",\n \"location_locode\": \"\",\n \"created_at\": \"\",\n \"data_source\": \"shipping_line\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"location\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"port\"\n }\n },\n \"vessel\": {\n \"data\": {\n \"id\": \"\",\n \"name\": \"vessel\"\n }\n },\n \"terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"rail_terminal\"\n }\n },\n \"container\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"container\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"transport_event\",\n \"attributes\": {\n \"event\": \"container.detention_lfd_line.changed\",\n \"voyage_number\": \"\",\n \"timestamp\": \"\",\n \"timezone\": \"\",\n \"location_locode\": \"\",\n \"created_at\": \"\",\n \"data_source\": \"ais\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"location\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"port\"\n }\n },\n \"vessel\": {\n \"data\": {\n \"id\": \"\",\n \"name\": \"vessel\"\n }\n },\n \"terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"container\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"container\"\n }\n }\n }\n }\n ],\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"no_updates_at_line\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"booking_cancelled\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n }\n ],\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "dba6c810-ec24-4247-afb6-cad8927b6567", - "name": "Create a container custom field", - "request": { - "name": "Create a container custom field", - "description": {}, - "url": { - "path": [ - "containers", - ":container_id", - "custom_fields" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "container_id", - "disabled": false, - "description": { - "content": "(Required) Container ID", - "type": "text/plain" - } - } - ] - }, - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "POST", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } }, - "auth": null - }, - "response": [ { - "id": "d12dd11e-6d8a-433f-824b-d59d920c2ac8", - "name": "Created", + "id": "59666b92-f0cc-4814-a891-a912bed2c015", + "name": "Not Found", "originalRequest": { "url": { "path": [ "containers", - ":container_id", - "custom_fields" + ":id", + "transport_events" ], "host": [ "{{baseUrl}}" ], - "query": [], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma delimited list of relations to include", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], "variable": [ { "disabled": false, "description": { - "content": "(Required) Container ID", + "content": "(Required) ", "type": "text/plain" }, "type": "any", "value": "", - "key": "container_id" + "key": "id" } ] }, "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" @@ -6068,27 +5916,18 @@ "value": "" } ], - "method": "POST", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "method": "GET", + "body": {} }, - "status": "Created", - "code": 201, + "status": "Not Found", + "code": 404, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -6099,17 +5938,19 @@ } }, { - "id": "1449afaf-c63d-4709-898d-3a50ec6c4272", - "name": "Update a container custom field", + "id": "e2a1a532-1fc8-4b00-bda5-244849d24ee7", + "name": "Get container map GeoJSON", "request": { - "name": "Update a container custom field", - "description": {}, + "name": "Get container map GeoJSON", + "description": { + "content": "Returns a GeoJSON FeatureCollection containing all map-related data for a container, including port locations, current vessel position (if at sea), past vessel paths, and estimated future routes. The response can be directly used with most mapping libraries (Leaflet, Mapbox GL, Google Maps, etc.). This is a paid feature. Please contact sales@terminal49.com.", + "type": "text/plain" + }, "url": { "path": [ "containers", - ":container_id", - "custom_fields", - ":api_slug" + ":id", + "map_geojson" ], "host": [ "{{baseUrl}}" @@ -6119,59 +5960,35 @@ { "type": "any", "value": "", - "key": "container_id", - "disabled": false, - "description": { - "content": "(Required) Container ID", - "type": "text/plain" - } - }, - { - "type": "any", - "value": "", - "key": "api_slug", + "key": "id", "disabled": false, "description": { - "content": "(Required) Custom field api_slug", + "content": "(Required) ", "type": "text/plain" } } ] }, "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" } ], - "method": "PATCH", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, + "method": "GET", + "body": {}, "auth": null }, "response": [ { - "id": "ed9ea38b-f0fb-4d7c-a407-798e5b0f925f", + "id": "180473fb-bd44-4ec2-8f9b-4508fc260fec", "name": "OK", "originalRequest": { "url": { "path": [ "containers", - ":container_id", - "custom_fields", - ":api_slug" + ":id", + "map_geojson" ], "host": [ "{{baseUrl}}" @@ -6181,30 +5998,16 @@ { "disabled": false, "description": { - "content": "(Required) Container ID", - "type": "text/plain" - }, - "type": "any", - "value": "", - "key": "container_id" - }, - { - "disabled": false, - "description": { - "content": "(Required) Custom field api_slug", + "content": "(Required) ", "type": "text/plain" }, "type": "any", "value": "", - "key": "api_slug" + "key": "id" } ] }, "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" @@ -6218,17 +6021,8 @@ "value": "" } ], - "method": "PATCH", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "method": "GET", + "body": {} }, "status": "OK", "code": 200, @@ -6238,71 +6032,19 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"type\": \"FeatureCollection\",\n \"features\": [\n {\n \"type\": \"Feature\",\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": [\n \"\",\n \"\"\n ]\n },\n \"properties\": {\n \"feature_type\": \"port\",\n \"ports_sequence\": \"\",\n \"ports_total\": \"\",\n \"location_id\": \"\",\n \"location_type\": \"Port\",\n \"name\": \"\",\n \"state_abbr\": \"\",\n \"state\": \"\",\n \"country_code\": \"\",\n \"country\": \"\",\n \"time_zone\": \"\",\n \"label\": \"\",\n \"inbound_eta_at\": \"\",\n \"inbound_ata_at\": \"\",\n \"outbound_etd_at\": \"\",\n \"outbound_atd_at\": \"\",\n \"updated_at\": \"\"\n }\n },\n {\n \"type\": \"Feature\",\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": [\n \"\",\n \"\"\n ]\n },\n \"properties\": {\n \"feature_type\": \"port\",\n \"ports_sequence\": \"\",\n \"ports_total\": \"\",\n \"location_id\": \"\",\n \"location_type\": \"Port\",\n \"name\": \"\",\n \"state_abbr\": \"\",\n \"state\": \"\",\n \"country_code\": \"\",\n \"country\": \"\",\n \"time_zone\": \"\",\n \"label\": \"\",\n \"inbound_eta_at\": \"\",\n \"inbound_ata_at\": \"\",\n \"outbound_etd_at\": \"\",\n \"outbound_atd_at\": \"\",\n \"updated_at\": \"\"\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "d3a61985-746f-41b5-a90c-ff69eb8ae995", - "name": "Delete a container custom field", - "request": { - "name": "Delete a container custom field", - "description": {}, - "url": { - "path": [ - "containers", - ":container_id", - "custom_fields", - ":api_slug" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "container_id", - "disabled": false, - "description": { - "content": "(Required) Container ID", - "type": "text/plain" - } - }, - { - "type": "any", - "value": "", - "key": "api_slug", - "disabled": false, - "description": { - "content": "(Required) Custom field api_slug", - "type": "text/plain" - } - } - ] }, - "method": "DELETE", - "body": {}, - "auth": null - }, - "response": [ { - "id": "16fa199e-1656-4297-a171-467509822199", - "name": "No Content", + "id": "7cb880e6-0c36-4fcc-a71c-47385740bf32", + "name": "Forbidden - Routing data feature is not enabled for this account", "originalRequest": { "url": { "path": [ "containers", - ":container_id", - "custom_fields", - ":api_slug" + ":id", + "map_geojson" ], "host": [ "{{baseUrl}}" @@ -6312,26 +6054,20 @@ { "disabled": false, "description": { - "content": "(Required) Container ID", - "type": "text/plain" - }, - "type": "any", - "value": "", - "key": "container_id" - }, - { - "disabled": false, - "description": { - "content": "(Required) Custom field api_slug", + "content": "(Required) ", "type": "text/plain" }, "type": "any", "value": "", - "key": "api_slug" + "key": "id" } ] }, "header": [ + { + "key": "Accept", + "value": "application/json" + }, { "description": { "content": "Added as a part of security scheme: apikey", @@ -6341,159 +6077,47 @@ "value": "" } ], - "method": "DELETE", + "method": "GET", "body": {} }, - "status": "No Content", - "code": 204, - "header": [], - "cookie": [], - "_postman_previewlanguage": "text" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - } - ] - }, - { - "name": "Custom Field Definitions", - "description": "", - "item": [ - { - "id": "d8ebb5f3-e928-4239-b870-9ace8d492019", - "name": "List custom field definitions", - "request": { - "name": "List custom field definitions", - "description": {}, - "url": { - "path": [ - "custom_field_definitions" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [ - { - "disabled": true, - "description": { - "content": "", - "type": "text/plain" - }, - "key": "page[number]", - "value": "1" - }, - { - "disabled": true, - "description": { - "content": "", - "type": "text/plain" - }, - "key": "page[size]", - "value": "25" - }, - { - "disabled": true, - "description": { - "content": "Filter by entity type (Shipment or Container)", - "type": "text/plain" - }, - "key": "filter[entity_type]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Filter by data type", - "type": "text/plain" - }, - "key": "filter[data_type]", - "value": "" - }, + "status": "Forbidden", + "code": 403, + "header": [ { - "disabled": true, - "description": { - "content": "Filter by display name (prefix match)", - "type": "text/plain" - }, - "key": "filter[display_name]", - "value": "" + "key": "Content-Type", + "value": "application/json" } ], - "variable": [] + "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" }, - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "GET", - "body": {}, - "auth": null - }, - "response": [ { - "id": "fdc7e901-da47-43e5-9dbb-a782d5489ec8", - "name": "OK", + "id": "f7cc92ba-70b4-4f6b-9774-b9d80594d3cd", + "name": "Not Found", "originalRequest": { "url": { "path": [ - "custom_field_definitions" + "containers", + ":id", + "map_geojson" ], "host": [ "{{baseUrl}}" ], - "query": [ - { - "disabled": true, - "description": { - "content": "", - "type": "text/plain" - }, - "key": "page[number]", - "value": "1" - }, - { - "disabled": true, - "description": { - "content": "", - "type": "text/plain" - }, - "key": "page[size]", - "value": "25" - }, - { - "disabled": true, - "description": { - "content": "Filter by entity type (Shipment or Container)", - "type": "text/plain" - }, - "key": "filter[entity_type]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Filter by data type", - "type": "text/plain" - }, - "key": "filter[data_type]", - "value": "" - }, + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Filter by display name (prefix match)", + "content": "(Required) ", "type": "text/plain" }, - "key": "filter[display_name]", - "value": "" + "type": "any", + "value": "", + "key": "id" } - ], - "variable": [] + ] }, "header": [ { @@ -6512,15 +6136,15 @@ "method": "GET", "body": {} }, - "status": "OK", - "code": 200, + "status": "Not Found", + "code": 404, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"TrackingRequest\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"short_text\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": \"string\"\n },\n \"default_format\": \"\",\n \"default_value\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Shipment\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"short_text\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": \"string\"\n },\n \"default_format\": \"\",\n \"default_value\": \"\"\n }\n }\n ],\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -6531,64 +6155,76 @@ } }, { - "id": "920494e9-5a4f-4a8a-ab32-dad0051df486", - "name": "Create a custom field definition", + "id": "034139d1-d567-4b9a-b3e5-177e63c0cfe2", + "name": "Refresh container", "request": { - "name": "Create a custom field definition", - "description": {}, + "name": "Refresh container", + "description": { + "content": "Schedules the container to be refreshed immediately from all relevant sources.

To be alerted of updates you should subscribe to the [relevant webhooks](/api-docs/in-depth-guides/webhooks). This endpoint is limited to 10 requests per minute.This is a paid feature. Please contact sales@terminal49.com.", + "type": "text/plain" + }, "url": { "path": [ - "custom_field_definitions" + "containers", + ":id", + "refresh" ], "host": [ "{{baseUrl}}" ], "query": [], - "variable": [] + "variable": [ + { + "type": "any", + "value": "", + "key": "id", + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + } + } + ] }, "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" } ], - "method": "POST", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Shipment\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"date\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 6629.8856578126515\n },\n \"default_format\": \"\",\n \"default_value\": \"\"\n }\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, + "method": "PATCH", + "body": {}, "auth": null }, "response": [ { - "id": "b2895b04-0180-46c8-9400-e85b29f5aefa", - "name": "Created", + "id": "8492a1ef-0bfd-43d8-af3c-c37808bf64e8", + "name": "OK", "originalRequest": { "url": { "path": [ - "custom_field_definitions" + "containers", + ":id", + "refresh" ], "host": [ "{{baseUrl}}" ], "query": [], - "variable": [] + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] }, "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" @@ -6602,83 +6238,30 @@ "value": "" } ], - "method": "POST", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Shipment\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"date\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 6629.8856578126515\n },\n \"default_format\": \"\",\n \"default_value\": \"\"\n }\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "method": "PATCH", + "body": {} }, - "status": "Created", - "code": 201, + "status": "OK", + "code": 200, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Container\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"date\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 4699.603608345303\n },\n \"default_format\": \"\",\n \"default_value\": \"\"\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"message\": \"\"\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "bba62d43-5b6f-4274-b712-9d9fc49340db", - "name": "Get a custom field definition", - "request": { - "name": "Get a custom field definition", - "description": {}, - "url": { - "path": [ - "custom_field_definitions", - ":id" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "id", - "disabled": false, - "description": { - "content": "(Required) Custom field definition ID", - "type": "text/plain" - } - } - ] }, - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "GET", - "body": {}, - "auth": null - }, - "response": [ { - "id": "1e260dc7-7d6e-4e08-9803-c56499c65c6d", - "name": "OK", + "id": "31af05ee-2774-4626-bc1c-a83bc6c28ecd", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", "originalRequest": { "url": { "path": [ - "custom_field_definitions", - ":id" + "containers", + ":id", + "refresh" ], "host": [ "{{baseUrl}}" @@ -6688,7 +6271,7 @@ { "disabled": false, "description": { - "content": "(Required) Custom field definition ID", + "content": "(Required) ", "type": "text/plain" }, "type": "any", @@ -6711,87 +6294,30 @@ "value": "" } ], - "method": "GET", + "method": "PATCH", "body": {} }, - "status": "OK", - "code": 200, + "status": "Unauthorized", + "code": 401, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Container\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"date\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 4699.603608345303\n },\n \"default_format\": \"\",\n \"default_value\": \"\"\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "766ab432-7afa-4aae-8612-0a58037ffb2c", - "name": "Update a custom field definition", - "request": { - "name": "Update a custom field definition", - "description": {}, - "url": { - "path": [ - "custom_field_definitions", - ":id" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "id", - "disabled": false, - "description": { - "content": "(Required) Custom field definition ID", - "type": "text/plain" - } - } - ] - }, - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "PATCH", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"display_name\": \"\",\n \"description\": \"\",\n \"validation\": {\n \"key_0\": \"string\",\n \"key_1\": 4061\n },\n \"default_format\": \"\",\n \"default_value\": \"\"\n }\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } }, - "auth": null - }, - "response": [ { - "id": "d070af18-8f7b-4f54-b9e0-64e9a387d00a", - "name": "OK", + "id": "64628aa3-1199-4f4f-a9fc-de11668be9f0", + "name": "Forbidden - This API endpoint is not enabled for your account. Please contact support@terminal49.com", "originalRequest": { "url": { "path": [ - "custom_field_definitions", - ":id" + "containers", + ":id", + "refresh" ], "host": [ "{{baseUrl}}" @@ -6801,7 +6327,7 @@ { "disabled": false, "description": { - "content": "(Required) Custom field definition ID", + "content": "(Required) ", "type": "text/plain" }, "type": "any", @@ -6811,10 +6337,6 @@ ] }, "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" @@ -6829,76 +6351,29 @@ } ], "method": "PATCH", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"display_name\": \"\",\n \"description\": \"\",\n \"validation\": {\n \"key_0\": \"string\",\n \"key_1\": 4061\n },\n \"default_format\": \"\",\n \"default_value\": \"\"\n }\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "body": {} }, - "status": "OK", - "code": 200, + "status": "Forbidden", + "code": 403, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Container\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"date\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 4699.603608345303\n },\n \"default_format\": \"\",\n \"default_value\": \"\"\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "b1cb608c-aa66-4e0f-b371-871a04c008e3", - "name": "Delete a custom field definition", - "request": { - "name": "Delete a custom field definition", - "description": {}, - "url": { - "path": [ - "custom_field_definitions", - ":id" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "id", - "disabled": false, - "description": { - "content": "(Required) Custom field definition ID", - "type": "text/plain" - } - } - ] }, - "method": "DELETE", - "body": {}, - "auth": null - }, - "response": [ { - "id": "1b03653c-7f9a-4663-8591-11e6ee2f54cc", - "name": "OK", + "id": "5d02a551-32ac-4887-a723-7f02bcd66552", + "name": "Not Found", "originalRequest": { "url": { "path": [ - "custom_field_definitions", - ":id" + "containers", + ":id", + "refresh" ], "host": [ "{{baseUrl}}" @@ -6908,7 +6383,7 @@ { "disabled": false, "description": { - "content": "(Required) Custom field definition ID", + "content": "(Required) ", "type": "text/plain" }, "type": "any", @@ -6918,6 +6393,10 @@ ] }, "header": [ + { + "key": "Accept", + "value": "application/json" + }, { "description": { "content": "Added as a part of security scheme: apikey", @@ -6927,76 +6406,30 @@ "value": "" } ], - "method": "DELETE", + "method": "PATCH", "body": {} }, - "status": "OK", - "code": 200, - "header": [], - "cookie": [], - "_postman_previewlanguage": "text" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - } - ] - }, - { - "name": "Custom Field Options", - "description": "", - "item": [ - { - "id": "10ad7345-8a59-4c0d-a804-35b442a8bbfb", - "name": "List custom field options", - "request": { - "name": "List custom field options", - "description": {}, - "url": { - "path": [ - "custom_field_definitions", - ":definition_id", - "options" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ + "status": "Not Found", + "code": 404, + "header": [ { - "type": "any", - "value": "", - "key": "definition_id", - "disabled": false, - "description": { - "content": "(Required) Custom field definition ID", - "type": "text/plain" - } + "key": "Content-Type", + "value": "application/json" } - ] + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" }, - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "GET", - "body": {}, - "auth": null - }, - "response": [ { - "id": "a5e5fe48-7bc1-468d-a7b4-462583d8578f", - "name": "OK", + "id": "27fe82ce-0f51-4821-9ae3-14b2613c4ef3", + "name": "Too Many Requests - You've hit the refresh limit. Please try again in a minute.", "originalRequest": { "url": { "path": [ - "custom_field_definitions", - ":definition_id", - "options" + "containers", + ":id", + "refresh" ], "host": [ "{{baseUrl}}" @@ -7006,12 +6439,12 @@ { "disabled": false, "description": { - "content": "(Required) Custom field definition ID", + "content": "(Required) ", "type": "text/plain" }, "type": "any", "value": "", - "key": "definition_id" + "key": "id" } ] }, @@ -7029,18 +6462,27 @@ "value": "" } ], - "method": "GET", + "method": "PATCH", "body": {} }, - "status": "OK", - "code": 200, + "status": "Too Many Requests", + "code": 429, "header": [ { "key": "Content-Type", "value": "application/json" + }, + { + "disabled": true, + "description": { + "content": "Number of seconds to wait before making another request", + "type": "text/plain" + }, + "key": "Retry-After", + "value": "" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"value\": \"\",\n \"position\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"value\": \"\",\n \"position\": \"\"\n }\n }\n ],\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", + "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -7051,90 +6493,93 @@ } }, { - "id": "e774a41f-4efd-4dad-87af-2b48b4634b7b", - "name": "Create a custom field option", + "id": "23759010-0d81-469d-83d8-11a4da485992", + "name": "List container custom fields", "request": { - "name": "Create a custom field option", + "name": "List container custom fields", "description": {}, "url": { "path": [ - "custom_field_definitions", - ":definition_id", - "options" + "containers", + ":container_id", + "custom_fields" ], "host": [ "{{baseUrl}}" ], - "query": [], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma-separated relationships to include: `definition`, `entity`, `updated_by`.", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], "variable": [ { "type": "any", "value": "", - "key": "definition_id", + "key": "container_id", "disabled": false, "description": { - "content": "(Required) Custom field definition ID", + "content": "(Required) Container ID", "type": "text/plain" } } ] }, "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" } ], - "method": "POST", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"value\": \"\",\n \"position\": \"\"\n }\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, + "method": "GET", + "body": {}, "auth": null }, "response": [ { - "id": "e9513a79-812a-4bcf-bc18-58c4bc6cae9d", - "name": "Created", + "id": "d6380e48-a1ab-4bbd-84d9-e14316310e64", + "name": "OK", "originalRequest": { "url": { "path": [ - "custom_field_definitions", - ":definition_id", - "options" + "containers", + ":container_id", + "custom_fields" ], "host": [ "{{baseUrl}}" ], - "query": [], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma-separated relationships to include: `definition`, `entity`, `updated_by`.", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], "variable": [ { "disabled": false, "description": { - "content": "(Required) Custom field definition ID", + "content": "(Required) Container ID", "type": "text/plain" }, "type": "any", "value": "", - "key": "definition_id" + "key": "container_id" } ] }, "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" @@ -7148,122 +6593,121 @@ "value": "" } ], - "method": "POST", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"value\": \"\",\n \"position\": \"\"\n }\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "method": "GET", + "body": {} }, - "status": "Created", - "code": 201, + "status": "OK", + "code": 200, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"value\": \"\",\n \"position\": \"\"\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"tracking_request\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n }\n ],\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Shipment\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"short_text\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 2303.261307062433,\n \"key_1\": \"string\"\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\",\n \"template_id\": \"\",\n \"has_data\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\",\n \"discarded_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"type\": \"account\",\n \"id\": \"\"\n }\n },\n \"created_by\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n },\n \"options\": {\n \"data\": [\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n },\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n }\n ]\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Shipment\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"date\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 8102,\n \"key_1\": 9506.218278937042\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\",\n \"template_id\": \"\",\n \"has_data\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\",\n \"discarded_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"type\": \"account\",\n \"id\": \"\"\n }\n },\n \"created_by\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n },\n \"options\": {\n \"data\": [\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n },\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n }\n ]\n }\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "5c0c28cc-6879-416c-8294-ef8e905b1ad2", - "name": "Get a custom field option", - "request": { - "name": "Get a custom field option", - "description": {}, - "url": { - "path": [ - "custom_field_definitions", - ":definition_id", - "options", - ":option_id" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "definition_id", - "disabled": false, - "description": { - "content": "(Required) Custom field definition ID", - "type": "text/plain" - } - }, - { - "type": "any", - "value": "", - "key": "option_id", - "disabled": false, - "description": { - "content": "(Required) Custom field option ID", - "type": "text/plain" - } - } - ] }, - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "GET", - "body": {}, - "auth": null - }, - "response": [ { - "id": "94425e7c-d33e-49d4-88d4-0e3f6ec74326", - "name": "OK", + "id": "a2bb437c-8799-4592-b0fa-c15031e51f14", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", "originalRequest": { "url": { "path": [ - "custom_field_definitions", - ":definition_id", - "options", - ":option_id" + "containers", + ":container_id", + "custom_fields" ], "host": [ "{{baseUrl}}" ], - "query": [], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma-separated relationships to include: `definition`, `entity`, `updated_by`.", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], "variable": [ { "disabled": false, "description": { - "content": "(Required) Custom field definition ID", + "content": "(Required) Container ID", "type": "text/plain" }, "type": "any", "value": "", - "key": "definition_id" + "key": "container_id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "57b11293-f19c-4fac-92d2-24c8bad2b95b", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "containers", + ":container_id", + "custom_fields" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma-separated relationships to include: `definition`, `entity`, `updated_by`.", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], + "variable": [ { "disabled": false, "description": { - "content": "(Required) Custom field option ID", + "content": "(Required) Container ID", "type": "text/plain" }, "type": "any", "value": "", - "key": "option_id" + "key": "container_id" } ] }, @@ -7284,15 +6728,15 @@ "method": "GET", "body": {} }, - "status": "OK", - "code": 200, + "status": "Not Found", + "code": 404, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"value\": \"\",\n \"position\": \"\"\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -7303,17 +6747,16 @@ } }, { - "id": "776a2ca9-57c9-45df-8b8d-b2e0fa9cdeaa", - "name": "Update a custom field option", + "id": "d632b8e6-95ac-4d3d-ae11-db299fab00d8", + "name": "Create a container custom field", "request": { - "name": "Update a custom field option", + "name": "Create a container custom field", "description": {}, "url": { "path": [ - "custom_field_definitions", - ":definition_id", - "options", - ":option_id" + "containers", + ":container_id", + "custom_fields" ], "host": [ "{{baseUrl}}" @@ -7323,20 +6766,10 @@ { "type": "any", "value": "", - "key": "definition_id", - "disabled": false, - "description": { - "content": "(Required) Custom field definition ID", - "type": "text/plain" - } - }, - { - "type": "any", - "value": "", - "key": "option_id", + "key": "container_id", "disabled": false, "description": { - "content": "(Required) Custom field option ID", + "content": "(Required) Container ID", "type": "text/plain" } } @@ -7352,10 +6785,10 @@ "value": "application/json" } ], - "method": "PATCH", + "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"position\": \"\"\n }\n }\n}", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -7367,15 +6800,14 @@ }, "response": [ { - "id": "d639cfd5-6031-417a-9c3d-6b22d3ca9011", - "name": "OK", + "id": "eaaa310a-ed41-45ae-b777-44973c10c841", + "name": "Created", "originalRequest": { "url": { "path": [ - "custom_field_definitions", - ":definition_id", - "options", - ":option_id" + "containers", + ":container_id", + "custom_fields" ], "host": [ "{{baseUrl}}" @@ -7385,22 +6817,12 @@ { "disabled": false, "description": { - "content": "(Required) Custom field definition ID", - "type": "text/plain" - }, - "type": "any", - "value": "", - "key": "definition_id" - }, - { - "disabled": false, - "description": { - "content": "(Required) Custom field option ID", + "content": "(Required) Container ID", "type": "text/plain" }, "type": "any", "value": "", - "key": "option_id" + "key": "container_id" } ] }, @@ -7422,10 +6844,10 @@ "value": "" } ], - "method": "PATCH", + "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"position\": \"\"\n }\n }\n}", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -7434,79 +6856,27 @@ } } }, - "status": "OK", - "code": 200, + "status": "Created", + "code": 201, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"value\": \"\",\n \"position\": \"\"\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "f8e5e5ff-b804-4118-ba00-f6174442a910", - "name": "Delete a custom field option", - "request": { - "name": "Delete a custom field option", - "description": {}, - "url": { - "path": [ - "custom_field_definitions", - ":definition_id", - "options", - ":option_id" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "definition_id", - "disabled": false, - "description": { - "content": "(Required) Custom field definition ID", - "type": "text/plain" - } - }, - { - "type": "any", - "value": "", - "key": "option_id", - "disabled": false, - "description": { - "content": "(Required) Custom field option ID", - "type": "text/plain" - } - } - ] }, - "method": "DELETE", - "body": {}, - "auth": null - }, - "response": [ { - "id": "e3f41c8a-fe88-4e3a-9099-04a8f3fe41b2", - "name": "OK", + "id": "adb40b0a-18ea-4cb4-a9dd-40ef3d23854a", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", "originalRequest": { "url": { "path": [ - "custom_field_definitions", - ":definition_id", - "options", - ":option_id" + "containers", + ":container_id", + "custom_fields" ], "host": [ "{{baseUrl}}" @@ -7516,26 +6886,24 @@ { "disabled": false, "description": { - "content": "(Required) Custom field definition ID", - "type": "text/plain" - }, - "type": "any", - "value": "", - "key": "definition_id" - }, - { - "disabled": false, - "description": { - "content": "(Required) Custom field option ID", + "content": "(Required) Container ID", "type": "text/plain" }, "type": "any", "value": "", - "key": "option_id" + "key": "container_id" } ] }, "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, { "description": { "content": "Added as a part of security scheme: apikey", @@ -7545,248 +6913,56 @@ "value": "" } ], - "method": "DELETE", - "body": {} + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, - "status": "OK", - "code": 200, - "header": [], - "cookie": [], - "_postman_previewlanguage": "text" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - } - ] - }, - { - "name": "Custom Fields", - "description": "", - "item": [ - { - "id": "7e24bca4-b854-425e-b157-3a219b86bdda", - "name": "List custom fields", - "request": { - "name": "List custom fields", - "description": {}, - "url": { - "path": [ - "custom_fields" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [ - { - "disabled": true, - "description": { - "content": "", - "type": "text/plain" - }, - "key": "page[number]", - "value": "1" - }, - { - "disabled": true, - "description": { - "content": "", - "type": "text/plain" - }, - "key": "page[size]", - "value": "25" - }, - { - "disabled": true, - "description": { - "content": "Filter by entity type (Shipment or Container)", - "type": "text/plain" - }, - "key": "filter[entity_type]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Filter by entity ID", - "type": "text/plain" - }, - "key": "filter[entity_id]", - "value": "" - }, + "status": "Unauthorized", + "code": 401, + "header": [ { - "disabled": true, - "description": { - "content": "Filter by custom field definition ID", - "type": "text/plain" - }, - "key": "filter[definition_id]", - "value": "" + "key": "Content-Type", + "value": "application/json" } ], - "variable": [] + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" }, - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "GET", - "body": {}, - "auth": null - }, - "response": [ { - "id": "8e2430d2-23a5-425a-8ec0-b4d9776c29b7", - "name": "OK", + "id": "5d02e903-c792-473c-92e9-d49067289bb4", + "name": "Not Found", "originalRequest": { "url": { "path": [ + "containers", + ":container_id", "custom_fields" ], "host": [ "{{baseUrl}}" ], - "query": [ + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "", + "content": "(Required) Container ID", "type": "text/plain" }, - "key": "page[number]", - "value": "1" - }, - { - "disabled": true, - "description": { - "content": "", - "type": "text/plain" - }, - "key": "page[size]", - "value": "25" - }, - { - "disabled": true, - "description": { - "content": "Filter by entity type (Shipment or Container)", - "type": "text/plain" - }, - "key": "filter[entity_type]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Filter by entity ID", - "type": "text/plain" - }, - "key": "filter[entity_id]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Filter by custom field definition ID", - "type": "text/plain" - }, - "key": "filter[definition_id]", - "value": "" + "type": "any", + "value": "", + "key": "container_id" } - ], - "variable": [] - }, - "header": [ - { - "key": "Accept", - "value": "application/json" - }, - { - "description": { - "content": "Added as a part of security scheme: apikey", - "type": "text/plain" - }, - "key": "Authorization", - "value": "" - } - ], - "method": "GET", - "body": {} - }, - "status": "OK", - "code": 200, - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"tracking_request\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"tracking_request\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n }\n ],\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", - "cookie": [], - "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "980a273b-91e3-48b4-8f70-e850e49a06eb", - "name": "Create a custom field", - "request": { - "name": "Create a custom field", - "description": {}, - "url": { - "path": [ - "custom_fields" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [] - }, - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "POST", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"shipment\",\n \"id\": \"\"\n }\n }\n }\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, - "auth": null - }, - "response": [ - { - "id": "a7d5d2f6-11b0-4e6e-80f9-b716e76b34a4", - "name": "Created", - "originalRequest": { - "url": { - "path": [ - "custom_fields" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [] + ] }, "header": [ { @@ -7809,7 +6985,7 @@ "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"shipment\",\n \"id\": \"\"\n }\n }\n }\n }\n}", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -7818,71 +6994,27 @@ } } }, - "status": "Created", - "code": 201, + "status": "Not Found", + "code": 404, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "efe881aa-7839-459c-938d-9401a7a96a5f", - "name": "Get a custom field", - "request": { - "name": "Get a custom field", - "description": {}, - "url": { - "path": [ - "custom_fields", - ":id" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "id", - "disabled": false, - "description": { - "content": "(Required) Custom field ID", - "type": "text/plain" - } - } - ] }, - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "GET", - "body": {}, - "auth": null - }, - "response": [ { - "id": "9800651a-63b9-4369-9a00-674d7d44ec30", - "name": "OK", + "id": "7baf0494-e720-4afa-9e6c-72398fb1873a", + "name": "Unprocessable Entity", "originalRequest": { "url": { "path": [ - "custom_fields", - ":id" + "containers", + ":container_id", + "custom_fields" ], "host": [ "{{baseUrl}}" @@ -7892,16 +7024,20 @@ { "disabled": false, "description": { - "content": "(Required) Custom field ID", + "content": "(Required) Container ID", "type": "text/plain" }, "type": "any", "value": "", - "key": "id" + "key": "container_id" } ] }, "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" @@ -7915,18 +7051,27 @@ "value": "" } ], - "method": "GET", - "body": {} + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, - "status": "OK", - "code": 200, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -7937,15 +7082,17 @@ } }, { - "id": "f89e87f2-d35a-4a25-b38d-282d9ee4ed08", - "name": "Update a custom field", + "id": "c037f10b-b95e-4d00-b42f-ce2569f83ebd", + "name": "Update a container custom field", "request": { - "name": "Update a custom field", + "name": "Update a container custom field", "description": {}, "url": { "path": [ + "containers", + ":container_id", "custom_fields", - ":id" + ":api_slug" ], "host": [ "{{baseUrl}}" @@ -7955,10 +7102,20 @@ { "type": "any", "value": "", - "key": "id", + "key": "container_id", "disabled": false, "description": { - "content": "(Required) Custom field ID", + "content": "(Required) Container ID", + "type": "text/plain" + } + }, + { + "type": "any", + "value": "", + "key": "api_slug", + "disabled": false, + "description": { + "content": "(Required) Custom field api_slug", "type": "text/plain" } } @@ -7989,13 +7146,15 @@ }, "response": [ { - "id": "86af96bb-728e-4738-afc5-20ef02396c83", + "id": "33b555c1-1233-4c9f-8d25-908342114af2", "name": "OK", "originalRequest": { "url": { "path": [ + "containers", + ":container_id", "custom_fields", - ":id" + ":api_slug" ], "host": [ "{{baseUrl}}" @@ -8005,12 +7164,22 @@ { "disabled": false, "description": { - "content": "(Required) Custom field ID", + "content": "(Required) Container ID", "type": "text/plain" }, "type": "any", "value": "", - "key": "id" + "key": "container_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field api_slug", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "api_slug" } ] }, @@ -8052,57 +7221,180 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "37d419a0-fcdb-4c7a-9408-287deb986c12", - "name": "Delete a custom field", - "request": { - "name": "Delete a custom field", - "description": {}, - "url": { - "path": [ - "custom_fields", - ":id" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ + }, + { + "id": "851fbe98-7856-4dbc-a4fd-dee8712d826f", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "containers", + ":container_id", + "custom_fields", + ":api_slug" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Container ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "container_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field api_slug", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "api_slug" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unauthorized", + "code": 401, + "header": [ { - "type": "any", - "value": "", - "key": "id", - "disabled": false, - "description": { - "content": "(Required) Custom field ID", - "type": "text/plain" + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "5727e238-6f87-480e-9b30-44e11bc98b4b", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "containers", + ":container_id", + "custom_fields", + ":api_slug" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Container ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "container_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field api_slug", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "api_slug" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } } } - ] + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" }, - "method": "DELETE", - "body": {}, - "auth": null - }, - "response": [ { - "id": "eb297463-2d31-4aeb-8bf0-bf1020d65c85", - "name": "OK", + "id": "6ecc7703-4c9a-4408-b70e-be5541757d1a", + "name": "Unprocessable Entity", "originalRequest": { "url": { "path": [ + "containers", + ":container_id", "custom_fields", - ":id" + ":api_slug" ], "host": [ "{{baseUrl}}" @@ -8112,16 +7404,34 @@ { "disabled": false, "description": { - "content": "(Required) Custom field ID", + "content": "(Required) Container ID", "type": "text/plain" }, "type": "any", "value": "", - "key": "id" + "key": "container_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field api_slug", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "api_slug" } ] }, "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, { "description": { "content": "Added as a part of security scheme: apikey", @@ -8131,929 +7441,8396 @@ "value": "" } ], - "method": "DELETE", - "body": {} + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, - "status": "OK", - "code": 200, - "header": [], + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], - "_postman_previewlanguage": "text" + "_postman_previewlanguage": "json" } ], "event": [], "protocolProfileBehavior": { "disableBodyPruning": true } - } - ] - }, - { - "name": "Shipments", - "description": "", - "item": [ + }, { - "id": "20528928-8764-47ec-a586-fe7dc3352620", - "name": "List shipments", + "id": "f23642ea-0ce2-4aca-8e5e-82b016501917", + "name": "Delete a container custom field", "request": { - "name": "List shipments", - "description": { - "content": "Returns shipments visible to your account. Default order: newest creation first. Filters combine with AND; multi-value behavior is parameter-specific. Unknown filter names are ignored by the API. See the filter reference for exact values, operators, implicit scopes, and usage limitations.", - "type": "text/plain" - }, + "name": "Delete a container custom field", + "description": {}, "url": { "path": [ - "shipments" + "containers", + ":container_id", + "custom_fields", + ":api_slug" ], "host": [ "{{baseUrl}}" ], - "query": [ - { - "disabled": true, + "query": [], + "variable": [ + { + "type": "any", + "value": "", + "key": "container_id", + "disabled": false, "description": { - "content": "\n", + "content": "(Required) Container ID", "type": "text/plain" - }, - "key": "page[number]", - "value": "1" + } }, { - "disabled": true, + "type": "any", + "value": "", + "key": "api_slug", + "disabled": false, "description": { - "content": "Records per page. Default 30.", + "content": "(Required) Custom field api_slug", "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "DELETE", + "body": {}, + "auth": null + }, + "response": [ + { + "id": "55138ffe-aa0b-4d9f-aa49-042ba327a2c8", + "name": "No Content", + "originalRequest": { + "url": { + "path": [ + "containers", + ":container_id", + "custom_fields", + ":api_slug" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Container ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "container_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field api_slug", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "api_slug" + } + ] + }, + "header": [ + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "No Content", + "code": 204, + "header": [], + "cookie": [], + "_postman_previewlanguage": "text" + }, + { + "id": "5ff0d153-2e62-4f7c-b279-de2645ec31e9", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "containers", + ":container_id", + "custom_fields", + ":api_slug" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Container ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "container_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field api_slug", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "api_slug" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" }, - "key": "page[size]", - "value": "30" + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "07a6f8f6-8394-469e-83ad-aca6230633dc", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "containers", + ":container_id", + "custom_fields", + ":api_slug" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Container ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "container_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field api_slug", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "api_slug" + } + ] }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + } + ] + }, + { + "name": "Custom Field Definitions", + "description": "", + "item": [ + { + "id": "dceef161-dc98-41dc-a4c8-74cd0d4f28c7", + "name": "List custom field definition templates", + "request": { + "name": "List custom field definition templates", + "description": { + "content": "Lists the Terminal49 template definitions. To list the definitions configured for your account, use `GET /accounts/{account_id}/custom_field_definitions`. The list is not paginated. The API ignores `page[number]` and `page[size]` and returns every row, but still sends pagination `links`. Do not follow `links.next`.", + "type": "text/plain" + }, + "url": { + "path": [ + "custom_field_definitions" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ { "disabled": true, "description": { - "content": "Deprecated compatibility alias for filter[q]. Nested filter[q] takes precedence. A blank top-level q returns 400. No sunset date is documented.", + "content": "Filter by entity type. `Cargo` means containers. (This can only be one of Shipment,Cargo)", "type": "text/plain" }, - "key": "q", - "value": "" + "key": "filter[entity_type]", + "value": "Cargo" }, { "disabled": true, "description": { - "content": "Comma delimited list of relations to include", + "content": "Filter by data type", "type": "text/plain" }, - "key": "include", + "key": "filter[data_type]", "value": "" }, { "disabled": true, "description": { - "content": "Set to `true` to add the `party_roles` relationship to each shipment. Add `include=party_roles.party` to embed the roles and their parties.", + "content": "Filter by display name (prefix match)", "type": "text/plain" }, - "key": "flag[parties]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Compatibility alias for filter[number]. Exact shipment number, including punctuation; not a partial container-number search. Nested filter[number] takes precedence.", - "type": "text/plain" - }, - "key": "number", + "key": "filter[display_name]", "value": "" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "GET", + "body": {}, + "auth": null + }, + "response": [ + { + "id": "a5c3245d-2698-4827-b2e0-98cdb4354a42", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "Filter by entity type. `Cargo` means containers. (This can only be one of Shipment,Cargo)", + "type": "text/plain" + }, + "key": "filter[entity_type]", + "value": "Cargo" + }, + { + "disabled": true, + "description": { + "content": "Filter by data type", + "type": "text/plain" + }, + "key": "filter[data_type]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Filter by display name (prefix match)", + "type": "text/plain" + }, + "key": "filter[display_name]", + "value": "" + } + ], + "variable": [] }, - { - "disabled": true, - "description": { - "content": "Compatibility alias for filter[tracking_stopped]. Nested filter takes precedence.", - "type": "text/plain" + "header": [ + { + "key": "Accept", + "value": "application/json" }, - "key": "tracking_stopped", - "value": "" - }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "OK", + "code": 200, + "header": [ { - "disabled": true, - "description": { - "content": "Supported values: created_at, -created_at, pod_arrival, -pod_arrival, tracking_stopped_at, -tracking_stopped_at. Both created_at tokens sort newest first for compatibility. Unknown values fall back to newest creation first.", - "type": "text/plain" - }, - "key": "sort", - "value": "" + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Cargo\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"boolean\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 2672\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\",\n \"template_id\": \"\",\n \"has_data\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\",\n \"discarded_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"type\": \"account\",\n \"id\": \"\"\n }\n },\n \"created_by\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n },\n \"options\": {\n \"data\": [\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n },\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n }\n ]\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Cargo\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"reference\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 4741.240242605084,\n \"key_1\": 6009,\n \"key_2\": \"string\",\n \"key_3\": \"string\"\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\",\n \"template_id\": \"\",\n \"has_data\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\",\n \"discarded_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"type\": \"account\",\n \"id\": \"\"\n }\n },\n \"created_by\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n },\n \"options\": {\n \"data\": [\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n },\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n }\n ]\n }\n }\n }\n ],\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "0d4c93a8-834d-4afc-a0aa-a0b858b4e4ed", + "name": "Create a custom field definition template", + "request": { + "name": "Create a custom field definition template", + "description": { + "content": "Creates a Terminal49 template definition. Only Terminal49 accounts can create templates; other accounts receive 401. To create a definition for your account, use `POST /accounts/{account_id}/custom_field_definitions`.", + "type": "text/plain" + }, + "url": { + "path": [ + "custom_field_definitions" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Cargo\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"number\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": true\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"reference_number\": false,\n \"sensitive\": false,\n \"inline_option_creation\": false\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "auth": null + }, + "response": [ + { + "id": "1d4af4b1-d8ae-49c0-b466-be56ff49b30a", + "name": "Created", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] }, - { - "disabled": true, - "description": { - "content": "Prefix text search across shipment numbers, reference numbers, and linked container identifiers. Use search text, not comparison expressions.", - "type": "text/plain" + "header": [ + { + "key": "Content-Type", + "value": "application/json" }, - "key": "filter[q]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Exact number match. Shipment arrays mean OR; container arrays of exact numbers mean AND. Use comma-separated container numbers for OR. Shipment scalar commas are literal.", - "type": "text/plain" + { + "key": "Accept", + "value": "application/json" }, - "key": "filter[number]", - "value": "" - }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Cargo\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"number\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": true\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"reference_number\": false,\n \"sensitive\": false,\n \"inline_option_creation\": false\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Created", + "code": 201, + "header": [ { - "disabled": true, - "description": { - "content": "Bracketed array form of filter[number]. Exact number match. Shipment arrays mean OR; container arrays of exact numbers mean AND. Use comma-separated container numbers for OR. Shipment scalar commas are literal.", - "type": "text/plain" - }, - "key": "filter[number][]", - "value": "" + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Cargo\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"enum\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 9681\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\",\n \"template_id\": \"\",\n \"has_data\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\",\n \"discarded_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"type\": \"account\",\n \"id\": \"\"\n }\n },\n \"created_by\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n },\n \"options\": {\n \"data\": [\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n },\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n }\n ]\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "fc55647b-8750-4a64-87a6-c73064233b00", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] }, - { - "disabled": true, - "description": { - "content": "Creation date. Use an ISO 8601 date-time with Z or a timezone offset; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Relative dates and comma-separated timestamps are not accepted. Use @exists or @not_exists for presence.", - "type": "text/plain" + "header": [ + { + "key": "Content-Type", + "value": "application/json" }, - "key": "filter[created_at]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Bracketed array form of filter[created_at]. Creation date. Use an ISO 8601 date-time with Z or a timezone offset; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Relative dates and comma-separated timestamps are not accepted. Use @exists or @not_exists for presence.", - "type": "text/plain" + { + "key": "Accept", + "value": "application/json" }, - "key": "filter[created_at][]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "true selects shipments with tracking not stopped; false selects stopped tracking. Applies via the related shipment for containers.", - "type": "text/plain" - }, - "key": "filter[actively_tracked]", - "value": "" - }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Cargo\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"number\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": true\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"reference_number\": false,\n \"sensitive\": false,\n \"inline_option_creation\": false\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unauthorized", + "code": 401, + "header": [ { - "disabled": true, - "description": { - "content": "true selects stopped tracking; false selects tracking not stopped. Combines with other filters using AND.", - "type": "text/plain" - }, - "key": "filter[tracking_stopped]", - "value": "" + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "d61a887d-bd54-48a0-abf8-45e63c150450", + "name": "Unprocessable Entity", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] }, - { - "disabled": true, - "description": { - "content": "arrived means actual POD arrival is present; on_ship means a voyage exists and actual POD arrival is absent. It is not a general shipment lifecycle status. (This can only be one of arrived,on_ship)", - "type": "text/plain" + "header": [ + { + "key": "Content-Type", + "value": "application/json" }, - "key": "filter[voyage_status]", - "value": "arrived" - }, - { - "disabled": true, - "description": { - "content": "true selects shipments with POD or destination estimated/actual arrival today in the API server day. false does not narrow the list. The SDK accepts only true.", - "type": "text/plain" + { + "key": "Accept", + "value": "application/json" }, - "key": "filter[arriving_today]", - "value": "" - }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Cargo\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"number\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": true\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"reference_number\": false,\n \"sensitive\": false,\n \"inline_option_creation\": false\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, + "header": [ { - "disabled": true, - "description": { - "content": "Actual POD arrival date. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", - "type": "text/plain" - }, - "key": "filter[pod_ata_at]", - "value": "" - }, + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "ee011549-ad54-4465-8dd9-96d9705ac5f6", + "name": "Get a custom field definition", + "request": { + "name": "Get a custom field definition", + "description": {}, + "url": { + "path": [ + "custom_field_definitions", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "type": "any", + "value": "", + "key": "id", + "disabled": false, "description": { - "content": "Bracketed array form of filter[pod_ata_at]. Actual POD arrival date. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "content": "(Required) Custom field definition ID", "type": "text/plain" - }, - "key": "filter[pod_ata_at][]", - "value": "" + } + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "GET", + "body": {}, + "auth": null + }, + "response": [ + { + "id": "a0d24a3f-ba46-445d-85d4-da31ec1823b5", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] }, - { - "disabled": true, - "description": { - "content": "POD arrival date: actual arrival takes precedence over estimated arrival. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", - "type": "text/plain" + "header": [ + { + "key": "Accept", + "value": "application/json" }, - "key": "filter[pod_arrival]", - "value": "" - }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "OK", + "code": 200, + "header": [ { - "disabled": true, - "description": { - "content": "Bracketed array form of filter[pod_arrival]. POD arrival date: actual arrival takes precedence over estimated arrival. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", - "type": "text/plain" - }, - "key": "filter[pod_arrival][]", - "value": "" + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Cargo\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"enum\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 9681\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\",\n \"template_id\": \"\",\n \"has_data\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\",\n \"discarded_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"type\": \"account\",\n \"id\": \"\"\n }\n },\n \"created_by\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n },\n \"options\": {\n \"data\": [\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n },\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n }\n ]\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "36f788c1-0210-49fb-a9ba-d0c756157467", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] }, - { - "disabled": true, - "description": { - "content": "Port of discharge UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", - "type": "text/plain" + "header": [ + { + "key": "Accept", + "value": "application/json" }, - "key": "filter[pod_code]", - "value": "" - }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ { - "disabled": true, - "description": { - "content": "Bracketed array form of filter[pod_code]. Port of discharge UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", - "type": "text/plain" - }, - "key": "filter[pod_code][]", - "value": "" - }, + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "0955b9dc-cc23-451c-be22-a6a4c13e4375", + "name": "Update a custom field definition", + "request": { + "name": "Update a custom field definition", + "description": {}, + "url": { + "path": [ + "custom_field_definitions", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "type": "any", + "value": "", + "key": "id", + "disabled": false, "description": { - "content": "Meaningful change in the POD-local ETA date, comparing the current ETA with its historical baseline. Requires a lower ISO 8601 timestamp bound (=, >, or >=); an optional upper bound must be later. Applies only to active, unarrived shipments with an ETA. Not a raw updated_at filter; a future lower bound is not guaranteed to produce no matches.", + "content": "(Required) Custom field definition ID", "type": "text/plain" - }, - "key": "filter[pod_eta_changed_at]", - "value": "" + } + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"display_name\": \"\",\n \"description\": \"\",\n \"default_format\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "auth": null + }, + "response": [ + { + "id": "5bc590eb-a03d-4dfc-bfda-c582ef23c441", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] }, - { - "disabled": true, - "description": { - "content": "Bracketed array form of filter[pod_eta_changed_at]. Meaningful change in the POD-local ETA date, comparing the current ETA with its historical baseline. Requires a lower ISO 8601 timestamp bound (=, >, or >=); an optional upper bound must be later. Applies only to active, unarrived shipments with an ETA. Not a raw updated_at filter; a future lower bound is not guaranteed to produce no matches.", - "type": "text/plain" + "header": [ + { + "key": "Content-Type", + "value": "application/json" }, - "key": "filter[pod_eta_changed_at][]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Port of discharge terminal ID. Obtain it from the related terminal resource. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean OR for this shipment terminal filter. ~ is not supported.", - "type": "text/plain" + { + "key": "Accept", + "value": "application/json" }, - "key": "filter[pod_terminal_id]", - "value": "" - }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"display_name\": \"\",\n \"description\": \"\",\n \"default_format\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "OK", + "code": 200, + "header": [ { - "disabled": true, - "description": { - "content": "Bracketed array form of filter[pod_terminal_id]. Port of discharge terminal ID. Obtain it from the related terminal resource. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean OR for this shipment terminal filter. ~ is not supported.", - "type": "text/plain" - }, - "key": "filter[pod_terminal_id][]", - "value": "" + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Cargo\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"enum\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 9681\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\",\n \"template_id\": \"\",\n \"has_data\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\",\n \"discarded_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"type\": \"account\",\n \"id\": \"\"\n }\n },\n \"created_by\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n },\n \"options\": {\n \"data\": [\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n },\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n }\n ]\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "a493670f-b958-49fa-a740-3cd1a28469ef", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] }, - { - "disabled": true, - "description": { - "content": "Port of lading UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", - "type": "text/plain" + "header": [ + { + "key": "Content-Type", + "value": "application/json" }, - "key": "filter[pol_code]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Bracketed array form of filter[pol_code]. Port of lading UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", - "type": "text/plain" + { + "key": "Accept", + "value": "application/json" }, - "key": "filter[pol_code][]", - "value": "" - }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"display_name\": \"\",\n \"description\": \"\",\n \"default_format\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unauthorized", + "code": 401, + "header": [ { - "disabled": true, - "description": { - "content": "User ID associated with a shipment container. Accepts one ID, comma-separated IDs, or arrays with OR semantics. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", - "type": "text/plain" - }, - "key": "filter[owner_id]", + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "78d836d2-c17e-4559-91ae-fbd743cb29a8", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"display_name\": \"\",\n \"description\": \"\",\n \"default_format\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "135a3ae0-1363-4105-869d-1a61d8c4991c", + "name": "Unprocessable Entity", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"display_name\": \"\",\n \"description\": \"\",\n \"default_format\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "b8f10703-0b18-4b44-9c64-890a502fa89b", + "name": "Delete a custom field definition", + "request": { + "name": "Delete a custom field definition", + "description": { + "content": "Deletes a custom field definition. A definition that has values returns 422; archive it instead. Templates are Terminal49-managed: other accounts get 401 when they update or delete one, so only Terminal49 accounts can see the 422 for a template that other accounts use.", + "type": "text/plain" + }, + "url": { + "path": [ + "custom_field_definitions", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "type": "any", + "value": "", + "key": "id", + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "DELETE", + "body": {}, + "auth": null + }, + "response": [ + { + "id": "97156411-2d85-4442-84e4-ddf715f1e2b3", + "name": "No Content", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "No Content", + "code": 204, + "header": [], + "cookie": [], + "_postman_previewlanguage": "text" + }, + { + "id": "8438dded-4c8a-47e0-a16d-926e9b8bd155", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "e5fc5fd1-2e86-4c8c-bf8f-a763b0f1634b", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "2d753296-9e71-4c89-bfa9-5549ff109e6c", + "name": "Unprocessable Entity", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "aca05d98-8c7a-4267-9f8a-2255e7582823", + "name": "List custom field definitions", + "request": { + "name": "List custom field definitions", + "description": { + "content": "Lists the custom field definitions configured for your account. The list is not paginated. The API ignores `page[number]` and `page[size]` and returns every row, but still sends pagination `links`. Do not follow `links.next`.", + "type": "text/plain" + }, + "url": { + "path": [ + "accounts", + ":account_id", + "custom_field_definitions" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "Filter by entity type. `Cargo` means containers. (This can only be one of Shipment,Cargo)", + "type": "text/plain" + }, + "key": "filter[entity_type]", + "value": "Cargo" + }, + { + "disabled": true, + "description": { + "content": "Filter by data type", + "type": "text/plain" + }, + "key": "filter[data_type]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Filter by display name (prefix match)", + "type": "text/plain" + }, + "key": "filter[display_name]", + "value": "" + } + ], + "variable": [ + { + "type": "any", + "value": "", + "key": "account_id", + "disabled": false, + "description": { + "content": "(Required) Your account ID. The API always uses the account of the authenticated user.", + "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "GET", + "body": {}, + "auth": null + }, + "response": [ + { + "id": "af7e0648-595c-4d89-bcb3-5868011f892e", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "accounts", + ":account_id", + "custom_field_definitions" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "Filter by entity type. `Cargo` means containers. (This can only be one of Shipment,Cargo)", + "type": "text/plain" + }, + "key": "filter[entity_type]", + "value": "Cargo" + }, + { + "disabled": true, + "description": { + "content": "Filter by data type", + "type": "text/plain" + }, + "key": "filter[data_type]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Filter by display name (prefix match)", + "type": "text/plain" + }, + "key": "filter[display_name]", + "value": "" + } + ], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Your account ID. The API always uses the account of the authenticated user.", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "account_id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Cargo\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"boolean\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 2672\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\",\n \"template_id\": \"\",\n \"has_data\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\",\n \"discarded_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"type\": \"account\",\n \"id\": \"\"\n }\n },\n \"created_by\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n },\n \"options\": {\n \"data\": [\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n },\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n }\n ]\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Cargo\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"reference\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 4741.240242605084,\n \"key_1\": 6009,\n \"key_2\": \"string\",\n \"key_3\": \"string\"\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\",\n \"template_id\": \"\",\n \"has_data\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\",\n \"discarded_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"type\": \"account\",\n \"id\": \"\"\n }\n },\n \"created_by\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n },\n \"options\": {\n \"data\": [\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n },\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n }\n ]\n }\n }\n }\n ],\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "f04ec1f2-a4cb-485b-a22e-9f08bd73c69c", + "name": "Create a custom field definition", + "request": { + "name": "Create a custom field definition", + "description": { + "content": "Creates a custom field definition for your account. Pass `template_id` to copy a Terminal49 template; attributes you send override the template's values.", + "type": "text/plain" + }, + "url": { + "path": [ + "accounts", + ":account_id", + "custom_field_definitions" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "type": "any", + "value": "", + "key": "account_id", + "disabled": false, + "description": { + "content": "(Required) Your account ID. The API always uses the account of the authenticated user.", + "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Cargo\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"description\": \"\",\n \"data_type\": \"datetime\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": \"string\",\n \"key_1\": \"string\"\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"template_id\": \"\",\n \"reference_number\": false,\n \"sensitive\": false,\n \"inline_option_creation\": false\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "auth": null + }, + "response": [ + { + "id": "d29c1aed-e88a-49bb-b289-53c65241ceb9", + "name": "Created", + "originalRequest": { + "url": { + "path": [ + "accounts", + ":account_id", + "custom_field_definitions" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Your account ID. The API always uses the account of the authenticated user.", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "account_id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Cargo\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"description\": \"\",\n \"data_type\": \"datetime\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": \"string\",\n \"key_1\": \"string\"\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"template_id\": \"\",\n \"reference_number\": false,\n \"sensitive\": false,\n \"inline_option_creation\": false\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Created", + "code": 201, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Cargo\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"enum\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 9681\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\",\n \"template_id\": \"\",\n \"has_data\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\",\n \"discarded_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"type\": \"account\",\n \"id\": \"\"\n }\n },\n \"created_by\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n },\n \"options\": {\n \"data\": [\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n },\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n }\n ]\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "1764740a-3651-40e2-8da8-613604c135a6", + "name": "`template_id` does not match a Terminal49 template.", + "originalRequest": { + "url": { + "path": [ + "accounts", + ":account_id", + "custom_field_definitions" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Your account ID. The API always uses the account of the authenticated user.", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "account_id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Cargo\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"description\": \"\",\n \"data_type\": \"datetime\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": \"string\",\n \"key_1\": \"string\"\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"template_id\": \"\",\n \"reference_number\": false,\n \"sensitive\": false,\n \"inline_option_creation\": false\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "db41c9df-cb80-47e1-a1cf-7dca97c8b026", + "name": "Unprocessable Entity", + "originalRequest": { + "url": { + "path": [ + "accounts", + ":account_id", + "custom_field_definitions" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Your account ID. The API always uses the account of the authenticated user.", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "account_id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Cargo\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"description\": \"\",\n \"data_type\": \"datetime\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": \"string\",\n \"key_1\": \"string\"\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"template_id\": \"\",\n \"reference_number\": false,\n \"sensitive\": false,\n \"inline_option_creation\": false\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + } + ] + }, + { + "name": "Custom Field Options", + "description": "", + "item": [ + { + "id": "9955faa8-95c5-44f6-b410-0195cd0b16d0", + "name": "List custom field options", + "request": { + "name": "List custom field options", + "description": { + "content": "Lists every option of the definition. The list is not paginated. The API ignores `page[number]` and `page[size]` and returns every row, but still sends pagination `links`. Do not follow `links.next`.", + "type": "text/plain" + }, + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "type": "any", + "value": "", + "key": "definition_id", + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "GET", + "body": {}, + "auth": null + }, + "response": [ + { + "id": "bf3fc26e-b04d-4067-8e2a-b2eb3fd7bea7", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "definition_id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"value\": \"\",\n \"position\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"value\": \"\",\n \"position\": \"\"\n }\n }\n ],\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "1c9107ce-6083-4a49-8dfb-aab75d86ba65", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "definition_id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "263f905f-ada0-4bfe-b3ef-d7631d2bfcbc", + "name": "Create a custom field option", + "request": { + "name": "Create a custom field option", + "description": {}, + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "type": "any", + "value": "", + "key": "definition_id", + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"value\": \"\",\n \"position\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "auth": null + }, + "response": [ + { + "id": "40dba53d-02cc-409b-98bf-c43d4e0a81ee", + "name": "Created", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "definition_id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"value\": \"\",\n \"position\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Created", + "code": 201, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"value\": \"\",\n \"position\": \"\"\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "ebea85fd-9748-404f-952f-52d24a3bd96a", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "definition_id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"value\": \"\",\n \"position\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "198bb57c-5f11-4c3a-a1ef-cfd06bcb2504", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "definition_id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"value\": \"\",\n \"position\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "ca7848ba-3a3b-4364-aacb-c242aae13678", + "name": "Unprocessable Entity", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "definition_id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"value\": \"\",\n \"position\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "0faed222-95be-4d35-9130-cf17fc16d866", + "name": "Get a custom field option", + "request": { + "name": "Get a custom field option", + "description": {}, + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options", + ":option_id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "type": "any", + "value": "", + "key": "definition_id", + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + } + }, + { + "type": "any", + "value": "", + "key": "option_id", + "disabled": false, + "description": { + "content": "(Required) Custom field option ID", + "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "GET", + "body": {}, + "auth": null + }, + "response": [ + { + "id": "9c923aaa-c5c4-4d20-a516-0073da8b55a5", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options", + ":option_id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "definition_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field option ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "option_id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"value\": \"\",\n \"position\": \"\"\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "d5065b5e-b8c5-44a0-ba5d-45979bb50727", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options", + ":option_id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "definition_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field option ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "option_id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "89cebbf9-0641-45aa-ba82-aca0bc877479", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options", + ":option_id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "definition_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field option ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "option_id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "a844ce53-ab38-49c3-b1a9-b6cdebb20975", + "name": "Update a custom field option", + "request": { + "name": "Update a custom field option", + "description": {}, + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options", + ":option_id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "type": "any", + "value": "", + "key": "definition_id", + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + } + }, + { + "type": "any", + "value": "", + "key": "option_id", + "disabled": false, + "description": { + "content": "(Required) Custom field option ID", + "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"position\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "auth": null + }, + "response": [ + { + "id": "c6e5f754-9cb5-4bde-b53b-95398880df85", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options", + ":option_id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "definition_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field option ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "option_id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"position\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"value\": \"\",\n \"position\": \"\"\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "824592a4-9ef9-4c28-9d57-2f97cbca3694", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options", + ":option_id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "definition_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field option ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "option_id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"position\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "b3ef2a54-f082-4988-8c1a-1ea4fbee4763", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options", + ":option_id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "definition_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field option ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "option_id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"position\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "58d89541-97b2-437c-b974-31dcabe891e9", + "name": "Unprocessable Entity", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options", + ":option_id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "definition_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field option ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "option_id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field_option\",\n \"attributes\": {\n \"label\": \"\",\n \"position\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "79524fd1-ca27-43c1-9c3a-febb227ab17b", + "name": "Delete a custom field option", + "request": { + "name": "Delete a custom field option", + "description": {}, + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options", + ":option_id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "type": "any", + "value": "", + "key": "definition_id", + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + } + }, + { + "type": "any", + "value": "", + "key": "option_id", + "disabled": false, + "description": { + "content": "(Required) Custom field option ID", + "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "DELETE", + "body": {}, + "auth": null + }, + "response": [ + { + "id": "81242387-3370-492f-a1ee-9b6dd7f357f8", + "name": "No Content", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options", + ":option_id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "definition_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field option ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "option_id" + } + ] + }, + "header": [ + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "No Content", + "code": 204, + "header": [], + "cookie": [], + "_postman_previewlanguage": "text" + }, + { + "id": "ac9149c5-7e6b-4ed1-8ec3-8c587e228956", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options", + ":option_id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "definition_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field option ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "option_id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "b9e15d56-a459-47d2-8dd2-60694cfd0b6b", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "custom_field_definitions", + ":definition_id", + "options", + ":option_id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field definition ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "definition_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field option ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "option_id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + } + ] + }, + { + "name": "Custom Fields", + "description": "", + "item": [ + { + "id": "ccab2af6-f66e-401e-8e61-6f335973c063", + "name": "List custom fields", + "request": { + "name": "List custom fields", + "description": { + "content": "The list is not paginated. The API ignores `page[number]` and `page[size]` and returns every row, but still sends pagination `links`. Do not follow `links.next`.", + "type": "text/plain" + }, + "url": { + "path": [ + "custom_fields" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "Filter by entity type. The value must match exactly: `Shipment`, `Cargo` (containers) or `TrackingRequest`. (This can only be one of Shipment,Cargo,TrackingRequest)", + "type": "text/plain" + }, + "key": "filter[entity_type]", + "value": "Cargo" + }, + { + "disabled": true, + "description": { + "content": "Filter by entity ID", + "type": "text/plain" + }, + "key": "filter[entity_id]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Filter by custom field definition ID", + "type": "text/plain" + }, + "key": "filter[definition_id]", + "value": "" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "GET", + "body": {}, + "auth": null + }, + "response": [ + { + "id": "26504af5-0563-4e63-bbf3-ce60a9dd7411", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "custom_fields" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "Filter by entity type. The value must match exactly: `Shipment`, `Cargo` (containers) or `TrackingRequest`. (This can only be one of Shipment,Cargo,TrackingRequest)", + "type": "text/plain" + }, + "key": "filter[entity_type]", + "value": "Cargo" + }, + { + "disabled": true, + "description": { + "content": "Filter by entity ID", + "type": "text/plain" + }, + "key": "filter[entity_id]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Filter by custom field definition ID", + "type": "text/plain" + }, + "key": "filter[definition_id]", + "value": "" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"tracking_request\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"shipment\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n }\n ],\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "ab60ac1c-05b6-4754-9957-c8bf98d36798", + "name": "Create a custom field", + "request": { + "name": "Create a custom field", + "description": {}, + "url": { + "path": [ + "custom_fields" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n }\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "auth": null + }, + "response": [ + { + "id": "0c6725a3-6132-4f78-9eef-88a988125541", + "name": "Created", + "originalRequest": { + "url": { + "path": [ + "custom_fields" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n }\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Created", + "code": 201, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "85653a27-476a-4999-8bfe-089baaff38ef", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "custom_fields" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n }\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "1cbf775c-a98a-4c55-80d5-4fd0e481941b", + "name": "Unprocessable Entity", + "originalRequest": { + "url": { + "path": [ + "custom_fields" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n }\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "8ce7f592-c8cd-4a7a-96c8-dcd7230876d9", + "name": "Get a custom field", + "request": { + "name": "Get a custom field", + "description": {}, + "url": { + "path": [ + "custom_fields", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "type": "any", + "value": "", + "key": "id", + "disabled": false, + "description": { + "content": "(Required) Custom field ID", + "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "GET", + "body": {}, + "auth": null + }, + "response": [ + { + "id": "6bbf847c-2785-47fb-a095-65f77548f9ad", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "custom_fields", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "3dc39a9e-17b7-4b34-9302-37b9f799c3d8", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "custom_fields", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "0512bae4-aeb4-4f58-9842-31103a1bc787", + "name": "Update a custom field", + "request": { + "name": "Update a custom field", + "description": {}, + "url": { + "path": [ + "custom_fields", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "type": "any", + "value": "", + "key": "id", + "disabled": false, + "description": { + "content": "(Required) Custom field ID", + "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "auth": null + }, + "response": [ + { + "id": "f4b40db8-ee92-471c-9e6e-e53df921c6b3", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "custom_fields", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "548674ef-d390-4830-9f6f-eabc6099fcdb", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "custom_fields", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "55d33b6e-cc88-4992-9a85-12387d1028ae", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "custom_fields", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "452f2cd6-221d-442b-b6a6-b6f1267f666d", + "name": "Unprocessable Entity", + "originalRequest": { + "url": { + "path": [ + "custom_fields", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "e06f4ea2-e3d1-436e-ac7d-44302da61531", + "name": "Delete a custom field", + "request": { + "name": "Delete a custom field", + "description": {}, + "url": { + "path": [ + "custom_fields", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "type": "any", + "value": "", + "key": "id", + "disabled": false, + "description": { + "content": "(Required) Custom field ID", + "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "DELETE", + "body": {}, + "auth": null + }, + "response": [ + { + "id": "371cd563-b214-4df6-ae71-9a72f2432af8", + "name": "No Content", + "originalRequest": { + "url": { + "path": [ + "custom_fields", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "No Content", + "code": 204, + "header": [], + "cookie": [], + "_postman_previewlanguage": "text" + }, + { + "id": "7264ce80-73dc-435b-9da0-1102ec2a840e", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "custom_fields", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "0596f2f2-6082-43c7-9cec-81dbeb24ac1c", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "custom_fields", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Custom field ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + } + ] + }, + { + "name": "Shipments", + "description": "", + "item": [ + { + "id": "1bd4d719-f66d-4974-b511-dd206acbfcaa", + "name": "List shipments", + "request": { + "name": "List shipments", + "description": { + "content": "Returns shipments visible to your account. Default order: newest creation first. Filters combine with AND; multi-value behavior is parameter-specific. Unknown filter names are ignored by the API. See the filter reference for exact values, operators, implicit scopes, and usage limitations.", + "type": "text/plain" + }, + "url": { + "path": [ + "shipments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "\n", + "type": "text/plain" + }, + "key": "page[number]", + "value": "1" + }, + { + "disabled": true, + "description": { + "content": "Records per page. Default 30.", + "type": "text/plain" + }, + "key": "page[size]", + "value": "30" + }, + { + "disabled": true, + "description": { + "content": "Deprecated compatibility alias for filter[q]. Nested filter[q] takes precedence. A blank top-level q returns 400. No sunset date is documented.", + "type": "text/plain" + }, + "key": "q", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Comma delimited list of relations to include", + "type": "text/plain" + }, + "key": "include", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Set to `true` to add the `party_roles` relationship to each shipment. Add `include=party_roles.party` to embed the roles and their parties.", + "type": "text/plain" + }, + "key": "flag[parties]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Compatibility alias for filter[number]. Exact shipment number, including punctuation; not a partial container-number search. Nested filter[number] takes precedence.", + "type": "text/plain" + }, + "key": "number", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Compatibility alias for filter[tracking_stopped]. Nested filter takes precedence.", + "type": "text/plain" + }, + "key": "tracking_stopped", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Supported values: created_at, -created_at, pod_arrival, -pod_arrival, tracking_stopped_at, -tracking_stopped_at. Both created_at tokens sort newest first for compatibility. Unknown values fall back to newest creation first.", + "type": "text/plain" + }, + "key": "sort", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Prefix text search across shipment numbers, reference numbers, and linked container identifiers. Use search text, not comparison expressions.", + "type": "text/plain" + }, + "key": "filter[q]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Exact number match. Shipment arrays mean OR; container arrays of exact numbers mean AND. Use comma-separated container numbers for OR. Shipment scalar commas are literal.", + "type": "text/plain" + }, + "key": "filter[number]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[number]. Exact number match. Shipment arrays mean OR; container arrays of exact numbers mean AND. Use comma-separated container numbers for OR. Shipment scalar commas are literal.", + "type": "text/plain" + }, + "key": "filter[number][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Creation date. Use an ISO 8601 date-time with Z or a timezone offset; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Relative dates and comma-separated timestamps are not accepted. Use @exists or @not_exists for presence.", + "type": "text/plain" + }, + "key": "filter[created_at]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[created_at]. Creation date. Use an ISO 8601 date-time with Z or a timezone offset; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Relative dates and comma-separated timestamps are not accepted. Use @exists or @not_exists for presence.", + "type": "text/plain" + }, + "key": "filter[created_at][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "true selects shipments with tracking not stopped; false selects stopped tracking. Applies via the related shipment for containers.", + "type": "text/plain" + }, + "key": "filter[actively_tracked]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "true selects stopped tracking; false selects tracking not stopped. Combines with other filters using AND.", + "type": "text/plain" + }, + "key": "filter[tracking_stopped]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "arrived means actual POD arrival is present; on_ship means a voyage exists and actual POD arrival is absent. It is not a general shipment lifecycle status. (This can only be one of arrived,on_ship)", + "type": "text/plain" + }, + "key": "filter[voyage_status]", + "value": "arrived" + }, + { + "disabled": true, + "description": { + "content": "true selects shipments with POD or destination estimated/actual arrival today in the API server day. false does not narrow the list. The SDK accepts only true.", + "type": "text/plain" + }, + "key": "filter[arriving_today]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Actual POD arrival date. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "type": "text/plain" + }, + "key": "filter[pod_ata_at]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[pod_ata_at]. Actual POD arrival date. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "type": "text/plain" + }, + "key": "filter[pod_ata_at][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "POD arrival date: actual arrival takes precedence over estimated arrival. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "type": "text/plain" + }, + "key": "filter[pod_arrival]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[pod_arrival]. POD arrival date: actual arrival takes precedence over estimated arrival. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "type": "text/plain" + }, + "key": "filter[pod_arrival][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Port of discharge UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "type": "text/plain" + }, + "key": "filter[pod_code]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[pod_code]. Port of discharge UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "type": "text/plain" + }, + "key": "filter[pod_code][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Meaningful change in the POD-local ETA date, comparing the current ETA with its historical baseline. Requires a lower ISO 8601 timestamp bound (=, >, or >=); an optional upper bound must be later. Applies only to active, unarrived shipments with an ETA. Not a raw updated_at filter; a future lower bound is not guaranteed to produce no matches.", + "type": "text/plain" + }, + "key": "filter[pod_eta_changed_at]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[pod_eta_changed_at]. Meaningful change in the POD-local ETA date, comparing the current ETA with its historical baseline. Requires a lower ISO 8601 timestamp bound (=, >, or >=); an optional upper bound must be later. Applies only to active, unarrived shipments with an ETA. Not a raw updated_at filter; a future lower bound is not guaranteed to produce no matches.", + "type": "text/plain" + }, + "key": "filter[pod_eta_changed_at][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Port of discharge terminal ID. Obtain it from the related terminal resource. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean OR for this shipment terminal filter. ~ is not supported.", + "type": "text/plain" + }, + "key": "filter[pod_terminal_id]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[pod_terminal_id]. Port of discharge terminal ID. Obtain it from the related terminal resource. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean OR for this shipment terminal filter. ~ is not supported.", + "type": "text/plain" + }, + "key": "filter[pod_terminal_id][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Port of lading UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "type": "text/plain" + }, + "key": "filter[pol_code]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[pol_code]. Port of lading UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "type": "text/plain" + }, + "key": "filter[pol_code][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "User ID associated with a shipment container. Accepts one ID, comma-separated IDs, or arrays with OR semantics. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "type": "text/plain" + }, + "key": "filter[owner_id]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[owner_id]. User ID associated with a shipment container. Accepts one ID, comma-separated IDs, or arrays with OR semantics. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "type": "text/plain" + }, + "key": "filter[owner_id][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Shipment creator account ID. Comma-separated IDs mean OR; arrays of distinct IDs mean AND and return no matches. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "type": "text/plain" + }, + "key": "filter[creator_id]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[creator_id]. Shipment creator account ID. Comma-separated IDs mean OR; arrays of distinct IDs mean AND and return no matches. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "type": "text/plain" + }, + "key": "filter[creator_id][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Customer account ID or customer party ID. Falls back to the shipment creator when no customer party role exists. Presence checks refer to the customer party role. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "type": "text/plain" + }, + "key": "filter[customer_id]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[customer_id]. Customer account ID or customer party ID. Falls back to the shipment creator when no customer party role exists. Presence checks refer to the customer party role. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "type": "text/plain" + }, + "key": "filter[customer_id][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Prefix text search of an associated product name or SKU.", + "type": "text/plain" + }, + "key": "filter[product]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Party ID match. Accepts a scalar, comma-separated IDs, an array (OR), or an object with value and operator (any or all). Values must come from parties visible to your account.", + "type": "text/plain" + }, + "key": "filter[party_id]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Party IDs for object-form matching. Supply exact authorized IDs; comma-separated IDs use OR unless operator=all.", + "type": "text/plain" + }, + "key": "filter[party_id][value]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Repeated party IDs for object-form any/all matching. Requires actual party UUIDs.", + "type": "text/plain" + }, + "key": "filter[party_id][value][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Object-form party matching; requires value. any is the default; all requires every party on the same shipment. (This can only be one of any,all)", + "type": "text/plain" + }, + "key": "filter[party_id][operator]", + "value": "any" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[party_id]. Party ID match. Accepts a scalar, comma-separated IDs, an array (OR), or an object with value and operator (any or all). Values must come from parties visible to your account.", + "type": "text/plain" + }, + "key": "filter[party_id][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[party_id]. Party ID match. Accepts a scalar, comma-separated IDs, an array (OR), or an object with value and operator (any or all). Values must come from parties visible to your account.", + "type": "text/plain" + }, + "key": "filter[party_id][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Account-scoped shipment tags. Comma-separated names or arrays match ANY tag by default.", + "type": "text/plain" + }, + "key": "filter[tags]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[tags]. Account-scoped shipment tags. Comma-separated names or arrays match ANY tag by default.", + "type": "text/plain" + }, + "key": "filter[tags][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[tags]. Account-scoped shipment tags. Comma-separated names or arrays match ANY tag by default.", + "type": "text/plain" + }, + "key": "filter[tags][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "With tags, true requires ALL tags; false or absent means ANY. Has no effect without tags. The SDK requires tags (or shipment tag) when this modifier is supplied.", + "type": "text/plain" + }, + "key": "filter[tags_and]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Alias for tags. When both are present, tag takes precedence. Uses the requesting account tag names.", + "type": "text/plain" + }, + "key": "filter[tag]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[tag]. Alias for tags. When both are present, tag takes precedence. Uses the requesting account tag names.", + "type": "text/plain" + }, + "key": "filter[tag][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[tag]. Alias for tags. When both are present, tag takes precedence. Uses the requesting account tag names.", + "type": "text/plain" + }, + "key": "filter[tag][]", + "value": "" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "GET", + "body": {}, + "auth": null + }, + "response": [ + { + "id": "1a469d44-ce8f-49c4-ba41-c0a937e90dd8", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "shipments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "\n", + "type": "text/plain" + }, + "key": "page[number]", + "value": "1" + }, + { + "disabled": true, + "description": { + "content": "Records per page. Default 30.", + "type": "text/plain" + }, + "key": "page[size]", + "value": "30" + }, + { + "disabled": true, + "description": { + "content": "Deprecated compatibility alias for filter[q]. Nested filter[q] takes precedence. A blank top-level q returns 400. No sunset date is documented.", + "type": "text/plain" + }, + "key": "q", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Comma delimited list of relations to include", + "type": "text/plain" + }, + "key": "include", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Set to `true` to add the `party_roles` relationship to each shipment. Add `include=party_roles.party` to embed the roles and their parties.", + "type": "text/plain" + }, + "key": "flag[parties]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Compatibility alias for filter[number]. Exact shipment number, including punctuation; not a partial container-number search. Nested filter[number] takes precedence.", + "type": "text/plain" + }, + "key": "number", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Compatibility alias for filter[tracking_stopped]. Nested filter takes precedence.", + "type": "text/plain" + }, + "key": "tracking_stopped", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Supported values: created_at, -created_at, pod_arrival, -pod_arrival, tracking_stopped_at, -tracking_stopped_at. Both created_at tokens sort newest first for compatibility. Unknown values fall back to newest creation first.", + "type": "text/plain" + }, + "key": "sort", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Prefix text search across shipment numbers, reference numbers, and linked container identifiers. Use search text, not comparison expressions.", + "type": "text/plain" + }, + "key": "filter[q]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Exact number match. Shipment arrays mean OR; container arrays of exact numbers mean AND. Use comma-separated container numbers for OR. Shipment scalar commas are literal.", + "type": "text/plain" + }, + "key": "filter[number]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[number]. Exact number match. Shipment arrays mean OR; container arrays of exact numbers mean AND. Use comma-separated container numbers for OR. Shipment scalar commas are literal.", + "type": "text/plain" + }, + "key": "filter[number][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Creation date. Use an ISO 8601 date-time with Z or a timezone offset; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Relative dates and comma-separated timestamps are not accepted. Use @exists or @not_exists for presence.", + "type": "text/plain" + }, + "key": "filter[created_at]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[created_at]. Creation date. Use an ISO 8601 date-time with Z or a timezone offset; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Relative dates and comma-separated timestamps are not accepted. Use @exists or @not_exists for presence.", + "type": "text/plain" + }, + "key": "filter[created_at][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "true selects shipments with tracking not stopped; false selects stopped tracking. Applies via the related shipment for containers.", + "type": "text/plain" + }, + "key": "filter[actively_tracked]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "true selects stopped tracking; false selects tracking not stopped. Combines with other filters using AND.", + "type": "text/plain" + }, + "key": "filter[tracking_stopped]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "arrived means actual POD arrival is present; on_ship means a voyage exists and actual POD arrival is absent. It is not a general shipment lifecycle status. (This can only be one of arrived,on_ship)", + "type": "text/plain" + }, + "key": "filter[voyage_status]", + "value": "arrived" + }, + { + "disabled": true, + "description": { + "content": "true selects shipments with POD or destination estimated/actual arrival today in the API server day. false does not narrow the list. The SDK accepts only true.", + "type": "text/plain" + }, + "key": "filter[arriving_today]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Actual POD arrival date. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "type": "text/plain" + }, + "key": "filter[pod_ata_at]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[pod_ata_at]. Actual POD arrival date. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "type": "text/plain" + }, + "key": "filter[pod_ata_at][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "POD arrival date: actual arrival takes precedence over estimated arrival. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "type": "text/plain" + }, + "key": "filter[pod_arrival]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[pod_arrival]. POD arrival date: actual arrival takes precedence over estimated arrival. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "type": "text/plain" + }, + "key": "filter[pod_arrival][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Port of discharge UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "type": "text/plain" + }, + "key": "filter[pod_code]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[pod_code]. Port of discharge UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "type": "text/plain" + }, + "key": "filter[pod_code][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Meaningful change in the POD-local ETA date, comparing the current ETA with its historical baseline. Requires a lower ISO 8601 timestamp bound (=, >, or >=); an optional upper bound must be later. Applies only to active, unarrived shipments with an ETA. Not a raw updated_at filter; a future lower bound is not guaranteed to produce no matches.", + "type": "text/plain" + }, + "key": "filter[pod_eta_changed_at]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[pod_eta_changed_at]. Meaningful change in the POD-local ETA date, comparing the current ETA with its historical baseline. Requires a lower ISO 8601 timestamp bound (=, >, or >=); an optional upper bound must be later. Applies only to active, unarrived shipments with an ETA. Not a raw updated_at filter; a future lower bound is not guaranteed to produce no matches.", + "type": "text/plain" + }, + "key": "filter[pod_eta_changed_at][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Port of discharge terminal ID. Obtain it from the related terminal resource. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean OR for this shipment terminal filter. ~ is not supported.", + "type": "text/plain" + }, + "key": "filter[pod_terminal_id]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[pod_terminal_id]. Port of discharge terminal ID. Obtain it from the related terminal resource. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean OR for this shipment terminal filter. ~ is not supported.", + "type": "text/plain" + }, + "key": "filter[pod_terminal_id][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Port of lading UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "type": "text/plain" + }, + "key": "filter[pol_code]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[pol_code]. Port of lading UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "type": "text/plain" + }, + "key": "filter[pol_code][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "User ID associated with a shipment container. Accepts one ID, comma-separated IDs, or arrays with OR semantics. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "type": "text/plain" + }, + "key": "filter[owner_id]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[owner_id]. User ID associated with a shipment container. Accepts one ID, comma-separated IDs, or arrays with OR semantics. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "type": "text/plain" + }, + "key": "filter[owner_id][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Shipment creator account ID. Comma-separated IDs mean OR; arrays of distinct IDs mean AND and return no matches. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "type": "text/plain" + }, + "key": "filter[creator_id]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[creator_id]. Shipment creator account ID. Comma-separated IDs mean OR; arrays of distinct IDs mean AND and return no matches. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "type": "text/plain" + }, + "key": "filter[creator_id][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Customer account ID or customer party ID. Falls back to the shipment creator when no customer party role exists. Presence checks refer to the customer party role. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "type": "text/plain" + }, + "key": "filter[customer_id]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[customer_id]. Customer account ID or customer party ID. Falls back to the shipment creator when no customer party role exists. Presence checks refer to the customer party role. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "type": "text/plain" + }, + "key": "filter[customer_id][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Prefix text search of an associated product name or SKU.", + "type": "text/plain" + }, + "key": "filter[product]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Party ID match. Accepts a scalar, comma-separated IDs, an array (OR), or an object with value and operator (any or all). Values must come from parties visible to your account.", + "type": "text/plain" + }, + "key": "filter[party_id]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Party IDs for object-form matching. Supply exact authorized IDs; comma-separated IDs use OR unless operator=all.", + "type": "text/plain" + }, + "key": "filter[party_id][value]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Repeated party IDs for object-form any/all matching. Requires actual party UUIDs.", + "type": "text/plain" + }, + "key": "filter[party_id][value][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Object-form party matching; requires value. any is the default; all requires every party on the same shipment. (This can only be one of any,all)", + "type": "text/plain" + }, + "key": "filter[party_id][operator]", + "value": "any" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[party_id]. Party ID match. Accepts a scalar, comma-separated IDs, an array (OR), or an object with value and operator (any or all). Values must come from parties visible to your account.", + "type": "text/plain" + }, + "key": "filter[party_id][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Account-scoped shipment tags. Comma-separated names or arrays match ANY tag by default.", + "type": "text/plain" + }, + "key": "filter[tags]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[tags]. Account-scoped shipment tags. Comma-separated names or arrays match ANY tag by default.", + "type": "text/plain" + }, + "key": "filter[tags][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "With tags, true requires ALL tags; false or absent means ANY. Has no effect without tags. The SDK requires tags (or shipment tag) when this modifier is supplied.", + "type": "text/plain" + }, + "key": "filter[tags_and]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Alias for tags. When both are present, tag takes precedence. Uses the requesting account tag names.", + "type": "text/plain" + }, + "key": "filter[tag]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[tag]. Alias for tags. When both are present, tag takes precedence. Uses the requesting account tag names.", + "type": "text/plain" + }, + "key": "filter[tag][]", + "value": "" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"no_updates_at_line\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"metro_area\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"cancelled_by_user\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"metro_area\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"rail_terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n }\n ],\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"container\",\n \"attributes\": {\n \"number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"equipment_type\": \"tank\",\n \"equipment_length\": 20,\n \"equipment_height\": \"high_cube\",\n \"weight_in_lbs\": \"\",\n \"created_at\": \"\",\n \"seal_number\": \"\",\n \"pickup_lfd\": \"\",\n \"pickup_appointment_at\": \"\",\n \"availability_known\": \"\",\n \"available_for_pickup\": \"\",\n \"pod_arrived_at\": \"\",\n \"pod_discharged_at\": \"\",\n \"pod_full_out_at\": \"\",\n \"terminal_checked_at\": \"\",\n \"pod_full_out_chassis_number\": \"\",\n \"location_at_pod_terminal\": \"\",\n \"final_destination_full_out_at\": \"\",\n \"empty_terminated_at\": \"\",\n \"holds_at_pod_terminal\": [\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n }\n ],\n \"fees_at_pod_terminal\": [\n {\n \"type\": \"demurrage\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n },\n {\n \"type\": \"exam\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n }\n ],\n \"pod_timezone\": \"\",\n \"final_destination_timezone\": \"\",\n \"empty_terminated_timezone\": \"\",\n \"pod_rail_carrier_scac\": \"\",\n \"ind_rail_carrier_scac\": \"\",\n \"pod_last_tracking_request_at\": \"\",\n \"shipment_last_tracking_request_at\": \"\",\n \"pod_rail_loaded_at\": \"\",\n \"pod_rail_departed_at\": \"\",\n \"ind_eta_at\": \"\",\n \"ind_ata_at\": \"\",\n \"ind_rail_unloaded_at\": \"\",\n \"ind_facility_lfd_on\": \"\",\n \"import_deadlines\": {\n \"pickup_lfd_terminal\": \"\",\n \"pickup_lfd_rail\": \"\",\n \"pickup_lfd_line\": \"\"\n },\n \"current_status\": \"picked_up\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"pickup_facility\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"transport_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n }\n ]\n },\n \"raw_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n }\n ]\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"container\",\n \"attributes\": {\n \"number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"equipment_type\": \"open top\",\n \"equipment_length\": 20,\n \"equipment_height\": \"standard\",\n \"weight_in_lbs\": \"\",\n \"created_at\": \"\",\n \"seal_number\": \"\",\n \"pickup_lfd\": \"\",\n \"pickup_appointment_at\": \"\",\n \"availability_known\": \"\",\n \"available_for_pickup\": \"\",\n \"pod_arrived_at\": \"\",\n \"pod_discharged_at\": \"\",\n \"pod_full_out_at\": \"\",\n \"terminal_checked_at\": \"\",\n \"pod_full_out_chassis_number\": \"\",\n \"location_at_pod_terminal\": \"\",\n \"final_destination_full_out_at\": \"\",\n \"empty_terminated_at\": \"\",\n \"holds_at_pod_terminal\": [\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"status\": \"pending\",\n \"description\": \"\"\n }\n ],\n \"fees_at_pod_terminal\": [\n {\n \"type\": \"demurrage\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n },\n {\n \"type\": \"other\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n }\n ],\n \"pod_timezone\": \"\",\n \"final_destination_timezone\": \"\",\n \"empty_terminated_timezone\": \"\",\n \"pod_rail_carrier_scac\": \"\",\n \"ind_rail_carrier_scac\": \"\",\n \"pod_last_tracking_request_at\": \"\",\n \"shipment_last_tracking_request_at\": \"\",\n \"pod_rail_loaded_at\": \"\",\n \"pod_rail_departed_at\": \"\",\n \"ind_eta_at\": \"\",\n \"ind_ata_at\": \"\",\n \"ind_rail_unloaded_at\": \"\",\n \"ind_facility_lfd_on\": \"\",\n \"import_deadlines\": {\n \"pickup_lfd_terminal\": \"\",\n \"pickup_lfd_rail\": \"\",\n \"pickup_lfd_line\": \"\"\n },\n \"current_status\": \"empty_returned\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"pickup_facility\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"transport_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n }\n ]\n },\n \"raw_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n }\n ]\n }\n }\n }\n ],\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "ca257b81-1340-4845-bd0e-5ca31015b7dd", + "name": "Malformed supported filter value, operator, range, or strict boolean. The error identifies the invalid parameter where available.", + "originalRequest": { + "url": { + "path": [ + "shipments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "\n", + "type": "text/plain" + }, + "key": "page[number]", + "value": "1" + }, + { + "disabled": true, + "description": { + "content": "Records per page. Default 30.", + "type": "text/plain" + }, + "key": "page[size]", + "value": "30" + }, + { + "disabled": true, + "description": { + "content": "Deprecated compatibility alias for filter[q]. Nested filter[q] takes precedence. A blank top-level q returns 400. No sunset date is documented.", + "type": "text/plain" + }, + "key": "q", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Comma delimited list of relations to include", + "type": "text/plain" + }, + "key": "include", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Set to `true` to add the `party_roles` relationship to each shipment. Add `include=party_roles.party` to embed the roles and their parties.", + "type": "text/plain" + }, + "key": "flag[parties]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Compatibility alias for filter[number]. Exact shipment number, including punctuation; not a partial container-number search. Nested filter[number] takes precedence.", + "type": "text/plain" + }, + "key": "number", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Compatibility alias for filter[tracking_stopped]. Nested filter takes precedence.", + "type": "text/plain" + }, + "key": "tracking_stopped", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Supported values: created_at, -created_at, pod_arrival, -pod_arrival, tracking_stopped_at, -tracking_stopped_at. Both created_at tokens sort newest first for compatibility. Unknown values fall back to newest creation first.", + "type": "text/plain" + }, + "key": "sort", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Prefix text search across shipment numbers, reference numbers, and linked container identifiers. Use search text, not comparison expressions.", + "type": "text/plain" + }, + "key": "filter[q]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Exact number match. Shipment arrays mean OR; container arrays of exact numbers mean AND. Use comma-separated container numbers for OR. Shipment scalar commas are literal.", + "type": "text/plain" + }, + "key": "filter[number]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[number]. Exact number match. Shipment arrays mean OR; container arrays of exact numbers mean AND. Use comma-separated container numbers for OR. Shipment scalar commas are literal.", + "type": "text/plain" + }, + "key": "filter[number][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Creation date. Use an ISO 8601 date-time with Z or a timezone offset; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Relative dates and comma-separated timestamps are not accepted. Use @exists or @not_exists for presence.", + "type": "text/plain" + }, + "key": "filter[created_at]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[created_at]. Creation date. Use an ISO 8601 date-time with Z or a timezone offset; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Relative dates and comma-separated timestamps are not accepted. Use @exists or @not_exists for presence.", + "type": "text/plain" + }, + "key": "filter[created_at][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "true selects shipments with tracking not stopped; false selects stopped tracking. Applies via the related shipment for containers.", + "type": "text/plain" + }, + "key": "filter[actively_tracked]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "true selects stopped tracking; false selects tracking not stopped. Combines with other filters using AND.", + "type": "text/plain" + }, + "key": "filter[tracking_stopped]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "arrived means actual POD arrival is present; on_ship means a voyage exists and actual POD arrival is absent. It is not a general shipment lifecycle status. (This can only be one of arrived,on_ship)", + "type": "text/plain" + }, + "key": "filter[voyage_status]", + "value": "arrived" + }, + { + "disabled": true, + "description": { + "content": "true selects shipments with POD or destination estimated/actual arrival today in the API server day. false does not narrow the list. The SDK accepts only true.", + "type": "text/plain" + }, + "key": "filter[arriving_today]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Actual POD arrival date. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "type": "text/plain" + }, + "key": "filter[pod_ata_at]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[pod_ata_at]. Actual POD arrival date. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "type": "text/plain" + }, + "key": "filter[pod_ata_at][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "POD arrival date: actual arrival takes precedence over estimated arrival. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "type": "text/plain" + }, + "key": "filter[pod_arrival]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[pod_arrival]. POD arrival date: actual arrival takes precedence over estimated arrival. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "type": "text/plain" + }, + "key": "filter[pod_arrival][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Port of discharge UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "type": "text/plain" + }, + "key": "filter[pod_code]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[pod_code]. Port of discharge UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "type": "text/plain" + }, + "key": "filter[pod_code][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Meaningful change in the POD-local ETA date, comparing the current ETA with its historical baseline. Requires a lower ISO 8601 timestamp bound (=, >, or >=); an optional upper bound must be later. Applies only to active, unarrived shipments with an ETA. Not a raw updated_at filter; a future lower bound is not guaranteed to produce no matches.", + "type": "text/plain" + }, + "key": "filter[pod_eta_changed_at]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[pod_eta_changed_at]. Meaningful change in the POD-local ETA date, comparing the current ETA with its historical baseline. Requires a lower ISO 8601 timestamp bound (=, >, or >=); an optional upper bound must be later. Applies only to active, unarrived shipments with an ETA. Not a raw updated_at filter; a future lower bound is not guaranteed to produce no matches.", + "type": "text/plain" + }, + "key": "filter[pod_eta_changed_at][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Port of discharge terminal ID. Obtain it from the related terminal resource. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean OR for this shipment terminal filter. ~ is not supported.", + "type": "text/plain" + }, + "key": "filter[pod_terminal_id]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[pod_terminal_id]. Port of discharge terminal ID. Obtain it from the related terminal resource. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean OR for this shipment terminal filter. ~ is not supported.", + "type": "text/plain" + }, + "key": "filter[pod_terminal_id][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Port of lading UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "type": "text/plain" + }, + "key": "filter[pol_code]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[pol_code]. Port of lading UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "type": "text/plain" + }, + "key": "filter[pol_code][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "User ID associated with a shipment container. Accepts one ID, comma-separated IDs, or arrays with OR semantics. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "type": "text/plain" + }, + "key": "filter[owner_id]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[owner_id]. User ID associated with a shipment container. Accepts one ID, comma-separated IDs, or arrays with OR semantics. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "type": "text/plain" + }, + "key": "filter[owner_id][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Shipment creator account ID. Comma-separated IDs mean OR; arrays of distinct IDs mean AND and return no matches. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "type": "text/plain" + }, + "key": "filter[creator_id]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[creator_id]. Shipment creator account ID. Comma-separated IDs mean OR; arrays of distinct IDs mean AND and return no matches. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "type": "text/plain" + }, + "key": "filter[creator_id][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Customer account ID or customer party ID. Falls back to the shipment creator when no customer party role exists. Presence checks refer to the customer party role. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "type": "text/plain" + }, + "key": "filter[customer_id]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[customer_id]. Customer account ID or customer party ID. Falls back to the shipment creator when no customer party role exists. Presence checks refer to the customer party role. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "type": "text/plain" + }, + "key": "filter[customer_id][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Prefix text search of an associated product name or SKU.", + "type": "text/plain" + }, + "key": "filter[product]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Party ID match. Accepts a scalar, comma-separated IDs, an array (OR), or an object with value and operator (any or all). Values must come from parties visible to your account.", + "type": "text/plain" + }, + "key": "filter[party_id]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Party IDs for object-form matching. Supply exact authorized IDs; comma-separated IDs use OR unless operator=all.", + "type": "text/plain" + }, + "key": "filter[party_id][value]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Repeated party IDs for object-form any/all matching. Requires actual party UUIDs.", + "type": "text/plain" + }, + "key": "filter[party_id][value][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Object-form party matching; requires value. any is the default; all requires every party on the same shipment. (This can only be one of any,all)", + "type": "text/plain" + }, + "key": "filter[party_id][operator]", + "value": "any" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[party_id]. Party ID match. Accepts a scalar, comma-separated IDs, an array (OR), or an object with value and operator (any or all). Values must come from parties visible to your account.", + "type": "text/plain" + }, + "key": "filter[party_id][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Account-scoped shipment tags. Comma-separated names or arrays match ANY tag by default.", + "type": "text/plain" + }, + "key": "filter[tags]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[tags]. Account-scoped shipment tags. Comma-separated names or arrays match ANY tag by default.", + "type": "text/plain" + }, + "key": "filter[tags][]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "With tags, true requires ALL tags; false or absent means ANY. Has no effect without tags. The SDK requires tags (or shipment tag) when this modifier is supplied.", + "type": "text/plain" + }, + "key": "filter[tags_and]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Alias for tags. When both are present, tag takes precedence. Uses the requesting account tag names.", + "type": "text/plain" + }, + "key": "filter[tag]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Bracketed array form of filter[tag]. Alias for tags. When both are present, tag takes precedence. Uses the requesting account tag names.", + "type": "text/plain" + }, + "key": "filter[tag][]", + "value": "" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Bad Request", + "code": 400, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "bb866218-01ae-456d-9365-b1b3647dbb7e", + "name": "Get a shipment", + "request": { + "name": "Get a shipment", + "description": { + "content": "Retrieves the details of an existing shipment. You need only supply the unique shipment `id` that was returned upon `tracking_request` creation.", + "type": "text/plain" + }, + "url": { + "path": [ + "shipments", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma delimited list of relations to include", + "type": "text/plain" + }, + "key": "include", "value": "" }, { - "disabled": true, - "description": { - "content": "Bracketed array form of filter[owner_id]. User ID associated with a shipment container. Accepts one ID, comma-separated IDs, or arrays with OR semantics. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", - "type": "text/plain" + "disabled": true, + "description": { + "content": "Set to `true` to add the `party_roles` relationship to each shipment. Add `include=party_roles.party` to embed the roles and their parties.", + "type": "text/plain" + }, + "key": "flag[parties]", + "value": "" + } + ], + "variable": [ + { + "type": "any", + "value": "", + "key": "id", + "disabled": false, + "description": { + "content": "(Required) Shipment Id", + "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "GET", + "body": {}, + "auth": null + }, + "response": [ + { + "id": "bf38230f-d4b7-4fff-8ed0-c2afc57e82ed", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma delimited list of relations to include", + "type": "text/plain" + }, + "key": "include", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Set to `true` to add the `party_roles` relationship to each shipment. Add `include=party_roles.party` to embed the roles and their parties.", + "type": "text/plain" + }, + "key": "flag[parties]", + "value": "" + } + ], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Shipment Id", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"booking_cancelled\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"metro_area\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"container\",\n \"attributes\": {\n \"number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"equipment_type\": \"reefer\",\n \"equipment_length\": 10,\n \"equipment_height\": \"high_cube\",\n \"weight_in_lbs\": \"\",\n \"created_at\": \"\",\n \"seal_number\": \"\",\n \"pickup_lfd\": \"\",\n \"pickup_appointment_at\": \"\",\n \"availability_known\": \"\",\n \"available_for_pickup\": \"\",\n \"pod_arrived_at\": \"\",\n \"pod_discharged_at\": \"\",\n \"pod_full_out_at\": \"\",\n \"terminal_checked_at\": \"\",\n \"pod_full_out_chassis_number\": \"\",\n \"location_at_pod_terminal\": \"\",\n \"final_destination_full_out_at\": \"\",\n \"empty_terminated_at\": \"\",\n \"holds_at_pod_terminal\": [\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n }\n ],\n \"fees_at_pod_terminal\": [\n {\n \"type\": \"exam\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n },\n {\n \"type\": \"total\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n }\n ],\n \"pod_timezone\": \"\",\n \"final_destination_timezone\": \"\",\n \"empty_terminated_timezone\": \"\",\n \"pod_rail_carrier_scac\": \"\",\n \"ind_rail_carrier_scac\": \"\",\n \"pod_last_tracking_request_at\": \"\",\n \"shipment_last_tracking_request_at\": \"\",\n \"pod_rail_loaded_at\": \"\",\n \"pod_rail_departed_at\": \"\",\n \"ind_eta_at\": \"\",\n \"ind_ata_at\": \"\",\n \"ind_rail_unloaded_at\": \"\",\n \"ind_facility_lfd_on\": \"\",\n \"import_deadlines\": {\n \"pickup_lfd_terminal\": \"\",\n \"pickup_lfd_rail\": \"\",\n \"pickup_lfd_line\": \"\"\n },\n \"current_status\": \"empty_returned\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"pickup_facility\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"transport_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n }\n ]\n },\n \"raw_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n }\n ]\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"container\",\n \"attributes\": {\n \"number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"equipment_type\": \"dry\",\n \"equipment_length\": 20,\n \"equipment_height\": \"high_cube\",\n \"weight_in_lbs\": \"\",\n \"created_at\": \"\",\n \"seal_number\": \"\",\n \"pickup_lfd\": \"\",\n \"pickup_appointment_at\": \"\",\n \"availability_known\": \"\",\n \"available_for_pickup\": \"\",\n \"pod_arrived_at\": \"\",\n \"pod_discharged_at\": \"\",\n \"pod_full_out_at\": \"\",\n \"terminal_checked_at\": \"\",\n \"pod_full_out_chassis_number\": \"\",\n \"location_at_pod_terminal\": \"\",\n \"final_destination_full_out_at\": \"\",\n \"empty_terminated_at\": \"\",\n \"holds_at_pod_terminal\": [\n {\n \"name\": \"\",\n \"status\": \"pending\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"status\": \"pending\",\n \"description\": \"\"\n }\n ],\n \"fees_at_pod_terminal\": [\n {\n \"type\": \"exam\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n },\n {\n \"type\": \"total\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n }\n ],\n \"pod_timezone\": \"\",\n \"final_destination_timezone\": \"\",\n \"empty_terminated_timezone\": \"\",\n \"pod_rail_carrier_scac\": \"\",\n \"ind_rail_carrier_scac\": \"\",\n \"pod_last_tracking_request_at\": \"\",\n \"shipment_last_tracking_request_at\": \"\",\n \"pod_rail_loaded_at\": \"\",\n \"pod_rail_departed_at\": \"\",\n \"ind_eta_at\": \"\",\n \"ind_ata_at\": \"\",\n \"ind_rail_unloaded_at\": \"\",\n \"ind_facility_lfd_on\": \"\",\n \"import_deadlines\": {\n \"pickup_lfd_terminal\": \"\",\n \"pickup_lfd_rail\": \"\",\n \"pickup_lfd_line\": \"\"\n },\n \"current_status\": \"empty_returned\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"pickup_facility\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"transport_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n }\n ]\n },\n \"raw_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n }\n ]\n }\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "1f651ec6-b326-4e12-9921-f986c9f4d749", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma delimited list of relations to include", + "type": "text/plain" + }, + "key": "include", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Set to `true` to add the `party_roles` relationship to each shipment. Add `include=party_roles.party` to embed the roles and their parties.", + "type": "text/plain" + }, + "key": "flag[parties]", + "value": "" + } + ], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Shipment Id", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "9a4e72be-2506-4fdc-b4e5-10eba98cfa1c", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma delimited list of relations to include", + "type": "text/plain" + }, + "key": "include", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Set to `true` to add the `party_roles` relationship to each shipment. Add `include=party_roles.party` to embed the roles and their parties.", + "type": "text/plain" + }, + "key": "flag[parties]", + "value": "" + } + ], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Shipment Id", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" }, - "key": "filter[owner_id][]", - "value": "" + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "a38a43b1-e1f4-426b-9155-2a928dd8fbda", + "name": "Unprocessable Entity", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma delimited list of relations to include", + "type": "text/plain" + }, + "key": "include", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Set to `true` to add the `party_roles` relationship to each shipment. Add `include=party_roles.party` to embed the roles and their parties.", + "type": "text/plain" + }, + "key": "flag[parties]", + "value": "" + } + ], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Shipment Id", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, + "header": [ { - "disabled": true, + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "34483aba-c086-45e7-8e9f-f7eb3603b503", + "name": "Edit a shipment", + "request": { + "name": "Edit a shipment", + "description": { + "content": "Update a shipment.", + "type": "text/plain" + }, + "url": { + "path": [ + "shipments", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "type": "any", + "value": "", + "key": "id", + "disabled": false, "description": { - "content": "Shipment creator account ID. Comma-separated IDs mean OR; arrays of distinct IDs mean AND and return no matches. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "content": "(Required) Shipment Id", "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"user_provided_mbl_number\": \"\",\n \"user_provided_booking_number\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ]\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "auth": null + }, + "response": [ + { + "id": "4e0abfca-3e8d-4835-87dd-d3854fe07fa1", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Shipment Id", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" }, - "key": "filter[creator_id]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Bracketed array form of filter[creator_id]. Shipment creator account ID. Comma-separated IDs mean OR; arrays of distinct IDs mean AND and return no matches. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", - "type": "text/plain" + { + "key": "Accept", + "value": "application/json" }, - "key": "filter[creator_id][]", - "value": "" - }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"user_provided_mbl_number\": \"\",\n \"user_provided_booking_number\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ]\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "OK", + "code": 200, + "header": [ { - "disabled": true, - "description": { - "content": "Customer account ID or customer party ID. Falls back to the shipment creator when no customer party role exists. Presence checks refer to the customer party role. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", - "type": "text/plain" - }, - "key": "filter[customer_id]", - "value": "" + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": null\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"metro_area\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "26240b9b-a57a-4004-906e-5caba2d3ac5a", + "name": "Bad Request", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Shipment Id", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] }, - { - "disabled": true, - "description": { - "content": "Bracketed array form of filter[customer_id]. Customer account ID or customer party ID. Falls back to the shipment creator when no customer party role exists. Presence checks refer to the customer party role. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", - "type": "text/plain" + "header": [ + { + "key": "Content-Type", + "value": "application/json" }, - "key": "filter[customer_id][]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Prefix text search of an associated product name or SKU.", - "type": "text/plain" + { + "key": "Accept", + "value": "application/json" }, - "key": "filter[product]", - "value": "" - }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"user_provided_mbl_number\": \"\",\n \"user_provided_booking_number\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ]\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Bad Request", + "code": 400, + "header": [ { - "disabled": true, - "description": { - "content": "Party ID match. Accepts a scalar, comma-separated IDs, an array (OR), or an object with value and operator (any or all). Values must come from parties visible to your account.", - "type": "text/plain" - }, - "key": "filter[party_id]", - "value": "" + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "9f8bdbb1-f73c-4fcd-a332-bcbbee3bb6ad", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Shipment Id", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] }, - { - "disabled": true, - "description": { - "content": "Party IDs for object-form matching. Supply exact authorized IDs; comma-separated IDs use OR unless operator=all.", - "type": "text/plain" + "header": [ + { + "key": "Content-Type", + "value": "application/json" }, - "key": "filter[party_id][value]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Repeated party IDs for object-form any/all matching. Requires actual party UUIDs.", - "type": "text/plain" + { + "key": "Accept", + "value": "application/json" }, - "key": "filter[party_id][value][]", - "value": "" - }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"user_provided_mbl_number\": \"\",\n \"user_provided_booking_number\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ]\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unauthorized", + "code": 401, + "header": [ { - "disabled": true, - "description": { - "content": "Object-form party matching; requires value. any is the default; all requires every party on the same shipment. (This can only be one of any,all)", - "type": "text/plain" - }, - "key": "filter[party_id][operator]", - "value": "all" + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "78816f74-4ba8-4a5f-8a90-584570b33f54", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Shipment Id", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"user_provided_mbl_number\": \"\",\n \"user_provided_booking_number\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ]\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Not Found", + "code": 404, + "header": [ { - "disabled": true, - "description": { - "content": "Bracketed array form of filter[party_id]. Party ID match. Accepts a scalar, comma-separated IDs, an array (OR), or an object with value and operator (any or all). Values must come from parties visible to your account.", - "type": "text/plain" - }, - "key": "filter[party_id][]", - "value": "" + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "09319861-87c2-4723-85c1-d6b3bd5a1e6a", + "name": "Unprocessable Entity", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Shipment Id", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] }, - { - "disabled": true, - "description": { - "content": "Bracketed array form of filter[party_id]. Party ID match. Accepts a scalar, comma-separated IDs, an array (OR), or an object with value and operator (any or all). Values must come from parties visible to your account.", - "type": "text/plain" + "header": [ + { + "key": "Content-Type", + "value": "application/json" }, - "key": "filter[party_id][]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Account-scoped shipment tags. Comma-separated names or arrays match ANY tag by default.", - "type": "text/plain" + { + "key": "Accept", + "value": "application/json" }, - "key": "filter[tags]", - "value": "" - }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"user_provided_mbl_number\": \"\",\n \"user_provided_booking_number\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ]\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, + "header": [ { - "disabled": true, - "description": { - "content": "Bracketed array form of filter[tags]. Account-scoped shipment tags. Comma-separated names or arrays match ANY tag by default.", - "type": "text/plain" - }, - "key": "filter[tags][]", - "value": "" - }, + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "896d626e-4143-4dea-9bde-13ea044bded9", + "name": "Stop tracking a shipment", + "request": { + "name": "Stop tracking a shipment", + "description": { + "content": "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.", + "type": "text/plain" + }, + "url": { + "path": [ + "shipments", + ":id", + "stop_tracking" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "type": "any", + "value": "", + "key": "id", + "disabled": false, "description": { - "content": "Bracketed array form of filter[tags]. Account-scoped shipment tags. Comma-separated names or arrays match ANY tag by default.", + "content": "(Required) ", "type": "text/plain" - }, - "key": "filter[tags][]", - "value": "" + } + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "PATCH", + "body": {}, + "auth": null + }, + "response": [ + { + "id": "a492daf4-e422-4e69-bbf7-f74926f526b7", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":id", + "stop_tracking" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] }, - { - "disabled": true, - "description": { - "content": "With tags, true requires ALL tags; false or absent means ANY. Has no effect without tags. The SDK requires tags (or shipment tag) when this modifier is supplied.", - "type": "text/plain" + "header": [ + { + "key": "Accept", + "value": "application/json" }, - "key": "filter[tags_and]", - "value": "" - }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": {} + }, + "status": "OK", + "code": 200, + "header": [ { - "disabled": true, - "description": { - "content": "Alias for tags. When both are present, tag takes precedence. Uses the requesting account tag names.", - "type": "text/plain" - }, - "key": "filter[tag]", - "value": "" + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": null\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"metro_area\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "71480ea4-1429-444b-a7a0-d3ec7fdd5736", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":id", + "stop_tracking" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] }, - { - "disabled": true, - "description": { - "content": "Bracketed array form of filter[tag]. Alias for tags. When both are present, tag takes precedence. Uses the requesting account tag names.", - "type": "text/plain" + "header": [ + { + "key": "Accept", + "value": "application/json" }, - "key": "filter[tag][]", - "value": "" - }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": {} + }, + "status": "Unauthorized", + "code": 401, + "header": [ { - "disabled": true, - "description": { - "content": "Bracketed array form of filter[tag]. Alias for tags. When both are present, tag takes precedence. Uses the requesting account tag names.", - "type": "text/plain" - }, - "key": "filter[tag][]", - "value": "" + "key": "Content-Type", + "value": "application/json" } ], - "variable": [] + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" }, - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "GET", - "body": {}, - "auth": null - }, - "response": [ { - "id": "dfd1ad3f-b71c-456f-8302-085a8fbf2b22", - "name": "OK", + "id": "0193ee92-6b6e-459e-844c-f8d3fe77220b", + "name": "Not Found", "originalRequest": { "url": { "path": [ - "shipments" + "shipments", + ":id", + "stop_tracking" ], "host": [ "{{baseUrl}}" ], - "query": [ - { - "disabled": true, - "description": { - "content": "\n", - "type": "text/plain" - }, - "key": "page[number]", - "value": "1" - }, - { - "disabled": true, - "description": { - "content": "Records per page. Default 30.", - "type": "text/plain" - }, - "key": "page[size]", - "value": "30" - }, - { - "disabled": true, - "description": { - "content": "Deprecated compatibility alias for filter[q]. Nested filter[q] takes precedence. A blank top-level q returns 400. No sunset date is documented.", - "type": "text/plain" - }, - "key": "q", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Comma delimited list of relations to include", - "type": "text/plain" - }, - "key": "include", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Set to `true` to add the `party_roles` relationship to each shipment. Add `include=party_roles.party` to embed the roles and their parties.", - "type": "text/plain" - }, - "key": "flag[parties]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Compatibility alias for filter[number]. Exact shipment number, including punctuation; not a partial container-number search. Nested filter[number] takes precedence.", - "type": "text/plain" - }, - "key": "number", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Compatibility alias for filter[tracking_stopped]. Nested filter takes precedence.", - "type": "text/plain" - }, - "key": "tracking_stopped", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Supported values: created_at, -created_at, pod_arrival, -pod_arrival, tracking_stopped_at, -tracking_stopped_at. Both created_at tokens sort newest first for compatibility. Unknown values fall back to newest creation first.", - "type": "text/plain" - }, - "key": "sort", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Prefix text search across shipment numbers, reference numbers, and linked container identifiers. Use search text, not comparison expressions.", - "type": "text/plain" - }, - "key": "filter[q]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Exact number match. Shipment arrays mean OR; container arrays of exact numbers mean AND. Use comma-separated container numbers for OR. Shipment scalar commas are literal.", - "type": "text/plain" - }, - "key": "filter[number]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Bracketed array form of filter[number]. Exact number match. Shipment arrays mean OR; container arrays of exact numbers mean AND. Use comma-separated container numbers for OR. Shipment scalar commas are literal.", - "type": "text/plain" - }, - "key": "filter[number][]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Creation date. Use an ISO 8601 date-time with Z or a timezone offset; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Relative dates and comma-separated timestamps are not accepted. Use @exists or @not_exists for presence.", - "type": "text/plain" - }, - "key": "filter[created_at]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Bracketed array form of filter[created_at]. Creation date. Use an ISO 8601 date-time with Z or a timezone offset; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Relative dates and comma-separated timestamps are not accepted. Use @exists or @not_exists for presence.", - "type": "text/plain" - }, - "key": "filter[created_at][]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "true selects shipments with tracking not stopped; false selects stopped tracking. Applies via the related shipment for containers.", - "type": "text/plain" - }, - "key": "filter[actively_tracked]", - "value": "" - }, + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "true selects stopped tracking; false selects tracking not stopped. Combines with other filters using AND.", + "content": "(Required) ", "type": "text/plain" }, - "key": "filter[tracking_stopped]", - "value": "" + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "e45c1969-9283-4be9-85ba-39d85c3b20a2", + "name": "Unprocessable Entity", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":id", + "stop_tracking" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "arrived means actual POD arrival is present; on_ship means a voyage exists and actual POD arrival is absent. It is not a general shipment lifecycle status. (This can only be one of arrived,on_ship)", + "content": "(Required) ", "type": "text/plain" }, - "key": "filter[voyage_status]", - "value": "arrived" + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": {} + }, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "d64f3949-7c6e-48ba-aa98-4b4c6f49583e", + "name": "Resume tracking a shipment", + "request": { + "name": "Resume tracking a shipment", + "description": { + "content": "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.", + "type": "text/plain" + }, + "url": { + "path": [ + "shipments", + ":id", + "resume_tracking" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "type": "any", + "value": "", + "key": "id", + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "PATCH", + "body": {}, + "auth": null + }, + "response": [ + { + "id": "79c3e32e-0cb0-4f72-93b5-d0058c81248a", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":id", + "resume_tracking" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "true selects shipments with POD or destination estimated/actual arrival today in the API server day. false does not narrow the list. The SDK accepts only true.", + "content": "(Required) ", "type": "text/plain" }, - "key": "filter[arriving_today]", - "value": "" + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": {} + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": null\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"metro_area\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "58efd23c-2085-4830-834e-d41048c69179", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":id", + "resume_tracking" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Actual POD arrival date. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "content": "(Required) ", "type": "text/plain" }, - "key": "filter[pod_ata_at]", - "value": "" + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": {} + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "6174de5c-2ce8-483c-9716-1b2dc4272410", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":id", + "resume_tracking" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Bracketed array form of filter[pod_ata_at]. Actual POD arrival date. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "content": "(Required) ", "type": "text/plain" }, - "key": "filter[pod_ata_at][]", - "value": "" + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "e5eb7012-017d-4b55-8092-5e2830386941", + "name": "Unprocessable Entity", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":id", + "resume_tracking" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "POD arrival date: actual arrival takes precedence over estimated arrival. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "content": "(Required) ", "type": "text/plain" }, - "key": "filter[pod_arrival]", - "value": "" + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": {} + }, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "ef4709d9-2450-4148-b3da-cd34bcada5a4", + "name": "List shipment custom fields", + "request": { + "name": "List shipment custom fields", + "description": {}, + "url": { + "path": [ + "shipments", + ":shipment_id", + "custom_fields" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma-separated relationships to include: `definition`, `entity`, `updated_by`.", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], + "variable": [ + { + "type": "any", + "value": "", + "key": "shipment_id", + "disabled": false, + "description": { + "content": "(Required) Shipment ID", + "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "GET", + "body": {}, + "auth": null + }, + "response": [ + { + "id": "4bce916f-8fb3-4fcb-ad8b-bb5c0c85dd1b", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":shipment_id", + "custom_fields" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ { "disabled": true, "description": { - "content": "Bracketed array form of filter[pod_arrival]. POD arrival date: actual arrival takes precedence over estimated arrival. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "content": "Comma-separated relationships to include: `definition`, `entity`, `updated_by`.", "type": "text/plain" }, - "key": "filter[pod_arrival][]", + "key": "include", "value": "" - }, + } + ], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Port of discharge UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "content": "(Required) Shipment ID", "type": "text/plain" }, - "key": "filter[pod_code]", - "value": "" + "type": "any", + "value": "", + "key": "shipment_id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"tracking_request\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n }\n ],\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Shipment\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"short_text\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 2303.261307062433,\n \"key_1\": \"string\"\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\",\n \"template_id\": \"\",\n \"has_data\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\",\n \"discarded_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"type\": \"account\",\n \"id\": \"\"\n }\n },\n \"created_by\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n },\n \"options\": {\n \"data\": [\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n },\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n }\n ]\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Shipment\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"date\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 8102,\n \"key_1\": 9506.218278937042\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\",\n \"template_id\": \"\",\n \"has_data\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\",\n \"discarded_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"type\": \"account\",\n \"id\": \"\"\n }\n },\n \"created_by\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n },\n \"options\": {\n \"data\": [\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n },\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n }\n ]\n }\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "80d799f5-fd3b-466f-be06-f4277df9ce5b", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":shipment_id", + "custom_fields" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ { "disabled": true, "description": { - "content": "Bracketed array form of filter[pod_code]. Port of discharge UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "content": "Comma-separated relationships to include: `definition`, `entity`, `updated_by`.", "type": "text/plain" }, - "key": "filter[pod_code][]", + "key": "include", "value": "" - }, + } + ], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Meaningful change in the POD-local ETA date, comparing the current ETA with its historical baseline. Requires a lower ISO 8601 timestamp bound (=, >, or >=); an optional upper bound must be later. Applies only to active, unarrived shipments with an ETA. Not a raw updated_at filter; a future lower bound is not guaranteed to produce no matches.", + "content": "(Required) Shipment ID", "type": "text/plain" }, - "key": "filter[pod_eta_changed_at]", - "value": "" + "type": "any", + "value": "", + "key": "shipment_id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "19a71d15-05fb-442c-997c-84c7bc31e559", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":shipment_id", + "custom_fields" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ { "disabled": true, "description": { - "content": "Bracketed array form of filter[pod_eta_changed_at]. Meaningful change in the POD-local ETA date, comparing the current ETA with its historical baseline. Requires a lower ISO 8601 timestamp bound (=, >, or >=); an optional upper bound must be later. Applies only to active, unarrived shipments with an ETA. Not a raw updated_at filter; a future lower bound is not guaranteed to produce no matches.", + "content": "Comma-separated relationships to include: `definition`, `entity`, `updated_by`.", "type": "text/plain" }, - "key": "filter[pod_eta_changed_at][]", + "key": "include", "value": "" - }, + } + ], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Port of discharge terminal ID. Obtain it from the related terminal resource. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean OR for this shipment terminal filter. ~ is not supported.", + "content": "(Required) Shipment ID", "type": "text/plain" }, - "key": "filter[pod_terminal_id]", - "value": "" + "type": "any", + "value": "", + "key": "shipment_id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "ae619d2e-0beb-4458-a0cd-a6b029713215", + "name": "Create a shipment custom field", + "request": { + "name": "Create a shipment custom field", + "description": {}, + "url": { + "path": [ + "shipments", + ":shipment_id", + "custom_fields" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "type": "any", + "value": "", + "key": "shipment_id", + "disabled": false, + "description": { + "content": "(Required) Shipment ID", + "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "auth": null + }, + "response": [ + { + "id": "6a22d5a0-fe4e-4109-8d47-0f58f26a02be", + "name": "Created", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":shipment_id", + "custom_fields" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Bracketed array form of filter[pod_terminal_id]. Port of discharge terminal ID. Obtain it from the related terminal resource. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean OR for this shipment terminal filter. ~ is not supported.", + "content": "(Required) Shipment ID", "type": "text/plain" }, - "key": "filter[pod_terminal_id][]", - "value": "" + "type": "any", + "value": "", + "key": "shipment_id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Created", + "code": 201, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "c5177970-bf87-42e0-8600-848a0f6b935d", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":shipment_id", + "custom_fields" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Port of lading UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "content": "(Required) Shipment ID", "type": "text/plain" }, - "key": "filter[pol_code]", - "value": "" + "type": "any", + "value": "", + "key": "shipment_id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "3b6fb206-9960-4266-8b38-58fa573db1f9", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":shipment_id", + "custom_fields" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Bracketed array form of filter[pol_code]. Port of lading UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "content": "(Required) Shipment ID", "type": "text/plain" }, - "key": "filter[pol_code][]", - "value": "" + "type": "any", + "value": "", + "key": "shipment_id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "1ead8ef2-1f8f-40b8-a117-8cc638767db5", + "name": "Unprocessable Entity", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":shipment_id", + "custom_fields" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "User ID associated with a shipment container. Accepts one ID, comma-separated IDs, or arrays with OR semantics. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "content": "(Required) Shipment ID", "type": "text/plain" }, - "key": "filter[owner_id]", - "value": "" + "type": "any", + "value": "", + "key": "shipment_id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "806441bf-34d8-4b37-a6fd-1c0b80c967f0", + "name": "Update a shipment custom field", + "request": { + "name": "Update a shipment custom field", + "description": {}, + "url": { + "path": [ + "shipments", + ":shipment_id", + "custom_fields", + ":api_slug" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "type": "any", + "value": "", + "key": "shipment_id", + "disabled": false, + "description": { + "content": "(Required) Shipment ID", + "type": "text/plain" + } + }, + { + "type": "any", + "value": "", + "key": "api_slug", + "disabled": false, + "description": { + "content": "(Required) Custom field api_slug", + "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "auth": null + }, + "response": [ + { + "id": "b095dd1a-da41-42fd-bdae-7e4779157454", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":shipment_id", + "custom_fields", + ":api_slug" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Bracketed array form of filter[owner_id]. User ID associated with a shipment container. Accepts one ID, comma-separated IDs, or arrays with OR semantics. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "content": "(Required) Shipment ID", "type": "text/plain" }, - "key": "filter[owner_id][]", - "value": "" + "type": "any", + "value": "", + "key": "shipment_id" }, { - "disabled": true, + "disabled": false, "description": { - "content": "Shipment creator account ID. Comma-separated IDs mean OR; arrays of distinct IDs mean AND and return no matches. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "content": "(Required) Custom field api_slug", "type": "text/plain" }, - "key": "filter[creator_id]", - "value": "" + "type": "any", + "value": "", + "key": "api_slug" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "23a79c92-5008-4eb2-ab08-2cece527a174", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":shipment_id", + "custom_fields", + ":api_slug" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Bracketed array form of filter[creator_id]. Shipment creator account ID. Comma-separated IDs mean OR; arrays of distinct IDs mean AND and return no matches. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "content": "(Required) Shipment ID", "type": "text/plain" }, - "key": "filter[creator_id][]", - "value": "" + "type": "any", + "value": "", + "key": "shipment_id" }, { - "disabled": true, + "disabled": false, "description": { - "content": "Customer account ID or customer party ID. Falls back to the shipment creator when no customer party role exists. Presence checks refer to the customer party role. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "content": "(Required) Custom field api_slug", "type": "text/plain" }, - "key": "filter[customer_id]", - "value": "" + "type": "any", + "value": "", + "key": "api_slug" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "bceb2bb0-15c3-418e-a782-c5d3f8860348", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":shipment_id", + "custom_fields", + ":api_slug" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Bracketed array form of filter[customer_id]. Customer account ID or customer party ID. Falls back to the shipment creator when no customer party role exists. Presence checks refer to the customer party role. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "content": "(Required) Shipment ID", "type": "text/plain" }, - "key": "filter[customer_id][]", - "value": "" + "type": "any", + "value": "", + "key": "shipment_id" }, { - "disabled": true, + "disabled": false, "description": { - "content": "Prefix text search of an associated product name or SKU.", + "content": "(Required) Custom field api_slug", "type": "text/plain" }, - "key": "filter[product]", - "value": "" + "type": "any", + "value": "", + "key": "api_slug" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "66e10691-7885-433d-8a76-2a590dd14cd6", + "name": "Unprocessable Entity", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":shipment_id", + "custom_fields", + ":api_slug" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Party ID match. Accepts a scalar, comma-separated IDs, an array (OR), or an object with value and operator (any or all). Values must come from parties visible to your account.", + "content": "(Required) Shipment ID", "type": "text/plain" }, - "key": "filter[party_id]", - "value": "" + "type": "any", + "value": "", + "key": "shipment_id" }, { - "disabled": true, + "disabled": false, "description": { - "content": "Party IDs for object-form matching. Supply exact authorized IDs; comma-separated IDs use OR unless operator=all.", + "content": "(Required) Custom field api_slug", "type": "text/plain" }, - "key": "filter[party_id][value]", - "value": "" + "type": "any", + "value": "", + "key": "api_slug" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "e6a2394d-8063-4e51-87c6-388fdb27e2cf", + "name": "Delete a shipment custom field", + "request": { + "name": "Delete a shipment custom field", + "description": {}, + "url": { + "path": [ + "shipments", + ":shipment_id", + "custom_fields", + ":api_slug" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "type": "any", + "value": "", + "key": "shipment_id", + "disabled": false, + "description": { + "content": "(Required) Shipment ID", + "type": "text/plain" + } + }, + { + "type": "any", + "value": "", + "key": "api_slug", + "disabled": false, + "description": { + "content": "(Required) Custom field api_slug", + "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "DELETE", + "body": {}, + "auth": null + }, + "response": [ + { + "id": "01b9f2ec-7bf3-47c8-9add-037c5db38384", + "name": "No Content", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":shipment_id", + "custom_fields", + ":api_slug" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Repeated party IDs for object-form any/all matching. Requires actual party UUIDs.", + "content": "(Required) Shipment ID", "type": "text/plain" }, - "key": "filter[party_id][value][]", - "value": "" + "type": "any", + "value": "", + "key": "shipment_id" }, { - "disabled": true, + "disabled": false, "description": { - "content": "Object-form party matching; requires value. any is the default; all requires every party on the same shipment. (This can only be one of any,all)", + "content": "(Required) Custom field api_slug", "type": "text/plain" }, - "key": "filter[party_id][operator]", - "value": "all" + "type": "any", + "value": "", + "key": "api_slug" + } + ] + }, + "header": [ + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "No Content", + "code": 204, + "header": [], + "cookie": [], + "_postman_previewlanguage": "text" + }, + { + "id": "8303ca75-077b-47f4-9247-ffafc6f10f1c", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":shipment_id", + "custom_fields", + ":api_slug" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Bracketed array form of filter[party_id]. Party ID match. Accepts a scalar, comma-separated IDs, an array (OR), or an object with value and operator (any or all). Values must come from parties visible to your account.", + "content": "(Required) Shipment ID", "type": "text/plain" }, - "key": "filter[party_id][]", - "value": "" + "type": "any", + "value": "", + "key": "shipment_id" }, { - "disabled": true, + "disabled": false, "description": { - "content": "Account-scoped shipment tags. Comma-separated names or arrays match ANY tag by default.", + "content": "(Required) Custom field api_slug", "type": "text/plain" }, - "key": "filter[tags]", - "value": "" + "type": "any", + "value": "", + "key": "api_slug" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "906842d3-46e2-4cd8-833d-93f126363bc0", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "shipments", + ":shipment_id", + "custom_fields", + ":api_slug" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Bracketed array form of filter[tags]. Account-scoped shipment tags. Comma-separated names or arrays match ANY tag by default.", + "content": "(Required) Shipment ID", "type": "text/plain" }, - "key": "filter[tags][]", - "value": "" + "type": "any", + "value": "", + "key": "shipment_id" }, { - "disabled": true, + "disabled": false, "description": { - "content": "With tags, true requires ALL tags; false or absent means ANY. Has no effect without tags. The SDK requires tags (or shipment tag) when this modifier is supplied.", + "content": "(Required) Custom field api_slug", "type": "text/plain" }, - "key": "filter[tags_and]", - "value": "" + "type": "any", + "value": "", + "key": "api_slug" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + } + ] + }, + { + "name": "Locations", + "description": "", + "item": [] + }, + { + "name": "Events", + "description": "", + "item": [] + }, + { + "name": "Tracking Requests", + "description": "", + "item": [ + { + "id": "0e7e54e9-54c1-4a8d-b143-a5d5c4914569", + "name": "Create a tracking request", + "request": { + "name": "Create a tracking request", + "description": { + "content": "To track an ocean shipment, create a new tracking request. `request_type` and `request_number` are always required. Supply either a shipping line `scac` or set `auto_detect_vocc_scac` to `true` to have Terminal49 infer the SCAC from the request number before creating the tracking request.\n\nAuto-detection uses the same carrier prediction capability as the Infer Tracking Number endpoint and runs asynchronously. The tracking request is created immediately (HTTP `201`) with `status: \"pending\"`; if no supported carrier can be inferred it transitions to `status: \"failed\"` with `failed_reason: \"scac_auto_detect_failed\"` and no shipment is created. Once a tracking request is created we will attempt to fetch the shipment details and its related containers from the shipping line. If the attempt is successful we will create a 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 notification will only be sent if you have at least one active webhook.

This endpoint is limited to 100 tracking requests per minute.", + "type": "text/plain" + }, + "url": { + "path": [ + "tracking_requests" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"request_type\": \"bill_of_lading\",\n \"request_number\": \"\",\n \"scac\": \"\",\n \"auto_detect_vocc_scac\": false,\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"shipment_tags\": [\n \"\",\n \"\"\n ],\n \"initial_custom_fields\": {\n \"shipment\": [\n {\n \"api_slug\": \"\",\n \"value\": \"\"\n },\n {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n ],\n \"containers\": [\n {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"number\": \"\"\n },\n {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"number\": \"\"\n }\n ]\n }\n },\n \"relationships\": {\n \"customer\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"shipper\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"consignee\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"notify_party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"customs_broker\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"freight_forwarder\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"pickup_dray_carrier\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "auth": { + "type": "apikey", + "apikey": [ + { + "key": "key", + "value": "Authorization" + }, + { + "key": "value", + "value": "{{apiKey}}" + }, + { + "key": "in", + "value": "header" + } + ] + } + }, + "response": [ + { + "id": "028c1872-7261-443f-9762-577efb74bf0d", + "name": "Tracking Request Created", + "originalRequest": { + "url": { + "path": [ + "tracking_requests" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, - { - "disabled": true, - "description": { - "content": "Alias for tags. When both are present, tag takes precedence. Uses the requesting account tag names.", - "type": "text/plain" - }, - "key": "filter[tag]", - "value": "" + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"request_type\": \"bill_of_lading\",\n \"request_number\": \"\",\n \"scac\": \"\",\n \"auto_detect_vocc_scac\": false,\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"shipment_tags\": [\n \"\",\n \"\"\n ],\n \"initial_custom_fields\": {\n \"shipment\": [\n {\n \"api_slug\": \"\",\n \"value\": \"\"\n },\n {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n ],\n \"containers\": [\n {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"number\": \"\"\n },\n {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"number\": \"\"\n }\n ]\n }\n },\n \"relationships\": {\n \"customer\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"shipper\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"consignee\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"notify_party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"customs_broker\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"freight_forwarder\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"pickup_dray_carrier\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Created", + "code": 201, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"request_number\": \"\",\n \"status\": \"created\",\n \"request_type\": \"bill_of_lading\",\n \"scac\": \"\",\n \"created_at\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"tags\": [\n \"\",\n \"\"\n ],\n \"failed_reason\": \"invalid_number\",\n \"updated_at\": \"\",\n \"is_retrying\": \"\",\n \"retry_count\": \"\"\n },\n \"relationships\": {\n \"tracked_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"customer\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n }\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "7c2bf381-8f09-4714-99af-5be033b99021", + "name": "Unprocessable Entity", + "originalRequest": { + "url": { + "path": [ + "tracking_requests" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, - { - "disabled": true, - "description": { - "content": "Bracketed array form of filter[tag]. Alias for tags. When both are present, tag takes precedence. Uses the requesting account tag names.", - "type": "text/plain" - }, - "key": "filter[tag][]", - "value": "" + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"request_type\": \"bill_of_lading\",\n \"request_number\": \"\",\n \"scac\": \"\",\n \"auto_detect_vocc_scac\": false,\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"shipment_tags\": [\n \"\",\n \"\"\n ],\n \"initial_custom_fields\": {\n \"shipment\": [\n {\n \"api_slug\": \"\",\n \"value\": \"\"\n },\n {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n ],\n \"containers\": [\n {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"number\": \"\"\n },\n {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"number\": \"\"\n }\n ]\n }\n },\n \"relationships\": {\n \"customer\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"shipper\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"consignee\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"notify_party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"customs_broker\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"freight_forwarder\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"pickup_dray_carrier\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" } + } + } + }, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "266bdc6d-fa87-45f1-9580-ba2dd7a2478d", + "name": "Too Many Requests - You've hit the create tracking requests limit. Please try again in a minute.", + "originalRequest": { + "url": { + "path": [ + "tracking_requests" + ], + "host": [ + "{{baseUrl}}" ], + "query": [], "variable": [] }, "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" @@ -9067,28 +15844,182 @@ "value": "" } ], - "method": "GET", - "body": {} + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"request_type\": \"bill_of_lading\",\n \"request_number\": \"\",\n \"scac\": \"\",\n \"auto_detect_vocc_scac\": false,\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"shipment_tags\": [\n \"\",\n \"\"\n ],\n \"initial_custom_fields\": {\n \"shipment\": [\n {\n \"api_slug\": \"\",\n \"value\": \"\"\n },\n {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n ],\n \"containers\": [\n {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"number\": \"\"\n },\n {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"number\": \"\"\n }\n ]\n }\n },\n \"relationships\": {\n \"customer\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"shipper\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"consignee\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"notify_party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"customs_broker\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"freight_forwarder\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"pickup_dray_carrier\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, - "status": "OK", - "code": 200, + "status": "Too Many Requests", + "code": 429, "header": [ { - "key": "Content-Type", - "value": "application/json" + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": true, + "description": { + "content": "Number of seconds to wait before making another request", + "type": "text/plain" + }, + "key": "Retry-After", + "value": "" + } + ], + "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "d1529854-b76c-4a1c-a5c3-5b50b3032098", + "name": "List tracking requests", + "request": { + "name": "List tracking requests", + "description": { + "content": "Returns a list of your tracking requests. The tracking requests are returned sorted by creation date, with the most recent tracking request appearing first.", + "type": "text/plain" + }, + "url": { + "path": [ + "tracking_requests" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "A search term to be applied against request_number and reference_numbers.", + "type": "text/plain" + }, + "key": "q", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "filter by `request_number`", + "type": "text/plain" + }, + "key": "filter[request_number]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "filter by `status`. `pending` matches requests with status `pending`; any value other than `created`, `failed` or `cancelled` is treated as `pending`. (This can only be one of created,pending,failed,cancelled)", + "type": "text/plain" + }, + "key": "filter[status]", + "value": "created" + }, + { + "disabled": true, + "description": { + "content": "filter by shipping line `scac`", + "type": "text/plain" + }, + "key": "filter[scac]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "filter by tracking_requests `created_at` after a certain ISO8601 timestamp", + "type": "text/plain" + }, + "key": "filter[created_at][start]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "filter by tracking_requests `created_at` before a certain ISO8601 timestamp", + "type": "text/plain" + }, + "key": "filter[created_at][end]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "filter by tracking_requests `updated_at` after a certain ISO8601 timestamp", + "type": "text/plain" + }, + "key": "filter[updated_at][start]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "filter by tracking_requests `updated_at` before a certain ISO8601 timestamp", + "type": "text/plain" + }, + "key": "filter[updated_at][end]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Comma-delimited list of relationships to include. Accepted values: `tracked_object`, `customer`, and `user`. `tracked_object` is included by default.", + "type": "text/plain" + }, + "key": "include", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "", + "type": "text/plain" + }, + "key": "page[number]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "", + "type": "text/plain" + }, + "key": "page[size]", + "value": "" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"all_containers_terminated\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"rail_terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"cancelled_by_user\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"metro_area\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"rail_terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n }\n ],\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"container\",\n \"attributes\": {\n \"number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"equipment_type\": null,\n \"equipment_length\": 40,\n \"equipment_height\": \"high_cube\",\n \"weight_in_lbs\": \"\",\n \"created_at\": \"\",\n \"seal_number\": \"\",\n \"pickup_lfd\": \"\",\n \"pickup_appointment_at\": \"\",\n \"availability_known\": \"\",\n \"available_for_pickup\": \"\",\n \"pod_arrived_at\": \"\",\n \"pod_discharged_at\": \"\",\n \"pod_full_out_at\": \"\",\n \"terminal_checked_at\": \"\",\n \"pod_full_out_chassis_number\": \"\",\n \"location_at_pod_terminal\": \"\",\n \"final_destination_full_out_at\": \"\",\n \"empty_terminated_at\": \"\",\n \"holds_at_pod_terminal\": [\n {\n \"name\": \"\",\n \"status\": \"pending\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"status\": \"pending\",\n \"description\": \"\"\n }\n ],\n \"fees_at_pod_terminal\": [\n {\n \"type\": \"exam\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n },\n {\n \"type\": \"other\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n }\n ],\n \"pod_timezone\": \"\",\n \"final_destination_timezone\": \"\",\n \"empty_terminated_timezone\": \"\",\n \"pod_rail_carrier_scac\": \"\",\n \"ind_rail_carrier_scac\": \"\",\n \"pod_last_tracking_request_at\": \"\",\n \"shipment_last_tracking_request_at\": \"\",\n \"pod_rail_loaded_at\": \"\",\n \"pod_rail_departed_at\": \"\",\n \"ind_eta_at\": \"\",\n \"ind_ata_at\": \"\",\n \"ind_rail_unloaded_at\": \"\",\n \"ind_facility_lfd_on\": \"\",\n \"import_deadlines\": {\n \"pickup_lfd_terminal\": \"\",\n \"pickup_lfd_rail\": \"\",\n \"pickup_lfd_line\": \"\"\n },\n \"current_status\": \"on_ship\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"pickup_facility\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"transport_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n }\n ]\n },\n \"raw_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n }\n ]\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"container\",\n \"attributes\": {\n \"number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"equipment_type\": \"dry\",\n \"equipment_length\": 40,\n \"equipment_height\": null,\n \"weight_in_lbs\": \"\",\n \"created_at\": \"\",\n \"seal_number\": \"\",\n \"pickup_lfd\": \"\",\n \"pickup_appointment_at\": \"\",\n \"availability_known\": \"\",\n \"available_for_pickup\": \"\",\n \"pod_arrived_at\": \"\",\n \"pod_discharged_at\": \"\",\n \"pod_full_out_at\": \"\",\n \"terminal_checked_at\": \"\",\n \"pod_full_out_chassis_number\": \"\",\n \"location_at_pod_terminal\": \"\",\n \"final_destination_full_out_at\": \"\",\n \"empty_terminated_at\": \"\",\n \"holds_at_pod_terminal\": [\n {\n \"name\": \"\",\n \"status\": \"pending\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n }\n ],\n \"fees_at_pod_terminal\": [\n {\n \"type\": \"exam\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n },\n {\n \"type\": \"extended_dwell_time\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n }\n ],\n \"pod_timezone\": \"\",\n \"final_destination_timezone\": \"\",\n \"empty_terminated_timezone\": \"\",\n \"pod_rail_carrier_scac\": \"\",\n \"ind_rail_carrier_scac\": \"\",\n \"pod_last_tracking_request_at\": \"\",\n \"shipment_last_tracking_request_at\": \"\",\n \"pod_rail_loaded_at\": \"\",\n \"pod_rail_departed_at\": \"\",\n \"ind_eta_at\": \"\",\n \"ind_ata_at\": \"\",\n \"ind_rail_unloaded_at\": \"\",\n \"ind_facility_lfd_on\": \"\",\n \"import_deadlines\": {\n \"pickup_lfd_terminal\": \"\",\n \"pickup_lfd_rail\": \"\",\n \"pickup_lfd_line\": \"\"\n },\n \"current_status\": \"off_dock\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"pickup_facility\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"transport_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n }\n ]\n },\n \"raw_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n }\n ]\n }\n }\n }\n ],\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", - "cookie": [], - "_postman_previewlanguage": "json" + "variable": [] }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "GET", + "body": {}, + "auth": null + }, + "response": [ { - "id": "324c48bc-bbb0-4552-932f-55ad6d550afe", - "name": "Malformed supported filter value, operator, range, or strict boolean. The error identifies the invalid parameter where available.", + "id": "e674ec2b-2c6a-4cf0-9eb3-6f04def574d0", + "name": "OK", "originalRequest": { "url": { "path": [ - "shipments" + "tracking_requests" ], "host": [ "{{baseUrl}}" @@ -9097,25 +16028,7 @@ { "disabled": true, "description": { - "content": "\n", - "type": "text/plain" - }, - "key": "page[number]", - "value": "1" - }, - { - "disabled": true, - "description": { - "content": "Records per page. Default 30.", - "type": "text/plain" - }, - "key": "page[size]", - "value": "30" - }, - { - "disabled": true, - "description": { - "content": "Deprecated compatibility alias for filter[q]. Nested filter[q] takes precedence. A blank top-level q returns 400. No sunset date is documented.", + "content": "A search term to be applied against request_number and reference_numbers.", "type": "text/plain" }, "key": "q", @@ -9124,392 +16037,945 @@ { "disabled": true, "description": { - "content": "Comma delimited list of relations to include", - "type": "text/plain" - }, - "key": "include", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Set to `true` to add the `party_roles` relationship to each shipment. Add `include=party_roles.party` to embed the roles and their parties.", - "type": "text/plain" - }, - "key": "flag[parties]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Compatibility alias for filter[number]. Exact shipment number, including punctuation; not a partial container-number search. Nested filter[number] takes precedence.", + "content": "filter by `request_number`", "type": "text/plain" }, - "key": "number", + "key": "filter[request_number]", "value": "" }, { "disabled": true, "description": { - "content": "Compatibility alias for filter[tracking_stopped]. Nested filter takes precedence.", + "content": "filter by `status`. `pending` matches requests with status `pending`; any value other than `created`, `failed` or `cancelled` is treated as `pending`. (This can only be one of created,pending,failed,cancelled)", "type": "text/plain" }, - "key": "tracking_stopped", - "value": "" + "key": "filter[status]", + "value": "created" }, { "disabled": true, "description": { - "content": "Supported values: created_at, -created_at, pod_arrival, -pod_arrival, tracking_stopped_at, -tracking_stopped_at. Both created_at tokens sort newest first for compatibility. Unknown values fall back to newest creation first.", + "content": "filter by shipping line `scac`", "type": "text/plain" }, - "key": "sort", + "key": "filter[scac]", "value": "" }, { "disabled": true, "description": { - "content": "Prefix text search across shipment numbers, reference numbers, and linked container identifiers. Use search text, not comparison expressions.", + "content": "filter by tracking_requests `created_at` after a certain ISO8601 timestamp", "type": "text/plain" }, - "key": "filter[q]", - "value": "" + "key": "filter[created_at][start]", + "value": "" }, { "disabled": true, "description": { - "content": "Exact number match. Shipment arrays mean OR; container arrays of exact numbers mean AND. Use comma-separated container numbers for OR. Shipment scalar commas are literal.", + "content": "filter by tracking_requests `created_at` before a certain ISO8601 timestamp", "type": "text/plain" }, - "key": "filter[number]", - "value": "" + "key": "filter[created_at][end]", + "value": "" }, { "disabled": true, "description": { - "content": "Bracketed array form of filter[number]. Exact number match. Shipment arrays mean OR; container arrays of exact numbers mean AND. Use comma-separated container numbers for OR. Shipment scalar commas are literal.", + "content": "filter by tracking_requests `updated_at` after a certain ISO8601 timestamp", "type": "text/plain" }, - "key": "filter[number][]", - "value": "" + "key": "filter[updated_at][start]", + "value": "" }, { "disabled": true, "description": { - "content": "Creation date. Use an ISO 8601 date-time with Z or a timezone offset; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Relative dates and comma-separated timestamps are not accepted. Use @exists or @not_exists for presence.", + "content": "filter by tracking_requests `updated_at` before a certain ISO8601 timestamp", "type": "text/plain" }, - "key": "filter[created_at]", - "value": "" + "key": "filter[updated_at][end]", + "value": "" }, { "disabled": true, "description": { - "content": "Bracketed array form of filter[created_at]. Creation date. Use an ISO 8601 date-time with Z or a timezone offset; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Relative dates and comma-separated timestamps are not accepted. Use @exists or @not_exists for presence.", + "content": "Comma-delimited list of relationships to include. Accepted values: `tracked_object`, `customer`, and `user`. `tracked_object` is included by default.", "type": "text/plain" }, - "key": "filter[created_at][]", + "key": "include", "value": "" }, { "disabled": true, "description": { - "content": "true selects shipments with tracking not stopped; false selects stopped tracking. Applies via the related shipment for containers.", + "content": "", "type": "text/plain" }, - "key": "filter[actively_tracked]", - "value": "" + "key": "page[number]", + "value": "" }, { "disabled": true, "description": { - "content": "true selects stopped tracking; false selects tracking not stopped. Combines with other filters using AND.", + "content": "", "type": "text/plain" }, - "key": "filter[tracking_stopped]", - "value": "" + "key": "page[size]", + "value": "" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"request_number\": \"\",\n \"status\": \"cancelled\",\n \"request_type\": \"booking_number\",\n \"scac\": \"\",\n \"created_at\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"tags\": [\n \"\",\n \"\"\n ],\n \"failed_reason\": \"scac_auto_detect_failed\",\n \"updated_at\": \"\",\n \"is_retrying\": \"\",\n \"retry_count\": \"\"\n },\n \"relationships\": {\n \"tracked_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"customer\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"request_number\": \"\",\n \"status\": \"awaiting_manifest\",\n \"request_type\": \"bill_of_lading\",\n \"scac\": \"\",\n \"created_at\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"tags\": [\n \"\",\n \"\"\n ],\n \"failed_reason\": \"shipping_line_unreachable\",\n \"updated_at\": \"\",\n \"is_retrying\": \"\",\n \"retry_count\": \"\"\n },\n \"relationships\": {\n \"tracked_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"customer\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n }\n }\n }\n ],\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "e6c8884c-afdc-40ce-b754-171ff27d5aa6", + "name": "Bad Request", + "originalRequest": { + "url": { + "path": [ + "tracking_requests" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ { "disabled": true, "description": { - "content": "arrived means actual POD arrival is present; on_ship means a voyage exists and actual POD arrival is absent. It is not a general shipment lifecycle status. (This can only be one of arrived,on_ship)", + "content": "A search term to be applied against request_number and reference_numbers.", "type": "text/plain" }, - "key": "filter[voyage_status]", - "value": "arrived" + "key": "q", + "value": "" }, { "disabled": true, "description": { - "content": "true selects shipments with POD or destination estimated/actual arrival today in the API server day. false does not narrow the list. The SDK accepts only true.", + "content": "filter by `request_number`", "type": "text/plain" }, - "key": "filter[arriving_today]", - "value": "" + "key": "filter[request_number]", + "value": "" }, { "disabled": true, "description": { - "content": "Actual POD arrival date. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "content": "filter by `status`. `pending` matches requests with status `pending`; any value other than `created`, `failed` or `cancelled` is treated as `pending`. (This can only be one of created,pending,failed,cancelled)", "type": "text/plain" }, - "key": "filter[pod_ata_at]", - "value": "" + "key": "filter[status]", + "value": "created" }, { "disabled": true, "description": { - "content": "Bracketed array form of filter[pod_ata_at]. Actual POD arrival date. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "content": "filter by shipping line `scac`", "type": "text/plain" }, - "key": "filter[pod_ata_at][]", + "key": "filter[scac]", "value": "" }, { "disabled": true, "description": { - "content": "POD arrival date: actual arrival takes precedence over estimated arrival. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "content": "filter by tracking_requests `created_at` after a certain ISO8601 timestamp", "type": "text/plain" }, - "key": "filter[pod_arrival]", - "value": "" + "key": "filter[created_at][start]", + "value": "" }, { "disabled": true, "description": { - "content": "Bracketed array form of filter[pod_arrival]. POD arrival date: actual arrival takes precedence over estimated arrival. Use YYYY-MM-DD or today/N.days.ago/N.days.from_now; prefix with =, <, <=, >, or >=. Arrays combine bounds with AND. Comma-separated dates mean OR. Use @exists or @not_exists for presence. Compares the stored date component, not timestamp instants; no automatic conversion to the port timezone is applied.", + "content": "filter by tracking_requests `created_at` before a certain ISO8601 timestamp", "type": "text/plain" }, - "key": "filter[pod_arrival][]", - "value": "" + "key": "filter[created_at][end]", + "value": "" }, { "disabled": true, "description": { - "content": "Port of discharge UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "content": "filter by tracking_requests `updated_at` after a certain ISO8601 timestamp", "type": "text/plain" }, - "key": "filter[pod_code]", - "value": "" + "key": "filter[updated_at][start]", + "value": "" }, { "disabled": true, "description": { - "content": "Bracketed array form of filter[pod_code]. Port of discharge UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "content": "filter by tracking_requests `updated_at` before a certain ISO8601 timestamp", "type": "text/plain" }, - "key": "filter[pod_code][]", - "value": "" + "key": "filter[updated_at][end]", + "value": "" }, { "disabled": true, "description": { - "content": "Meaningful change in the POD-local ETA date, comparing the current ETA with its historical baseline. Requires a lower ISO 8601 timestamp bound (=, >, or >=); an optional upper bound must be later. Applies only to active, unarrived shipments with an ETA. Not a raw updated_at filter; a future lower bound is not guaranteed to produce no matches.", + "content": "Comma-delimited list of relationships to include. Accepted values: `tracked_object`, `customer`, and `user`. `tracked_object` is included by default.", "type": "text/plain" }, - "key": "filter[pod_eta_changed_at]", + "key": "include", "value": "" }, { "disabled": true, "description": { - "content": "Bracketed array form of filter[pod_eta_changed_at]. Meaningful change in the POD-local ETA date, comparing the current ETA with its historical baseline. Requires a lower ISO 8601 timestamp bound (=, >, or >=); an optional upper bound must be later. Applies only to active, unarrived shipments with an ETA. Not a raw updated_at filter; a future lower bound is not guaranteed to produce no matches.", + "content": "", "type": "text/plain" }, - "key": "filter[pod_eta_changed_at][]", - "value": "" + "key": "page[number]", + "value": "" }, { "disabled": true, "description": { - "content": "Port of discharge terminal ID. Obtain it from the related terminal resource. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean OR for this shipment terminal filter. ~ is not supported.", + "content": "", "type": "text/plain" }, - "key": "filter[pod_terminal_id]", - "value": "" + "key": "page[size]", + "value": "" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Bad Request", + "code": 400, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "a6f1770d-a473-44f6-b3f6-3ab33d562de5", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "tracking_requests" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ { "disabled": true, "description": { - "content": "Bracketed array form of filter[pod_terminal_id]. Port of discharge terminal ID. Obtain it from the related terminal resource. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean OR for this shipment terminal filter. ~ is not supported.", + "content": "A search term to be applied against request_number and reference_numbers.", "type": "text/plain" }, - "key": "filter[pod_terminal_id][]", + "key": "q", "value": "" }, { "disabled": true, "description": { - "content": "Port of lading UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "content": "filter by `request_number`", "type": "text/plain" }, - "key": "filter[pol_code]", + "key": "filter[request_number]", "value": "" }, { "disabled": true, "description": { - "content": "Bracketed array form of filter[pol_code]. Port of lading UN/LOCODE. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "content": "filter by `status`. `pending` matches requests with status `pending`; any value other than `created`, `failed` or `cancelled` is treated as `pending`. (This can only be one of created,pending,failed,cancelled)", "type": "text/plain" }, - "key": "filter[pol_code][]", - "value": "" + "key": "filter[status]", + "value": "created" }, { "disabled": true, "description": { - "content": "User ID associated with a shipment container. Accepts one ID, comma-separated IDs, or arrays with OR semantics. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "content": "filter by shipping line `scac`", "type": "text/plain" }, - "key": "filter[owner_id]", + "key": "filter[scac]", "value": "" }, { "disabled": true, "description": { - "content": "Bracketed array form of filter[owner_id]. User ID associated with a shipment container. Accepts one ID, comma-separated IDs, or arrays with OR semantics. Use exact literals, comma-separated values, or arrays with OR semantics. Presence checks and comparison/search operators do not apply to this scope.", + "content": "filter by tracking_requests `created_at` after a certain ISO8601 timestamp", "type": "text/plain" }, - "key": "filter[owner_id][]", - "value": "" + "key": "filter[created_at][start]", + "value": "" }, { "disabled": true, "description": { - "content": "Shipment creator account ID. Comma-separated IDs mean OR; arrays of distinct IDs mean AND and return no matches. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "content": "filter by tracking_requests `created_at` before a certain ISO8601 timestamp", "type": "text/plain" }, - "key": "filter[creator_id]", - "value": "" + "key": "filter[created_at][end]", + "value": "" }, { "disabled": true, "description": { - "content": "Bracketed array form of filter[creator_id]. Shipment creator account ID. Comma-separated IDs mean OR; arrays of distinct IDs mean AND and return no matches. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "content": "filter by tracking_requests `updated_at` after a certain ISO8601 timestamp", "type": "text/plain" }, - "key": "filter[creator_id][]", - "value": "" + "key": "filter[updated_at][start]", + "value": "" }, { "disabled": true, "description": { - "content": "Customer account ID or customer party ID. Falls back to the shipment creator when no customer party role exists. Presence checks refer to the customer party role. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "content": "filter by tracking_requests `updated_at` before a certain ISO8601 timestamp", "type": "text/plain" }, - "key": "filter[customer_id]", - "value": "" + "key": "filter[updated_at][end]", + "value": "" }, { "disabled": true, "description": { - "content": "Bracketed array form of filter[customer_id]. Customer account ID or customer party ID. Falls back to the shipment creator when no customer party role exists. Presence checks refer to the customer party role. Exact match by default; optional =, @exists, or @not_exists. Comma-separated literals mean OR. Arrays mean AND unless the parameter description says otherwise. ~ is not supported.", + "content": "Comma-delimited list of relationships to include. Accepted values: `tracked_object`, `customer`, and `user`. `tracked_object` is included by default.", "type": "text/plain" }, - "key": "filter[customer_id][]", + "key": "include", "value": "" }, { "disabled": true, "description": { - "content": "Prefix text search of an associated product name or SKU.", + "content": "", "type": "text/plain" }, - "key": "filter[product]", - "value": "" + "key": "page[number]", + "value": "" }, { "disabled": true, "description": { - "content": "Party ID match. Accepts a scalar, comma-separated IDs, an array (OR), or an object with value and operator (any or all). Values must come from parties visible to your account.", + "content": "", "type": "text/plain" }, - "key": "filter[party_id]", - "value": "" + "key": "page[size]", + "value": "" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "8ad34df7-cdf8-4c3a-beb8-955430e04702", + "name": "Infer Tracking Number", + "request": { + "name": "Infer Tracking Number", + "description": { + "content": "Predict the carrier SCAC (VOCC) and number type from a tracking number. Provide a container number, bill of lading number, or booking number and receive the predicted carrier with confidence and a decision value. Use this to auto-populate carrier fields before creating a tracking request.", + "type": "text/plain" + }, + "url": { + "path": [ + "tracking_requests", + "infer_number" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"number\": \"\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "auth": { + "type": "apikey", + "apikey": [ + { + "key": "key", + "value": "Authorization" + }, + { + "key": "value", + "value": "{{apiKey}}" + }, + { + "key": "in", + "value": "header" + } + ] + } + }, + "response": [ + { + "id": "e8e40df7-760a-4a75-a43a-a853763a4130", + "name": "Successfully inferred number type and shipping line", + "originalRequest": { + "url": { + "path": [ + "tracking_requests", + "infer_number" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"number\": \"\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"\",\n \"attributes\": {\n \"number_type\": \"container\",\n \"validation\": {\n \"is_valid\": \"\",\n \"type\": \"shipment\",\n \"check_digit_passed\": \"\",\n \"parsed_number\": \"\",\n \"reason\": \"\"\n },\n \"shipping_line\": {\n \"decision\": \"needs_confirmation\",\n \"selected\": {\n \"scac\": \"\",\n \"name\": \"\",\n \"confidence\": \"\"\n },\n \"candidates\": [\n {\n \"scac\": \"\",\n \"name\": \"\",\n \"confidence\": \"\"\n },\n {\n \"scac\": \"\",\n \"name\": \"\",\n \"confidence\": \"\"\n }\n ]\n }\n }\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "00d582a5-aae7-4af1-b26f-0851a5245567", + "name": "Unprocessable Entity - Invalid tracking number format", + "originalRequest": { + "url": { + "path": [ + "tracking_requests", + "infer_number" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"number\": \"\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"detail\": \"\"\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "ef7e8e90-c1c1-4ba3-b39a-7f31a8d0d3d0", + "name": "Too Many Requests - Rate limit exceeded", + "originalRequest": { + "url": { + "path": [ + "tracking_requests", + "infer_number" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"number\": \"\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Too Many Requests", + "code": 429, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": true, + "description": { + "content": "Number of seconds to wait before making another request", + "type": "text/plain" + }, + "key": "Retry-After", + "value": "" + } + ], + "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"detail\": \"\"\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + } + ], + "event": [], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "f4a54e21-e7b6-4aa7-a3e0-79d5ba081ac3", + "name": "Get a single tracking request", + "request": { + "name": "Get a single tracking request", + "description": { + "content": "Get the details and status of an existing tracking request.", + "type": "text/plain" + }, + "url": { + "path": [ + "tracking_requests", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma-delimited list of relationships to include. Accepted values: `tracked_object`, `customer`, and `user`. `tracked_object` is included by default.", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], + "variable": [ + { + "type": "any", + "value": "", + "key": "id", + "disabled": false, + "description": { + "content": "(Required) Tracking Request ID", + "type": "text/plain" + } + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "GET", + "body": {}, + "auth": null + }, + "response": [ + { + "id": "4ab6c85b-b25b-4828-b2fb-72b7e4bddd47", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "tracking_requests", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ { "disabled": true, "description": { - "content": "Party IDs for object-form matching. Supply exact authorized IDs; comma-separated IDs use OR unless operator=all.", + "content": "Comma-delimited list of relationships to include. Accepted values: `tracked_object`, `customer`, and `user`. `tracked_object` is included by default.", "type": "text/plain" }, - "key": "filter[party_id][value]", + "key": "include", "value": "" - }, - { - "disabled": true, - "description": { - "content": "Repeated party IDs for object-form any/all matching. Requires actual party UUIDs.", - "type": "text/plain" - }, - "key": "filter[party_id][value][]", - "value": "" - }, + } + ], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Object-form party matching; requires value. any is the default; all requires every party on the same shipment. (This can only be one of any,all)", + "content": "(Required) Tracking Request ID", "type": "text/plain" }, - "key": "filter[party_id][operator]", - "value": "all" + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"request_number\": \"\",\n \"status\": \"created\",\n \"request_type\": \"bill_of_lading\",\n \"scac\": \"\",\n \"created_at\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"tags\": [\n \"\",\n \"\"\n ],\n \"failed_reason\": \"invalid_number\",\n \"updated_at\": \"\",\n \"is_retrying\": \"\",\n \"retry_count\": \"\"\n },\n \"relationships\": {\n \"tracked_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"customer\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n }\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "67852aef-e4a9-4519-ab5e-d5ff6428961a", + "name": "Bad Request", + "originalRequest": { + "url": { + "path": [ + "tracking_requests", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ { "disabled": true, "description": { - "content": "Bracketed array form of filter[party_id]. Party ID match. Accepts a scalar, comma-separated IDs, an array (OR), or an object with value and operator (any or all). Values must come from parties visible to your account.", + "content": "Comma-delimited list of relationships to include. Accepted values: `tracked_object`, `customer`, and `user`. `tracked_object` is included by default.", "type": "text/plain" }, - "key": "filter[party_id][]", + "key": "include", "value": "" - }, + } + ], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Account-scoped shipment tags. Comma-separated names or arrays match ANY tag by default.", + "content": "(Required) Tracking Request ID", "type": "text/plain" }, - "key": "filter[tags]", - "value": "" + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Bad Request", + "code": 400, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "0c0a3207-3ccb-4b55-9b7f-269306ae2bb2", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "tracking_requests", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ { "disabled": true, "description": { - "content": "Bracketed array form of filter[tags]. Account-scoped shipment tags. Comma-separated names or arrays match ANY tag by default.", + "content": "Comma-delimited list of relationships to include. Accepted values: `tracked_object`, `customer`, and `user`. `tracked_object` is included by default.", "type": "text/plain" }, - "key": "filter[tags][]", + "key": "include", "value": "" - }, + } + ], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "With tags, true requires ALL tags; false or absent means ANY. Has no effect without tags. The SDK requires tags (or shipment tag) when this modifier is supplied.", + "content": "(Required) Tracking Request ID", "type": "text/plain" }, - "key": "filter[tags_and]", - "value": "" + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "f8a5cef4-b261-4205-82c7-857b3005e0d4", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "tracking_requests", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ { "disabled": true, "description": { - "content": "Alias for tags. When both are present, tag takes precedence. Uses the requesting account tag names.", + "content": "Comma-delimited list of relationships to include. Accepted values: `tracked_object`, `customer`, and `user`. `tracked_object` is included by default.", "type": "text/plain" }, - "key": "filter[tag]", + "key": "include", "value": "" - }, + } + ], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Bracketed array form of filter[tag]. Alias for tags. When both are present, tag takes precedence. Uses the requesting account tag names.", + "content": "(Required) Tracking Request ID", "type": "text/plain" }, - "key": "filter[tag][]", - "value": "" + "type": "any", + "value": "", + "key": "id" } - ], - "variable": [] + ] }, "header": [ { @@ -9528,15 +16994,15 @@ "method": "GET", "body": {} }, - "status": "Bad Request", - "code": 400, + "status": "Not Found", + "code": 404, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -9547,42 +17013,23 @@ } }, { - "id": "d0124f97-104d-413a-a1c2-eed3f118b321", - "name": "Get a shipment", + "id": "e378a386-0a50-459e-b52d-0777ad1d42eb", + "name": "Edit a tracking request", "request": { - "name": "Get a shipment", + "name": "Edit a tracking request", "description": { - "content": "Retrieves the details of an existing shipment. You need only supply the unique shipment `id` that was returned upon `tracking_request` creation.", + "content": "Update a tracking request.", "type": "text/plain" }, "url": { "path": [ - "shipments", + "tracking_requests", ":id" ], "host": [ "{{baseUrl}}" ], - "query": [ - { - "disabled": true, - "description": { - "content": "Comma delimited list of relations to include", - "type": "text/plain" - }, - "key": "include", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Set to `true` to add the `party_roles` relationship to each shipment. Add `include=party_roles.party` to embed the roles and their parties.", - "type": "text/plain" - }, - "key": "flag[parties]", - "value": "" - } - ], + "query": [], "variable": [ { "type": "any", @@ -9590,60 +17037,54 @@ "key": "id", "disabled": false, "description": { - "content": "(Required) Shipment Id", + "content": "(Required) Tracking Request ID", "type": "text/plain" } } ] }, "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" } ], - "method": "GET", - "body": {}, + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ]\n },\n \"type\": \"string\"\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, "auth": null }, "response": [ { - "id": "49e5d0c8-8c85-43e6-a1b6-e8bcfe5580ec", + "id": "8ecf023a-caee-4f49-8b4c-b34545e4830a", "name": "OK", "originalRequest": { "url": { "path": [ - "shipments", + "tracking_requests", ":id" ], "host": [ "{{baseUrl}}" ], - "query": [ - { - "disabled": true, - "description": { - "content": "Comma delimited list of relations to include", - "type": "text/plain" - }, - "key": "include", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Set to `true` to add the `party_roles` relationship to each shipment. Add `include=party_roles.party` to embed the roles and their parties.", - "type": "text/plain" - }, - "key": "flag[parties]", - "value": "" - } - ], + "query": [], "variable": [ { "disabled": false, "description": { - "content": "(Required) Shipment Id", + "content": "(Required) Tracking Request ID", "type": "text/plain" }, "type": "any", @@ -9653,6 +17094,10 @@ ] }, "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" @@ -9666,8 +17111,17 @@ "value": "" } ], - "method": "GET", - "body": {} + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ]\n },\n \"type\": \"string\"\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, "status": "OK", "code": 200, @@ -9677,47 +17131,96 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"past_full_out_window\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"metro_area\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"rail_terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"container\",\n \"attributes\": {\n \"number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"equipment_type\": \"tank\",\n \"equipment_length\": 20,\n \"equipment_height\": \"standard\",\n \"weight_in_lbs\": \"\",\n \"created_at\": \"\",\n \"seal_number\": \"\",\n \"pickup_lfd\": \"\",\n \"pickup_appointment_at\": \"\",\n \"availability_known\": \"\",\n \"available_for_pickup\": \"\",\n \"pod_arrived_at\": \"\",\n \"pod_discharged_at\": \"\",\n \"pod_full_out_at\": \"\",\n \"terminal_checked_at\": \"\",\n \"pod_full_out_chassis_number\": \"\",\n \"location_at_pod_terminal\": \"\",\n \"final_destination_full_out_at\": \"\",\n \"empty_terminated_at\": \"\",\n \"holds_at_pod_terminal\": [\n {\n \"name\": \"\",\n \"status\": \"pending\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"status\": \"pending\",\n \"description\": \"\"\n }\n ],\n \"fees_at_pod_terminal\": [\n {\n \"type\": \"total\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n },\n {\n \"type\": \"extended_dwell_time\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n }\n ],\n \"pod_timezone\": \"\",\n \"final_destination_timezone\": \"\",\n \"empty_terminated_timezone\": \"\",\n \"pod_rail_carrier_scac\": \"\",\n \"ind_rail_carrier_scac\": \"\",\n \"pod_last_tracking_request_at\": \"\",\n \"shipment_last_tracking_request_at\": \"\",\n \"pod_rail_loaded_at\": \"\",\n \"pod_rail_departed_at\": \"\",\n \"ind_eta_at\": \"\",\n \"ind_ata_at\": \"\",\n \"ind_rail_unloaded_at\": \"\",\n \"ind_facility_lfd_on\": \"\",\n \"import_deadlines\": {\n \"pickup_lfd_terminal\": \"\",\n \"pickup_lfd_rail\": \"\",\n \"pickup_lfd_line\": \"\"\n },\n \"current_status\": \"grounded\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"pickup_facility\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"transport_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n }\n ]\n },\n \"raw_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n }\n ]\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"container\",\n \"attributes\": {\n \"number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"equipment_type\": \"reefer\",\n \"equipment_length\": 45,\n \"equipment_height\": null,\n \"weight_in_lbs\": \"\",\n \"created_at\": \"\",\n \"seal_number\": \"\",\n \"pickup_lfd\": \"\",\n \"pickup_appointment_at\": \"\",\n \"availability_known\": \"\",\n \"available_for_pickup\": \"\",\n \"pod_arrived_at\": \"\",\n \"pod_discharged_at\": \"\",\n \"pod_full_out_at\": \"\",\n \"terminal_checked_at\": \"\",\n \"pod_full_out_chassis_number\": \"\",\n \"location_at_pod_terminal\": \"\",\n \"final_destination_full_out_at\": \"\",\n \"empty_terminated_at\": \"\",\n \"holds_at_pod_terminal\": [\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"status\": \"hold\",\n \"description\": \"\"\n }\n ],\n \"fees_at_pod_terminal\": [\n {\n \"type\": \"extended_dwell_time\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n },\n {\n \"type\": \"extended_dwell_time\",\n \"amount\": \"\",\n \"currency_code\": \"\"\n }\n ],\n \"pod_timezone\": \"\",\n \"final_destination_timezone\": \"\",\n \"empty_terminated_timezone\": \"\",\n \"pod_rail_carrier_scac\": \"\",\n \"ind_rail_carrier_scac\": \"\",\n \"pod_last_tracking_request_at\": \"\",\n \"shipment_last_tracking_request_at\": \"\",\n \"pod_rail_loaded_at\": \"\",\n \"pod_rail_departed_at\": \"\",\n \"ind_eta_at\": \"\",\n \"ind_ata_at\": \"\",\n \"ind_rail_unloaded_at\": \"\",\n \"ind_facility_lfd_on\": \"\",\n \"import_deadlines\": {\n \"pickup_lfd_terminal\": \"\",\n \"pickup_lfd_rail\": \"\",\n \"pickup_lfd_line\": \"\"\n },\n \"current_status\": \"off_dock\"\n },\n \"relationships\": {\n \"shipment\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"pickup_facility\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n },\n \"transport_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"transport_event\"\n }\n ]\n },\n \"raw_events\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n },\n {\n \"id\": \"\",\n \"type\": \"raw_event\"\n }\n ]\n }\n }\n }\n ]\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"request_number\": \"\",\n \"status\": \"pending\",\n \"request_type\": \"bill_of_lading\",\n \"scac\": \"\",\n \"created_at\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"tags\": [\n \"\",\n \"\"\n ],\n \"failed_reason\": \"awaiting_manifest\",\n \"updated_at\": \"\",\n \"is_retrying\": \"\",\n \"retry_count\": \"\"\n },\n \"relationships\": {\n \"tracked_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"customer\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n }\n }\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "a79fe2d7-70fe-42a3-b343-197fe5f995d5", - "name": "Not Found", + "id": "b03ce6c7-826a-4a46-8a62-d3d11d32f49a", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", "originalRequest": { "url": { "path": [ - "shipments", + "tracking_requests", ":id" ], "host": [ "{{baseUrl}}" ], - "query": [ + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Comma delimited list of relations to include", + "content": "(Required) Tracking Request ID", "type": "text/plain" }, - "key": "include", - "value": "" + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, - { - "disabled": true, - "description": { - "content": "Set to `true` to add the `party_roles` relationship to each shipment. Add `include=party_roles.party` to embed the roles and their parties.", - "type": "text/plain" - }, - "key": "flag[parties]", - "value": "" + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ]\n },\n \"type\": \"string\"\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" } + } + } + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "c5e08690-822e-4b6d-bf70-185bab971ce1", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "tracking_requests", + ":id" ], + "host": [ + "{{baseUrl}}" + ], + "query": [], "variable": [ { "disabled": false, "description": { - "content": "(Required) Shipment Id", + "content": "(Required) Tracking Request ID", "type": "text/plain" }, "type": "any", @@ -9727,6 +17230,10 @@ ] }, "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" @@ -9740,8 +17247,17 @@ "value": "" } ], - "method": "GET", - "body": {} + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ]\n },\n \"type\": \"string\"\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, "status": "Not Found", "code": 404, @@ -9751,47 +17267,28 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "4b65ac52-d644-4895-a25a-3d2d546b65d5", + "id": "5b72c958-4e7a-414b-b900-61402b32b3ea", "name": "Unprocessable Entity", "originalRequest": { "url": { "path": [ - "shipments", + "tracking_requests", ":id" ], "host": [ "{{baseUrl}}" ], - "query": [ - { - "disabled": true, - "description": { - "content": "Comma delimited list of relations to include", - "type": "text/plain" - }, - "key": "include", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Set to `true` to add the `party_roles` relationship to each shipment. Add `include=party_roles.party` to embed the roles and their parties.", - "type": "text/plain" - }, - "key": "flag[parties]", - "value": "" - } - ], + "query": [], "variable": [ { "disabled": false, "description": { - "content": "(Required) Shipment Id", + "content": "(Required) Tracking Request ID", "type": "text/plain" }, "type": "any", @@ -9801,6 +17298,10 @@ ] }, "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" @@ -9814,8 +17315,17 @@ "value": "" } ], - "method": "GET", - "body": {} + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ]\n },\n \"type\": \"string\"\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, "status": "Unprocessable Entity (WebDAV) (RFC 4918)", "code": 422, @@ -9825,7 +17335,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -9836,91 +17346,93 @@ } }, { - "id": "65d75a5e-1971-48c2-9dd8-0499ac8a423f", - "name": "Edit a shipment", + "id": "f7c9e242-3ddd-4ea9-9b48-a804060f1bb5", + "name": "List tracking request custom fields", "request": { - "name": "Edit a shipment", - "description": { - "content": "Update a shipment", - "type": "text/plain" - }, + "name": "List tracking request custom fields", + "description": {}, "url": { "path": [ - "shipments", - ":id" + "tracking_requests", + ":tracking_request_id", + "custom_fields" ], "host": [ "{{baseUrl}}" ], - "query": [], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma-separated relationships to include: `definition`, `entity`, `updated_by`.", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], "variable": [ { "type": "any", "value": "", - "key": "id", + "key": "tracking_request_id", "disabled": false, "description": { - "content": "(Required) Shipment Id", + "content": "(Required) Tracking request ID", "type": "text/plain" } } ] }, "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" } ], - "method": "PATCH", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"tags\": [\n \"\",\n \"\"\n ]\n }\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, + "method": "GET", + "body": {}, "auth": null }, "response": [ { - "id": "fb1e892e-1ec5-4bcd-81d3-b5a35f191d92", + "id": "1f54b4dc-3201-4fc5-b661-62e278bd388e", "name": "OK", "originalRequest": { "url": { "path": [ - "shipments", - ":id" + "tracking_requests", + ":tracking_request_id", + "custom_fields" ], "host": [ "{{baseUrl}}" ], - "query": [], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma-separated relationships to include: `definition`, `entity`, `updated_by`.", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], "variable": [ { "disabled": false, "description": { - "content": "(Required) Shipment Id", + "content": "(Required) Tracking request ID", "type": "text/plain" }, "type": "any", "value": "", - "key": "id" + "key": "tracking_request_id" } ] }, "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" @@ -9934,17 +17446,8 @@ "value": "" } ], - "method": "PATCH", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"tags\": [\n \"\",\n \"\"\n ]\n }\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "method": "GET", + "body": {} }, "status": "OK", "code": 200, @@ -9954,83 +17457,110 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"cancelled_by_user\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n }\n}", + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"tracking_request\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n }\n ],\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Shipment\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"short_text\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 2303.261307062433,\n \"key_1\": \"string\"\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\",\n \"template_id\": \"\",\n \"has_data\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\",\n \"discarded_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"type\": \"account\",\n \"id\": \"\"\n }\n },\n \"created_by\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n },\n \"options\": {\n \"data\": [\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n },\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n }\n ]\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"custom_field_definition\",\n \"attributes\": {\n \"entity_type\": \"Shipment\",\n \"api_slug\": \"\",\n \"display_name\": \"\",\n \"data_type\": \"date\",\n \"description\": \"\",\n \"reference_type\": \"\",\n \"validation\": {\n \"key_0\": 8102,\n \"key_1\": 9506.218278937042\n },\n \"default_format\": \"\",\n \"default_value\": \"\",\n \"reference_number\": \"\",\n \"sensitive\": \"\",\n \"inline_option_creation\": \"\",\n \"template_id\": \"\",\n \"has_data\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\",\n \"discarded_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"type\": \"account\",\n \"id\": \"\"\n }\n },\n \"created_by\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n },\n \"options\": {\n \"data\": [\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n },\n {\n \"type\": \"custom_field_option\",\n \"id\": \"\"\n }\n ]\n }\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "7f344a5c-04b9-47b0-9771-57e3f0fc6d2f", - "name": "Stop tracking a shipment", - "request": { - "name": "Stop tracking a shipment", - "description": { - "content": "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.", - "type": "text/plain" }, - "url": { - "path": [ - "shipments", - ":id", - "stop_tracking" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "id", - "disabled": false, - "description": { - "content": "(Required) ", - "type": "text/plain" + { + "id": "cb2ab22c-34a1-4ee6-9903-edb0e742757a", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "tracking_requests", + ":tracking_request_id", + "custom_fields" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma-separated relationships to include: `definition`, `entity`, `updated_by`.", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Tracking request ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "tracking_request_id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" } + ], + "method": "GET", + "body": {} + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" } - ] + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" }, - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "PATCH", - "body": {}, - "auth": null - }, - "response": [ { - "id": "5dfe86b7-5656-43fa-9f6b-042075cbfbdd", - "name": "OK", + "id": "29b0dfb3-7b72-4ddd-bb24-c608a12843b1", + "name": "Not Found", "originalRequest": { "url": { "path": [ - "shipments", - ":id", - "stop_tracking" + "tracking_requests", + ":tracking_request_id", + "custom_fields" ], "host": [ "{{baseUrl}}" ], - "query": [], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma-separated relationships to include: `definition`, `entity`, `updated_by`.", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], "variable": [ { "disabled": false, "description": { - "content": "(Required) ", + "content": "(Required) Tracking request ID", "type": "text/plain" }, "type": "any", "value": "", - "key": "id" + "key": "tracking_request_id" } ] }, @@ -10048,18 +17578,18 @@ "value": "" } ], - "method": "PATCH", + "method": "GET", "body": {} }, - "status": "OK", - "code": 200, + "status": "Not Found", + "code": 404, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"cancelled_by_user\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n }\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -10070,19 +17600,16 @@ } }, { - "id": "51e22cad-d38d-4fbc-97c0-f0c20bc01f4c", - "name": "Resume tracking a shipment", + "id": "39b25007-13d5-44b8-971d-e59e52cfc53a", + "name": "Create a tracking request custom field", "request": { - "name": "Resume tracking a shipment", - "description": { - "content": "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.", - "type": "text/plain" - }, + "name": "Create a tracking request custom field", + "description": {}, "url": { "path": [ - "shipments", - ":id", - "resume_tracking" + "tracking_requests", + ":tracking_request_id", + "custom_fields" ], "host": [ "{{baseUrl}}" @@ -10092,35 +17619,48 @@ { "type": "any", "value": "", - "key": "id", + "key": "tracking_request_id", "disabled": false, "description": { - "content": "(Required) ", + "content": "(Required) Tracking request ID", "type": "text/plain" } } ] }, "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" } ], - "method": "PATCH", - "body": {}, + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, "auth": null }, "response": [ { - "id": "d084e8a5-c4b3-4ddd-b69f-5c92000114c7", - "name": "OK", + "id": "1a42f3cb-a76a-4fe2-a1a3-5f50c73c16f0", + "name": "Created", "originalRequest": { "url": { "path": [ - "shipments", - ":id", - "resume_tracking" + "tracking_requests", + ":tracking_request_id", + "custom_fields" ], "host": [ "{{baseUrl}}" @@ -10130,16 +17670,20 @@ { "disabled": false, "description": { - "content": "(Required) ", + "content": "(Required) Tracking request ID", "type": "text/plain" }, "type": "any", "value": "", - "key": "id" + "key": "tracking_request_id" } ] }, "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" @@ -10153,75 +17697,38 @@ "value": "" } ], - "method": "PATCH", - "body": {} + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, - "status": "OK", - "code": 200, + "status": "Created", + "code": 201, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\",\n \"attributes\": {\n \"bill_of_lading_number\": \"\",\n \"normalized_number\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"tags\": [\n \"\",\n \"\"\n ],\n \"port_of_lading_locode\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_locode\": \"\",\n \"port_of_discharge_name\": \"\",\n \"destination_locode\": \"\",\n \"destination_name\": \"\",\n \"shipping_line_scac\": \"\",\n \"shipping_line_name\": \"\",\n \"shipping_line_short_name\": \"\",\n \"customer_name\": \"\",\n \"pod_vessel_name\": \"\",\n \"pod_vessel_imo\": \"\",\n \"pod_voyage_number\": \"\",\n \"pol_etd_at\": \"\",\n \"pol_atd_at\": \"\",\n \"pod_eta_at\": \"\",\n \"pod_original_eta_at\": \"\",\n \"pod_ata_at\": \"\",\n \"destination_eta_at\": \"\",\n \"destination_ata_at\": \"\",\n \"pol_timezone\": \"\",\n \"pod_timezone\": \"\",\n \"destination_timezone\": \"\",\n \"line_tracking_last_attempted_at\": \"\",\n \"line_tracking_last_succeeded_at\": \"\",\n \"line_tracking_stopped_at\": \"\",\n \"line_tracking_stopped_reason\": \"cancelled_by_user\"\n },\n \"relationships\": {\n \"destination\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"port_of_lading\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"containers\": {\n \"data\": [\n {\n \"type\": \"container\",\n \"id\": \"\"\n },\n {\n \"type\": \"container\",\n \"id\": \"\"\n }\n ]\n },\n \"port_of_discharge\": {\n \"data\": {\n \"type\": \"port\",\n \"id\": \"\"\n }\n },\n \"pod_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"destination_terminal\": {\n \"data\": {\n \"type\": \"terminal\",\n \"id\": \"\"\n }\n },\n \"line_tracking_stopped_by_user\": {\n \"data\": {\n \"type\": \"user\",\n \"id\": \"\"\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n }\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "a77531cf-c522-4f2a-847f-55a1c393c35c", - "name": "List shipment custom fields", - "request": { - "name": "List shipment custom fields", - "description": {}, - "url": { - "path": [ - "shipments", - ":shipment_id", - "custom_fields" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "shipment_id", - "disabled": false, - "description": { - "content": "(Required) Shipment ID", - "type": "text/plain" - } - } - ] }, - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "GET", - "body": {}, - "auth": null - }, - "response": [ { - "id": "088a4628-16ee-4adb-b738-aa11dc90e70b", - "name": "OK", + "id": "c9a6ca84-c1d9-4636-93c1-18ed0af56ec7", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", "originalRequest": { "url": { "path": [ - "shipments", - ":shipment_id", + "tracking_requests", + ":tracking_request_id", "custom_fields" ], "host": [ @@ -10232,16 +17739,20 @@ { "disabled": false, "description": { - "content": "(Required) Shipment ID", + "content": "(Required) Tracking request ID", "type": "text/plain" }, "type": "any", "value": "", - "key": "shipment_id" + "key": "tracking_request_id" } ] }, "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" @@ -10255,88 +17766,107 @@ "value": "" } ], - "method": "GET", - "body": {} + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, - "status": "OK", - "code": 200, + "status": "Unauthorized", + "code": 401, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"tracking_request\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"tracking_request\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n }\n ],\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "268b6297-d183-4792-8d77-e40c00f0db9c", - "name": "Create a shipment custom field", - "request": { - "name": "Create a shipment custom field", - "description": {}, - "url": { - "path": [ - "shipments", - ":shipment_id", - "custom_fields" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "shipment_id", - "disabled": false, - "description": { - "content": "(Required) Shipment ID", - "type": "text/plain" - } - } - ] }, - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "POST", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" + { + "id": "cd4d4949-c654-4361-8cb7-0451e7c8d5b0", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "tracking_requests", + ":tracking_request_id", + "custom_fields" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Tracking request ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "tracking_request_id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } } - } + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" }, - "auth": null - }, - "response": [ { - "id": "4a54e1eb-c954-4323-ae39-d336d75b0ff5", - "name": "Created", + "id": "c58f6081-857e-4b38-a51f-becb063a819c", + "name": "Unprocessable Entity", "originalRequest": { "url": { "path": [ - "shipments", - ":shipment_id", + "tracking_requests", + ":tracking_request_id", "custom_fields" ], "host": [ @@ -10347,12 +17877,12 @@ { "disabled": false, "description": { - "content": "(Required) Shipment ID", + "content": "(Required) Tracking request ID", "type": "text/plain" }, "type": "any", "value": "", - "key": "shipment_id" + "key": "tracking_request_id" } ] }, @@ -10386,15 +17916,15 @@ } } }, - "status": "Created", - "code": 201, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -10405,15 +17935,15 @@ } }, { - "id": "1a6818b4-e391-4508-9e59-ffb19f40ce74", - "name": "Update a shipment custom field", + "id": "d64f031f-d4fa-4943-bfd0-1e057b6c3cda", + "name": "Update a tracking request custom field", "request": { - "name": "Update a shipment custom field", + "name": "Update a tracking request custom field", "description": {}, "url": { "path": [ - "shipments", - ":shipment_id", + "tracking_requests", + ":tracking_request_id", "custom_fields", ":api_slug" ], @@ -10425,10 +17955,10 @@ { "type": "any", "value": "", - "key": "shipment_id", + "key": "tracking_request_id", "disabled": false, "description": { - "content": "(Required) Shipment ID", + "content": "(Required) Tracking request ID", "type": "text/plain" } }, @@ -10469,13 +17999,13 @@ }, "response": [ { - "id": "4b661a25-772d-41a9-ab27-b8770e52f879", + "id": "4faed2a8-b6b5-4a3c-aa54-c126ccd4add4", "name": "OK", "originalRequest": { "url": { "path": [ - "shipments", - ":shipment_id", + "tracking_requests", + ":tracking_request_id", "custom_fields", ":api_slug" ], @@ -10487,12 +18017,12 @@ { "disabled": false, "description": { - "content": "(Required) Shipment ID", + "content": "(Required) Tracking request ID", "type": "text/plain" }, "type": "any", "value": "", - "key": "shipment_id" + "key": "tracking_request_id" }, { "disabled": false, @@ -10544,69 +18074,18 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "0c0d1bba-ce36-4fad-b6c7-517ee51ab8da", - "name": "Delete a shipment custom field", - "request": { - "name": "Delete a shipment custom field", - "description": {}, - "url": { - "path": [ - "shipments", - ":shipment_id", - "custom_fields", - ":api_slug" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "shipment_id", - "disabled": false, - "description": { - "content": "(Required) Shipment ID", - "type": "text/plain" - } - }, - { - "type": "any", - "value": "", - "key": "api_slug", - "disabled": false, - "description": { - "content": "(Required) Custom field api_slug", - "type": "text/plain" - } - } - ] }, - "method": "DELETE", - "body": {}, - "auth": null - }, - "response": [ { - "id": "9595e98c-810f-4ecf-b822-ff0e869465bd", - "name": "No Content", + "id": "74d3b9e7-f97a-4efa-8fc9-a8ce16e18411", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", "originalRequest": { "url": { "path": [ - "shipments", - ":shipment_id", + "tracking_requests", + ":tracking_request_id", "custom_fields", ":api_slug" ], @@ -10618,12 +18097,12 @@ { "disabled": false, "description": { - "content": "(Required) Shipment ID", + "content": "(Required) Tracking request ID", "type": "text/plain" }, "type": "any", "value": "", - "key": "shipment_id" + "key": "tracking_request_id" }, { "disabled": false, @@ -10637,120 +18116,6 @@ } ] }, - "header": [ - { - "description": { - "content": "Added as a part of security scheme: apikey", - "type": "text/plain" - }, - "key": "Authorization", - "value": "" - } - ], - "method": "DELETE", - "body": {} - }, - "status": "No Content", - "code": 204, - "header": [], - "cookie": [], - "_postman_previewlanguage": "text" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - } - ] - }, - { - "name": "Locations", - "description": "", - "item": [] - }, - { - "name": "Events", - "description": "", - "item": [] - }, - { - "name": "Tracking Requests", - "description": "", - "item": [ - { - "id": "8b8bf442-314e-4c35-9244-67aa377261ea", - "name": "Create a tracking request", - "request": { - "name": "Create a tracking request", - "description": { - "content": "To track an ocean shipment, create a new tracking request. `request_type` and `request_number` are always required. Supply either a shipping line `scac` or set `auto_detect_vocc_scac` to `true` to have Terminal49 infer the SCAC from the request number before creating the tracking request.\n\nAuto-detection uses the same carrier prediction capability as the Infer Tracking Number endpoint and runs asynchronously. The tracking request is created immediately (HTTP `201`) with `status: \"pending\"`; if no supported carrier can be inferred it transitions to `status: \"failed\"` with `failed_reason: \"scac_auto_detect_failed\"` and no shipment is created. Once a tracking request is created we will attempt to fetch the shipment details and its related containers from the shipping line. If the attempt is successful we will create a 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 notification will only be sent if you have at least one active webhook.

This endpoint is limited to 100 tracking requests per minute.", - "type": "text/plain" - }, - "url": { - "path": [ - "tracking_requests" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [] - }, - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "POST", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"request_type\": \"container\",\n \"request_number\": \"\",\n \"scac\": \"\",\n \"auto_detect_vocc_scac\": false,\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"shipment_tags\": [\n \"\",\n \"\"\n ],\n \"initial_custom_fields\": {\n \"shipment\": [\n {\n \"api_slug\": \"\",\n \"value\": \"\"\n },\n {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n ],\n \"containers\": [\n {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"number\": \"\"\n },\n {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"number\": \"\"\n }\n ]\n }\n },\n \"relationships\": {\n \"customer\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"shipper\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"consignee\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"notify_party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"customs_broker\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"freight_forwarder\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"pickup_dray_carrier\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, - "auth": { - "type": "apikey", - "apikey": [ - { - "key": "key", - "value": "Authorization" - }, - { - "key": "value", - "value": "{{apiKey}}" - }, - { - "key": "in", - "value": "header" - } - ] - } - }, - "response": [ - { - "id": "f5652537-05c2-417c-bef0-3234e7d01cef", - "name": "Tracking Request Created", - "originalRequest": { - "url": { - "path": [ - "tracking_requests" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [] - }, "header": [ { "key": "Content-Type", @@ -10769,10 +18134,10 @@ "value": "" } ], - "method": "POST", + "method": "PATCH", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"request_type\": \"container\",\n \"request_number\": \"\",\n \"scac\": \"\",\n \"auto_detect_vocc_scac\": false,\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"shipment_tags\": [\n \"\",\n \"\"\n ],\n \"initial_custom_fields\": {\n \"shipment\": [\n {\n \"api_slug\": \"\",\n \"value\": \"\"\n },\n {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n ],\n \"containers\": [\n {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"number\": \"\"\n },\n {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"number\": \"\"\n }\n ]\n }\n },\n \"relationships\": {\n \"customer\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"shipper\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"consignee\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"notify_party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"customs_broker\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"freight_forwarder\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"pickup_dray_carrier\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n}", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -10781,31 +18146,55 @@ } } }, - "status": "Created", - "code": 201, + "status": "Unauthorized", + "code": 401, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"request_number\": \"\",\n \"status\": \"failed\",\n \"request_type\": \"container\",\n \"scac\": \"\",\n \"created_at\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"tags\": [\n \"\",\n \"\"\n ],\n \"failed_reason\": \"shipping_line_unreachable\",\n \"updated_at\": \"\",\n \"is_retrying\": \"\",\n \"retry_count\": \"\"\n },\n \"relationships\": {\n \"tracked_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"customer\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n }\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "2845b18a-9fab-4e39-9e8f-3773c003da78", - "name": "Unprocessable Entity", + "id": "860860d9-7b9d-47c8-b2bb-5b31fc1e7da0", + "name": "Not Found", "originalRequest": { "url": { "path": [ - "tracking_requests" + "tracking_requests", + ":tracking_request_id", + "custom_fields", + ":api_slug" ], "host": [ "{{baseUrl}}" ], "query": [], - "variable": [] + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Tracking request ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "tracking_request_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field api_slug", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "api_slug" + } + ] }, "header": [ { @@ -10825,10 +18214,10 @@ "value": "" } ], - "method": "POST", + "method": "PATCH", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"request_type\": \"container\",\n \"request_number\": \"\",\n \"scac\": \"\",\n \"auto_detect_vocc_scac\": false,\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"shipment_tags\": [\n \"\",\n \"\"\n ],\n \"initial_custom_fields\": {\n \"shipment\": [\n {\n \"api_slug\": \"\",\n \"value\": \"\"\n },\n {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n ],\n \"containers\": [\n {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"number\": \"\"\n },\n {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"number\": \"\"\n }\n ]\n }\n },\n \"relationships\": {\n \"customer\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"shipper\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"consignee\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"notify_party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"customs_broker\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"freight_forwarder\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"pickup_dray_carrier\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n}", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -10837,31 +18226,55 @@ } } }, - "status": "Unprocessable Entity (WebDAV) (RFC 4918)", - "code": 422, + "status": "Not Found", + "code": 404, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "49ea9fa5-500d-4ac0-9968-f1f3e10089ed", - "name": "Too Many Requests - You've hit the create tracking requests limit. Please try again in a minute.", + "id": "b3d5ae2f-9aa6-4f4b-87bc-198e6a2a29b7", + "name": "Unprocessable Entity", "originalRequest": { "url": { "path": [ - "tracking_requests" + "tracking_requests", + ":tracking_request_id", + "custom_fields", + ":api_slug" ], "host": [ "{{baseUrl}}" ], "query": [], - "variable": [] + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Tracking request ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "tracking_request_id" + }, + { + "disabled": false, + "description": { + "content": "(Required) Custom field api_slug", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "api_slug" + } + ] }, "header": [ { @@ -10881,10 +18294,10 @@ "value": "" } ], - "method": "POST", + "method": "PATCH", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"request_type\": \"container\",\n \"request_number\": \"\",\n \"scac\": \"\",\n \"auto_detect_vocc_scac\": false,\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"shipment_tags\": [\n \"\",\n \"\"\n ],\n \"initial_custom_fields\": {\n \"shipment\": [\n {\n \"api_slug\": \"\",\n \"value\": \"\"\n },\n {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n ],\n \"containers\": [\n {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"number\": \"\"\n },\n {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"number\": \"\"\n }\n ]\n }\n },\n \"relationships\": {\n \"customer\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"shipper\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"consignee\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"notify_party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"customs_broker\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"freight_forwarder\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n },\n \"pickup_dray_carrier\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n}", + "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -10893,24 +18306,15 @@ } } }, - "status": "Too Many Requests", - "code": 429, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, "header": [ { "key": "Content-Type", "value": "application/json" - }, - { - "disabled": true, - "description": { - "content": "Number of seconds to wait before making another request", - "type": "text/plain" - }, - "key": "Retry-After", - "value": "" } ], - "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -10921,123 +18325,44 @@ } }, { - "id": "63081cb7-7739-4fb8-9768-6f86860efef1", - "name": "List tracking requests", + "id": "9a5e5021-3eef-43ff-a5c7-740a83c04f48", + "name": "Delete a tracking request custom field", "request": { - "name": "List tracking requests", - "description": { - "content": "Returns a list of your tracking requests. The tracking requests are returned sorted by creation date, with the most recent tracking request appearing first.", - "type": "text/plain" - }, + "name": "Delete a tracking request custom field", + "description": {}, "url": { "path": [ - "tracking_requests" + "tracking_requests", + ":tracking_request_id", + "custom_fields", + ":api_slug" ], "host": [ "{{baseUrl}}" ], - "query": [ - { - "disabled": true, - "description": { - "content": "A search term to be applied against request_number and reference_numbers.", - "type": "text/plain" - }, - "key": "q", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "filter by `request_number`", - "type": "text/plain" - }, - "key": "filter[request_number]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "filter by `status` (This can only be one of created,pending,failed)", - "type": "text/plain" - }, - "key": "filter[status]", - "value": "failed" - }, - { - "disabled": true, - "description": { - "content": "filter by shipping line `scac`", - "type": "text/plain" - }, - "key": "filter[scac]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "filter by tracking_requests `created_at` after a certain ISO8601 timestamp", - "type": "text/plain" - }, - "key": "filter[created_at][start]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "filter by tracking_requests `created_at` before a certain ISO8601 timestamp", - "type": "text/plain" - }, - "key": "filter[created_at][end]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "filter by tracking_requests `updated_at` after a certain ISO8601 timestamp", - "type": "text/plain" - }, - "key": "filter[updated_at][start]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "filter by tracking_requests `updated_at` before a certain ISO8601 timestamp", - "type": "text/plain" - }, - "key": "filter[updated_at][end]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Comma delimited list of relations to include. 'tracked_object' is included by default.", - "type": "text/plain" - }, - "key": "include", - "value": "" - }, + "query": [], + "variable": [ { - "disabled": true, + "type": "any", + "value": "", + "key": "tracking_request_id", + "disabled": false, "description": { - "content": "", + "content": "(Required) Tracking request ID", "type": "text/plain" - }, - "key": "page[number]", - "value": "" + } }, { - "disabled": true, + "type": "any", + "value": "", + "key": "api_slug", + "disabled": false, "description": { - "content": "", + "content": "(Required) Custom field api_slug", "type": "text/plain" - }, - "key": "page[size]", - "value": "" + } } - ], - "variable": [] + ] }, "header": [ { @@ -11045,124 +18370,105 @@ "value": "application/json" } ], - "method": "GET", + "method": "DELETE", "body": {}, "auth": null - }, - "response": [ - { - "id": "58e1fa3e-99a0-402d-845d-d61793cc916b", - "name": "OK", - "originalRequest": { - "url": { - "path": [ - "tracking_requests" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [ - { - "disabled": true, - "description": { - "content": "A search term to be applied against request_number and reference_numbers.", - "type": "text/plain" - }, - "key": "q", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "filter by `request_number`", - "type": "text/plain" - }, - "key": "filter[request_number]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "filter by `status` (This can only be one of created,pending,failed)", - "type": "text/plain" - }, - "key": "filter[status]", - "value": "failed" - }, - { - "disabled": true, - "description": { - "content": "filter by shipping line `scac`", - "type": "text/plain" - }, - "key": "filter[scac]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "filter by tracking_requests `created_at` after a certain ISO8601 timestamp", - "type": "text/plain" - }, - "key": "filter[created_at][start]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "filter by tracking_requests `created_at` before a certain ISO8601 timestamp", - "type": "text/plain" - }, - "key": "filter[created_at][end]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "filter by tracking_requests `updated_at` after a certain ISO8601 timestamp", - "type": "text/plain" - }, - "key": "filter[updated_at][start]", - "value": "" - }, + }, + "response": [ + { + "id": "b2d173e7-7d4d-4b33-b208-fa6dc919980e", + "name": "No Content", + "originalRequest": { + "url": { + "path": [ + "tracking_requests", + ":tracking_request_id", + "custom_fields", + ":api_slug" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "filter by tracking_requests `updated_at` before a certain ISO8601 timestamp", + "content": "(Required) Tracking request ID", "type": "text/plain" }, - "key": "filter[updated_at][end]", - "value": "" + "type": "any", + "value": "", + "key": "tracking_request_id" }, { - "disabled": true, + "disabled": false, "description": { - "content": "Comma delimited list of relations to include. 'tracked_object' is included by default.", + "content": "(Required) Custom field api_slug", "type": "text/plain" }, - "key": "include", - "value": "" + "type": "any", + "value": "", + "key": "api_slug" + } + ] + }, + "header": [ + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "No Content", + "code": 204, + "header": [], + "cookie": [], + "_postman_previewlanguage": "text" + }, + { + "id": "78364240-2dc9-46b0-9845-31f4a179cf2a", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "tracking_requests", + ":tracking_request_id", + "custom_fields", + ":api_slug" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "", + "content": "(Required) Tracking request ID", "type": "text/plain" }, - "key": "page[number]", - "value": "" + "type": "any", + "value": "", + "key": "tracking_request_id" }, { - "disabled": true, + "disabled": false, "description": { - "content": "", + "content": "(Required) Custom field api_slug", "type": "text/plain" }, - "key": "page[size]", - "value": "" + "type": "any", + "value": "", + "key": "api_slug" } - ], - "variable": [] + ] }, "header": [ { @@ -11178,134 +18484,58 @@ "value": "" } ], - "method": "GET", + "method": "DELETE", "body": {} }, - "status": "OK", - "code": 200, + "status": "Unauthorized", + "code": 401, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"request_number\": \"\",\n \"status\": \"created\",\n \"request_type\": \"booking_number\",\n \"scac\": \"\",\n \"created_at\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"tags\": [\n \"\",\n \"\"\n ],\n \"failed_reason\": \"booking_cancelled\",\n \"updated_at\": \"\",\n \"is_retrying\": \"\",\n \"retry_count\": \"\"\n },\n \"relationships\": {\n \"tracked_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"customer\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"request_number\": \"\",\n \"status\": \"awaiting_manifest\",\n \"request_type\": \"container\",\n \"scac\": \"\",\n \"created_at\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"tags\": [\n \"\",\n \"\"\n ],\n \"failed_reason\": \"data_unavailable\",\n \"updated_at\": \"\",\n \"is_retrying\": \"\",\n \"retry_count\": \"\"\n },\n \"relationships\": {\n \"tracked_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"customer\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n }\n }\n }\n ],\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "1c9b1233-6357-432a-910e-2c53d04513d1", + "id": "7b27c60c-efcc-43b9-bf18-924090f2227d", "name": "Not Found", "originalRequest": { "url": { "path": [ - "tracking_requests" + "tracking_requests", + ":tracking_request_id", + "custom_fields", + ":api_slug" ], "host": [ "{{baseUrl}}" ], - "query": [ - { - "disabled": true, - "description": { - "content": "A search term to be applied against request_number and reference_numbers.", - "type": "text/plain" - }, - "key": "q", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "filter by `request_number`", - "type": "text/plain" - }, - "key": "filter[request_number]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "filter by `status` (This can only be one of created,pending,failed)", - "type": "text/plain" - }, - "key": "filter[status]", - "value": "failed" - }, - { - "disabled": true, - "description": { - "content": "filter by shipping line `scac`", - "type": "text/plain" - }, - "key": "filter[scac]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "filter by tracking_requests `created_at` after a certain ISO8601 timestamp", - "type": "text/plain" - }, - "key": "filter[created_at][start]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "filter by tracking_requests `created_at` before a certain ISO8601 timestamp", - "type": "text/plain" - }, - "key": "filter[created_at][end]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "filter by tracking_requests `updated_at` after a certain ISO8601 timestamp", - "type": "text/plain" - }, - "key": "filter[updated_at][start]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "filter by tracking_requests `updated_at` before a certain ISO8601 timestamp", - "type": "text/plain" - }, - "key": "filter[updated_at][end]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Comma delimited list of relations to include. 'tracked_object' is included by default.", - "type": "text/plain" - }, - "key": "include", - "value": "" - }, + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "", + "content": "(Required) Tracking request ID", "type": "text/plain" }, - "key": "page[number]", - "value": "" + "type": "any", + "value": "", + "key": "tracking_request_id" }, { - "disabled": true, + "disabled": false, "description": { - "content": "", + "content": "(Required) Custom field api_slug", "type": "text/plain" }, - "key": "page[size]", - "value": "" + "type": "any", + "value": "", + "key": "api_slug" } - ], - "variable": [] + ] }, "header": [ { @@ -11321,7 +18551,7 @@ "value": "" } ], - "method": "GET", + "method": "DELETE", "body": {} }, "status": "Not Found", @@ -11332,7 +18562,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -11343,85 +18573,76 @@ } }, { - "id": "e5de18ea-3a32-4de8-a46f-0e60d930f540", - "name": "Infer Tracking Number", + "id": "31551b40-aa8d-4c34-8a0c-832e55696ffd", + "name": "Cancel a tracking request", "request": { - "name": "Infer Tracking Number", + "name": "Cancel a tracking request", "description": { - "content": "Predict the carrier SCAC (VOCC) and number type from a tracking number. Provide a container number, bill of lading number, or booking number and receive the predicted carrier with confidence and a decision value. Use this to auto-populate carrier fields before creating a tracking request.", + "content": "Cancel a tracking request that is still `pending` or `awaiting_manifest`. The request moves to status `cancelled` with failed_reason `Cancelled by user`. Requests in any other status return 422. A request that belongs to another account also returns 422 with a string `errors`. An unknown tracking request ID currently returns a 500 server error, not 404. A 401 comes only from authentication. It means the API token is missing or invalid, or the account may not use the API.", "type": "text/plain" }, "url": { "path": [ "tracking_requests", - "infer_number" + ":id", + "cancel" ], "host": [ "{{baseUrl}}" ], "query": [], - "variable": [] + "variable": [ + { + "type": "any", + "value": "", + "key": "id", + "disabled": false, + "description": { + "content": "(Required) Tracking Request ID", + "type": "text/plain" + } + } + ] }, "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" } - ], - "method": "POST", - "body": { - "mode": "raw", - "raw": "{\n \"number\": \"\"\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, - "auth": { - "type": "apikey", - "apikey": [ - { - "key": "key", - "value": "Authorization" - }, - { - "key": "value", - "value": "{{apiKey}}" - }, - { - "key": "in", - "value": "header" - } - ] - } + ], + "method": "PATCH", + "body": {}, + "auth": null }, "response": [ { - "id": "bb4895b4-ba38-4160-9e98-0f08b4705293", - "name": "Successfully inferred number type and shipping line", + "id": "71825092-ad55-43d7-8c60-3f7ece58e9e3", + "name": "Cancelled. The response body is an empty JSON object.", "originalRequest": { "url": { "path": [ "tracking_requests", - "infer_number" + ":id", + "cancel" ], "host": [ "{{baseUrl}}" ], "query": [], - "variable": [] + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Tracking Request ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] }, "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" @@ -11435,17 +18656,8 @@ "value": "" } ], - "method": "POST", - "body": { - "mode": "raw", - "raw": "{\n \"number\": \"\"\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "method": "PATCH", + "body": {} }, "status": "OK", "code": 200, @@ -11455,30 +18667,38 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"\",\n \"attributes\": {\n \"number_type\": \"bill_of_lading\",\n \"validation\": {\n \"is_valid\": \"\",\n \"type\": \"container\",\n \"check_digit_passed\": \"\",\n \"parsed_number\": \"\",\n \"reason\": \"\"\n },\n \"shipping_line\": {\n \"decision\": \"auto_select\",\n \"selected\": {\n \"scac\": \"\",\n \"name\": \"\",\n \"confidence\": \"\"\n },\n \"candidates\": [\n {\n \"scac\": \"\",\n \"name\": \"\",\n \"confidence\": \"\"\n },\n {\n \"scac\": \"\",\n \"name\": \"\",\n \"confidence\": \"\"\n }\n ]\n }\n }\n }\n}", + "body": "{}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "4b129964-daf8-43e0-91c5-05249af100b3", - "name": "Unprocessable Entity - Invalid tracking number format", + "id": "5986bb9e-fa48-47c2-9df6-5e4100c3a008", + "name": "Unauthorized. The API token is missing or invalid, or the account may not use the API. Ownership never causes a 401 here: another account's tracking request returns 422.", "originalRequest": { "url": { "path": [ "tracking_requests", - "infer_number" + ":id", + "cancel" ], "host": [ "{{baseUrl}}" ], "query": [], - "variable": [] + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Tracking Request ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] }, "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" @@ -11492,50 +18712,49 @@ "value": "" } ], - "method": "POST", - "body": { - "mode": "raw", - "raw": "{\n \"number\": \"\"\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "method": "PATCH", + "body": {} }, - "status": "Unprocessable Entity (WebDAV) (RFC 4918)", - "code": 422, + "status": "Unauthorized", + "code": 401, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"detail\": \"\"\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "6d948b9d-b482-4781-945f-f2f49a7b6aa0", - "name": "Too Many Requests - Rate limit exceeded", + "id": "a541ec1e-c5e5-4bc2-af7a-1e4139ef9baf", + "name": "The tracking request is not in a cancellable status, or it belongs to another account.", "originalRequest": { "url": { "path": [ "tracking_requests", - "infer_number" + ":id", + "cancel" ], "host": [ "{{baseUrl}}" ], "query": [], - "variable": [] + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Tracking Request ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] }, "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" @@ -11549,73 +18768,97 @@ "value": "" } ], - "method": "POST", - "body": { - "mode": "raw", - "raw": "{\n \"number\": \"\"\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "method": "PATCH", + "body": {} }, - "status": "Too Many Requests", - "code": 429, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, "header": [ { "key": "Content-Type", "value": "application/json" - }, - { - "disabled": true, - "description": { - "content": "Number of seconds to wait before making another request", - "type": "text/plain" - }, - "key": "Retry-After", - "value": "" } ], - "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"detail\": \"\"\n }\n ]\n}", + "body": "{\n \"errors\": \"\"\n}", "cookie": [], "_postman_previewlanguage": "json" + }, + { + "id": "f1fdea04-9891-4637-8eaa-7e78ac651408", + "name": "Server error. An unknown tracking request ID currently returns 500 instead of 404.", + "originalRequest": { + "url": { + "path": [ + "tracking_requests", + ":id", + "cancel" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) Tracking Request ID", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": {} + }, + "status": "Internal Server Error", + "code": 500, + "header": [], + "cookie": [], + "_postman_previewlanguage": "text" } ], "event": [], "protocolProfileBehavior": { "disableBodyPruning": true } - }, + } + ] + }, + { + "name": "Webhooks", + "description": "", + "item": [ { - "id": "ae5173b9-1a48-454b-886e-aefa35b7879b", - "name": "Get a single tracking request", + "id": "222efb3e-da87-4479-a3d4-a165ce7a276f", + "name": "Get single webhook", "request": { - "name": "Get a single tracking request", + "name": "Get single webhook", "description": { - "content": "Get the details and status of an existing tracking request. ", + "content": "Get the details of a single webhook.", "type": "text/plain" }, "url": { "path": [ - "tracking_requests", + "webhooks", ":id" ], "host": [ "{{baseUrl}}" ], - "query": [ - { - "disabled": true, - "description": { - "content": "Comma delimited list of relations to include. 'tracked_object' is included by default.", - "type": "text/plain" - }, - "key": "include", - "value": "" - } - ], + "query": [], "variable": [ { "type": "any", @@ -11623,7 +18866,7 @@ "key": "id", "disabled": false, "description": { - "content": "(Required) Tracking Request ID", + "content": "(Required) ", "type": "text/plain" } } @@ -11641,33 +18884,23 @@ }, "response": [ { - "id": "5e9598bd-a8c9-407c-8108-0a2e7beba161", + "id": "995997c6-6984-4d81-8e01-13009537fb7b", "name": "OK", "originalRequest": { "url": { "path": [ - "tracking_requests", + "webhooks", ":id" ], "host": [ "{{baseUrl}}" ], - "query": [ - { - "disabled": true, - "description": { - "content": "Comma delimited list of relations to include. 'tracked_object' is included by default.", - "type": "text/plain" - }, - "key": "include", - "value": "" - } - ], + "query": [], "variable": [ { "disabled": false, "description": { - "content": "(Required) Tracking Request ID", + "content": "(Required) ", "type": "text/plain" }, "type": "any", @@ -11701,38 +18934,83 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"request_number\": \"\",\n \"status\": \"failed\",\n \"request_type\": \"container\",\n \"scac\": \"\",\n \"created_at\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"tags\": [\n \"\",\n \"\"\n ],\n \"failed_reason\": \"shipping_line_unreachable\",\n \"updated_at\": \"\",\n \"is_retrying\": \"\",\n \"retry_count\": \"\"\n },\n \"relationships\": {\n \"tracked_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"customer\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n }\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n ]\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.transport.feeder_loaded\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "f292909d-43fd-46a9-80b9-cd6e2f5c74ec", - "name": "Not Found", + "id": "893dc6a8-f217-42bd-9427-4fbb13c9fe73", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", "originalRequest": { "url": { "path": [ - "tracking_requests", + "webhooks", ":id" ], "host": [ "{{baseUrl}}" ], - "query": [ + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Comma delimited list of relations to include. 'tracked_object' is included by default.", + "content": "(Required) ", "type": "text/plain" }, - "key": "include", - "value": "" + "type": "any", + "value": "", + "key": "id" } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "948f3e44-987f-4075-b21f-29a1677b7370", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "webhooks", + ":id" ], + "host": [ + "{{baseUrl}}" + ], + "query": [], "variable": [ { "disabled": false, "description": { - "content": "(Required) Tracking Request ID", + "content": "(Required) ", "type": "text/plain" }, "type": "any", @@ -11766,7 +19044,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -11777,17 +19055,17 @@ } }, { - "id": "cb45b5e6-24b9-46fa-b737-5d3b4b158ae6", - "name": "Edit a tracking request", + "id": "b28caa2e-5576-4891-b2b7-e64a0967681e", + "name": "Edit a webhook", "request": { - "name": "Edit a tracking request", + "name": "Edit a webhook", "description": { - "content": "Update a tracking request", + "content": "Update a single webhook.", "type": "text/plain" }, "url": { "path": [ - "tracking_requests", + "webhooks", ":id" ], "host": [ @@ -11801,7 +19079,7 @@ "key": "id", "disabled": false, "description": { - "content": "(Required) Tracking Request ID", + "content": "(Required) ", "type": "text/plain" } } @@ -11820,7 +19098,7 @@ "method": "PATCH", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_number\": \"\"\n },\n \"type\": true\n }\n}", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"url\": \"\",\n \"events\": [\n \"container.transport.estimated.vessel_arrived\"\n ],\n \"active\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n },\n \"type\": \"webhook\"\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -11832,12 +19110,12 @@ }, "response": [ { - "id": "0a34eabb-84cd-4c21-a4f0-c53cebab4f44", + "id": "57afea68-6452-4f90-a26d-a16932f5aca5", "name": "OK", "originalRequest": { "url": { "path": [ - "tracking_requests", + "webhooks", ":id" ], "host": [ @@ -11848,7 +19126,7 @@ { "disabled": false, "description": { - "content": "(Required) Tracking Request ID", + "content": "(Required) ", "type": "text/plain" }, "type": "any", @@ -11878,7 +19156,7 @@ "method": "PATCH", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"attributes\": {\n \"ref_number\": \"\"\n },\n \"type\": true\n }\n}", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"url\": \"\",\n \"events\": [\n \"container.transport.estimated.vessel_arrived\"\n ],\n \"active\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n },\n \"type\": \"webhook\"\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -11895,65 +19173,18 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"request_number\": \"\",\n \"status\": \"failed\",\n \"request_type\": \"booking_number\",\n \"scac\": \"\",\n \"created_at\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"tags\": [\n \"\",\n \"\"\n ],\n \"failed_reason\": \"duplicate\",\n \"updated_at\": \"\",\n \"is_retrying\": \"\",\n \"retry_count\": \"\"\n },\n \"relationships\": {\n \"tracked_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n },\n \"customer\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n }\n }\n }\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.transport.feeder_loaded\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n }\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "e8508541-96c5-4101-bb6e-f61e7247211b", - "name": "List tracking request custom fields", - "request": { - "name": "List tracking request custom fields", - "description": {}, - "url": { - "path": [ - "tracking_requests", - ":tracking_request_id", - "custom_fields" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "tracking_request_id", - "disabled": false, - "description": { - "content": "(Required) Tracking request ID", - "type": "text/plain" - } - } - ] }, - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "GET", - "body": {}, - "auth": null - }, - "response": [ { - "id": "06c0db41-1351-4b15-9289-a07bce82b883", - "name": "OK", + "id": "8029839f-c515-4f25-96bd-54a652ba30c4", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", "originalRequest": { "url": { "path": [ - "tracking_requests", - ":tracking_request_id", - "custom_fields" + "webhooks", + ":id" ], "host": [ "{{baseUrl}}" @@ -11963,16 +19194,20 @@ { "disabled": false, "description": { - "content": "(Required) Tracking request ID", + "content": "(Required) ", "type": "text/plain" }, "type": "any", "value": "", - "key": "tracking_request_id" + "key": "id" } ] }, "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" @@ -11986,89 +19221,38 @@ "value": "" } ], - "method": "GET", - "body": {} + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"url\": \"\",\n \"events\": [\n \"container.transport.estimated.vessel_arrived\"\n ],\n \"active\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n },\n \"type\": \"webhook\"\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, - "status": "OK", - "code": 200, + "status": "Unauthorized", + "code": 401, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"tracking_request\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"tracking_request\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n }\n ],\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "b877df7b-8e75-4a29-bdbc-7b6a0ab9901f", - "name": "Create a tracking request custom field", - "request": { - "name": "Create a tracking request custom field", - "description": {}, - "url": { - "path": [ - "tracking_requests", - ":tracking_request_id", - "custom_fields" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "tracking_request_id", - "disabled": false, - "description": { - "content": "(Required) Tracking request ID", - "type": "text/plain" - } - } - ] - }, - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "POST", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } }, - "auth": null - }, - "response": [ { - "id": "9e5af1cc-1bfa-4a22-838c-fb0787ea2abb", - "name": "Created", + "id": "285d8e13-e884-47d9-bb90-40cfee5f72ab", + "name": "Not Found", "originalRequest": { "url": { "path": [ - "tracking_requests", - ":tracking_request_id", - "custom_fields" + "webhooks", + ":id" ], "host": [ "{{baseUrl}}" @@ -12078,12 +19262,12 @@ { "disabled": false, "description": { - "content": "(Required) Tracking request ID", + "content": "(Required) ", "type": "text/plain" }, "type": "any", "value": "", - "key": "tracking_request_id" + "key": "id" } ] }, @@ -12105,10 +19289,10 @@ "value": "" } ], - "method": "POST", + "method": "PATCH", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\"\n }\n }\n}", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"url\": \"\",\n \"events\": [\n \"container.transport.estimated.vessel_arrived\"\n ],\n \"active\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n },\n \"type\": \"webhook\"\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -12117,98 +19301,26 @@ } } }, - "status": "Created", - "code": 201, + "status": "Not Found", + "code": 404, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "21750ae9-ba2c-4845-a97a-ce705306491f", - "name": "Update a tracking request custom field", - "request": { - "name": "Update a tracking request custom field", - "description": {}, - "url": { - "path": [ - "tracking_requests", - ":tracking_request_id", - "custom_fields", - ":api_slug" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "tracking_request_id", - "disabled": false, - "description": { - "content": "(Required) Tracking request ID", - "type": "text/plain" - } - }, - { - "type": "any", - "value": "", - "key": "api_slug", - "disabled": false, - "description": { - "content": "(Required) Custom field api_slug", - "type": "text/plain" - } - } - ] - }, - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "PATCH", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } }, - "auth": null - }, - "response": [ { - "id": "4b086b62-8cae-4f8b-8165-0de22bf44015", - "name": "OK", + "id": "494f013c-c7c1-4497-9d1f-74bb17e3f586", + "name": "Unprocessable Entity", "originalRequest": { "url": { "path": [ - "tracking_requests", - ":tracking_request_id", - "custom_fields", - ":api_slug" + "webhooks", + ":id" ], "host": [ "{{baseUrl}}" @@ -12218,22 +19330,12 @@ { "disabled": false, "description": { - "content": "(Required) Tracking request ID", - "type": "text/plain" - }, - "type": "any", - "value": "", - "key": "tracking_request_id" - }, - { - "disabled": false, - "description": { - "content": "(Required) Custom field api_slug", + "content": "(Required) ", "type": "text/plain" }, "type": "any", "value": "", - "key": "api_slug" + "key": "id" } ] }, @@ -12258,7 +19360,7 @@ "method": "PATCH", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"custom_field\",\n \"attributes\": {\n \"value\": \"\"\n }\n }\n}", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"url\": \"\",\n \"events\": [\n \"container.transport.estimated.vessel_arrived\"\n ],\n \"active\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n },\n \"type\": \"webhook\"\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -12267,15 +19369,15 @@ } } }, - "status": "OK", - "code": 200, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"custom_field\",\n \"attributes\": {\n \"api_slug\": \"\",\n \"value\": \"\",\n \"display_value\": \"\"\n },\n \"relationships\": {\n \"entity\": {\n \"data\": {\n \"type\": \"container\",\n \"id\": \"\"\n }\n },\n \"definition\": {\n \"data\": {\n \"type\": \"custom_field_definition\",\n \"id\": \"\"\n }\n }\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -12286,17 +19388,18 @@ } }, { - "id": "1206bd36-9674-4b79-b277-05e8ba99c25a", - "name": "Delete a tracking request custom field", + "id": "5adbd968-7a19-4077-9bc0-1dc82b4d443e", + "name": "Delete a webhook", "request": { - "name": "Delete a tracking request custom field", - "description": {}, + "name": "Delete a webhook", + "description": { + "content": "Delete a webhook.", + "type": "text/plain" + }, "url": { "path": [ - "tracking_requests", - ":tracking_request_id", - "custom_fields", - ":api_slug" + "webhooks", + ":id" ], "host": [ "{{baseUrl}}" @@ -12306,40 +19409,34 @@ { "type": "any", "value": "", - "key": "tracking_request_id", - "disabled": false, - "description": { - "content": "(Required) Tracking request ID", - "type": "text/plain" - } - }, - { - "type": "any", - "value": "", - "key": "api_slug", + "key": "id", "disabled": false, "description": { - "content": "(Required) Custom field api_slug", + "content": "(Required) ", "type": "text/plain" } } ] }, + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], "method": "DELETE", "body": {}, "auth": null }, "response": [ { - "id": "b3733a97-0f98-497c-bd9c-efe102c52a89", + "id": "398ef554-d705-441d-a849-30cf1c866e5b", "name": "No Content", "originalRequest": { "url": { "path": [ - "tracking_requests", - ":tracking_request_id", - "custom_fields", - ":api_slug" + "webhooks", + ":id" ], "host": [ "{{baseUrl}}" @@ -12349,26 +19446,65 @@ { "disabled": false, "description": { - "content": "(Required) Tracking request ID", + "content": "(Required) ", "type": "text/plain" }, "type": "any", "value": "", - "key": "tracking_request_id" + "key": "id" + } + ] + }, + "header": [ + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "No Content", + "code": 204, + "header": [], + "cookie": [], + "_postman_previewlanguage": "text" + }, + { + "id": "472f7571-e581-4332-a75c-24731811fe14", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "webhooks", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ { "disabled": false, "description": { - "content": "(Required) Custom field api_slug", + "content": "(Required) ", "type": "text/plain" }, "type": "any", "value": "", - "key": "api_slug" + "key": "id" } ] }, "header": [ + { + "key": "Accept", + "value": "application/json" + }, { "description": { "content": "Added as a part of security scheme: apikey", @@ -12381,54 +19517,116 @@ "method": "DELETE", "body": {} }, - "status": "No Content", - "code": 204, - "header": [], + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], - "_postman_previewlanguage": "text" + "_postman_previewlanguage": "json" + }, + { + "id": "2290ab5c-f90a-4745-b9e4-d95b614037a8", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "webhooks", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "DELETE", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" } ], "event": [], "protocolProfileBehavior": { "disableBodyPruning": true } - } - ] - }, - { - "name": "Webhooks", - "description": "", - "item": [ + }, { - "id": "b74d57f1-5985-47dc-a9b7-6d4c1ff59824", - "name": "Get single webhook", + "id": "b59163cf-54dc-408b-acb0-47bf42b6ec95", + "name": "List webhooks", "request": { - "name": "Get single webhook", + "name": "List webhooks", "description": { - "content": "Get the details of a single webhook", + "content": "Get a list of all the webhooks", "type": "text/plain" }, "url": { "path": [ - "webhooks", - ":id" + "webhooks" ], "host": [ "{{baseUrl}}" ], - "query": [], - "variable": [ + "query": [ { - "type": "any", - "value": "", - "key": "id", - "disabled": false, + "disabled": true, "description": { - "content": "(Required) ", + "content": "", "type": "text/plain" - } + }, + "key": "page[number]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "", + "type": "text/plain" + }, + "key": "page[size]", + "value": "" } - ] + ], + "variable": [] }, "header": [ { @@ -12442,30 +19640,37 @@ }, "response": [ { - "id": "b8f16371-872c-4a7e-b494-41cc6a91c866", + "id": "a5679d7d-2931-4b52-9c21-0e25eb71e16b", "name": "OK", "originalRequest": { "url": { "path": [ - "webhooks", - ":id" + "webhooks" ], "host": [ "{{baseUrl}}" ], - "query": [], - "variable": [ + "query": [ { - "disabled": false, + "disabled": true, "description": { - "content": "(Required) ", + "content": "", "type": "text/plain" }, - "type": "any", - "value": "", - "key": "id" + "key": "page[number]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "", + "type": "text/plain" + }, + "key": "page[size]", + "value": "" } - ] + ], + "variable": [] }, "header": [ { @@ -12492,7 +19697,7 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.pod_terminal_changed\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n }\n}", + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.transport.feeder_departed\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n },\n {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.transport.transshipment_loaded\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n }\n ],\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n },\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -12503,35 +19708,23 @@ } }, { - "id": "78971f35-9b6f-4b92-b024-1a695a95b14b", - "name": "Edit a webhook", + "id": "ff59ede4-447b-4c03-a413-a40412b9b48d", + "name": "Create a webhook", "request": { - "name": "Edit a webhook", + "name": "Create a webhook", "description": { - "content": "Update a single webhook", - "type": "text/plain" - }, - "url": { - "path": [ - "webhooks", - ":id" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "id", - "disabled": false, - "description": { - "content": "(Required) ", - "type": "text/plain" - } - } - ] + "content": "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. ", + "type": "text/plain" + }, + "url": { + "path": [ + "webhooks" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] }, "header": [ { @@ -12543,10 +19736,10 @@ "value": "application/json" } ], - "method": "PATCH", + "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"attributes\": {\n \"url\": \"\",\n \"events\": [\n \"container.transport.transshipment_arrived\"\n ],\n \"active\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n },\n \"type\": \"webhook\"\n }\n}", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"url\": \"\",\n \"events\": [\n \"container.transport.available\"\n ],\n \"active\": true,\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n },\n \"type\": \"webhook\"\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -12558,30 +19751,74 @@ }, "response": [ { - "id": "170c787f-24a9-438e-9404-4b9b34624499", - "name": "OK", + "id": "61662a9e-c44c-40b7-b824-fd33f64fc694", + "name": "Create a test webhook endpoint", "originalRequest": { "url": { "path": [ - "webhooks", - ":id" + "webhooks" ], "host": [ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "disabled": false, - "description": { - "content": "(Required) ", - "type": "text/plain" - }, - "type": "any", - "value": "", - "key": "id" + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"url\": \"\",\n \"events\": [\n \"container.transport.available\"\n ],\n \"active\": true,\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n },\n \"type\": \"webhook\"\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" } - ] + } + } + }, + "status": "Created", + "code": 201, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.transport.feeder_loaded\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "71a0ceb7-9a7b-46bb-8b27-1a1b54eafe37", + "name": "Unprocessable Entity", + "originalRequest": { + "url": { + "path": [ + "webhooks" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] }, "header": [ { @@ -12601,10 +19838,10 @@ "value": "" } ], - "method": "PATCH", + "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"attributes\": {\n \"url\": \"\",\n \"events\": [\n \"container.transport.transshipment_arrived\"\n ],\n \"active\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n },\n \"type\": \"webhook\"\n }\n}", + "raw": "{\n \"data\": {\n \"attributes\": {\n \"url\": \"\",\n \"events\": [\n \"container.transport.available\"\n ],\n \"active\": true,\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n },\n \"type\": \"webhook\"\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -12613,15 +19850,15 @@ } } }, - "status": "OK", - "code": 200, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.pod_terminal_changed\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n }\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -12632,68 +19869,56 @@ } }, { - "id": "d0259be2-0b8e-4781-858c-cb593f79495a", - "name": "Delete a webhook", + "id": "665c754f-7bda-4392-bf0c-f1c3f12f925d", + "name": "List webhook events", "request": { - "name": "Delete a webhook", + "name": "List webhook events", "description": { - "content": "Delete a webhook", + "content": "Returns webhook event categories and event names available to the authenticated account. Events may be filtered by account features.", "type": "text/plain" }, "url": { "path": [ "webhooks", - ":id" + "events" ], "host": [ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "id", - "disabled": false, - "description": { - "content": "(Required) ", - "type": "text/plain" - } - } - ] + "variable": [] }, - "method": "DELETE", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "GET", "body": {}, "auth": null }, "response": [ { - "id": "1a9d06e0-f917-400c-ba28-a7c5e920119c", + "id": "1adb8c1b-a4f2-4bc4-82c6-ce09edd103d6", "name": "OK", "originalRequest": { "url": { "path": [ "webhooks", - ":id" + "events" ], "host": [ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "disabled": false, - "description": { - "content": "(Required) ", - "type": "text/plain" - }, - "type": "any", - "value": "", - "key": "id" - } - ] + "variable": [] }, "header": [ + { + "key": "Accept", + "value": "application/json" + }, { "description": { "content": "Added as a part of security scheme: apikey", @@ -12703,14 +19928,20 @@ "value": "" } ], - "method": "DELETE", + "method": "GET", "body": {} }, "status": "OK", "code": 200, - "header": [], + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"webhook_event_category\",\n \"attributes\": {\n \"name\": \"\",\n \"events\": [\n {\n \"name\": \"\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"description\": \"\"\n }\n ]\n }\n },\n {\n \"id\": \"\",\n \"type\": \"webhook_event_category\",\n \"attributes\": {\n \"name\": \"\",\n \"events\": [\n {\n \"name\": \"\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"description\": \"\"\n }\n ]\n }\n }\n ]\n}", "cookie": [], - "_postman_previewlanguage": "text" + "_postman_previewlanguage": "json" } ], "event": [], @@ -12719,41 +19950,23 @@ } }, { - "id": "61bc1439-e6c2-49db-b503-4214fbf45c6f", - "name": "List webhooks", + "id": "52fe7ff2-8e3c-48a4-b5cc-c4a02c08eb3b", + "name": "List webhook IPs", "request": { - "name": "List webhooks", + "name": "List webhook IPs", "description": { - "content": "Get a list of all the webhooks", + "content": "Return the list of IPs used for sending webhook notifications. This can be useful for whitelisting the IPs on the firewall.", "type": "text/plain" }, "url": { "path": [ - "webhooks" + "webhooks", + "ips" ], "host": [ "{{baseUrl}}" ], - "query": [ - { - "disabled": true, - "description": { - "content": "", - "type": "text/plain" - }, - "key": "page[number]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "", - "type": "text/plain" - }, - "key": "page[size]", - "value": "" - } - ], + "query": [], "variable": [] }, "header": [ @@ -12768,36 +19981,18 @@ }, "response": [ { - "id": "33562b5f-c8f7-4e77-8c9b-23d32dda706a", + "id": "d728dde1-2627-49f2-ab76-c46bbaaf896e", "name": "OK", "originalRequest": { "url": { "path": [ - "webhooks" + "webhooks", + "ips" ], "host": [ "{{baseUrl}}" ], - "query": [ - { - "disabled": true, - "description": { - "content": "", - "type": "text/plain" - }, - "key": "page[number]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "", - "type": "text/plain" - }, - "key": "page[size]", - "value": "" - } - ], + "query": [], "variable": [] }, "header": [ @@ -12825,7 +20020,7 @@ "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.transport.empty_in\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n },\n {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.transport.full_out\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n }\n ],\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n },\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n }\n}", + "body": "{\n \"webhook_notification_ips\": [\n \"\",\n \"\"\n ],\n \"last_updated\": \"\"\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -12836,17 +20031,18 @@ } }, { - "id": "b5758680-0622-4a1b-b06b-7df0550d522c", - "name": "Create a webhook", + "id": "7a2c4d8d-327b-4023-a1be-ccdc39c2eccc", + "name": "Trigger a webhook test delivery", "request": { - "name": "Create a webhook", + "name": "Trigger a webhook test delivery", "description": { - "content": "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. ", + "content": "Send a one-time test webhook notification payload to a target HTTPS URL without creating a webhook endpoint. For document webhook events (`document_representation.created` and `document_representation.failed`), you can pass `sample.document_type` to test a specific document type payload.", "type": "text/plain" }, "url": { "path": [ - "webhooks" + "webhooks", + "trigger" ], "host": [ "{{baseUrl}}" @@ -12859,32 +20055,90 @@ "key": "Content-Type", "value": "application/json" }, - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "POST", - "body": { - "mode": "raw", - "raw": "{\n \"data\": {\n \"attributes\": {\n \"url\": \"\",\n \"active\": \"\",\n \"events\": [\n \"shipment.estimated.arrival\"\n ],\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n },\n \"type\": \"webhook\"\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" + { + "key": "Accept", + "value": "application/json" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"url\": \"\",\n \"event\": \"\",\n \"secret\": \"\",\n \"sample\": {\n \"document_type\": \"\"\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "auth": null + }, + "response": [ + { + "id": "29b141bc-e6c1-482a-9f58-099c811891fd", + "name": "Webhook test delivery attempt result", + "originalRequest": { + "url": { + "path": [ + "webhooks", + "trigger" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"url\": \"\",\n \"event\": \"\",\n \"secret\": \"\",\n \"sample\": {\n \"document_type\": \"\"\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" } - } + ], + "body": "{\n \"url\": \"\",\n \"succeeded\": \"\",\n \"error\": \"\",\n \"status_code\": \"\",\n \"request_headers\": {\n \"key_0\": \"string\"\n },\n \"request_body\": \"\",\n \"response_headers\": {\n \"key_0\": 4195,\n \"key_1\": true,\n \"key_2\": 5163.496421577699\n },\n \"response_body\": \"\"\n}", + "cookie": [], + "_postman_previewlanguage": "json" }, - "auth": null - }, - "response": [ { - "id": "41c7cf81-a95d-445c-93f7-8c8ede82d9f5", - "name": "Create a test webhook endpoint", + "id": "8fa07c8f-b547-4fe9-a2c1-7fe07bc0a428", + "name": "Validation error", "originalRequest": { "url": { "path": [ - "webhooks" + "webhooks", + "trigger" ], "host": [ "{{baseUrl}}" @@ -12913,7 +20167,7 @@ "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"attributes\": {\n \"url\": \"\",\n \"active\": \"\",\n \"events\": [\n \"shipment.estimated.arrival\"\n ],\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n },\n \"type\": \"webhook\"\n }\n}", + "raw": "{\n \"url\": \"\",\n \"event\": \"\",\n \"secret\": \"\",\n \"sample\": {\n \"document_type\": \"\"\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -12922,15 +20176,15 @@ } } }, - "status": "Created", - "code": 201, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.pod_terminal_changed\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n }\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\"\n },\n {\n \"detail\": \"\"\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -12939,26 +20193,50 @@ "protocolProfileBehavior": { "disableBodyPruning": true } - }, + } + ] + }, + { + "name": "Webhook Notifications", + "description": "", + "item": [ { - "id": "61e79a4d-f1a3-42ea-9db6-79c829f79a03", - "name": "List webhook events", + "id": "80795c2f-c5bc-4ccb-8ad5-6baac45d0ca7", + "name": "Get a single webhook notification", "request": { - "name": "List webhook events", - "description": { - "content": "Returns webhook event categories and event names available to the authenticated account. Events may be filtered by account features.", - "type": "text/plain" - }, + "name": "Get a single webhook notification", + "description": {}, "url": { "path": [ - "webhooks", - "events" + "webhook_notifications", + ":id" ], "host": [ "{{baseUrl}}" ], - "query": [], - "variable": [] + "query": [ + { + "disabled": true, + "description": { + "content": "Comma delimited list of relations to include.", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], + "variable": [ + { + "type": "any", + "value": "", + "key": "id", + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + } + } + ] }, "header": [ { @@ -12972,19 +20250,40 @@ }, "response": [ { - "id": "b7667968-e2e3-47b6-b379-f08e14e39aa3", - "name": "OK", + "id": "839a9f43-6db3-4315-98ba-a30acc9f8c08", + "name": "200", "originalRequest": { "url": { "path": [ - "webhooks", - "events" + "webhook_notifications", + ":id" ], "host": [ "{{baseUrl}}" ], - "query": [], - "variable": [] + "query": [ + { + "disabled": true, + "description": { + "content": "Comma delimited list of relations to include.", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] }, "header": [ { @@ -13011,61 +20310,110 @@ "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"webhook_event_category\",\n \"attributes\": {\n \"name\": \"\",\n \"events\": [\n {\n \"name\": \"\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"description\": \"\"\n }\n ]\n }\n },\n {\n \"id\": \"\",\n \"type\": \"webhook_event_category\",\n \"attributes\": {\n \"name\": \"\",\n \"events\": [\n {\n \"name\": \"\",\n \"description\": \"\"\n },\n {\n \"name\": \"\",\n \"description\": \"\"\n }\n ]\n }\n }\n ]\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"webhook_notification\",\n \"attributes\": {\n \"event\": \"container.transport.feeder_departed\",\n \"delivery_status\": \"pending\",\n \"created_at\": \"\"\n },\n \"relationships\": {\n \"webhook\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"webhook\"\n }\n },\n \"reference_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document_observation\"\n }\n }\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.pickup_lfd_rail.changed\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n },\n {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.transport.estimated.arrived_at_inland_destination\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "34dcf276-5fe3-4187-87f1-ba79bdc19312", - "name": "List webhook IPs", - "request": { - "name": "List webhook IPs", - "description": { - "content": "Return the list of IPs used for sending webhook notifications. This can be useful for whitelisting the IPs on the firewall.", - "type": "text/plain" }, - "url": { - "path": [ - "webhooks", - "ips" - ], - "host": [ - "{{baseUrl}}" + { + "id": "890dece4-ef87-4686-b1e3-3a4a5599c5d7", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "webhook_notifications", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "Comma delimited list of relations to include.", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } ], - "query": [], - "variable": [] + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" }, - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "GET", - "body": {}, - "auth": null - }, - "response": [ { - "id": "2dbfab62-81b2-4018-bcbd-9778e40cec12", - "name": "OK", + "id": "cead2e0f-c84b-4a18-9426-ddd0c6e2e732", + "name": "Not Found", "originalRequest": { "url": { "path": [ - "webhooks", - "ips" + "webhook_notifications", + ":id" ], "host": [ "{{baseUrl}}" ], - "query": [], - "variable": [] + "query": [ + { + "disabled": true, + "description": { + "content": "Comma delimited list of relations to include.", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] }, "header": [ { @@ -13084,15 +20432,15 @@ "method": "GET", "body": {} }, - "status": "OK", - "code": 200, + "status": "Not Found", + "code": 404, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"webhook_notification_ips\": [\n \"\",\n \"\"\n ],\n \"last_updated\": \"\"\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -13103,126 +20451,106 @@ } }, { - "id": "8943d0d7-b45a-4104-b5f0-be20441ae8e6", - "name": "Trigger a webhook test delivery", + "id": "0eef034c-8ee3-4eaf-bed5-d4c3bc232691", + "name": "List webhook notifications", "request": { - "name": "Trigger a webhook test delivery", + "name": "List webhook notifications", "description": { - "content": "Send a one-time test webhook notification payload to a target HTTPS URL without creating a webhook endpoint. For document webhook events (`document_representation.created` and `document_representation.failed`), you can pass `sample.document_type` to test a specific document type payload.", + "content": "Return the list of webhook notifications. This can be useful for reconciling your data if your endpoint has been down. ", "type": "text/plain" }, "url": { "path": [ - "webhooks", - "trigger" + "webhook_notifications" ], "host": [ "{{baseUrl}}" ], - "query": [], + "query": [ + { + "disabled": true, + "description": { + "content": "", + "type": "text/plain" + }, + "key": "page[number]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "", + "type": "text/plain" + }, + "key": "page[size]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Comma delimited list of relations to include.", + "type": "text/plain" + }, + "key": "include", + "value": "" + } + ], "variable": [] }, "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" } ], - "method": "POST", - "body": { - "mode": "raw", - "raw": "{\n \"url\": \"\",\n \"event\": \"\",\n \"secret\": \"\",\n \"sample\": {\n \"document_type\": \"\"\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, + "method": "GET", + "body": {}, "auth": null }, "response": [ { - "id": "6a11681a-40eb-40a9-a974-5bd822168cc0", - "name": "Webhook test delivery attempt result", + "id": "5e714139-cfde-4e7d-9304-73508270d2fc", + "name": "OK", "originalRequest": { "url": { "path": [ - "webhooks", - "trigger" + "webhook_notifications" ], "host": [ "{{baseUrl}}" ], - "query": [], - "variable": [] - }, - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - }, - { - "description": { - "content": "Added as a part of security scheme: apikey", - "type": "text/plain" + "query": [ + { + "disabled": true, + "description": { + "content": "", + "type": "text/plain" + }, + "key": "page[number]", + "value": "" }, - "key": "Authorization", - "value": "" - } - ], - "method": "POST", - "body": { - "mode": "raw", - "raw": "{\n \"url\": \"\",\n \"event\": \"\",\n \"secret\": \"\",\n \"sample\": {\n \"document_type\": \"\"\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" + { + "disabled": true, + "description": { + "content": "", + "type": "text/plain" + }, + "key": "page[size]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Comma delimited list of relations to include.", + "type": "text/plain" + }, + "key": "include", + "value": "" } - } - } - }, - "status": "OK", - "code": 200, - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": "{\n \"url\": \"\",\n \"succeeded\": \"\",\n \"error\": \"\",\n \"status_code\": \"\",\n \"request_headers\": {\n \"key_0\": 359,\n \"key_1\": \"string\"\n },\n \"request_body\": \"\",\n \"response_headers\": {\n \"key_0\": 6884.4941215248555,\n \"key_1\": 9861\n },\n \"response_body\": \"\"\n}", - "cookie": [], - "_postman_previewlanguage": "json" - }, - { - "id": "873f49b3-604b-4b46-8b04-66b11d2c8d89", - "name": "Validation error", - "originalRequest": { - "url": { - "path": [ - "webhooks", - "trigger" - ], - "host": [ - "{{baseUrl}}" ], - "query": [], "variable": [] }, "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, { "key": "Accept", "value": "application/json" @@ -13236,27 +20564,18 @@ "value": "" } ], - "method": "POST", - "body": { - "mode": "raw", - "raw": "{\n \"url\": \"\",\n \"event\": \"\",\n \"secret\": \"\",\n \"sample\": {\n \"document_type\": \"\"\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "method": "GET", + "body": {} }, - "status": "Unprocessable Entity (WebDAV) (RFC 4918)", - "code": 422, + "status": "OK", + "code": 200, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"detail\": \"\"\n },\n {\n \"detail\": \"\"\n }\n ]\n}", + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"webhook_notification\",\n \"attributes\": {\n \"event\": \"container.transport.transshipment_discharged\",\n \"delivery_status\": \"pending\",\n \"created_at\": \"\"\n },\n \"relationships\": {\n \"webhook\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"webhook\"\n }\n },\n \"reference_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"estimated_event\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"webhook_notification\",\n \"attributes\": {\n \"event\": \"tracking_request.tracking_stopped\",\n \"delivery_status\": \"pending\",\n \"created_at\": \"\"\n },\n \"relationships\": {\n \"webhook\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"webhook\"\n }\n },\n \"reference_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"container_pod_terminal_changed_event\"\n }\n }\n }\n }\n ],\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.pickup_lfd_line.changed\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n },\n {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.pickup_lfd.changed\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -13265,53 +20584,36 @@ "protocolProfileBehavior": { "disableBodyPruning": true } - } - ] - }, - { - "name": "Webhook Notifications", - "description": "", - "item": [ + }, { - "id": "134e884c-0ec6-4dab-823b-553f02cd53af", - "name": "Get a single webhook notification", + "id": "dd24c9b2-b7c3-455b-b979-f980d0cdfafe", + "name": "Get webhook notification payload examples", "request": { - "name": "Get a single webhook notification", + "name": "Get webhook notification payload examples", "description": { - "content": "\n", + "content": "Returns an example payload as it would be sent to a webhook endpoint for the provided `event`. The event must be one your account can subscribe to; otherwise the API returns 400.", "type": "text/plain" }, "url": { "path": [ "webhook_notifications", - ":id" + "examples" ], "host": [ "{{baseUrl}}" ], "query": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Comma delimited list of relations to include.", + "content": "(Required) The webhook notification event name you wish to see an example of (This can only be one of container.transport.vessel_arrived,container.transport.estimated.vessel_arrived,container.transport.vessel_discharged,container.transport.vessel_loaded,container.transport.vessel_departed,container.transport.estimated.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,container.pickup_lfd_line.changed,container.pickup_lfd_terminal.changed,container.pickup_lfd_rail.changed,container.pickup_appointment.changed,container.transport.available,container.transport.not_available,container.transport.delivered,document_representation.created,document_representation.failed,container.detention_lfd_line.changed,container.delivery_appointment.changed,shipment.routing.filled,link.created)", "type": "text/plain" }, - "key": "include", - "value": "" + "key": "event", + "value": "tracking_request.succeeded" } ], - "variable": [ - { - "type": "any", - "value": "", - "key": "id", - "disabled": false, - "description": { - "content": "(Required) ", - "type": "text/plain" - } - } - ] + "variable": [] }, "header": [ { @@ -13325,40 +20627,83 @@ }, "response": [ { - "id": "595da668-a12b-4f07-8760-d1588277b570", - "name": "200", + "id": "7252ecea-e8fc-4277-af29-7d7d0f32f742", + "name": "OK", "originalRequest": { "url": { "path": [ "webhook_notifications", - ":id" + "examples" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": false, + "description": { + "content": "(Required) The webhook notification event name you wish to see an example of (This can only be one of container.transport.vessel_arrived,container.transport.estimated.vessel_arrived,container.transport.vessel_discharged,container.transport.vessel_loaded,container.transport.vessel_departed,container.transport.estimated.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,container.pickup_lfd_line.changed,container.pickup_lfd_terminal.changed,container.pickup_lfd_rail.changed,container.pickup_appointment.changed,container.transport.available,container.transport.not_available,container.transport.delivered,document_representation.created,document_representation.failed,container.detention_lfd_line.changed,container.delivery_appointment.changed,shipment.routing.filled,link.created)", + "type": "text/plain" + }, + "key": "event", + "value": "tracking_request.succeeded" + } + ], + "variable": [] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"webhook_notification\",\n \"attributes\": {\n \"event\": \"container.transport.feeder_departed\",\n \"delivery_status\": \"pending\",\n \"created_at\": \"\"\n },\n \"relationships\": {\n \"webhook\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"webhook\"\n }\n },\n \"reference_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document_observation\"\n }\n }\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.pickup_lfd_rail.changed\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n },\n {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.transport.estimated.arrived_at_inland_destination\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "cfde5a5b-6e2d-471d-b88b-24de288ec74b", + "name": "Bad Request", + "originalRequest": { + "url": { + "path": [ + "webhook_notifications", + "examples" ], "host": [ "{{baseUrl}}" ], "query": [ - { - "disabled": true, - "description": { - "content": "Comma delimited list of relations to include.", - "type": "text/plain" - }, - "key": "include", - "value": "" - } - ], - "variable": [ { "disabled": false, "description": { - "content": "(Required) ", + "content": "(Required) The webhook notification event name you wish to see an example of (This can only be one of container.transport.vessel_arrived,container.transport.estimated.vessel_arrived,container.transport.vessel_discharged,container.transport.vessel_loaded,container.transport.vessel_departed,container.transport.estimated.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,container.pickup_lfd_line.changed,container.pickup_lfd_terminal.changed,container.pickup_lfd_rail.changed,container.pickup_appointment.changed,container.transport.available,container.transport.not_available,container.transport.delivered,document_representation.created,document_representation.failed,container.detention_lfd_line.changed,container.delivery_appointment.changed,shipment.routing.filled,link.created)", "type": "text/plain" }, - "type": "any", - "value": "", - "key": "id" + "key": "event", + "value": "tracking_request.succeeded" } - ] + ], + "variable": [] }, "header": [ { @@ -13377,15 +20722,15 @@ "method": "GET", "body": {} }, - "status": "OK", - "code": 200, + "status": "Bad Request", + "code": 400, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"webhook_notification\",\n \"attributes\": {\n \"event\": \"container.transport.transshipment_departed\",\n \"delivery_status\": \"pending\",\n \"created_at\": \"\"\n },\n \"relationships\": {\n \"webhook\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"webhook\"\n }\n },\n \"reference_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"estimated_event\"\n }\n }\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.transport.transshipment_arrived\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n },\n {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.transport.rail_arrived\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -13394,53 +20739,43 @@ "protocolProfileBehavior": { "disableBodyPruning": true } - }, + } + ] + }, + { + "name": "Ports", + "description": "", + "item": [ { - "id": "6e7fa3f8-9453-4011-9e8e-4c35dd960746", - "name": "List webhook notifications", + "id": "8f1d4606-09a9-4867-a54b-1ebf70031654", + "name": "Get a port using the locode or the id", "request": { - "name": "List webhook notifications", + "name": "Get a port using the locode or the id", "description": { - "content": "Return the list of webhook notifications. This can be useful for reconciling your data if your endpoint has been down. ", + "content": "Return the details of a single port.", "type": "text/plain" }, "url": { "path": [ - "webhook_notifications" + "ports", + ":id" ], "host": [ "{{baseUrl}}" ], - "query": [ - { - "disabled": true, - "description": { - "content": "", - "type": "text/plain" - }, - "key": "page[number]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "", - "type": "text/plain" - }, - "key": "page[size]", - "value": "" - }, + "query": [], + "variable": [ { - "disabled": true, + "type": "any", + "value": "", + "key": "id", + "disabled": false, "description": { - "content": "Comma delimited list of relations to include.", + "content": "(Required) ", "type": "text/plain" - }, - "key": "include", - "value": "" + } } - ], - "variable": [] + ] }, "header": [ { @@ -13454,46 +20789,30 @@ }, "response": [ { - "id": "13854a01-6c4f-400b-aa0d-bac639a558c5", + "id": "d4744db2-0f5e-4a68-9ca3-57e43eb0cbe2", "name": "OK", "originalRequest": { "url": { "path": [ - "webhook_notifications" + "ports", + ":id" ], "host": [ "{{baseUrl}}" ], - "query": [ - { - "disabled": true, - "description": { - "content": "", - "type": "text/plain" - }, - "key": "page[number]", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "", - "type": "text/plain" - }, - "key": "page[size]", - "value": "" - }, + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "Comma delimited list of relations to include.", + "content": "(Required) ", "type": "text/plain" }, - "key": "include", - "value": "" + "type": "any", + "value": "", + "key": "id" } - ], - "variable": [] + ] }, "header": [ { @@ -13520,81 +20839,35 @@ "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"webhook_notification\",\n \"attributes\": {\n \"event\": \"container.pickup_appointment.changed\",\n \"delivery_status\": \"pending\",\n \"created_at\": \"\"\n },\n \"relationships\": {\n \"webhook\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"webhook\"\n }\n },\n \"reference_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"container_updated_event\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"webhook_notification\",\n \"attributes\": {\n \"event\": \"container.transport.rail_arrived\",\n \"delivery_status\": \"pending\",\n \"created_at\": \"\"\n },\n \"relationships\": {\n \"webhook\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"webhook\"\n }\n },\n \"reference_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document\"\n }\n }\n }\n }\n ],\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.transport.arrived_at_inland_destination\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n },\n {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.pickup_lfd_line.changed\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n }\n ]\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"port\",\n \"attributes\": {\n \"name\": \"\",\n \"code\": \"\",\n \"state_abbr\": \"\",\n \"city\": \"\",\n \"country_code\": \"\",\n \"time_zone\": \"\",\n \"latitude\": \"\",\n \"longitude\": \"\"\n }\n }\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "a50099fb-f0b2-4505-90a6-ef52dcce3f9b", - "name": "Get webhook notification payload examples", - "request": { - "name": "Get webhook notification payload examples", - "description": { - "content": "Returns an example payload as it would be sent to a webhook endpoint for the provided `event` ", - "type": "text/plain" - }, - "url": { - "path": [ - "webhook_notifications", - "examples" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [ - { - "disabled": true, - "description": { - "content": "The webhook notification event name you wish to see an example of (This can only be one of container.transport.vessel_arrived,container.transport.estimated.vessel_arrived,container.transport.vessel_discharged,container.transport.vessel_loaded,container.transport.vessel_departed,container.transport.estimated.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,container.pickup_lfd_line.changed,container.pickup_lfd_terminal.changed,container.pickup_lfd_rail.changed,container.pickup_appointment.changed,container.transport.available,container.transport.not_available,container.transport.delivered,document_representation.created,document_representation.failed)", - "type": "text/plain" - }, - "key": "event", - "value": "container.transport.feeder_departed" - } - ], - "variable": [] }, - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "GET", - "body": {}, - "auth": null - }, - "response": [ { - "id": "d2cdf153-17ea-4482-a51a-2b7c9d11abb9", - "name": "OK", + "id": "24d0ad54-98cc-45fa-bd87-20b6d5b02fc0", + "name": "Not Found", "originalRequest": { "url": { "path": [ - "webhook_notifications", - "examples" + "ports", + ":id" ], "host": [ "{{baseUrl}}" ], - "query": [ + "query": [], + "variable": [ { - "disabled": true, + "disabled": false, "description": { - "content": "The webhook notification event name you wish to see an example of (This can only be one of container.transport.vessel_arrived,container.transport.estimated.vessel_arrived,container.transport.vessel_discharged,container.transport.vessel_loaded,container.transport.vessel_departed,container.transport.estimated.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,container.pickup_lfd_line.changed,container.pickup_lfd_terminal.changed,container.pickup_lfd_rail.changed,container.pickup_appointment.changed,container.transport.available,container.transport.not_available,container.transport.delivered,document_representation.created,document_representation.failed)", + "content": "(Required) ", "type": "text/plain" }, - "key": "event", - "value": "container.transport.feeder_departed" + "type": "any", + "value": "", + "key": "id" } - ], - "variable": [] + ] }, "header": [ { @@ -13613,15 +20886,15 @@ "method": "GET", "body": {} }, - "status": "OK", - "code": 200, + "status": "Not Found", + "code": 404, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"webhook_notification\",\n \"attributes\": {\n \"event\": \"container.pickup_appointment.changed\",\n \"delivery_status\": \"pending\",\n \"created_at\": \"\"\n },\n \"relationships\": {\n \"webhook\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"webhook\"\n }\n },\n \"reference_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"container_updated_event\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"webhook_notification\",\n \"attributes\": {\n \"event\": \"container.transport.rail_arrived\",\n \"delivery_status\": \"pending\",\n \"created_at\": \"\"\n },\n \"relationships\": {\n \"webhook\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"webhook\"\n }\n },\n \"reference_object\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document\"\n }\n }\n }\n }\n ],\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.transport.arrived_at_inland_destination\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n },\n {\n \"id\": \"\",\n \"type\": \"webhook\",\n \"attributes\": {\n \"url\": \"\",\n \"active\": true,\n \"events\": [\n \"container.pickup_lfd_line.changed\"\n ],\n \"secret\": \"\",\n \"headers\": [\n {\n \"name\": \"\",\n \"value\": \"\"\n },\n {\n \"name\": \"\",\n \"value\": \"\"\n }\n ]\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -13634,21 +20907,21 @@ ] }, { - "name": "Ports", + "name": "Metro Areas", "description": "", "item": [ { - "id": "7c2047fc-93a7-4740-a915-baf18304bf16", - "name": "Get a port using the locode or the id", + "id": "35419aa2-b111-483b-b1eb-b60f95be9b1d", + "name": "Get a metro area using the un/locode or the id", "request": { - "name": "Get a port using the locode or the id", + "name": "Get a metro area using the un/locode or the id", "description": { - "content": "Return the details of a single port.", + "content": "Return the details of a single metro area.", "type": "text/plain" }, "url": { "path": [ - "ports", + "metro_areas", ":id" ], "host": [ @@ -13680,12 +20953,12 @@ }, "response": [ { - "id": "896551fc-aae4-45ac-b8c5-91fcbaca3247", - "name": "OK", + "id": "b5ee66f0-1eb2-4166-ad43-913acc45e7b1", + "name": "OK. An unknown id or UN/LOCODE returns `data: null` with status 200, not 404.", "originalRequest": { "url": { "path": [ - "ports", + "metro_areas", ":id" ], "host": [ @@ -13730,7 +21003,7 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"port\",\n \"attributes\": {\n \"name\": \"\",\n \"code\": \"\",\n \"state_abbr\": \"\",\n \"city\": \"\",\n \"country_code\": \"\",\n \"time_zone\": \"\",\n \"latitude\": \"\",\n \"longitude\": \"\"\n }\n }\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"metro_area\",\n \"attributes\": {\n \"name\": \"\",\n \"code\": \"\",\n \"state_abbr\": \"\",\n \"country_code\": \"\",\n \"time_zone\": \"\",\n \"latitude\": \"\",\n \"longitude\": \"\"\n },\n \"\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -13743,21 +21016,21 @@ ] }, { - "name": "Metro Areas", + "name": "Terminals", "description": "", "item": [ { - "id": "1ef51e25-e9ae-409f-9ebc-631e9e49d89e", - "name": "Get a metro area using the un/locode or the id", + "id": "50858d8d-3daa-4300-84d2-3aa5d48759e8", + "name": "Get a terminal using the id", "request": { - "name": "Get a metro area using the un/locode or the id", + "name": "Get a terminal using the id", "description": { - "content": "Return the details of a single metro area.", + "content": "Return the details of a single terminal.", "type": "text/plain" }, "url": { "path": [ - "metro_areas", + "terminals", ":id" ], "host": [ @@ -13789,12 +21062,67 @@ }, "response": [ { - "id": "0c8cc4ff-cd14-407e-b099-606afc1ad27c", + "id": "ee6e3ab9-2964-404c-a125-1104bb807ea6", "name": "OK", "originalRequest": { "url": { "path": [ - "metro_areas", + "terminals", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"attributes\": {\n \"name\": \"\",\n \"nickname\": \"\",\n \"firms_code\": \"\",\n \"smdg_code\": \"\",\n \"bic_facility_code\": \"\",\n \"street\": \"\",\n \"city\": \"\",\n \"state\": \"\",\n \"state_abbr\": \"\",\n \"zip\": \"\",\n \"country\": \"\"\n },\n \"relationships\": {\n \"port\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"port\"\n }\n }\n },\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "6660eb4f-9033-4150-afe3-f0414c598cda", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "terminals", ":id" ], "host": [ @@ -13831,15 +21159,15 @@ "method": "GET", "body": {} }, - "status": "OK", - "code": 200, + "status": "Not Found", + "code": 404, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"metro_area\",\n \"attributes\": {\n \"name\": \"\",\n \"code\": \"\",\n \"state_abbr\": \"\",\n \"country_code\": \"\",\n \"time_zone\": \"\",\n \"latitude\": \"\",\n \"longitude\": \"\"\n },\n \"\": \"\"\n }\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -13852,22 +21180,23 @@ ] }, { - "name": "Terminals", + "name": "Routing (Paid)", "description": "", "item": [ { - "id": "9f44e572-e881-4918-9b81-92822c01251e", - "name": "Get a terminal using the id", + "id": "1b742dbc-0f2e-4ce9-bc16-2994b1e1f887", + "name": "Get container map GeoJSON", "request": { - "name": "Get a terminal using the id", + "name": "Get container map GeoJSON", "description": { - "content": "Return the details of a single terminal.", + "content": "Returns a GeoJSON FeatureCollection containing all map-related data for a container, including port locations, current vessel position (if at sea), past vessel paths, and estimated future routes. The response can be directly used with most mapping libraries (Leaflet, Mapbox GL, Google Maps, etc.). This is a paid feature. Please contact sales@terminal49.com.", "type": "text/plain" }, "url": { "path": [ - "terminals", - ":id" + "containers", + ":id", + "map_geojson" ], "host": [ "{{baseUrl}}" @@ -13898,13 +21227,14 @@ }, "response": [ { - "id": "a63b50e1-48d3-495c-a729-5a0eac0aea1e", + "id": "80681cc5-36d1-450e-9c2a-528d76b5a2f4", "name": "OK", "originalRequest": { "url": { "path": [ - "terminals", - ":id" + "containers", + ":id", + "map_geojson" ], "host": [ "{{baseUrl}}" @@ -13948,68 +21278,13 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"attributes\": {\n \"name\": \"\",\n \"nickname\": \"\",\n \"firms_code\": \"\",\n \"smdg_code\": \"\",\n \"bic_facility_code\": \"\",\n \"street\": \"\",\n \"city\": \"\",\n \"state\": \"\",\n \"state_abbr\": \"\",\n \"zip\": \"\",\n \"country\": \"\"\n },\n \"relationships\": {\n \"port\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"port\"\n }\n }\n },\n \"id\": \"\",\n \"type\": \"terminal\"\n }\n}", + "body": "{\n \"type\": \"FeatureCollection\",\n \"features\": [\n {\n \"type\": \"Feature\",\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": [\n \"\",\n \"\"\n ]\n },\n \"properties\": {\n \"feature_type\": \"port\",\n \"ports_sequence\": \"\",\n \"ports_total\": \"\",\n \"location_id\": \"\",\n \"location_type\": \"Port\",\n \"name\": \"\",\n \"state_abbr\": \"\",\n \"state\": \"\",\n \"country_code\": \"\",\n \"country\": \"\",\n \"time_zone\": \"\",\n \"label\": \"\",\n \"inbound_eta_at\": \"\",\n \"inbound_ata_at\": \"\",\n \"outbound_etd_at\": \"\",\n \"outbound_atd_at\": \"\",\n \"updated_at\": \"\"\n }\n },\n {\n \"type\": \"Feature\",\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": [\n \"\",\n \"\"\n ]\n },\n \"properties\": {\n \"feature_type\": \"port\",\n \"ports_sequence\": \"\",\n \"ports_total\": \"\",\n \"location_id\": \"\",\n \"location_type\": \"Port\",\n \"name\": \"\",\n \"state_abbr\": \"\",\n \"state\": \"\",\n \"country_code\": \"\",\n \"country\": \"\",\n \"time_zone\": \"\",\n \"label\": \"\",\n \"inbound_eta_at\": \"\",\n \"inbound_ata_at\": \"\",\n \"outbound_etd_at\": \"\",\n \"outbound_atd_at\": \"\",\n \"updated_at\": \"\"\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" - } - ], - "event": [], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - } - ] - }, - { - "name": "Routing (Paid)", - "description": "", - "item": [ - { - "id": "9246836f-8ed0-466a-b318-82265f9ed4d1", - "name": "Get container map GeoJSON", - "request": { - "name": "Get container map GeoJSON", - "description": { - "content": "Returns a GeoJSON FeatureCollection containing all map-related data for a container, including port locations, current vessel position (if at sea), past vessel paths, and estimated future routes. The response can be directly used with most mapping libraries (Leaflet, Mapbox GL, Google Maps, etc.). This is a paid feature. Please contact sales@terminal49.com.", - "type": "text/plain" - }, - "url": { - "path": [ - "containers", - ":id", - "map_geojson" - ], - "host": [ - "{{baseUrl}}" - ], - "query": [], - "variable": [ - { - "type": "any", - "value": "", - "key": "id", - "disabled": false, - "description": { - "content": "(Required) ", - "type": "text/plain" - } - } - ] }, - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "method": "GET", - "body": {}, - "auth": null - }, - "response": [ { - "id": "0679795c-b9f8-45fe-9df1-adfb88e61c84", - "name": "OK", + "id": "7e61a96a-ee67-442c-bf1d-b35bd890fe7c", + "name": "Forbidden - Routing data feature is not enabled for this account", "originalRequest": { "url": { "path": [ @@ -14051,21 +21326,21 @@ "method": "GET", "body": {} }, - "status": "OK", - "code": 200, + "status": "Forbidden", + "code": 403, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"type\": \"FeatureCollection\",\n \"features\": [\n {\n \"type\": \"Feature\",\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": [\n \"\",\n \"\"\n ]\n },\n \"properties\": {\n \"feature_type\": \"port\",\n \"ports_sequence\": \"\",\n \"ports_total\": \"\",\n \"location_id\": \"\",\n \"location_type\": \"Port\",\n \"name\": \"\",\n \"state_abbr\": \"\",\n \"state\": \"\",\n \"country_code\": \"\",\n \"country\": \"\",\n \"time_zone\": \"\",\n \"label\": \"\",\n \"inbound_eta_at\": \"\",\n \"inbound_ata_at\": \"\",\n \"outbound_etd_at\": \"\",\n \"outbound_atd_at\": \"\",\n \"updated_at\": \"\"\n }\n },\n {\n \"type\": \"Feature\",\n \"geometry\": {\n \"type\": \"Point\",\n \"coordinates\": [\n \"\",\n \"\"\n ]\n },\n \"properties\": {\n \"feature_type\": \"port\",\n \"ports_sequence\": \"\",\n \"ports_total\": \"\",\n \"location_id\": \"\",\n \"location_type\": \"Port\",\n \"name\": \"\",\n \"state_abbr\": \"\",\n \"state\": \"\",\n \"country_code\": \"\",\n \"country\": \"\",\n \"time_zone\": \"\",\n \"label\": \"\",\n \"inbound_eta_at\": \"\",\n \"inbound_ata_at\": \"\",\n \"outbound_etd_at\": \"\",\n \"outbound_atd_at\": \"\",\n \"updated_at\": \"\"\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "80ba1b82-edee-4aeb-8c8f-830d956d66d6", - "name": "Forbidden - Routing data feature is not enabled for this account", + "id": "ef3d6feb-b52b-4fca-a14e-316fa5fcbdb3", + "name": "Not Found", "originalRequest": { "url": { "path": [ @@ -14107,15 +21382,15 @@ "method": "GET", "body": {} }, - "status": "Forbidden", - "code": 403, + "status": "Not Found", + "code": 404, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -14126,7 +21401,7 @@ } }, { - "id": "75b33063-3133-4171-99a6-7fe03268b53a", + "id": "50148657-f6f1-40ab-b433-ff99669ffa4c", "name": "Get vessel future positions", "request": { "name": "Get vessel future positions", @@ -14188,7 +21463,7 @@ }, "response": [ { - "id": "e50df37f-057d-4f1f-b96f-bc8add20023f", + "id": "1c49acf1-d6f4-42e5-940a-037b044081c5", "name": "OK", "originalRequest": { "url": { @@ -14263,7 +21538,7 @@ "_postman_previewlanguage": "json" }, { - "id": "3d6f4285-07bf-4f11-ac15-edfa6bc7b5ad", + "id": "913b528f-6039-42df-83b4-4151d149f47f", "name": "Forbidden - Routing data feature is not enabled for this account", "originalRequest": { "url": { @@ -14336,6 +21611,81 @@ "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" + }, + { + "id": "9cbad980-0b03-400c-bf38-22c97761b8b8", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "vessels", + ":id", + "future_positions" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": false, + "description": { + "content": "(Required) The destination port id", + "type": "text/plain" + }, + "key": "port_id", + "value": "" + }, + { + "disabled": false, + "description": { + "content": "(Required) The previous port id", + "type": "text/plain" + }, + "key": "previous_port_id", + "value": "" + } + ], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" } ], "event": [], @@ -14344,7 +21694,7 @@ } }, { - "id": "81bf75c4-59d7-4fc8-87cb-10e911992fef", + "id": "7bd3d1fb-02cd-4468-82f7-3fa54fa0e997", "name": "Get vessel future positions from coordinates", "request": { "name": "Get vessel future positions from coordinates", @@ -14424,7 +21774,7 @@ }, "response": [ { - "id": "0400f027-391c-4435-be30-d992424723a1", + "id": "3fa51577-5b8b-4067-97f9-883032c64547", "name": "OK", "originalRequest": { "url": { @@ -14517,7 +21867,7 @@ "_postman_previewlanguage": "json" }, { - "id": "881ece84-a0da-4cff-a851-a1e429573bd4", + "id": "a97f07fe-2505-487f-8a45-797797f88213", "name": "Forbidden - Routing data feature is not enabled for this account", "originalRequest": { "url": { @@ -14605,7 +21955,100 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "2219aba6-7e22-4079-946b-b32660cb6538", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "vessels", + ":id", + "future_positions_with_coordinates" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": false, + "description": { + "content": "(Required) The destination port id", + "type": "text/plain" + }, + "key": "port_id", + "value": "" + }, + { + "disabled": false, + "description": { + "content": "(Required) The previous port id", + "type": "text/plain" + }, + "key": "previous_port_id", + "value": "" + }, + { + "disabled": false, + "description": { + "content": "(Required) Starting latitude coordinate", + "type": "text/plain" + }, + "key": "latitude", + "value": "" + }, + { + "disabled": false, + "description": { + "content": "(Required) Starting longitude coordinate", + "type": "text/plain" + }, + "key": "longitude", + "value": "" + } + ], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -14622,7 +22065,7 @@ "description": "", "item": [ { - "id": "ba10f3d0-1362-425d-85ae-83bd6ef0dbee", + "id": "9237f46a-3835-4ce5-9317-c8eb298d7a3d", "name": "List documents", "request": { "name": "List documents", @@ -14716,7 +22159,7 @@ }, "response": [ { - "id": "e52bcc71-8fe2-44e1-b5e0-fad4a453aa59", + "id": "d56face2-dbf1-41a1-a0b2-be578c8d2cb0", "name": "OK", "originalRequest": { "url": { @@ -14818,12 +22261,12 @@ "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"document\",\n \"attributes\": {\n \"id\": \"\",\n \"name\": \"\",\n \"document_type\": \"\",\n \"document_type_manual\": \"\",\n \"classification_notes\": \"\",\n \"source\": \"api\",\n \"file_name\": \"\",\n \"file_content_type\": \"\",\n \"file_size_bytes\": \"\",\n \"parsed\": {\n \"packetSegment\": {\n \"startPage\": \"\",\n \"endPage\": \"\"\n }\n },\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n },\n \"email_submission\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"email_submission\"\n }\n },\n \"last_document_representation\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document_representation\"\n }\n },\n \"parent_document\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document\"\n }\n },\n \"shipments\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n },\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n ]\n },\n \"cargos\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"container\"\n },\n {\n \"id\": \"\",\n \"type\": \"container\"\n }\n ]\n }\n },\n \"links\": {\n \"self\": \"\",\n \"download\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"document\",\n \"attributes\": {\n \"id\": \"\",\n \"name\": \"\",\n \"document_type\": \"\",\n \"document_type_manual\": \"\",\n \"classification_notes\": \"\",\n \"source\": \"email\",\n \"file_name\": \"\",\n \"file_content_type\": \"\",\n \"file_size_bytes\": \"\",\n \"parsed\": {\n \"packetSegment\": {\n \"startPage\": \"\",\n \"endPage\": \"\"\n }\n },\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n },\n \"email_submission\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"email_submission\"\n }\n },\n \"last_document_representation\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document_representation\"\n }\n },\n \"parent_document\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document\"\n }\n },\n \"shipments\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n },\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n ]\n },\n \"cargos\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"container\"\n },\n {\n \"id\": \"\",\n \"type\": \"container\"\n }\n ]\n }\n },\n \"links\": {\n \"self\": \"\",\n \"download\": \"\"\n }\n }\n ],\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n ],\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"document\",\n \"attributes\": {\n \"id\": \"\",\n \"name\": \"\",\n \"document_type\": \"\",\n \"document_type_source\": \"llm\",\n \"classification_notes\": \"\",\n \"source\": \"upload\",\n \"file_name\": \"\",\n \"file_content_type\": \"\",\n \"file_size_bytes\": \"\",\n \"parsed\": {\n \"packetSegment\": {\n \"startPage\": \"\",\n \"endPage\": \"\"\n }\n },\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n },\n \"email_submission\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"email_submission\"\n }\n },\n \"last_document_representation\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document_representation\"\n }\n },\n \"parent_document\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document\"\n }\n },\n \"shipments\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n },\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n ]\n },\n \"cargos\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"container\"\n },\n {\n \"id\": \"\",\n \"type\": \"container\"\n }\n ]\n }\n },\n \"links\": {\n \"self\": \"\",\n \"download\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"document\",\n \"attributes\": {\n \"id\": \"\",\n \"name\": \"\",\n \"document_type\": \"\",\n \"document_type_source\": \"customer\",\n \"classification_notes\": \"\",\n \"source\": \"email\",\n \"file_name\": \"\",\n \"file_content_type\": \"\",\n \"file_size_bytes\": \"\",\n \"parsed\": {\n \"packetSegment\": {\n \"startPage\": \"\",\n \"endPage\": \"\"\n }\n },\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n },\n \"email_submission\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"email_submission\"\n }\n },\n \"last_document_representation\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document_representation\"\n }\n },\n \"parent_document\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document\"\n }\n },\n \"shipments\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n },\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n ]\n },\n \"cargos\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"container\"\n },\n {\n \"id\": \"\",\n \"type\": \"container\"\n }\n ]\n }\n },\n \"links\": {\n \"self\": \"\",\n \"download\": \"\"\n }\n }\n ],\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n ],\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "e2a13c7d-f07a-4cfe-bf1f-3c02b82f1330", + "id": "8179e352-0bb3-4f8e-990e-e559bc9083d2", "name": "Bad Request", "originalRequest": { "url": { @@ -14925,12 +22368,12 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "e4ae41c2-3d78-4ba9-b660-9f8e464f4ad7", + "id": "f599281d-c400-4f75-bd3b-9bb42caf7934", "name": "Unauthorized", "originalRequest": { "url": { @@ -15032,7 +22475,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -15043,7 +22486,7 @@ } }, { - "id": "5d6e9f87-69ae-4bec-8ab0-6318874bc461", + "id": "f5106a34-baef-4652-b7d3-930834837e21", "name": "Upload a document", "request": { "name": "Upload a document", @@ -15086,7 +22529,7 @@ }, "response": [ { - "id": "d93011c2-11c7-4df1-aee1-ec7c6dfd523a", + "id": "aedede59-8a1d-480c-a59a-f4767217361f", "name": "Created", "originalRequest": { "url": { @@ -15137,12 +22580,12 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"document\",\n \"attributes\": {\n \"id\": \"\",\n \"name\": \"\",\n \"document_type\": \"\",\n \"document_type_manual\": \"\",\n \"classification_notes\": \"\",\n \"source\": \"email\",\n \"file_name\": \"\",\n \"file_content_type\": \"\",\n \"file_size_bytes\": \"\",\n \"parsed\": {\n \"packetSegment\": {\n \"startPage\": \"\",\n \"endPage\": \"\"\n }\n },\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n },\n \"email_submission\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"email_submission\"\n }\n },\n \"last_document_representation\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document_representation\"\n }\n },\n \"parent_document\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document\"\n }\n },\n \"shipments\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n },\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n ]\n },\n \"cargos\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"container\"\n },\n {\n \"id\": \"\",\n \"type\": \"container\"\n }\n ]\n }\n },\n \"links\": {\n \"self\": \"\",\n \"download\": \"\"\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n ],\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"document\",\n \"attributes\": {\n \"id\": \"\",\n \"name\": \"\",\n \"document_type\": \"\",\n \"document_type_source\": \"customer\",\n \"classification_notes\": \"\",\n \"source\": \"upload\",\n \"file_name\": \"\",\n \"file_content_type\": \"\",\n \"file_size_bytes\": \"\",\n \"parsed\": {\n \"packetSegment\": {\n \"startPage\": \"\",\n \"endPage\": \"\"\n }\n },\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n },\n \"email_submission\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"email_submission\"\n }\n },\n \"last_document_representation\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document_representation\"\n }\n },\n \"parent_document\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document\"\n }\n },\n \"shipments\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n },\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n ]\n },\n \"cargos\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"container\"\n },\n {\n \"id\": \"\",\n \"type\": \"container\"\n }\n ]\n }\n },\n \"links\": {\n \"self\": \"\",\n \"download\": \"\"\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n ],\n \"links\": {\n \"self\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "9c65663c-35ee-42dd-9064-16412fda4e13", + "id": "4fd4c448-8780-4073-a979-802ef007a352", "name": "Duplicate document", "originalRequest": { "url": { @@ -15198,7 +22641,7 @@ "_postman_previewlanguage": "json" }, { - "id": "da192527-d4a8-4d2b-a04e-bc2854bb92bd", + "id": "df96de30-66a7-4633-aeaf-1af2d5d85b5e", "name": "Unprocessable Entity", "originalRequest": { "url": { @@ -15249,7 +22692,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -15260,7 +22703,7 @@ } }, { - "id": "a172152f-67a6-41e7-b631-fdf51fe7ab88", + "id": "84210498-bd39-47a0-801c-cdcc8caf2fd0", "name": "List document types", "request": { "name": "List document types", @@ -15291,7 +22734,7 @@ }, "response": [ { - "id": "6c40b061-8cba-4312-a351-4bcb126289f9", + "id": "cf50d646-ffd5-4d3c-a223-9e762cfe2acf", "name": "OK", "originalRequest": { "url": { @@ -15335,7 +22778,7 @@ "_postman_previewlanguage": "json" }, { - "id": "5c967d37-8c40-4316-a128-bde5fa37f5cf", + "id": "c2c4dc19-6280-4842-ae5a-3c81d20d0539", "name": "Unauthorized", "originalRequest": { "url": { @@ -15374,7 +22817,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -15385,7 +22828,7 @@ } }, { - "id": "e9b33457-0ba9-40e9-a695-5ad7d8b042cf", + "id": "47b6b055-9f86-47d3-9f19-323193e90a7a", "name": "Get a document", "request": { "name": "Get a document", @@ -15434,7 +22877,7 @@ }, "response": [ { - "id": "01f8c28a-a3a8-440f-8050-e4a949edde08", + "id": "54281090-9f67-4cc2-93c8-e7e4a30e8310", "name": "OK", "originalRequest": { "url": { @@ -15494,12 +22937,12 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"document\",\n \"attributes\": {\n \"id\": \"\",\n \"name\": \"\",\n \"document_type\": \"\",\n \"document_type_manual\": \"\",\n \"classification_notes\": \"\",\n \"source\": \"email\",\n \"file_name\": \"\",\n \"file_content_type\": \"\",\n \"file_size_bytes\": \"\",\n \"parsed\": {\n \"packetSegment\": {\n \"startPage\": \"\",\n \"endPage\": \"\"\n }\n },\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n },\n \"email_submission\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"email_submission\"\n }\n },\n \"last_document_representation\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document_representation\"\n }\n },\n \"parent_document\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document\"\n }\n },\n \"shipments\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n },\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n ]\n },\n \"cargos\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"container\"\n },\n {\n \"id\": \"\",\n \"type\": \"container\"\n }\n ]\n }\n },\n \"links\": {\n \"self\": \"\",\n \"download\": \"\"\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n ],\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"document\",\n \"attributes\": {\n \"id\": \"\",\n \"name\": \"\",\n \"document_type\": \"\",\n \"document_type_source\": \"customer\",\n \"classification_notes\": \"\",\n \"source\": \"upload\",\n \"file_name\": \"\",\n \"file_content_type\": \"\",\n \"file_size_bytes\": \"\",\n \"parsed\": {\n \"packetSegment\": {\n \"startPage\": \"\",\n \"endPage\": \"\"\n }\n },\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n },\n \"email_submission\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"email_submission\"\n }\n },\n \"last_document_representation\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document_representation\"\n }\n },\n \"parent_document\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document\"\n }\n },\n \"shipments\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n },\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n ]\n },\n \"cargos\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"container\"\n },\n {\n \"id\": \"\",\n \"type\": \"container\"\n }\n ]\n }\n },\n \"links\": {\n \"self\": \"\",\n \"download\": \"\"\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n ],\n \"links\": {\n \"self\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "ebf3a4b3-372f-49de-b712-c995fd87762e", + "id": "69f34c59-c656-4389-b635-611db2312ec6", "name": "Bad Request", "originalRequest": { "url": { @@ -15559,12 +23002,12 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "0c6e5d39-9af5-4b7c-951f-ac1d3d694b71", + "id": "22203648-643e-49bb-8a31-8b8d1486ad58", "name": "Not Found", "originalRequest": { "url": { @@ -15624,7 +23067,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -15635,12 +23078,12 @@ } }, { - "id": "e3e051a1-b964-44d8-8a92-a478d94effc9", + "id": "db8c3d3e-dcb1-48a9-888c-819c04f0aa1d", "name": "Edit a document", "request": { "name": "Edit a document", "description": { - "content": "Updates manual extraction and classification fields.", + "content": "Updates the document type, classification notes, and manual extraction data.", "type": "text/plain" }, "url": { @@ -15678,7 +23121,7 @@ "method": "PATCH", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"document\",\n \"attributes\": {\n \"document_type_manual\": \"\",\n \"extracted_data_manual\": {\n \"key_0\": \"string\"\n }\n }\n }\n}", + "raw": "{\n \"data\": {\n \"type\": \"document\",\n \"attributes\": {\n \"document_type\": \"\",\n \"classification_notes\": \"\",\n \"extracted_data_manual\": {\n \"key_0\": 6895.154934865073\n }\n }\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -15690,7 +23133,7 @@ }, "response": [ { - "id": "53bbd61c-22b0-4224-a781-ba8709d19b4f", + "id": "c9991a2e-32d1-4dec-9f6e-0d44f386e349", "name": "OK", "originalRequest": { "url": { @@ -15736,7 +23179,7 @@ "method": "PATCH", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"document\",\n \"attributes\": {\n \"document_type_manual\": \"\",\n \"extracted_data_manual\": {\n \"key_0\": \"string\"\n }\n }\n }\n}", + "raw": "{\n \"data\": {\n \"type\": \"document\",\n \"attributes\": {\n \"document_type\": \"\",\n \"classification_notes\": \"\",\n \"extracted_data_manual\": {\n \"key_0\": 6895.154934865073\n }\n }\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -15753,12 +23196,12 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"document\",\n \"attributes\": {\n \"id\": \"\",\n \"name\": \"\",\n \"document_type\": \"\",\n \"document_type_manual\": \"\",\n \"classification_notes\": \"\",\n \"source\": \"email\",\n \"file_name\": \"\",\n \"file_content_type\": \"\",\n \"file_size_bytes\": \"\",\n \"parsed\": {\n \"packetSegment\": {\n \"startPage\": \"\",\n \"endPage\": \"\"\n }\n },\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n },\n \"email_submission\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"email_submission\"\n }\n },\n \"last_document_representation\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document_representation\"\n }\n },\n \"parent_document\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document\"\n }\n },\n \"shipments\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n },\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n ]\n },\n \"cargos\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"container\"\n },\n {\n \"id\": \"\",\n \"type\": \"container\"\n }\n ]\n }\n },\n \"links\": {\n \"self\": \"\",\n \"download\": \"\"\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n ],\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"document\",\n \"attributes\": {\n \"id\": \"\",\n \"name\": \"\",\n \"document_type\": \"\",\n \"document_type_source\": \"customer\",\n \"classification_notes\": \"\",\n \"source\": \"upload\",\n \"file_name\": \"\",\n \"file_content_type\": \"\",\n \"file_size_bytes\": \"\",\n \"parsed\": {\n \"packetSegment\": {\n \"startPage\": \"\",\n \"endPage\": \"\"\n }\n },\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n },\n \"email_submission\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"email_submission\"\n }\n },\n \"last_document_representation\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document_representation\"\n }\n },\n \"parent_document\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"document\"\n }\n },\n \"shipments\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n },\n {\n \"id\": \"\",\n \"type\": \"shipment\"\n }\n ]\n },\n \"cargos\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"container\"\n },\n {\n \"id\": \"\",\n \"type\": \"container\"\n }\n ]\n }\n },\n \"links\": {\n \"self\": \"\",\n \"download\": \"\"\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n ],\n \"links\": {\n \"self\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "865d97f3-0b4b-498a-83cd-f26a0080cfba", + "id": "169cc98e-18d6-4851-8ea6-478695a218fd", "name": "Not Found", "originalRequest": { "url": { @@ -15804,7 +23247,7 @@ "method": "PATCH", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"document\",\n \"attributes\": {\n \"document_type_manual\": \"\",\n \"extracted_data_manual\": {\n \"key_0\": \"string\"\n }\n }\n }\n}", + "raw": "{\n \"data\": {\n \"type\": \"document\",\n \"attributes\": {\n \"document_type\": \"\",\n \"classification_notes\": \"\",\n \"extracted_data_manual\": {\n \"key_0\": 6895.154934865073\n }\n }\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -15821,7 +23264,75 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "15b9f8ca-0eca-46ab-a61a-b5d36bb51d87", + "name": "Unprocessable Entity", + "originalRequest": { + "url": { + "path": [ + "documents", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"document\",\n \"attributes\": {\n \"document_type\": \"\",\n \"classification_notes\": \"\",\n \"extracted_data_manual\": {\n \"key_0\": 6895.154934865073\n }\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unprocessable Entity (WebDAV) (RFC 4918)", + "code": 422, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -15832,7 +23343,7 @@ } }, { - "id": "7345dcb3-9511-4aec-a0d1-31d52e4fb357", + "id": "52621359-6159-476c-b6e1-55af265e2408", "name": "Delete a document", "request": { "name": "Delete a document", @@ -15874,7 +23385,7 @@ }, "response": [ { - "id": "5e83e2f5-b424-4b9e-acbb-bc79c02d162e", + "id": "d4a9655d-c237-41cd-8436-c9777d3a9330", "name": "No Content", "originalRequest": { "url": { @@ -15919,7 +23430,7 @@ "_postman_previewlanguage": "text" }, { - "id": "412615f5-efb2-4a36-9a5e-f045e1b17658", + "id": "44824fe2-93cf-447e-addd-4fe9d147809c", "name": "Not Found", "originalRequest": { "url": { @@ -15969,7 +23480,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -15980,7 +23491,7 @@ } }, { - "id": "7b658572-ffc0-4082-b22c-cc9c764f511b", + "id": "0048e991-1582-4ecc-95f8-99736c71b85f", "name": "Get a document download URL", "request": { "name": "Get a document download URL", @@ -16023,7 +23534,7 @@ }, "response": [ { - "id": "6da79edf-f0cc-4e86-80d0-0e6597e0c094", + "id": "a1108ea4-ecf9-4f75-a228-fdd3be584ef4", "name": "OK", "originalRequest": { "url": { @@ -16079,7 +23590,7 @@ "_postman_previewlanguage": "json" }, { - "id": "88c5a5d5-235b-4f95-8b6d-8f1bfeff8941", + "id": "afc95911-4533-4ff1-aa6b-7670696b3fc6", "name": "Not Found", "originalRequest": { "url": { @@ -16130,12 +23641,12 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "fbf955e3-7e56-4121-bd0c-c1df1a9cf237", + "id": "b601b677-526c-412f-9977-8f461b6aa454", "name": "Unprocessable Entity", "originalRequest": { "url": { @@ -16186,7 +23697,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -16197,7 +23708,7 @@ } }, { - "id": "38bf912a-97b6-49cf-9b67-dfb84f8ec51d", + "id": "5ef897aa-90e5-4897-a9cf-a14c6e825231", "name": "Re-extract a document", "request": { "name": "Re-extract a document", @@ -16240,7 +23751,7 @@ }, "response": [ { - "id": "54ecc195-739c-4071-89f2-42fd71f22f73", + "id": "7c26354d-ee67-4eda-9808-1ed092715fa3", "name": "Accepted", "originalRequest": { "url": { @@ -16296,7 +23807,7 @@ "_postman_previewlanguage": "json" }, { - "id": "33d38ee6-681f-44d7-aa85-e71842196004", + "id": "42d52d99-f461-46e1-8657-4d23f8c9aece", "name": "Not Found", "originalRequest": { "url": { @@ -16347,7 +23858,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -16358,7 +23869,7 @@ } }, { - "id": "a320b8c7-2a86-49dd-8582-25d161125dfc", + "id": "77c1b583-5bfa-471e-8470-67995ef3d79a", "name": "Re-classify a document", "request": { "name": "Re-classify a document", @@ -16401,7 +23912,7 @@ }, "response": [ { - "id": "1fb3df4c-405b-4313-95c6-5709c3bd9afa", + "id": "d781846c-6b48-43c7-911a-10d21d02c23d", "name": "Accepted", "originalRequest": { "url": { @@ -16457,7 +23968,7 @@ "_postman_previewlanguage": "json" }, { - "id": "d5d514aa-f287-4337-b589-caa620a3a49d", + "id": "c17655b4-3baf-4c69-9639-f70945680e41", "name": "Not Found", "originalRequest": { "url": { @@ -16508,7 +24019,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -16519,7 +24030,7 @@ } }, { - "id": "40cec3fb-6da4-421c-8c96-d10e318e0428", + "id": "f40d4520-384d-4661-8d32-274ed0db68fc", "name": "Re-link a document", "request": { "name": "Re-link a document", @@ -16562,7 +24073,7 @@ }, "response": [ { - "id": "e40dbdda-1f8e-4813-90c5-93e17f013856", + "id": "6632098f-6b74-4e8b-89d4-65820c80300f", "name": "Accepted", "originalRequest": { "url": { @@ -16618,7 +24129,7 @@ "_postman_previewlanguage": "json" }, { - "id": "eb3423be-aabf-47ac-b3b5-c2ce223410d6", + "id": "d85e58fb-b29b-4d09-b463-9225c91db342", "name": "Not Found", "originalRequest": { "url": { @@ -16669,7 +24180,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -16680,7 +24191,7 @@ } }, { - "id": "954d90fe-dd25-4624-a2e5-447b2ca34680", + "id": "2db57e1c-714d-4c61-b396-27ea52f8904c", "name": "Rotate a document", "request": { "name": "Rotate a document", @@ -16724,7 +24235,7 @@ "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"degrees\": 180\n}", + "raw": "{\n \"degrees\": 270\n}", "options": { "raw": { "headerFamily": "json", @@ -16736,7 +24247,7 @@ }, "response": [ { - "id": "144c62ba-f984-4aeb-8657-e252198f335b", + "id": "dc6660e4-78e1-4879-8f3d-cfc8a32b47d0", "name": "Accepted", "originalRequest": { "url": { @@ -16783,7 +24294,7 @@ "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"degrees\": 180\n}", + "raw": "{\n \"degrees\": 270\n}", "options": { "raw": { "headerFamily": "json", @@ -16805,7 +24316,7 @@ "_postman_previewlanguage": "json" }, { - "id": "6deb0ff4-6bc3-4ac1-a689-350ec5491ade", + "id": "33720322-fe89-4ffb-9052-f5ae63640977", "name": "Not Found", "originalRequest": { "url": { @@ -16852,7 +24363,7 @@ "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"degrees\": 180\n}", + "raw": "{\n \"degrees\": 270\n}", "options": { "raw": { "headerFamily": "json", @@ -16869,12 +24380,12 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "5c5c03d1-5a8f-4f4f-8577-1237c673f83a", + "id": "64346111-ef74-4620-9558-14333101dc31", "name": "Unprocessable Entity", "originalRequest": { "url": { @@ -16921,7 +24432,7 @@ "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"degrees\": 180\n}", + "raw": "{\n \"degrees\": 270\n}", "options": { "raw": { "headerFamily": "json", @@ -16938,7 +24449,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -16955,7 +24466,7 @@ "description": "", "item": [ { - "id": "3c973855-f911-449c-afe2-b0b34572a636", + "id": "b2b5369c-5957-47d3-baf7-855edfbcedec", "name": "List email submissions", "request": { "name": "List email submissions", @@ -17013,7 +24524,7 @@ }, "response": [ { - "id": "f60b6e1b-972e-4fa3-a1d9-bd10e7891a6d", + "id": "1ee9a63e-a954-4276-9ae7-cd577af1b764", "name": "OK", "originalRequest": { "url": { @@ -17079,12 +24590,12 @@ "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"email_submission\",\n \"attributes\": {\n \"subject\": \"\",\n \"body\": \"\",\n \"from\": [\n \"\",\n \"\"\n ],\n \"to\": [\n \"\",\n \"\"\n ],\n \"cc\": [\n \"\",\n \"\"\n ],\n \"sent_at\": \"\",\n \"message_id\": \"\",\n \"in_reply_to\": \"\",\n \"references\": [\n \"\",\n \"\"\n ],\n \"content_type\": \"\",\n \"documents_count\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n },\n \"documents\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"document\"\n },\n {\n \"id\": \"\",\n \"type\": \"document\"\n }\n ]\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"email_submission\",\n \"attributes\": {\n \"subject\": \"\",\n \"body\": \"\",\n \"from\": [\n \"\",\n \"\"\n ],\n \"to\": [\n \"\",\n \"\"\n ],\n \"cc\": [\n \"\",\n \"\"\n ],\n \"sent_at\": \"\",\n \"message_id\": \"\",\n \"in_reply_to\": \"\",\n \"references\": [\n \"\",\n \"\"\n ],\n \"content_type\": \"\",\n \"documents_count\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n },\n \"documents\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"document\"\n },\n {\n \"id\": \"\",\n \"type\": \"document\"\n }\n ]\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n }\n ],\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n ],\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"email_submission\",\n \"attributes\": {\n \"subject\": \"\",\n \"body\": \"\",\n \"from\": [\n \"\",\n \"\"\n ],\n \"to\": [\n \"\",\n \"\"\n ],\n \"cc\": [\n \"\",\n \"\"\n ],\n \"sent_at\": \"\",\n \"message_id\": \"\",\n \"in_reply_to\": \"\",\n \"references\": [\n \"\",\n \"\"\n ],\n \"content_type\": \"\",\n \"documents_count\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n },\n \"documents\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"document\"\n },\n {\n \"id\": \"\",\n \"type\": \"document\"\n }\n ]\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"email_submission\",\n \"attributes\": {\n \"subject\": \"\",\n \"body\": \"\",\n \"from\": [\n \"\",\n \"\"\n ],\n \"to\": [\n \"\",\n \"\"\n ],\n \"cc\": [\n \"\",\n \"\"\n ],\n \"sent_at\": \"\",\n \"message_id\": \"\",\n \"in_reply_to\": \"\",\n \"references\": [\n \"\",\n \"\"\n ],\n \"content_type\": \"\",\n \"documents_count\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n },\n \"documents\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"document\"\n },\n {\n \"id\": \"\",\n \"type\": \"document\"\n }\n ]\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n }\n ],\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n ],\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "7be9917a-2174-4f0d-98fa-769d6ac226f1", + "id": "34876ccf-47cb-4db3-b4c2-59d6e94134df", "name": "Bad Request", "originalRequest": { "url": { @@ -17150,12 +24661,12 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "fd758858-9523-4b47-ac27-9a4829f3b6c7", + "id": "eaa5ccd2-6a5c-41ea-8780-2c2eb5c753ef", "name": "Unauthorized", "originalRequest": { "url": { @@ -17221,7 +24732,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -17232,7 +24743,7 @@ } }, { - "id": "56cd865d-82c9-45ef-a9c0-8bbfbff67c87", + "id": "76bf5445-68cf-44ea-b6f1-1f57fca857b9", "name": "Get an email submission", "request": { "name": "Get an email submission", @@ -17281,7 +24792,7 @@ }, "response": [ { - "id": "aa140837-aed7-4882-8b63-95d5ebdae259", + "id": "f1bd055d-a596-47cc-ab31-82c75cdb3a04", "name": "OK", "originalRequest": { "url": { @@ -17341,12 +24852,12 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"email_submission\",\n \"attributes\": {\n \"subject\": \"\",\n \"body\": \"\",\n \"from\": [\n \"\",\n \"\"\n ],\n \"to\": [\n \"\",\n \"\"\n ],\n \"cc\": [\n \"\",\n \"\"\n ],\n \"sent_at\": \"\",\n \"message_id\": \"\",\n \"in_reply_to\": \"\",\n \"references\": [\n \"\",\n \"\"\n ],\n \"content_type\": \"\",\n \"documents_count\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n },\n \"documents\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"document\"\n },\n {\n \"id\": \"\",\n \"type\": \"document\"\n }\n ]\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n ],\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"email_submission\",\n \"attributes\": {\n \"subject\": \"\",\n \"body\": \"\",\n \"from\": [\n \"\",\n \"\"\n ],\n \"to\": [\n \"\",\n \"\"\n ],\n \"cc\": [\n \"\",\n \"\"\n ],\n \"sent_at\": \"\",\n \"message_id\": \"\",\n \"in_reply_to\": \"\",\n \"references\": [\n \"\",\n \"\"\n ],\n \"content_type\": \"\",\n \"documents_count\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n },\n \"documents\": {\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"document\"\n },\n {\n \"id\": \"\",\n \"type\": \"document\"\n }\n ]\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n ],\n \"links\": {\n \"self\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "649e6459-e924-41c3-9bc1-e108c8ea6958", + "id": "af1be5d3-50b8-47ad-afaf-65adf8cadd2b", "name": "Bad Request", "originalRequest": { "url": { @@ -17406,12 +24917,12 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "4fe9fd6a-df87-497e-8554-f958b19cef8b", + "id": "05688d01-fa97-4072-bc37-f99fcbd3d89e", "name": "Not Found", "originalRequest": { "url": { @@ -17471,7 +24982,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -17488,7 +24999,7 @@ "description": "", "item": [ { - "id": "08e62e89-5587-4eb9-98b1-d5ecec267064", + "id": "66fe5419-3dcb-4a6c-a9ee-6dd08316b847", "name": "Get a document schema", "request": { "name": "Get a document schema", @@ -17527,7 +25038,7 @@ }, "response": [ { - "id": "6ee921c2-cd6c-4b2c-9b59-7fc91bff0711", + "id": "38f74002-c94a-4a15-b159-f9419bf89577", "name": "OK", "originalRequest": { "url": { @@ -17577,12 +25088,12 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"document_schema\",\n \"attributes\": {\n \"document_type\": \"\",\n \"label\": \"\",\n \"schema_version\": \"\",\n \"full_version\": \"\",\n \"current\": \"\",\n \"draft\": \"\",\n \"active_at\": \"\",\n \"schema_format\": \"json_schema\",\n \"description\": \"\",\n \"schema_payload\": {\n \"key_0\": \"string\"\n },\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"links\": {\n \"self\": \"\"\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"document_schema\",\n \"attributes\": {\n \"document_type\": \"\",\n \"label\": \"\",\n \"schema_version\": \"\",\n \"full_version\": \"\",\n \"current\": \"\",\n \"draft\": \"\",\n \"active_at\": \"\",\n \"schema_format\": \"json_schema\",\n \"description\": \"\",\n \"schema_payload\": {\n \"key_0\": false\n },\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"links\": {\n \"self\": \"\"\n }\n },\n \"links\": {\n \"self\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "60c7c84f-3d54-4299-b6b7-044e37e12fcd", + "id": "d559c46e-0cae-46bb-964d-7eda4e8cec0c", "name": "Unauthorized", "originalRequest": { "url": { @@ -17632,12 +25143,12 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "b625bc5e-8302-44d4-b499-e9156bbb47ad", + "id": "81d630da-1117-4680-b1d0-aac8af3ee6e2", "name": "Not Found", "originalRequest": { "url": { @@ -17687,7 +25198,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -17704,7 +25215,7 @@ "description": "", "item": [ { - "id": "0dd503b9-326c-4051-89f3-31a170c8f3d8", + "id": "6a92faaa-d416-4344-8551-124c76668e47", "name": "Search shipments, containers, and tracking requests", "request": { "name": "Search shipments, containers, and tracking requests", @@ -17744,7 +25255,7 @@ }, "response": [ { - "id": "2acd82e5-10b1-4337-9165-7c33a7b418c5", + "id": "d53860d3-7d73-4f69-ba02-fdcac8a8014d", "name": "Successful search results", "originalRequest": { "url": { @@ -17792,12 +25303,12 @@ "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"tracking_request\",\n \"attributes\": {\n \"entity_type\": \"\",\n \"number\": \"\",\n \"shipment_id\": \"\",\n \"scac\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_name\": \"\",\n \"containers_count\": \"\",\n \"tracking_stopped\": \"\",\n \"tracking_stopped_reason\": \"\",\n \"status\": \"\",\n \"failed_reason\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"updated_at\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"cargo\",\n \"attributes\": {\n \"entity_type\": \"\",\n \"number\": \"\",\n \"shipment_id\": \"\",\n \"scac\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_name\": \"\",\n \"containers_count\": \"\",\n \"tracking_stopped\": \"\",\n \"tracking_stopped_reason\": \"\",\n \"status\": \"\",\n \"failed_reason\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"updated_at\": \"\"\n }\n }\n ]\n}", + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"search_result\",\n \"attributes\": {\n \"entity_type\": \"cargo\",\n \"number\": \"\",\n \"shipment_id\": \"\",\n \"scac\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_name\": \"\",\n \"containers_count\": \"\",\n \"tracking_stopped\": \"\",\n \"tracking_stopped_reason\": \"\",\n \"status\": \"\",\n \"failed_reason\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"updated_at\": \"\"\n }\n },\n {\n \"id\": \"\",\n \"type\": \"search_result\",\n \"attributes\": {\n \"entity_type\": \"shipment\",\n \"number\": \"\",\n \"shipment_id\": \"\",\n \"scac\": \"\",\n \"port_of_lading_name\": \"\",\n \"port_of_discharge_name\": \"\",\n \"containers_count\": \"\",\n \"tracking_stopped\": \"\",\n \"tracking_stopped_reason\": \"\",\n \"status\": \"\",\n \"failed_reason\": \"\",\n \"ref_numbers\": [\n \"\",\n \"\"\n ],\n \"created_at\": \"\",\n \"updated_at\": \"\"\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "7e8290c7-4d17-4a04-92f5-477e712efaf5", + "id": "3e00b24e-2a6f-4a06-af6c-37566c775b73", "name": "Bad request — missing required `query` parameter", "originalRequest": { "url": { @@ -17850,7 +25361,7 @@ "_postman_previewlanguage": "json" }, { - "id": "c4878add-7baf-44af-b6b0-ef5423f9455f", + "id": "cc9517d4-3ef7-4a4a-b949-c85f668e7bcc", "name": "Unauthorized — missing or invalid API token", "originalRequest": { "url": { @@ -17898,7 +25409,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -17915,7 +25426,7 @@ "description": "", "item": [ { - "id": "3f1fa00d-ac8c-4504-bd77-5eac9ed43e39", + "id": "8c2f8d5e-8ed8-47b4-a4c4-f3f263164555", "name": "list-parties", "request": { "name": "list-parties", @@ -17964,7 +25475,7 @@ }, "response": [ { - "id": "c3128a04-ca92-480b-9174-c7033c8a3cc2", + "id": "47d56b20-8dc1-4d57-9297-025f70620f10", "name": "OK", "originalRequest": { "url": { @@ -18021,7 +25532,7 @@ "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n },\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n }\n ],\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", + "body": "{\n \"data\": [\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n },\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n }\n ],\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -18032,7 +25543,7 @@ } }, { - "id": "b21d9d7c-c502-4d4d-9025-f74dbea797ea", + "id": "ccb989af-c1fa-4dcd-9d10-41756f081cbe", "name": "post-party", "request": { "name": "post-party", @@ -18075,7 +25586,7 @@ }, "response": [ { - "id": "b60008bd-0e85-4648-b5e3-5b4626caa7eb", + "id": "df9ed6f8-38f2-4d54-b0ac-8c3e59f75fcc", "name": "Party Created", "originalRequest": { "url": { @@ -18126,12 +25637,12 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"data\": {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n },\n \"links\": {\n \"self\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "dc6427ec-a095-4acb-b876-63e80fe2d56e", + "id": "9ea495db-177d-4086-9216-01b1a2cf92ff", "name": "Unprocessable Entity", "originalRequest": { "url": { @@ -18182,7 +25693,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -18193,7 +25704,7 @@ } }, { - "id": "4d9a61b1-a591-4b67-81dc-b3c8b98e3a6e", + "id": "55d32e97-9807-472b-9424-c2ccf2dc23e9", "name": "List shipment party roles", "request": { "name": "List shipment party roles", @@ -18236,7 +25747,7 @@ }, "response": [ { - "id": "d83cdbf5-21ef-49d0-bee9-a0711b8d406a", + "id": "536a21d1-d99a-45a6-8a08-3365c7218851", "name": "OK", "originalRequest": { "url": { @@ -18287,12 +25798,12 @@ "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"shipper\",\n \"roleable_type\": \"Cargo\",\n \"roleable_id\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"customs_broker\",\n \"roleable_type\": \"Shipment\",\n \"roleable_id\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n ],\n \"included\": [\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n },\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n }\n ],\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"notify_party\",\n \"roleable_type\": \"Shipment\",\n \"roleable_id\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"pickup_dray_carrier\",\n \"roleable_type\": \"Cargo\",\n \"roleable_id\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n ],\n \"included\": [\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n },\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n }\n ],\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "02d693e1-4a76-4274-a50d-840a345a14da", + "id": "78a14281-9dec-4156-97a4-449779179729", "name": "Unauthorized. Also returned when the record belongs to another account.", "originalRequest": { "url": { @@ -18343,12 +25854,12 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "afc839dd-0f4d-424c-a054-aca7a694c90d", + "id": "da64fda6-093e-455d-a6c5-466693c32887", "name": "Not Found", "originalRequest": { "url": { @@ -18375,6 +25886,10 @@ ] }, "header": [ + { + "key": "Accept", + "value": "application/json" + }, { "description": { "content": "Added as a part of security scheme: apikey", @@ -18389,9 +25904,15 @@ }, "status": "Not Found", "code": 404, - "header": [], + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], - "_postman_previewlanguage": "text" + "_postman_previewlanguage": "json" } ], "event": [], @@ -18400,7 +25921,7 @@ } }, { - "id": "e7f77717-6d9c-409b-aba9-583477bd2cbe", + "id": "b6e1022f-1b5f-4813-8eda-fd71ed685df1", "name": "Assign a shipment party role", "request": { "name": "Assign a shipment party role", @@ -18444,7 +25965,7 @@ "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"pickup_dray_carrier\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n}", + "raw": "{\n \"data\": {\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"freight_forwarder\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -18456,7 +25977,7 @@ }, "response": [ { - "id": "d0fcf34e-43ec-4a72-9475-307100d356ba", + "id": "6193ddc7-949c-4a9e-b3eb-d3d20f180ff7", "name": "Created", "originalRequest": { "url": { @@ -18503,7 +26024,7 @@ "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"pickup_dray_carrier\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n}", + "raw": "{\n \"data\": {\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"freight_forwarder\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -18520,12 +26041,12 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"customs_broker\",\n \"roleable_type\": \"Cargo\",\n \"roleable_id\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n },\n \"included\": [\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n },\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n }\n ],\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"customer\",\n \"roleable_type\": \"Cargo\",\n \"roleable_id\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n },\n \"included\": [\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n },\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n }\n ],\n \"links\": {\n \"self\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "d43b3029-b191-4614-9bdc-6d642ed33126", + "id": "3b106aba-ba32-489f-972a-a694b7958622", "name": "Unauthorized. Also returned when the party or the record belongs to another account.", "originalRequest": { "url": { @@ -18572,7 +26093,7 @@ "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"pickup_dray_carrier\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n}", + "raw": "{\n \"data\": {\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"freight_forwarder\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -18589,12 +26110,12 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "f0f05ba9-8694-46e4-a2ce-d55c29dbba0c", + "id": "b637823e-3bc3-4082-8df1-354569f28729", "name": "Not Found", "originalRequest": { "url": { @@ -18625,6 +26146,10 @@ "key": "Content-Type", "value": "application/json" }, + { + "key": "Accept", + "value": "application/json" + }, { "description": { "content": "Added as a part of security scheme: apikey", @@ -18637,7 +26162,7 @@ "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"pickup_dray_carrier\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n}", + "raw": "{\n \"data\": {\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"freight_forwarder\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -18648,12 +26173,18 @@ }, "status": "Not Found", "code": 404, - "header": [], + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], - "_postman_previewlanguage": "text" + "_postman_previewlanguage": "json" }, { - "id": "32f08f42-5807-4700-ad33-65e20677af37", + "id": "13baac83-ce0d-492e-ad08-5a494e51a073", "name": "Unprocessable Entity", "originalRequest": { "url": { @@ -18700,7 +26231,7 @@ "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"data\": {\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"pickup_dray_carrier\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n}", + "raw": "{\n \"data\": {\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"freight_forwarder\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -18717,7 +26248,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -18728,7 +26259,7 @@ } }, { - "id": "ebc8973d-a8be-4210-bb53-b752efcb3856", + "id": "8d538077-434b-49d9-a391-58cf8ad52828", "name": "Remove a shipment party role", "request": { "name": "Remove a shipment party role", @@ -18782,7 +26313,7 @@ }, "response": [ { - "id": "745577d9-fb8c-4121-8bc8-3ac5049c2180", + "id": "458df2a6-9065-451b-98d4-c3770bc4cb97", "name": "No Content", "originalRequest": { "url": { @@ -18839,7 +26370,7 @@ "_postman_previewlanguage": "text" }, { - "id": "2c145c0b-5db1-4fca-a94f-00c6e750837e", + "id": "4bf0be8c-e85d-4d15-9135-ba2b6af87127", "name": "Unauthorized. Also returned when the record belongs to another account.", "originalRequest": { "url": { @@ -18901,12 +26432,12 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "5457075c-d797-4cf6-b947-f1c0b65861da", + "id": "d5c64297-1cef-4b98-a151-79f6639bc659", "name": "Not Found", "originalRequest": { "url": { @@ -18944,6 +26475,10 @@ ] }, "header": [ + { + "key": "Accept", + "value": "application/json" + }, { "description": { "content": "Added as a part of security scheme: apikey", @@ -18958,9 +26493,15 @@ }, "status": "Not Found", "code": 404, - "header": [], + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], - "_postman_previewlanguage": "text" + "_postman_previewlanguage": "json" } ], "event": [], @@ -18969,7 +26510,7 @@ } }, { - "id": "e300b873-2b16-42ac-a2f9-18eec0d1cb58", + "id": "cfff2f06-b733-4d6f-8f0b-39d1b3642fa5", "name": "List container party roles", "request": { "name": "List container party roles", @@ -19012,7 +26553,7 @@ }, "response": [ { - "id": "638af48e-b52f-497f-a909-6c5a50674273", + "id": "82fc6806-3376-4977-a8c6-090a8d58720d", "name": "OK", "originalRequest": { "url": { @@ -19063,12 +26604,12 @@ "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"shipper\",\n \"roleable_type\": \"Cargo\",\n \"roleable_id\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"customs_broker\",\n \"roleable_type\": \"Shipment\",\n \"roleable_id\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n ],\n \"included\": [\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n },\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n }\n ],\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"notify_party\",\n \"roleable_type\": \"Shipment\",\n \"roleable_id\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n },\n {\n \"id\": \"\",\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"pickup_dray_carrier\",\n \"roleable_type\": \"Cargo\",\n \"roleable_id\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n }\n ],\n \"included\": [\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n },\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n }\n ],\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n },\n \"meta\": {\n \"size\": \"\",\n \"total\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "1bd008c4-93df-45f4-bee4-592218932b79", + "id": "db254238-dcfb-45e5-af66-f410621cbb97", "name": "Unauthorized. Also returned when the record belongs to another account.", "originalRequest": { "url": { @@ -19119,12 +26660,12 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "0343b33b-56fb-46cd-b428-ac29ebe8d0c2", + "id": "bfcf7d8b-e2e1-464d-8f03-b3973c800c01", "name": "Not Found", "originalRequest": { "url": { @@ -19151,6 +26692,10 @@ ] }, "header": [ + { + "key": "Accept", + "value": "application/json" + }, { "description": { "content": "Added as a part of security scheme: apikey", @@ -19165,9 +26710,15 @@ }, "status": "Not Found", "code": 404, - "header": [], + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], - "_postman_previewlanguage": "text" + "_postman_previewlanguage": "json" } ], "event": [], @@ -19176,7 +26727,7 @@ } }, { - "id": "1b4659a6-7da9-40d7-a211-19b068d7aaad", + "id": "aac44110-718e-4a3e-8b3f-8cbe34a786c3", "name": "Assign a container party role", "request": { "name": "Assign a container party role", @@ -19232,7 +26783,7 @@ }, "response": [ { - "id": "fb5b63a0-521b-403e-8e03-b56fc0f3fe0b", + "id": "b2a466de-c52b-4658-ba6e-70bee956ff11", "name": "Created", "originalRequest": { "url": { @@ -19296,12 +26847,12 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"customs_broker\",\n \"roleable_type\": \"Cargo\",\n \"roleable_id\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n },\n \"included\": [\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n },\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n }\n ],\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"party_role\",\n \"attributes\": {\n \"role\": \"customer\",\n \"roleable_type\": \"Cargo\",\n \"roleable_id\": \"\",\n \"created_at\": \"\",\n \"updated_at\": \"\"\n },\n \"relationships\": {\n \"party\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"party\"\n }\n }\n }\n },\n \"included\": [\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n },\n {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n }\n ],\n \"links\": {\n \"self\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "42e281a0-3f84-486b-9bfa-27834233527d", + "id": "83fd7da1-9d1b-4ae3-b634-bb13b92f738c", "name": "Unauthorized. Also returned when the party or the record belongs to another account.", "originalRequest": { "url": { @@ -19365,12 +26916,12 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "b5152596-3520-45c5-a9c7-62b7cd6016ed", + "id": "f795da56-2203-40fc-8774-330961a9d75d", "name": "Not Found", "originalRequest": { "url": { @@ -19401,6 +26952,10 @@ "key": "Content-Type", "value": "application/json" }, + { + "key": "Accept", + "value": "application/json" + }, { "description": { "content": "Added as a part of security scheme: apikey", @@ -19424,12 +26979,18 @@ }, "status": "Not Found", "code": 404, - "header": [], + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], - "_postman_previewlanguage": "text" + "_postman_previewlanguage": "json" }, { - "id": "a8b43131-a081-4713-9b5b-65a85af06f12", + "id": "06d7e9c7-77fe-4ee2-a61e-b29d86ea95cd", "name": "Unprocessable Entity", "originalRequest": { "url": { @@ -19493,7 +27054,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -19504,7 +27065,7 @@ } }, { - "id": "b8e37a4e-a9c9-4c8a-9a42-b80c274994db", + "id": "bc237698-292f-4a53-955e-6060c367fba6", "name": "Remove a container party role", "request": { "name": "Remove a container party role", @@ -19558,7 +27119,7 @@ }, "response": [ { - "id": "05bec6e7-ac58-4d06-a00c-006b66e98742", + "id": "94249906-5afc-4b89-acf3-fa317bc15051", "name": "No Content", "originalRequest": { "url": { @@ -19615,7 +27176,7 @@ "_postman_previewlanguage": "text" }, { - "id": "86908270-4ca8-4d59-ab82-0616f2a4fa3a", + "id": "24f9a843-599b-4682-88d3-df657c5d71da", "name": "Unauthorized. Also returned when the record belongs to another account.", "originalRequest": { "url": { @@ -19677,12 +27238,12 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "e2a3c101-90a5-4617-b8b4-28a532d1a999", + "id": "d4c3963c-c919-4cd2-8009-fdd224c4da5f", "name": "Not Found", "originalRequest": { "url": { @@ -19720,6 +27281,10 @@ ] }, "header": [ + { + "key": "Accept", + "value": "application/json" + }, { "description": { "content": "Added as a part of security scheme: apikey", @@ -19734,9 +27299,15 @@ }, "status": "Not Found", "code": 404, - "header": [], + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], - "_postman_previewlanguage": "text" + "_postman_previewlanguage": "json" } ], "event": [], @@ -19745,12 +27316,12 @@ } }, { - "id": "0d10cb06-64ea-455e-9e90-bc7cc6a3e8d5", + "id": "cc80d021-2d86-435c-9e4b-dde41dd97dc0", "name": "get-parties-id", "request": { "name": "get-parties-id", "description": { - "content": "Returns a party by it's given identifier", + "content": "Returns a party by it's given identifier.", "type": "text/plain" }, "url": { @@ -19787,7 +27358,7 @@ }, "response": [ { - "id": "833430c6-bb4b-4c18-85bd-0cd55d8b3029", + "id": "7a5d7808-7e48-4789-acb9-1286bba0f11d", "name": "OK", "originalRequest": { "url": { @@ -19829,15 +27400,125 @@ "method": "GET", "body": {} }, - "status": "OK", - "code": 200, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "e2d706bf-5e65-4ab5-b43f-b98d1fb0047f", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "parties", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "0e7bdbd8-2731-445e-9039-186ef98ea29b", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "parties", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Not Found", + "code": 404, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -19848,12 +27529,12 @@ } }, { - "id": "95f1b47a-98d6-471b-b5de-a684855bcedd", + "id": "7486bbd1-422d-4f0c-8d35-9c0fb752da5f", "name": "edit-party", "request": { "name": "edit-party", "description": { - "content": "Updates a party", + "content": "Updates a party.", "type": "text/plain" }, "url": { @@ -19903,7 +27584,7 @@ }, "response": [ { - "id": "d7df6624-ae27-48ad-a23a-d2968168b045", + "id": "e1632d82-2e5d-485e-bd84-1b98d7ae5897", "name": "OK", "originalRequest": { "url": { @@ -19966,12 +27647,148 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "body": "{\n \"data\": {\n \"attributes\": {\n \"company_name\": \"\"\n },\n \"id\": \"\",\n \"type\": \"party\"\n },\n \"links\": {\n \"self\": \"\"\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "f309602c-9976-48cd-8ac6-1ac1cce64c2c", + "name": "Unauthorized. The API token is missing or invalid, or the account may not perform this action.", + "originalRequest": { + "url": { + "path": [ + "parties", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"party\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Unauthorized", + "code": 401, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "72e75c6b-cc74-43c9-94ed-12545391ffb4", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "parties", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "PATCH", + "body": { + "mode": "raw", + "raw": "{\n \"data\": {\n \"type\": \"party\",\n \"attributes\": {\n \"company_name\": \"\"\n }\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "5f36a915-c349-4f65-849e-ce2ac9c3de0d", + "id": "ed7645a8-0cf5-4404-8273-a4802e0a2450", "name": "Unprocessable Entity", "originalRequest": { "url": { @@ -20034,7 +27851,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -20051,7 +27868,7 @@ "description": "", "item": [ { - "id": "a24ae396-c177-4b3b-a190-208033e73f30", + "id": "62856aa1-8285-418b-8f34-7f4424f6dca0", "name": "Get the current credential", "request": { "name": "Get the current credential", @@ -20090,7 +27907,7 @@ }, "response": [ { - "id": "984037ab-a8fc-4fab-820d-9cb33f33600b", + "id": "b1358eaa-182e-46db-99d0-f7af944a9343", "name": "OK", "originalRequest": { "url": { @@ -20137,12 +27954,12 @@ "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"credential\",\n \"attributes\": {\n \"kind\": \"api_key\",\n \"channel\": \"api\",\n \"features\": {\n \"data_out_api\": {\n \"status\": \"not_enabled\"\n },\n \"custom_fields\": {\n \"status\": \"requires_paid_plan\"\n },\n \"routing_data\": {\n \"status\": \"available\"\n },\n \"rail_data\": {\n \"status\": \"requires_paid_plan\"\n },\n \"stop_tracking\": {\n \"status\": \"requires_paid_plan\"\n },\n \"trade_intel\": {\n \"status\": \"not_enabled\"\n }\n },\n \"name\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n }\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\",\n \"company_type\": \"trucking_company\",\n \"scac\": \"\",\n \"abbr_name\": \"\",\n \"city\": \"\",\n \"state_abbr\": \"\",\n \"country\": \"\",\n \"plan\": \"in_trial\",\n \"tracking_slots\": {\n \"limit\": \"\",\n \"used\": \"\",\n \"remaining\": \"\"\n }\n }\n }\n ]\n}", + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"credential\",\n \"attributes\": {\n \"kind\": \"user\",\n \"channel\": \"api\",\n \"features\": {\n \"data_out_api\": {\n \"status\": \"requires_user_credential\"\n },\n \"custom_fields\": {\n \"status\": \"requires_paid_plan\"\n },\n \"routing_data\": {\n \"status\": \"not_enabled\"\n },\n \"rail_data\": {\n \"status\": \"requires_user_credential\"\n },\n \"stop_tracking\": {\n \"status\": \"requires_user_credential\"\n },\n \"trade_intel\": {\n \"status\": \"not_enabled\"\n }\n },\n \"name\": \"\"\n },\n \"relationships\": {\n \"account\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"account\"\n }\n },\n \"user\": {\n \"data\": {\n \"id\": \"\",\n \"type\": \"user\"\n }\n }\n }\n },\n \"included\": [\n {\n \"id\": \"\",\n \"type\": \"account\",\n \"attributes\": {\n \"company_name\": \"\",\n \"company_type\": \"customs_broker\",\n \"scac\": \"\",\n \"abbr_name\": \"\",\n \"city\": \"\",\n \"state_abbr\": \"\",\n \"country\": \"\",\n \"plan\": \"locked\",\n \"tracking_slots\": {\n \"limit\": \"\",\n \"used\": \"\",\n \"remaining\": \"\"\n }\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "ab745ba1-9e8f-421a-980b-6498a6ebcde8", + "id": "407b672b-3f0f-40e8-8d9b-2b9b03ce2166", "name": "Unauthorized. The credential is missing, invalid, disabled, or names an account it cannot access.", "originalRequest": { "url": { @@ -20189,7 +28006,7 @@ "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 6797.734133184963,\n \"key_1\": 8720\n }\n },\n {\n \"title\": \"\",\n \"detail\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": \"string\",\n \"key_1\": 4311\n }\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -20206,7 +28023,7 @@ "description": "", "item": [ { - "id": "50dbb586-d9c8-46d8-8c33-97be53a83e15", + "id": "608ba0ab-0062-426a-b512-7c8cf1bda90c", "name": "Shipping Lines", "request": { "name": "Shipping Lines", @@ -20236,7 +28053,7 @@ }, "response": [ { - "id": "f13ab6c8-477d-42c9-ae1d-3bb32743a4b0", + "id": "65f1a0cf-ba38-4894-8785-b71467939b42", "name": "OK", "originalRequest": { "url": { @@ -20274,7 +28091,7 @@ "value": "application/json" } ], - "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"attributes\": {\n \"scac\": \"\",\n \"name\": \"\",\n \"alternative_scacs\": [\n \"\",\n \"\"\n ],\n \"short_name\": \"\",\n \"bill_of_lading_tracking_support\": \"\",\n \"booking_number_tracking_support\": \"\",\n \"container_number_tracking_support\": \"\"\n },\n \"type\": \"shipping_line\"\n },\n {\n \"id\": \"\",\n \"attributes\": {\n \"scac\": \"\",\n \"name\": \"\",\n \"alternative_scacs\": [\n \"\",\n \"\"\n ],\n \"short_name\": \"\",\n \"bill_of_lading_tracking_support\": \"\",\n \"booking_number_tracking_support\": \"\",\n \"container_number_tracking_support\": \"\"\n },\n \"type\": \"shipping_line\"\n }\n ],\n \"links\": {\n \"last\": \"\",\n \"next\": \"\",\n \"prev\": \"\",\n \"first\": \"\",\n \"self\": \"\"\n }\n}", + "body": "{\n \"data\": [\n {\n \"id\": \"\",\n \"attributes\": {\n \"scac\": \"\",\n \"name\": \"\",\n \"alternative_scacs\": [\n \"\",\n \"\"\n ],\n \"short_name\": \"\",\n \"bill_of_lading_tracking_support\": \"\",\n \"booking_number_tracking_support\": \"\",\n \"container_number_tracking_support\": \"\"\n },\n \"type\": \"shipping_line\"\n },\n {\n \"id\": \"\",\n \"attributes\": {\n \"scac\": \"\",\n \"name\": \"\",\n \"alternative_scacs\": [\n \"\",\n \"\"\n ],\n \"short_name\": \"\",\n \"bill_of_lading_tracking_support\": \"\",\n \"booking_number_tracking_support\": \"\",\n \"container_number_tracking_support\": \"\"\n },\n \"type\": \"shipping_line\"\n }\n ],\n \"links\": {\n \"self\": \"\",\n \"current\": \"\",\n \"first\": \"\",\n \"prev\": \"\",\n \"next\": \"\",\n \"last\": \"\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -20285,7 +28102,7 @@ } }, { - "id": "cafc4d1a-fa4b-4a68-bba5-28bcd5af9da2", + "id": "23dd3007-8fe2-4d11-9614-e3c4b4d3e928", "name": "Get a single shipping line", "request": { "name": "Get a single shipping line", @@ -20327,7 +28144,7 @@ }, "response": [ { - "id": "2a3315eb-b569-49fc-b13b-1f4adeebc2e5", + "id": "f3353b99-7262-4fff-89df-41723e7a4b4b", "name": "OK", "originalRequest": { "url": { @@ -20380,6 +28197,61 @@ "body": "{\n \"data\": {\n \"id\": \"\",\n \"attributes\": {\n \"scac\": \"\",\n \"name\": \"\",\n \"alternative_scacs\": [\n \"\",\n \"\"\n ],\n \"short_name\": \"\",\n \"bill_of_lading_tracking_support\": \"\",\n \"booking_number_tracking_support\": \"\",\n \"container_number_tracking_support\": \"\"\n },\n \"type\": \"shipping_line\"\n }\n}", "cookie": [], "_postman_previewlanguage": "json" + }, + { + "id": "652fcae8-1e01-4160-bec7-58b2c30b9503", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "shipping_lines", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" } ], "event": [], @@ -20394,7 +28266,7 @@ "description": "", "item": [ { - "id": "83977424-5528-404c-8407-a068cbb33a20", + "id": "3061ef51-3477-43a4-a93a-d301dab52e0b", "name": "Get a vessel using the id", "request": { "name": "Get a vessel using the id", @@ -20455,8 +28327,82 @@ }, "response": [ { - "id": "7a96e8f9-bd00-41cd-af3d-b238732ca3d6", - "name": "OK", + "id": "a895e7e6-7860-4aa4-a9cf-49106f5aaba2", + "name": "OK", + "originalRequest": { + "url": { + "path": [ + "vessels", + ":id" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "ISO 8601 timestamp to filter positions from. 7 days by default.", + "type": "text/plain" + }, + "key": "show_positions[from_timestamp]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "ISO 8601 timestamp to filter positions up to. Current time by default.", + "type": "text/plain" + }, + "key": "show_positions[to_timestamp]", + "value": "" + } + ], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"vessel\",\n \"attributes\": {\n \"name\": \"\",\n \"imo\": \"\",\n \"mmsi\": \"\",\n \"latitude\": \"\",\n \"longitude\": \"\",\n \"nautical_speed_knots\": \"\",\n \"navigational_heading_degrees\": \"\",\n \"position_timestamp\": \"\",\n \"positions\": [\n {\n \"latitude\": \"\",\n \"longitude\": \"\",\n \"heading\": \"\",\n \"timestamp\": \"\",\n \"estimated\": \"\"\n },\n {\n \"latitude\": \"\",\n \"longitude\": \"\",\n \"heading\": \"\",\n \"timestamp\": \"\",\n \"estimated\": \"\"\n }\n ]\n }\n }\n}", + "cookie": [], + "_postman_previewlanguage": "json" + }, + { + "id": "808ea44f-b04a-475c-97da-a2b2bf347a43", + "name": "Forbidden - Feature not enabled", "originalRequest": { "url": { "path": [ @@ -20516,21 +28462,21 @@ "method": "GET", "body": {} }, - "status": "OK", - "code": 200, + "status": "Forbidden", + "code": 403, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"data\": {\n \"id\": \"\",\n \"type\": \"vessel\",\n \"attributes\": {\n \"name\": \"\",\n \"imo\": \"\",\n \"mmsi\": \"\",\n \"latitude\": \"\",\n \"longitude\": \"\",\n \"nautical_speed_knots\": \"\",\n \"navigational_heading_degrees\": \"\",\n \"position_timestamp\": \"\",\n \"positions\": [\n {\n \"latitude\": \"\",\n \"longitude\": \"\",\n \"heading\": \"\",\n \"timestamp\": \"\",\n \"estimated\": \"\"\n },\n {\n \"latitude\": \"\",\n \"longitude\": \"\",\n \"heading\": \"\",\n \"timestamp\": \"\",\n \"estimated\": \"\"\n }\n ]\n }\n }\n}", + "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"source\": {},\n \"title\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"source\": {},\n \"title\": \"\",\n \"detail\": \"\"\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" }, { - "id": "2131b8d5-19cf-49a0-8002-1a8805e21c41", - "name": "Forbidden - Feature not enabled", + "id": "1f32f3ab-1ede-451e-bf03-6031a4f427d9", + "name": "Not Found", "originalRequest": { "url": { "path": [ @@ -20590,15 +28536,15 @@ "method": "GET", "body": {} }, - "status": "Forbidden", - "code": 403, + "status": "Not Found", + "code": 404, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"source\": {},\n \"title\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"source\": {},\n \"title\": \"\",\n \"detail\": \"\"\n }\n ]\n}", + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" } @@ -20609,7 +28555,7 @@ } }, { - "id": "01dbf5e3-e2f7-4802-b8e0-a0ee3e365b3c", + "id": "f9991617-c207-4c67-b3f6-1d6b39127a46", "name": "Get a vessel using the imo", "request": { "name": "Get a vessel using the imo", @@ -20670,7 +28616,7 @@ }, "response": [ { - "id": "6ea6ff30-df3a-4651-afdf-ec4da08a5244", + "id": "5994b03a-9261-4793-9eb7-78f3fabf6514", "name": "OK", "originalRequest": { "url": { @@ -20744,7 +28690,7 @@ "_postman_previewlanguage": "json" }, { - "id": "6a9a06d5-458f-4d1f-b5b1-e69a1b5c0970", + "id": "0cf910fd-92bb-4ec4-8d95-f141c41c1028", "name": "Forbidden - Feature not enabled", "originalRequest": { "url": { @@ -20816,6 +28762,80 @@ "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"source\": {},\n \"title\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"source\": {},\n \"title\": \"\",\n \"detail\": \"\"\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" + }, + { + "id": "edb182a3-9063-40ec-8e19-c6dd11bedf89", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "vessels", + ":imo" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": true, + "description": { + "content": "ISO 8601 timestamp to filter positions from. 7 days by default.", + "type": "text/plain" + }, + "key": "show_positions[from_timestamp]", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "ISO 8601 timestamp to filter positions up to. Current time by default.", + "type": "text/plain" + }, + "key": "show_positions[to_timestamp]", + "value": "" + } + ], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "imo" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" } ], "event": [], @@ -20824,7 +28844,7 @@ } }, { - "id": "fb5421a1-79cf-4b7b-a4a7-d1825cbde091", + "id": "a05d9956-7f27-4cb8-b75a-7b2d42481fb3", "name": "Get vessel future positions", "request": { "name": "Get vessel future positions", @@ -20886,7 +28906,7 @@ }, "response": [ { - "id": "e8134335-3b40-4c66-943f-8f081786b8e3", + "id": "93777fd2-442a-436e-aad6-9b2e365a8300", "name": "OK", "originalRequest": { "url": { @@ -20961,7 +28981,7 @@ "_postman_previewlanguage": "json" }, { - "id": "bc28116e-5e66-4ba4-aeb1-58c8f0c53ef6", + "id": "856ecac0-004b-484e-9810-81876aca0be8", "name": "Forbidden - Routing data feature is not enabled for this account", "originalRequest": { "url": { @@ -21034,6 +29054,81 @@ "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" + }, + { + "id": "ade50c24-384b-422d-a544-5588ba5042f7", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "vessels", + ":id", + "future_positions" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": false, + "description": { + "content": "(Required) The destination port id", + "type": "text/plain" + }, + "key": "port_id", + "value": "" + }, + { + "disabled": false, + "description": { + "content": "(Required) The previous port id", + "type": "text/plain" + }, + "key": "previous_port_id", + "value": "" + } + ], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" } ], "event": [], @@ -21042,7 +29137,7 @@ } }, { - "id": "c66e9661-5222-4b6a-950b-b25cd8bfaa85", + "id": "4d4491ab-3d44-4595-ad3d-500ac8e096b0", "name": "Get vessel future positions from coordinates", "request": { "name": "Get vessel future positions from coordinates", @@ -21122,7 +29217,7 @@ }, "response": [ { - "id": "4874100f-e36a-4fc6-9431-fb394d495377", + "id": "41fe61f3-592d-408c-a2c0-3ae3fdccd4f0", "name": "OK", "originalRequest": { "url": { @@ -21215,7 +29310,7 @@ "_postman_previewlanguage": "json" }, { - "id": "3310aaba-7672-4dff-afd5-3fd8f9a0d1ae", + "id": "882eb986-79a8-4dd2-8f31-e0e388cd9f08", "name": "Forbidden - Routing data feature is not enabled for this account", "originalRequest": { "url": { @@ -21306,6 +29401,99 @@ "body": "{\n \"errors\": [\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n },\n {\n \"status\": \"\",\n \"title\": \"\",\n \"detail\": \"\"\n }\n ]\n}", "cookie": [], "_postman_previewlanguage": "json" + }, + { + "id": "0a0d2bc0-440f-4290-b945-df10804c7978", + "name": "Not Found", + "originalRequest": { + "url": { + "path": [ + "vessels", + ":id", + "future_positions_with_coordinates" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [ + { + "disabled": false, + "description": { + "content": "(Required) The destination port id", + "type": "text/plain" + }, + "key": "port_id", + "value": "" + }, + { + "disabled": false, + "description": { + "content": "(Required) The previous port id", + "type": "text/plain" + }, + "key": "previous_port_id", + "value": "" + }, + { + "disabled": false, + "description": { + "content": "(Required) Starting latitude coordinate", + "type": "text/plain" + }, + "key": "latitude", + "value": "" + }, + { + "disabled": false, + "description": { + "content": "(Required) Starting longitude coordinate", + "type": "text/plain" + }, + "key": "longitude", + "value": "" + } + ], + "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) ", + "type": "text/plain" + }, + "type": "any", + "value": "", + "key": "id" + } + ] + }, + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "Authorization", + "value": "" + } + ], + "method": "GET", + "body": {} + }, + "status": "Not Found", + "code": 404, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"errors\": [\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 2642,\n \"key_1\": \"string\",\n \"key_2\": 699.1005227377789,\n \"key_3\": 5517.35089893312\n }\n },\n {\n \"detail\": \"\",\n \"title\": \"\",\n \"source\": {\n \"pointer\": \"\",\n \"parameter\": \"\"\n },\n \"code\": \"\",\n \"status\": \"\",\n \"meta\": {\n \"key_0\": 3834\n }\n }\n ]\n}", + "cookie": [], + "_postman_previewlanguage": "json" } ], "event": [], @@ -21344,7 +29532,7 @@ } ], "info": { - "_postman_id": "65a43271-1123-4623-beb6-a49b5fd756ec", + "_postman_id": "795b57d9-cff0-4577-ba81-ad122bc567bb", "name": "Terminal49 API Reference", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "description": {