Skip to content

Aggregated neuron stats history (per subnet)

Returns time-series aggregated neuron statistics for a subnet. Each row carries the same per-netuid fields as /api/neuron/aggregated/latest/v1immune_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.

GET /api/neuron/aggregated/history/v1
NameInTypeRequiredDescription
netuidqueryintegerSubnet ID
block_startqueryinteger
block_endqueryintegerEnd of block range (inclusive)
timestamp_startqueryintegerStart of timestamp range in Unix timestamp (seconds since 1970-01-01) (inclusive)
timestamp_endqueryintegerEnd of timestamp range in Unix timestamp (seconds since 1970-01-01) (inclusive)
pagequeryinteger
limitqueryinteger
orderquery

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"
}
}
}
}
}

Interactive request console coming soon. In the meantime you can use the OpenAPI spec with any client (Insomnia, Bruno, Scalar, curl).

All Taostats API requests require an Authorization header containing your API key. See Getting Started.