# List live and upcoming events

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

`GET /v1/events/live`

The calendar of live events and those in the next 7 days, with their markets and sources, live first.

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

## Parameters

### Query parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `limit` | integer | no | Page size. 1 to 1000. Default `200`. |
| `cursor` | string | no | `next_cursor` from the previous page. |
| `fields` | string | no | `lite` (default) or `full` (adds rules text and source metadata). |

## Request

**curl**

```bash
curl "https://api.langbot.ai/v1/events/live?limit=1"
```

**Python**

```python
from langbot import LangbotClient

async with LangbotClient() as lb:
    for e in await lb.live_events():
        print(e.id, e.status, e.title)
```

**TypeScript**

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

const lb = new LangbotClient();
const events = await lb.liveEvents();
for (const e of events) console.log(e.id, e.status, e.title);
```

## Response

`200 OK`

```json
{
  "ts": 1793685867996,
  "fields": "lite",
  "limit": 1,
  "next_cursor": "bzox",
  "live_ids": [],
  "upcoming_ids": ["ev_kxwhpressbriefing"],
  "events": [
    {
      "id": "ev_kxwhpressbriefing",
      "title": "Who will attend a White House Press Briefing in 2026?",
      "kind": "other",
      "starts_at": 1767898800000,
      "ends_at": 1798779540000,
      "status": "scheduled",
      "speaker_keys": [],
      "meta": {
        "time_known": false,
        "window": true,
        "category": "Politics",
        "venue": "kalshi",
        "speaker_key": "whpressbriefing"
      },
      "rights": "public_domain",
      "phrases": ["ben shapiro", "benny johnson"],
      "markets": [
        {
          "ticker": "KXWHPRESSBRIEFING-TGAB",
          "venue": "kalshi",
          "event_id": "ev_kxwhpressbriefing",
          "title": "Will Tulsi Gabbard attend any White House press briefing which takes place in the James S. Brady Press Briefing Room?",
          "phrases": ["tulsi gabbard"],
          "status": "open",
          "close_ts": 1798779540000,
          "meta": {}
        },
        {
          "ticker": "KXWHPRESSBRIEFING-BJOH",
          "venue": "kalshi",
          "event_id": "ev_kxwhpressbriefing",
          "title": "Will Benny Johnson attend any White House press briefing which takes place in the James S. Brady Press Briefing Room?",
          "phrases": ["benny johnson"],
          "status": "open",
          "close_ts": 1798779540000,
          "meta": {}
        }
      ],
      "sources": [
        {
          "id": "src_kxwhpressbriefing_whitehouse_youtube_live",
          "kind": "hls",
          "rights": "public_domain",
          "status": "planned",
          "expected_latency_ms": 20000
        }
      ]
    }
  ]
}
```

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

`live_ids` and `upcoming_ids` index `events`. `status` is `scheduled`, `upcoming`, `live` or `ended`; `rights` is the event's source rights class ([Data and use](https://langbot.ai/docs/legal#rights-classes-for-live-sources)).

## Errors

| Status | `code` | When |
|---|---|---|
| 401 | `token_invalid` | A token was sent and not recognised. Send a valid one, or none to call anonymously. |
| 422 | `validation_error` | A parameter failed validation; `detail[].loc` names it. |
| 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).
