> ## Documentation Index
> Fetch the complete documentation index at: https://developers.perform.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve carrier configurations

> Discover the carriers configured in your account — and the reference values every other endpoint expects.

`GET /v5/carrier-configs/` lists the carriers configured under **Settings > Carriers**. It's the discovery endpoint for two identifiers the rest of the API expects:

* **`carrier_reference`** — *your* name for one carrier configuration. This is what [Create Shipment](/guides/create-shipment) and [Create Booking](/guides/create-booking) accept; an unconfigured value is rejected.
* **`carrier_id`** — Perform.AI's 6-character identifier for the carrier itself. Used as a filter in [List Shipments](/guides/list-shipments) and [PUDO locations](/guides/pudo-locations).

The same carrier can appear multiple times: one row per configuration, each with its own `carrier_reference` — for example a `ups-outbound` and a `ups-returns` account.

```bash theme={null}
curl --request GET \
  --url 'https://api.perform.ai/v5/carrier-configs/?limit=100' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
```

```json theme={null}
{
  "api_response": "200",
  "message": "Total pages: 1",
  "count": 2,
  "pages": 1,
  "data": [
    {
      "carrier_id": "dhleco",
      "carrier_name": "DHL eCommerce",
      "carrier_reference": "dhl-ecommerce-de",
      "carrier_description": "outbound Germany"
    },
    {
      "carrier_id": "upsglo",
      "carrier_name": "UPS",
      "carrier_reference": "ups-returns",
      "carrier_description": "return booking"
    }
  ]
}
```

Notes:

* Pagination is page-based with an unusually high ceiling: `limit` default 25, **maximum 2000** — most accounts can fetch everything in one call.
* `carrier_description` is optional and may be an empty string or `null`.
* No configured carriers returns HTTP 200 with `count: 0` and empty `data`; carriers are set up in the portal (contact your account team to add integrations).

<Tip>
  Cache this list and refresh it periodically or on failure — don't call it before every shipment creation. Carrier configurations change rarely, and an unknown `carrier_reference` error on create is your signal to refresh.
</Tip>
