API reference · History
List settled outcomes
GET/v1/history/outcomes
Settled markets on what someone says, as the venue published them, newest first.
On this page
Auth. An API token: Authorization: Bearer lb_… (create one). Signed-in web sessions work too.
Limits. One history query per call (500 a day on Free; unlimited on Builder and Standard).
Parameters
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
speaker | string | no | A canonical speaker key, for example powell. |
phrase | string | no | A normalized phrase key, for example transitory. |
series | string | no | A venue series ticker, for example KXFEDMENTION. |
venue | string | no | kalshi or polymarket. |
since | integer | no | ms epoch, by settlement time. |
until | integer | no | ms epoch, by settlement time. |
limit | integer | no | Page size. 1 to 500. Default 50. |
cursor | string | no | next_cursor from the previous page. |
Request
curl "https://api.langbot.ai/v1/history/outcomes?speaker=powell&phrase=transitory&limit=1" \
-H "Authorization: Bearer $LANGBOT_API_TOKEN"from langbot import LangbotClient
async with LangbotClient() as lb: # reads LANGBOT_API_TOKEN
page = await lb.outcomes(speaker="powell", phrase="transitory", limit=1)
for o in page.items:
print(o.ticker, o.result, o.yes_price_open, o.yes_price_close)import { LangbotClient } from "@langbotai/sdk";
const lb = new LangbotClient(); // reads LANGBOT_API_TOKEN
const page = await lb.outcomes({ speaker: "powell", phrase: "transitory", limit: 1 });
console.log(page.items);Response
200 OK
{
"count": 1,
"items": [
{
"ticker": "KXFEDMENTION-26SEP-TRANSITORY",
"venue": "kalshi",
"series_ticker": "KXFEDMENTION",
"title": "Powell says “transitory”?",
"speaker": "powell",
"phrase": "transitory",
"event_id": "ev_fomc_sep_2026_presser",
"result": "no",
"open_ts": 1757980800000,
"close_ts": 1758654000000,
"settled_ts": 1758661200000,
"yes_price_open": 18,
"yes_price_close": 2,
"volume": 41250
}
],
"next_cursor": "c2V0dGxlZDoxNzU4NjYxMjAwMDAw"
}result is yes, no or void; prices are in cents. event_id is set when the market maps to an event Langbot recorded.
Errors
| Status | code | When |
|---|---|---|
| 401 | auth_required | No token was sent. |
| 401 | token_invalid | The token was not recognised (mistyped, revoked or expired). |
| 422 | validation_error | A parameter failed validation; detail[].loc names it. |
| 429 | quota_exceeded | Today's history queries are spent; quota.resets_at says when they reset. |
| 429 | rate_limited | Over your request budget; wait Retry-After seconds. |
Every error body is {"detail": …, "code": "…"}; branch on code. All codes: Errors.