# Get the delivery summary

Source: https://langbot.ai/docs/api/receipts/get-delivery-summary

`GET /v1/deliveries/summary`

The last 24 hours of your deliveries, with count and lead per channel.

**Auth.** An API token: `Authorization: Bearer lb_…` ([create one](https://langbot.ai/app/tokens)). Signed-in web sessions work too.

**Limits.** Counts against your plan's API requests (60, 600 or 3,000 a minute on Free, Builder and Standard).

## Request

**curl**

```bash
curl "https://api.langbot.ai/v1/deliveries/summary" \
  -H "Authorization: Bearer $LANGBOT_API_TOKEN"
```

**Python**

```python
import os

import httpx

r = httpx.get(
    "https://api.langbot.ai/v1/deliveries/summary",
    headers={"Authorization": f"Bearer {os.environ['LANGBOT_API_TOKEN']}"},
)
print(r.json())
```

**TypeScript**

```ts
const res = await fetch("https://api.langbot.ai/v1/deliveries/summary", {
  headers: { Authorization: `Bearer ${process.env.LANGBOT_API_TOKEN}` },
});
console.log(await res.json());
```

## Response

`200 OK`

```json
{
  "ts": 1760137000000,
  "since": 1760050600000,
  "window_ms": 86400000,
  "count_24h": 312,
  "median_lead_ms_24h": 10240,
  "p90_lead_ms_24h": 12900,
  "by_channel": { "socket": { "count": 300, "median_lead_ms": 10210, "p90_lead_ms": 12800 }, "webhook": { "count": 12, "median_lead_ms": 10900, "p90_lead_ms": 13400 } }
}
```

## Errors

| Status | `code` | When |
|---|---|---|
| 401 | `auth_required` | No token was sent. |
| 401 | `token_invalid` | The token was not recognised (mistyped, revoked or expired). |
| 429 | `rate_limited` | Over your request budget; wait `Retry-After` seconds. |

Every error body is `{"detail": …, "code": "…"}`; branch on `code`. All codes: [Errors](https://langbot.ai/docs/api#errors).
