Indexer progress

See how far the transfer indexer has caught up

GET /api/indexer/progress/ tells you per-chunk how caught up the transfer indexer is. Use it for a "data freshness" badge in your UI, or as a heartbeat in your monitoring stack.

Endpoint

No required parameters.

Code
bash
1curl 'https://api.tokenkithq.io/api/indexer/progress/' \
2 -H 'api-key: YOUR_API_KEY'

Response

Code
json
1{
2 "network": "mainnet",
3 "chunks": [
4 {
5 "name": "0_1m",
6 "range": [0, 1000000],
7 "latest_block": 985432,
8 "transfers": 4823015,
9 "percent": 0.9854
10 },
11 {
12 "name": "1m_2m",
13 "range": [1000000, 2000000],
14 "latest_block": 1450000,
15 "transfers": 2104110,
16 "percent": 0.45
17 },
18 {
19 "name": "live",
20 "range": [6000000, null],
21 "latest_block": 6027419,
22 "transfers": 0,
23 "percent": null
24 }
25 ],
26 "totals": {
27 "transfers": 12500000,
28 "latest_block_overall": 6027419
29 }
30}

Field reference

FieldWhat it means
chunks[].nameChunk identifier (0_1m, 1m_2m, ..., live)
chunks[].range[start, end]. end is null for the live chunk (it tracks the chain head)
chunks[].latest_blockHighest block number where this chunk has indexed at least one transfer
chunks[].transfersTotal transfers indexed in this chunk's range
chunks[].percentRange completion (latest_block - start) / (end - start). null for the live chunk.
totals.transfersSum across all chunks
totals.latest_block_overallMax latest_block across all chunks. Your "tip of indexed data".
Tip

Render the live chunk specially. Its range = [N, null], so percent doesn't mean anything. Show latest_block_overall and compare it against the chain head (e.g. via Starknet RPC starknet_blockNumber). Within ~10 blocks of the head is "current".

Drop into your UI

Note
A chunk processing through a stretch of zero-transfer blocks looks paused (because `latest_block` only moves when a transfer shows up). That's expected. For "is the indexer alive?", check that `totals.latest_block_overall` keeps moving, not that every chunk's percent ticks up.