API reference · Receipts
Get a receipt
GET/v1/receipts/{evt_id}
One event with its hash, its position in the source's chain and the nearest signed checkpoint.
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
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
evt_id | string | yes | The event id (evt_…). |
Request
curl "https://api.langbot.ai/v1/receipts/evt_01M6FZG8RAB39YJ0YZEPX3DVFD"from langbot import LangbotClient
async with LangbotClient() as lb:
r = await lb.receipt("evt_01M6FZG8RAB39YJ0YZEPX3DVFD")
print(r["verified"], r["checkpoint"])import { LangbotClient } from "@langbotai/sdk";
const lb = new LangbotClient();
const r = await lb.receipt("evt_01M6FZG8RAB39YJ0YZEPX3DVFD");
console.log(r.verified);Response
200 OK
{
"event": {
"id": "evt_01M6FZG8RAB39YJ0YZEPX3DVFD",
"type": "phrase_detected",
"event_id": "ev_kxtrumpsaynickname_27jan01",
"market_refs": ["KXTRUMPSAYCOMPANY-26DEC01-CVX"],
"phrase": "chevron",
"raw": "chevron",
"speaker": null,
"confidence": 0.36,
"t_spoken": 1793685201618,
"t_detected": 1793685201674,
"t_emitted": 1793685201686,
"lag_vs_public_ms": null,
"source_kind": "hls",
"seq": 30768,
"hash": "476e87db4ea4bba0f011d6d1c20359b87d7483c33812916ebe54fc42421fcf9d",
"prev_hash": "481d3e63b6965bec1f4374ff70441d35c3917525c73030705e53b2510a3d6270",
"raw_hash": "b419f17ecd856aa4d35396f2cbe44b7fa682f7245858966cae1ba506d1fe231d",
"chain_seq": 108793,
"fact": null,
"class": "fact",
"verdict": {
"role": null,
"counts": null,
"needed": 1,
"reason": "speaker not verified: only Donald Trump counts",
"mention": 0
}
},
"chain": {
"chain_seq": 108793,
"prev_hash": "481d3e63b6965bec1f4374ff70441d35c3917525c73030705e53b2510a3d6270"
},
"checkpoint": {
"id": "ckp_01M6FZH50W5X8KP8VWEH2XW6JZ",
"event_id": "ev_kxtrumpsaynickname_27jan01",
"chain_seq": 108803,
"hash": "9e483244111d0ab7a2d38369f69982d22fbd7caf62b299a17d461d956179c918",
"count": 108803,
"created_at": 1793685230620,
"key_id": "7c2794192d3cf5a0",
"signature": "Cr05JAZl7JZ14xZ1bSQzcsugwjrrunPBM5rS2Ah8tGL66LJcGOcHYqNMqg0nbiv49SReExZ728I1eLUSeQFtAA=="
},
"rights": "restricted",
"verified": true,
"delay_ms": 60000
}A real response from the API; long lists are cut to their first items.
verified is the feed recomputing the stored hash; verify it yourself offline with the SDKs (Receipts and replay).
Errors
| Status | code | When |
|---|---|---|
| 404 | not_found | Unknown id, or the event is still inside your plan's delay. |
| 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.