# List enrolled speakers

Source: https://langbot.ai/docs/api/live-events/list-enrolled-speakers

`GET /v1/speakers`

The speakers with an enrolled voiceprint, whose phrase hits can carry a verified speaker.

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

**Python**

```python
import httpx

r = httpx.get("https://api.langbot.ai/v1/speakers")
print(r.json())
```

**TypeScript**

```ts
const res = await fetch("https://api.langbot.ai/v1/speakers");
console.log(await res.json());
```

## Response

`200 OK`

```json
{
  "count": 7,
  "speakers": [
    {
      "key": "elon-musk",
      "name": "Elon Musk",
      "n_segments": 76,
      "sources": [
        {
          "url": "https://www.youtube.com/watch?v=dAv3PaMnme8",
          "title": "President Trump Participates in a Press Conference with Elon Musk",
          "publisher": "The White House",
          "start_s": 915.0,
          "end_s": 1011.0
        }
      ],
      "updated_at": 1793275081225
    }
  ]
}
```

A real response from the API; long lists are cut to their first items.

Voiceprints are never published. `sources` are the public recordings each voice was enrolled from.

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