Search shipment carriers
Operation ID: searchShipmentCarriers
Group: Inventory › Shipment Carriers
Open in the interactive reference
POST /inventory/shipment-carriers/search
Read-only: A read that takes its filters in the body. Changes nothing, and ignores Idempotency-Key.
Searches shipment carriers. The filters are name, whether the carrier is active, vendorId, and when the carrier last changed. There is no filter on vendorName.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Api-Version |
header | string · v1 | yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1. |
Request body
Required, application/json: searchShipmentCarriersInput.
| Field | Type | Required | Description |
|---|---|---|---|
filters |
object | yes | The filters to apply. A shipment carrier must match every filter you send. Send an empty object to return all shipment carriers. Example: {"active":true,"modifiedSince":"2026-08-01T00:00:00.000Z"}. |
filters.name |
string | no | Limits results to carriers with this name. The match is exact. Names are not unique, so this can match several carriers. |
filters.active |
boolean | no | Limits results to carriers that can be selected on new shipments when true, and to retired carriers when false. |
filters.vendorId |
string | no | Limits results to carriers linked to this vendor. An identifier matching no vendor returns an empty page. See id on GET accounting/vendors/:id. |
filters.modifiedSince |
date-time | no | Limits results to carriers changed on or after this time. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
page |
object | no | The pagination controls. Omit for the first page. Example: {"size":50}. |
page.cursor |
string | no | The cursor from the previous response's pagination.nextCursor. Omit for the first page. |
page.size |
number | no | The number of shipment carriers per page. Defaults to 50. A value above 200 is treated as 200, not rejected. |
{
"filters": {
"active": true,
"modifiedSince": "2026-08-01T00:00:00.000Z"
},
"page": {
"size": 50
}
}
Response
200 Success
Under data (searchShipmentCarriersOutput):
| Field | Type | Required | Description |
|---|---|---|---|
items |
array<object> | yes | The shipment carriers on this page, ordered by id. An empty array when nothing matches. Example: [{"id":"5c2e9a71-3f48-4b02-8d6e-9a1c74b0e332","name":"DHL Express","active":true,"vendorId":"d4a71e08-6b95-4f23-b7c1-52e08a936d47","vendorName":"DHL International GmbH","lastModifiedDate":"2026-08-03T11:15:00.000Z"}]. |
items[].id |
string | yes | The unique identifier for the shipment carrier. |
items[].name |
string | yes | The name of the carrier, for example 'DHL Express'. Names are not unique, so use id to address one carrier. |
items[].active |
boolean | no | Whether the carrier can be selected on new shipments. Absent on carriers created before the active flag existed. |
items[].vendorId |
string | no | The unique identifier for the vendor this carrier bills through. Absent when the carrier has no vendor. See id on GET accounting/vendors/:id. |
items[].vendorName |
string | no | The name of the vendor this carrier bills through. Absent when the carrier has no vendor. It is resolved from the vendor at read time and is not stored on the carrier. |
items[].lastModifiedDate |
date-time | no | The date and time the carrier record last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
pagination |
object | yes | The pagination cursor for this page. Example: {"hasMore":false}. |
pagination.nextCursor |
string | no | The cursor for the next page. Pass it as page.cursor. Absent on the last page. |
pagination.hasMore |
boolean | yes | True when more shipment carriers remain beyond this page. |
{
"data": {
"items": [
{
"id": "5c2e9a71-3f48-4b02-8d6e-9a1c74b0e332",
"name": "DHL Express",
"active": true,
"vendorId": "d4a71e08-6b95-4f23-b7c1-52e08a936d47",
"vendorName": "DHL International GmbH",
"lastModifiedDate": "2026-08-03T11:15:00.000Z"
}
],
"pagination": {
"hasMore": false
}
},
"diagnostics": [
{
"code": "<code>",
"message": "<message>",
"severity": "error",
"path": [
"<path>"
],
"details": "<details>"
}
]
}
Statuses
400— Invalid request or business failure401— The request carries no valid access token.403— Not authorized404— Not found429— Too many requests from this client address. The response has no body and noRetry-Afterheader.500— Internal server error