Skip to main content
Every response describes itself. In Arrow, the values are strings in each stream’s schema metadata under bl.* keys (the same on every stream). In JSON, they are top-level fields of the body.

Reading it

How to use each value

  • next_block drives the pagination loop. Continue while it’s at or below the end of your range.
  • from_block / to_block are what you actually got. Near the head, to_block is lower than the toBlock you asked for. Past the head, a response has no rows, to_block equals the head and next_block equals your fromBlock.
  • objects is the row count to check against what you decoded, to catch a truncated body; see Reading Arrow.
  • finalized_block / to_block_hash tell you which rows are final and let you detect reorgs; see Finality and reorgs.
  • archive_height is useful to decide when an open-ended backfill has caught up, and to measure how far behind your own pipeline is.
There is no “truncated” or “has more” flag. next_block compared with the end you want is the whole story.

Request ids

Every response has an X-Request-Id header: the value you sent in a header of the same name (up to 128 printable characters), or one the server generated. Log it with your errors and quote it when you contact support; it identifies the request in our logs.