Network. One of finney, kusanagi, nakamoto. Default: finney. One of finney, kusanagi, nakamoto.
block_number
query
integer (int32)
Specific block number (exact match).
block_start
query
integer (int32)
Block range start (inclusive lower bound).
block_end
query
integer (int32)
Block range end (inclusive upper bound).
timestamp_start
query
integer (int64)
Timestamp range start, Unix seconds (inclusive lower bound).
timestamp_end
query
integer (int64)
Timestamp range end, Unix seconds (inclusive upper bound).
id
query
string
Exact proxy call ID.
signer_address
query
string
Signer address (SS58 or 0x-hex; normalized to SS58 before the query). Exact match.
real_address
query
string
Real (proxied) address (SS58 or 0x-hex; normalized to SS58 before the query). Exact match.
extrinsic_hash
query
string
Exact extrinsic hash (0x-prefixed hex).
extrinsic_id
query
string
Exact extrinsic ID (e.g. 5000000-0002).
page
query
integer (int32)
Page number (1-indexed). Default: 1. Bounded window: (page − 1) × limit must be below 1,000,000. Deep OFFSET paging is linear in the offset, so an uncapped page lets one request scan tens of millions of rows; a page past the window is rejected with a 400. Reach deeper history with this endpoint's range filters (block_start/block_end, timestamp_start/timestamp_end) rather than a larger page.
limit
query
integer (int32)
Results per page. Default: 50. Max: 200.
order_by
query
string
Column to order by. Only timestamp is supported. One of timestamp.
order_dir
query
string
Sort direction. Default: desc. One of asc, desc.
Responses
200 — Paginated list of proxy calls matching the filter set
Field
Type
Required
Description
data
array
Yes
data[].args
object
Yes
Inner dispatched call arguments as a structured JSON value. Parsed from the JSON string the indexer writes into the args column. The shape varies by dispatched call, so callers should treat it as opaque JSON. Serializes as the explicit literal null if the stored string ever fails to parse. utoipa 5's built-in ToSchema for serde_json::Value emits SchemaType::AnyValue (no type constraint), matching the real-world variability. #[schema(required)] keeps the field always present in responses.
data[].block_number
integer (int32)
Yes
Block height.
data[].extrinsic_hash
string
Yes
Extrinsic hash (0x-prefixed hex).
data[].extrinsic_id
string
Yes
Parent extrinsic ID.
data[].id
string
Yes
Proxy call ID.
data[].network
string
Yes
Network name.
data[].real_address
string
Yes
Real (proxied) SS58 address.
data[].signer_address
string
Yes
Signer SS58 address.
data[].timestamp
string
Yes
ISO 8601 timestamp with millisecond precision, e.g. "2024-05-15T10:30:00.000Z".
pagination
object
Yes
Pagination metadata appended to collection responses. next_page / prev_page are explicitly required+nullable in the OpenAPI spec: per docs/api_standards.md we emit null rather than omitting the field, so the SDK should model them as Option/nullable types that are always present in the response. total_items is the exact number of matching rows on every route (issue #992). It used to stop at 1,000,000, which reported a million transfers when finney holds 7,513,252 and a million events when the real figure is 981,179,110; the cap was removed on 29 Sep 2026 and nothing may reintroduce one — crate::pagination::exact_count_sql is the only count form, and no_capped_count_reaches_the_api_surface in data-debug-scripts fails the build if a capped one comes back. total_pages is still bounded, to crate::pagination::max_reachable_page(per_page), because the page parameter is capped to a 1,000,000-row window: deep OFFSET paging reads every skipped row (24.7M rows / 36.6 GiB / 42 s measured on one endpoint, issue #413). So total_pages is exactly the last page this API will serve and next_page / prev_page stay coherent at the window edge, while total_items tells the caller how many rows there really are. History beyond the window is reached with each endpoint's range filters, not a larger page.
pagination.current_page
integer (int32)
Yes
1-indexed page that produced the rows in data.
pagination.next_page
integer (int32), nullable
Yes
Next page number, or null if this is the last page.
pagination.per_page
integer (int32)
Yes
Number of items requested per page.
pagination.prev_page
integer (int32), nullable
Yes
Previous page number, or null if this is the first page.
pagination.total_items
integer (int64)
Yes
Number of items matching the query across all pages. This is the exact count — every matching row, however many there are. It is not bounded by total_pages, so a listing can legitimately report far more items than total_pages × per_page.
pagination.total_pages
integer (int32)
Yes
Number of pages at the current per_page that this API will serve: ceil(total_items / per_page), capped at ceil(1000000 / per_page) because the page parameter only reaches into the first 1,000,000 rows. When the cap bites, total_items is still the true total and this is the last page a request can ask for; reach deeper history with the endpoint's range filters instead of a larger page.
400 — Invalid query parameter
Field
Type
Required
Description
message
string
Yes
Plain-english message describing the failure from the caller's perspective.
status_code
integer (int32)
Yes
HTTP status code (mirrored in the response status line for convenience).
413 — The selected rows carry more args than one request may materialize — lower limit or narrow the filter
Field
Type
Required
Description
message
string
Yes
Plain-english message describing the failure from the caller's perspective.
status_code
integer (int32)
Yes
HTTP status code (mirrored in the response status line for convenience).
500 — Internal server error
Field
Type
Required
Description
message
string
Yes
Plain-english message describing the failure from the caller's perspective.
status_code
integer (int32)
Yes
HTTP status code (mirrored in the response status line for convenience).
503 — Another large args response is already in flight; retry shortly
Field
Type
Required
Description
message
string
Yes
Plain-english message describing the failure from the caller's perspective.
status_code
integer (int32)
Yes
HTTP status code (mirrored in the response status line for convenience).