Aggregated neuron stats history (per subnet)
Description
Section titled “Description”Returns time-series aggregated neuron statistics for a subnet. Each row carries the same per-netuid fields as /api/neuron/aggregated/latest/v1 — immune_count, incentive bands (max_incentive, max_immune_incentive, min_non_immune_incentive, max_danger_incentive), pruning-score bands, and the last-deregistered incentive/pruning score — sampled at successive indexed blocks.
Filter by netuid to fix a subnet, and by block_start/block_end or timestamp_start/timestamp_end to bound the window. Use this to plot registration/immunity dynamics on a subnet over time.
Endpoint
Section titled “Endpoint”GET /api/neuron/aggregated/history/v1Parameters
Section titled “Parameters”| Name | In | Type | Required | Description |
|---|---|---|---|---|
netuid | query | integer | Subnet ID | |
block_start | query | integer | ||
block_end | query | integer | End of block range (inclusive) | |
timestamp_start | query | integer | Start of timestamp range in Unix timestamp (seconds since 1970-01-01) (inclusive) | |
timestamp_end | query | integer | End of timestamp range in Unix timestamp (seconds since 1970-01-01) (inclusive) | |
page | query | integer | ||
limit | query | integer | ||
order | query | — |
Responses
Section titled “Responses”200 — Neuron history retrieved successfully
Section titled “200 — Neuron history retrieved successfully”Media: application/json
Schema
{ "type": "object", "required": [ "pagination", "data" ], "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "block_number", "timestamp", "netuid", "immune_count", "max_immune_incentive", "max_incentive", "min_non_immune_incentive", "max_danger_incentive", "max_immune_pruning_score", "max_mining_pruning_score", "max_pruning_score", "min_non_immune_pruning_score", "max_danger_pruning_score", "last_dereg_incentive", "last_dereg_pruning_score" ], "properties": { "block_number": { "type": "integer", "format": "int32" }, "immune_count": { "type": "integer", "format": "int32" }, "last_dereg_incentive": { "type": "string" }, "last_dereg_pruning_score": { "type": "string" }, "max_danger_incentive": { "type": "string" }, "max_danger_pruning_score": { "type": "string" }, "max_immune_incentive": { "type": "string" }, "max_immune_pruning_score": { "type": "string" }, "max_incentive": { "type": "string" }, "max_mining_pruning_score": { "type": "string" }, "max_pruning_score": { "type": "string" }, "min_non_immune_incentive": { "type": "string" }, "min_non_immune_pruning_score": { "type": "string" }, "netuid": { "type": "integer", "format": "int32" }, "timestamp": { "type": "string", "format": "date-time" } } } }, "pagination": { "type": "object", "required": [ "current_page", "per_page", "total_items", "total_pages" ], "properties": { "current_page": { "type": "integer", "format": "int32" }, "next_page": { "type": "integer", "format": "int32", "nullable": true }, "per_page": { "type": "integer", "format": "int32" }, "prev_page": { "type": "integer", "format": "int32", "nullable": true }, "total_items": { "type": "integer", "format": "int32" }, "total_pages": { "type": "integer", "format": "int32" } } } }}400 — Bad request
Section titled “400 — Bad request”404 — Neuron history not found
Section titled “404 — Neuron history not found”500 — Internal server error
Section titled “500 — Internal server error”Try it
Section titled “Try it”Interactive request console coming soon. In the meantime you can use the OpenAPI spec with any client (Insomnia, Bruno, Scalar, curl).
Authentication
Section titled “Authentication”All Taostats API requests require an Authorization header containing your API key. See Getting Started.