API reference · Live events
Get the calendar
GET/v1/calendar
Live and upcoming events for the next days, with their sources, markets, speaker keys and rights.
On this page
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 |
|---|---|---|---|
days | integer | no | How many days ahead. 1 to 90. Default 7. |
limit | integer | no | Page size. 1 to 1000. Default 200. |
Request
curl "https://api.langbot.ai/v1/calendar?days=2&limit=1"from langbot import LangbotClient
async with LangbotClient() as lb:
for e in await lb.calendar(days=2):
print(e.id, e.starts_at, e.title)import { LangbotClient } from "@langbotai/sdk";
const lb = new LangbotClient();
const events = await lb.calendar({ days: 2 });
console.log(events);Response
200 OK
{
"ts": 1793685876387,
"days": 2,
"count": 1,
"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",
"meta": {
"venue": "kalshi",
"window": true,
"company": null,
"category": "Politics",
"sub_title": "Before 2027",
"date_known": true,
"time_known": false,
"speaker_key": "whpressbriefing",
"timing_note": "window market",
"event_ticker": "KXWHPRESSBRIEFING",
"market_count": 10,
"series_title": "Who will attend a White House Press Briefing?",
"series_ticker": "KXWHPRESSBRIEFING",
"settlement_sources": ["The New York Times", "the Associated Press"]
},
"speaker_keys": [],
"rights": "public_domain",
"sources": [
{
"id": "src_kxwhpressbriefing_whitehouse_youtube_live",
"event_id": "ev_kxwhpressbriefing",
"kind": "hls",
"expected_latency_ms": 20000,
"status": "planned",
"rights": "public_domain",
"retention_days": 30
}
],
"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?",
"rules_text": "If Tulsi Gabbard attends any White House press briefing which takes place in the James S. Brady Press Briefing Room after Issuance and before 2027, then the…",
"phrases": ["tulsi gabbard"],
"status": "open",
"close_ts": 1798779540000
},
{
"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?",
"rules_text": "If Benny Johnson attends any White House press briefing which takes place in the James S. Brady Press Briefing Room after Issuance and before 2027, then the…",
"phrases": ["benny johnson"],
"status": "open",
"close_ts": 1798779540000
}
],
"phrases": ["ben shapiro", "benny johnson"]
}
]
}A real response from the API; long lists are cut to their first items.
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.