API reference · Live events
List official releases
GET/v1/releases
Official US federal publications on Langbot's clock, newest first, from the Fed, BLS, BEA, Treasury, the White House and the Federal Register.
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). Served at your plan's delay (+60 s Free, +10 s Builder, +2 s Standard).
Parameters
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
agency | string | no | Comma-separated: fed, bls, bea, treasury, whitehouse, fedreg. |
source_id | string | no | Comma-separated official source ids (src_wire_bls, src_wire_treasury_auctions, …). |
q | string | no | Words the title must contain. |
since | integer | no | Publish time from, ms epoch (default 7 days back). |
until | integer | no | Publish time before, ms epoch. |
linked | boolean | no | true for releases a calendar row links (scheduled releases), false for the rest. |
text | boolean | no | true to include each release's full text. Default false. |
cursor | string | no | next_cursor from the previous page. |
limit | integer | no | Page size. 1 to 200. Default 50. |
Request
curl "https://api.langbot.ai/v1/releases?agency=bls,treasury&linked=true&limit=1"from langbot import LangbotClient
async with LangbotClient() as lb:
for r in await lb.official_releases(agencies=["bls", "treasury"], linked=True):
print(r.t_detected, r.title, r.calendar.release.latency_ms if r.calendar else None)import { LangbotClient } from "@langbotai/sdk";
const lb = new LangbotClient();
const releases = await lb.officialReleases({ agencies: ["bls", "treasury"], linked: true });
for (const r of releases) console.log(r.t_detected, r.title);Response
200 OK
{
"ts": 1794317460000,
"since": 1793712660000,
"until": null,
"delay_ms": 0,
"rights": "public_domain",
"next_cursor": "cmVsOjE3OTQzMTc0MDIxMDA6ZXZ0XzBHQVY0S0NDMDkxRjAxRksyREU0QVA5WTQ2",
"releases": [
{
"id": "evt_0GAV4KCC091F01FK2DE4AP9Y46",
"source_id": "src_wire_bls",
"agency_key": "bls",
"title": "CPI for all items increases 0.3% in October",
"url": "https://www.bls.gov/news.release/archives/cpi_11102026.htm",
"published_at": "2026-11-10T07:50:31.2-05:00",
"author": null,
"agency": "U.S. Bureau of Labor Statistics",
"summary": "In October, the Consumer Price Index for All Urban Consumers rose 0.3 percent, seasonally adjusted…",
"t_published": 1794317402100,
"t_detected": 1794317402100,
"t_emitted": 1794317402141,
"seq": 41,
"hash": "5b0c8d3e0f4a…",
"chain_seq": 42,
"extra": {"release": "cpi", "release_name": "Consumer Price Index"},
"calendar": {
"id": "ecal_bls_cpi_20261110",
"kind": "cpi",
"agency": "bls",
"title": "Consumer Price Index",
"scheduled_at": 1794317400000,
"time_known": true,
"importance": "high",
"status": "released",
"source_ids": ["src_wire_bls"],
"meta": {"release": "cpi"},
"release": {"event_id": "evt_0GAV4KCC091F01FK2DE4AP9Y46", "source_id": "src_wire_bls", "title": "CPI for all items increases 0.3% in October", "url": "https://www.bls.gov/news.release/archives/cpi_11102026.htm", "released_at": 1794317402100, "first_seen_at": 1794317402100, "latency_ms": 2100, "publish_latency_ms": 2100}
}
}
]
}Each release is a feed event on the same clock as the transcripts and the market data: t_published is the item's own publish time, t_detected when Langbot first saw it, t_emitted when the feed sent it; id is the event id, so Get a receipt verifies it. BLS stamps its feed entries when the release is staged, before it is public, so a BLS release's t_published is when Langbot first saw it and the BLS stamp stays in published_at. extra carries what the source adds: the release series and headline numbers (BEA current / previous), the auction's cusip and results (high rate or yield, bid-to-cover, bidder shares). US federal works are public domain, so text=true returns the full text. On the live stream the same items arrive as text_posted events when you ask for them (types=text_posted, or the source's ev_wire_… event).
Errors
| Status | code | When |
|---|---|---|
| 422 | validation_error | An unknown agency, or a source_id that is not an official source. |
| 400 | bad_request | A cursor that is not one this endpoint returned. |
| 401 | token_invalid | A token was sent and not recognised. Send a valid one, or none to call anonymously. |
| 429 | rate_limited | Over your request budget; wait Retry-After seconds. |
Every error body is {"detail": …, "code": "…"}; branch on code. All codes: Errors.