# List shipment carriers

Operation ID: `shipmentCarriers`

Group: Inventory › Shipment Carriers

[Open in the interactive reference](https://docs.api.lensing.ai/lensing/v1/endpoints/shipmentCarriers)

`GET /inventory/shipment-carriers`

Read-only: Reads and returns; changes nothing.

Lists shipment carriers. The fields are the same as on GET inventory/shipment-carriers/:id and POST inventory/shipment-carriers/search.

To find the carriers of one vendor, filter on vendorId. vendorName can't be filtered or sorted on.

## 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`. |

## Query surface

- `id` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `name` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `active` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between
- `vendorId` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `lastModifiedDate` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between
- Orderable: id, name, active, vendorId, lastModifiedDate
- Selectable: id, name, active, vendorId, vendorName, lastModifiedDate
- `page[size]` — Page size
- `page[cursor]` — Opaque continuation cursor

## Response

`200` Success

Under `data`, an array of shipmentCarriersRow:

| Field | Type | Required | Filter | Sort | Description |
| --- | --- | --- | --- | --- | --- |
| `id` | string | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | yes | The unique identifier for the shipment carrier. Example: `"5c2e9a71-3f48-4b02-8d6e-9a1c74b0e332"`. |
| `name` | string | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | yes | The name of the carrier, for example 'DHL Express'. Names are not unique, so use id to address one carrier. Example: `"DHL Express"`. |
| `active` | boolean \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`) | yes | Whether the carrier can be selected on new shipments. Absent on carriers created before the active flag existed. Example: `true`. |
| `vendorId` | string \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | yes | The unique identifier for the vendor this carrier bills through. Absent when the carrier has no vendor. See id on GET accounting/vendors/:id. Example: `"d4a71e08-6b95-4f23-b7c1-52e08a936d47"`. |
| `vendorName` | string \| null | no | no | 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. Example: `"DHL International GmbH"`. |
| `lastModifiedDate` | date-time \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`) | yes | The date and time the carrier record last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. Example: `"2026-05-12T09:30:00.000Z"`. |

```json
{
  "data": [
    {
      "id": "5c2e9a71-3f48-4b02-8d6e-9a1c74b0e332",
      "name": "DHL Express",
      "active": true,
      "vendorId": "d4a71e08-6b95-4f23-b7c1-52e08a936d47",
      "vendorName": "DHL International GmbH",
      "lastModifiedDate": "2026-05-12T09:30:00.000Z"
    }
  ],
  "pagination": {
    "hasMore": true,
    "nextCursor": "<nextCursor>"
  }
}
```

## Statuses

- `400` — Invalid request or business failure
- `401` — The request carries no valid access token.
- `403` — Not authorized
- `404` — Not found
- `429` — Too many requests from this client address. The response has no body and no `Retry-After` header.
- `500` — Internal server error
