---
title: "Couriers"
description: "Discover courier companies, zones, payment options, and parcel limits."
---

# Couriers

Use `GET /v1/couriers` to show users which transport companies are available before requesting quotes.

## Endpoint

```http
GET /v1/couriers
```

## Example

```bash
curl https://entrega.ao/v1/couriers \
  -H "Authorization: Bearer $ENTREGA_SECRET_KEY"
```

```json
{
  "data": [
    {
      "id": "0b1e6fc0-a821-4be4-8bd7-df56b8c0caa4",
      "name": "Luanda Express",
      "slug": "luanda-express",
      "logo_url": "https://cdn.entrega.ao/couriers/luanda-express.png",
      "service_zones": ["Luanda"],
      "base_fee_aoa": 2500,
      "base_eta_minutes": 45,
      "active_drivers": 18,
      "capabilities": {
        "bank_transfer_enabled": true,
        "bank_name": "BAI",
        "bank_iban": "AO06...",
        "bank_account_holder": "Luanda Express",
        "require_delivery_pin": false,
        "parcel_types": ["small", "medium"],
        "max_weight_grams": 10000
      }
    }
  ]
}
```

## Capability fields

| Field | Meaning |
| --- | --- |
| `bank_transfer_enabled` | Courier can receive bank transfer payment flows. |
| `require_delivery_pin` | Courier requires recipient PIN confirmation. |
| `parcel_types` | Parcel categories accepted by the courier. |
| `max_weight_grams` | Maximum supported parcel weight. |

## Empty response

If the upstream courier configuration is unavailable, Entrega returns `{"data": []}` so your UI can degrade gracefully.
