Skip to main content
API referenceChain

Chain Events Feed

Last updated

GET
/api/v1/chain-events

Fetch the recent all-events feed (newest first) from the chain_events lakehouse table — every raw pallet.method event, distinct from the curated account-attributed stream. ?pallet / ?method narrow by event id (1-64 ASCII identifier chars); ?block (+ optional ?extrinsic) scopes to one block or extrinsic; ?cursor is the lossless block_number.event_index keyset cursor and ?before is the legacy block_number-only cursor; ?limit caps the page (<=200, default 50). Pass ?format=csv to download the page as CSV. Each page reads one bounded block window below its ceiling, so a short page still carries a continuation rather than ending the feed. Served live, no static file.

Query Parameters

pallet?string

Filter to events emitted by this pallet, e.g. SubtensorModule or Balances.

Lengthlength <= 64
method?string

Filter to events with this method name within the pallet, e.g. StakeAdded.

Lengthlength <= 64
block?integer

Inclusive first block height of the range to read. Omit for an unbounded end. Must not be later than the range's upper bound.

Range0 <= value
extrinsic?integer

Filter to events emitted by the extrinsic at this index within its block.

Range0 <= value
cursor?string

Opaque pagination token: pass back the next_cursor from the previous response verbatim. Its contents are not stable and must not be parsed or constructed. Stable across inserts, unlike a row offset.

before?integer

Inclusive first block height of the range to read. Omit for an unbounded end. Must not be later than the range's upper bound.

Range0 <= value
limit?integer

Maximum number of rows to return in one page (at most 100). A larger value, or a non-positive one, is rejected with 400 invalid_query -- so a short page means the result set is exhausted, not that the server quietly capped you (#9916). Omitted, the server applies 50.

Range1 <= value <= 100
Default50
format?string

Response format override. Use csv to download the route rows as text/csv; json keeps the default response envelope.

Default"json"

Value in

  • "json"
  • "csv"

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/chain-events"
{  "data": {    "count": 1,    "events": [      {        "block_number": 5000000,        "event_index": 1,        "method": "GET",        "pallet": "example"      }    ],    "next_before": 1,    "next_cursor": "100.123.4"  },  "meta": {    "artifact_path": "example",    "cache": "short",    "contract_version": "2026-06-29.1",    "generated_at": "2026-06-01T00:00:00.000Z",    "observed_through": "2026-06-01T00:00:00.000Z",    "pagination": {      "collection": "example",      "cursor": 1,      "limit": 1,      "next_cursor": 1,      "order": "asc",      "returned": 1,      "sort": "example",      "total": 1    },    "published_at": "2026-06-01T00:00:00.000Z",    "source": "live-cron-prober",    "stale_contract": {      "built_under": "example",      "live": "example"    }  },  "ok": true,  "schema_version": 1}