# Get latency

Source: https://langbot.ai/docs/api/live-events/get-latency

`GET /v1/latency`

Per-source measured lead over the public webcast, median and 90th percentile, over the last 24 hours.

**Auth.** None. Without a token the call is served as Free (the Free delay and request budget, shared per IP); send `Authorization: Bearer lb_…` for your plan's.

**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/latency"
```

**Python**

```python
from langbot import LangbotClient

async with LangbotClient() as lb:
    for s in await lb.latency():
        print(s["source_id"], s["p50_lag_ms"], s["samples"])
```

**TypeScript**

```ts
import { LangbotClient } from "@langbotai/sdk";

const lb = new LangbotClient();
const sources = await lb.latency();
console.log(sources);
```

## Response

`200 OK`

```json
{
  "ts": 1793685348576,
  "window_ms": 86400000,
  "p50_lag_ms": 16200,
  "sources": [
    { "source_id": "src_nvda_q3_2026_dialin", "kind": "sip", "p50_lag_ms": 18740, "p90_lag_ms": 23100, "samples": 412, "last_ts": 1760051000000, "events_24h": 1210, "event_p50_lag_ms": 18100 }
  ],
  "spoken_to_emitted_ms": { "p50": 72, "p90": 114, "n": 7092, "window": "24h" }
}
```

Positive lag means ahead of the public webcast; `null` when it could not be measured. How it is measured: [Live events](https://langbot.ai/docs/live-events#latency-measured).

## Errors

| Status | `code` | When |
|---|---|---|
| 401 | `token_invalid` | A token was sent and not recognised. Send a valid one, or none to call anonymously. |
| 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).
