API reference · Consolidated
Get a consolidated group
GET/v1/consolidated/{group_id}
One group's current number with every component, its series, and the links that make the group with their reasons.
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. Its own per-minute limit: 20 anonymous or on Free, 120 on Builder, 600 on Standard. Not counted against any allowance.
Parameters
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
group_id | string | yes | The group id (cq_…). |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
since | integer | no | ms epoch; default 7 days before until. |
until | integer | no | ms epoch; default now. |
step | integer | no | Seconds between points; default chosen by the span. |
Request
curl "https://api.langbot.ai/v1/consolidated/cq_kxtime-26-ale?step=3600"from langbot import LangbotClient
async with LangbotClient() as lb:
g = await lb.consolidated_group("cq_kxtime-26-ale", step=3600)
print(g["group"]["p"], len(g["series"]))import { LangbotClient } from "@langbotai/sdk";
const lb = new LangbotClient();
const g = await lb.consolidatedGroup("cq_kxtime-26-ale", { step: 3600 });
console.log(g.group);Response
200 OK
{
"ts": 1793685862293,
"method": {
"version": 1,
"stale_after_ms": 300000,
"max_spread": 0.1,
"volume_window_ms": 86400000,
"weights": "mean(depth share, 24h volume share)",
"fees": "not included",
"doc": "https://langbot.ai/docs/consolidated/"
},
"group": {
"group_id": "cq_kxtime-26-ale",
"title": "Will Alexandria Ocasio-Cortez be TIME Person of the Year 2026?",
"category": "culture",
"p": null,
"ts": 1793685840000,
"venue_gap": null,
"included": 0,
"computed": false,
"verified": true,
"members": ["KXTIME-26-ALE", "pm_5262639"],
"venues": [
{
"ticker": "KXTIME-26-ALE",
"venue": "kalshi",
"title": "Will Alexandria Ocasio-Cortez be Time Person of the Year in 2026?",
"subtitle": "Alexandria Ocasio-Cortez",
"url": "https://kalshi.com/markets/kxtime",
"mid": 0.03,
"bid": 0.02,
"ask": 0.04,
"spread": 0.02,
"depth_usd": 62.28,
"volume_24h_usd": null,
"weight": 0.0,
"quote_ts": 1793684508879,
"age_s": 1332.1,
"source": "orderbook_snaps",
"included": false,
"excluded": "stale"
},
{
"ticker": "pm_5262639",
"venue": "polymarket",
"title": "Will Alexandria Ocasio-Cortez be TIME Person of the Year 2026?",
"subtitle": "Alexandria Ocasio-Cortez",
"url": "https://polymarket.com/event/time-person-of-the-year-2026",
"mid": 0.031,
"bid": 0.02,
"ask": 0.042,
"spread": 0.022,
"depth_usd": 2.85,
"volume_24h_usd": null,
"weight": 0.0,
"quote_ts": 1793675977256,
"age_s": 9863.8,
"source": "venue_api",
"included": false,
"excluded": "stale"
}
]
},
"since": 1793081062293,
"until": 1793685862293,
"step_ms": 3600000,
"series_source": "recorded",
"series": [
{
"ts": 1793609940000,
"p": null,
"venue_gap": null,
"included": 0,
"by_venue": {},
"computed": false
},
{
"ts": 1793613300000,
"p": null,
"venue_gap": null,
"included": 0,
"by_venue": {},
"computed": false
}
],
"links": [
{
"a_ticker": "KXTIME-26-ALE",
"b_ticker": "pm_5262639",
"relation": "equivalent",
"confidence": 0.9,
"method": "rules",
"reviewed": false,
"reasons": [
{"a": 1.0, "ok": true, "check": "similarity"},
{"a": "culture", "b": "culture", "ok": true, "check": "category"}
],
"updated_at": 1793682971085,
"verified": true,
"verification": "rules"
}
],
"related": [],
"disclaimer": "The Langbot consolidated probability is a published measurement: a liquidity-weighted average of the YES mids of markets on different venues that resolve on…",
"licence": "Free to read and cite with attribution (\"Langbot consolidated probability\"). Bulk access, redistribution, commercial feeds and embeds at scale are licensed:…"
}A real response from the API; long lists are cut to their first items.
Errors
| Status | code | When |
|---|---|---|
| 404 | not_found | No group with that id. |
| 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.