# Get a public replay

Source: https://langbot.ai/docs/api/receipts/get-public-replay

`GET /v1/public/replays/{event_id}`

The replay bundle of a showcase event, such as election night 2026, with no account; top of book only.

**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; anonymous callers also share 6 a minute per IP. Not counted against any allowance.

## Parameters

### Path parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `event_id` | string | yes | A showcase event id, such as `ev_us-midterms-2026-night`. |

## Request

**curl**

```bash
curl "https://api.langbot.ai/v1/public/replays/ev_us-midterms-2026-night"
```

**Python**

```python
import httpx

r = httpx.get("https://api.langbot.ai/v1/public/replays/ev_us-midterms-2026-night")
print(r.json())
```

**TypeScript**

```ts
const res = await fetch("https://api.langbot.ai/v1/public/replays/ev_us-midterms-2026-night");
console.log(await res.json());
```

## Response

`200 OK`

```json
{
  "manifest": {
    "v": 1,
    "event_id": "ev_us-midterms-2026-night",
    "generated_at": 1793880000000,
    "delay_ms": 60000,
    "rights": "unknown",
    "key": { "key_id": "56475aa75463474c", "public_key": "A6EHv/…" },
    "sources": [],
    "filters": { "since_seq": null, "source_id": null, "types": null }
  },
  "events": [],
  "checkpoints": [],
  "books": [ { "ticker": "CONTROLH-2026-D", "ts": 1793743200040, "yes_bid": 0.81, "yes_ask": 0.82 } ]
}
```

The same bundle as [Get a replay bundle](https://langbot.ai/docs/api/receipts/get-replay-bundle) with `books=2`, at the Free delay, whoever asks: never depth and never anyone's attestations. Only a short list of ended showcase events answer. The body is the same for every caller and is sent with `Cache-Control: public, s-maxage=3600`.

## Errors

| Status | `code` | When |
|---|---|---|
| 404 | `not_found` | Not a showcase event, or it has not ended yet. |
| 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).
