# Get Validator Metrics

Returns the latest per-subnet validator metrics, including stake, emissions, trust and validator permits.

_Source: https://beta.taostats.io/docs/api-reference/validator/get-validator-metrics-latest_

_Last reviewed: 2026-09-18_

```http
GET https://api.taostats.io/api/validator/metrics/latest/v1
```

Requires an API key in the `Authorization` header.

Returns the latest per-subnet validator metrics, including stake, emissions, trust and validator permits. Filter by hotkey, coldkey or netuid to inspect a validator's neuron records.

## Try it

Try this request in the browser on the HTML version of this page, or use the code samples below.

### Examples

Get a validator's current per-subnet metrics

```text
https://api.taostats.io/api/validator/metrics/latest/v1?hotkey=5GKH9FPPnWSUoeeTJp19wVtd84XqFW4pyK2ijV2GsFbhTrP1
```

Get validator metrics in subnet 19 (first 50)

```text
https://api.taostats.io/api/validator/metrics/latest/v1?netuid=19&limit=50
```

### Code samples

**cURL**

```bash
curl -H "Authorization: <YOUR_API_KEY>" \
  "https://api.taostats.io/api/validator/metrics/latest/v1?hotkey=5GKH9FPPnWSUoeeTJp19wVtd84XqFW4pyK2ijV2GsFbhTrP1"
```

**JavaScript**

```js
const response = await fetch('https://api.taostats.io/api/validator/metrics/latest/v1?hotkey=5GKH9FPPnWSUoeeTJp19wVtd84XqFW4pyK2ijV2GsFbhTrP1', {
  headers: {
    Authorization: '<YOUR_API_KEY>',
  },
});
const data = await response.json();
```

**Python**

```python
import requests

response = requests.get(
    "https://api.taostats.io/api/validator/metrics/latest/v1?hotkey=5GKH9FPPnWSUoeeTJp19wVtd84XqFW4pyK2ijV2GsFbhTrP1",
    headers={"Authorization": "<YOUR_API_KEY>"},
)
data = response.json()
```

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `hotkey` | query | `string` |  | SS58 or hex format |
| `coldkey` | query | `string` |  | SS58 or hex format |
| `netuid` | query | `integer (int32)` |  | subnet |
| `page` | query | `integer (int32)` |  | The page number of the response. |
| `limit` | query | `integer (int32)` |  | The number of responses. max is 200, |
| `order` | query | `string` |  | One of `netuid_asc`, `netuid_desc`. |

## Responses

### `200` — Validator metrics retrieved successfully

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | `array` | Yes |  |
| `data[].active` | `boolean` | Yes |  |
| `data[].axon_info` | `object, nullable` |  |  |
| `data[].block_number` | `integer (int32)` | Yes |  |
| `data[].coldkey` | `object` | Yes |  |
| `data[].coldkey.hex` | `string` | Yes | The hex format of the hot key |
| `data[].coldkey.ss58` | `string` | Yes | The SS58 format of the hot key |
| `data[].consensus` | `string` | Yes |  |
| `data[].daily_reward` | `string` | Yes |  |
| `data[].dividends` | `string` | Yes |  |
| `data[].emission` | `string` | Yes |  |
| `data[].hotkey` | `object` | Yes |  |
| `data[].hotkey.hex` | `string` | Yes | The hex format of the hot key |
| `data[].hotkey.ss58` | `string` | Yes | The SS58 format of the hot key |
| `data[].incentive` | `string` | Yes |  |
| `data[].is_immunity_period` | `boolean` | Yes |  |
| `data[].netuid` | `integer (int32)` | Yes |  |
| `data[].rank` | `integer (int32)` | Yes |  |
| `data[].registered_block_number` | `integer (int32)` | Yes |  |
| `data[].stake` | `string` | Yes |  |
| `data[].timestamp` | `string (date-time)` | Yes |  |
| `data[].trust` | `string` | Yes |  |
| `data[].uid` | `integer (int32)` | Yes |  |
| `data[].updated` | `integer (int32)` | Yes |  |
| `data[].validator_permit` | `boolean` | Yes |  |
| `data[].validator_trust` | `string` | Yes |  |
| `pagination` | `object` | Yes |  |
| `pagination.current_page` | `integer (int32)` | Yes |  |
| `pagination.next_page` | `integer (int32), nullable` |  |  |
| `pagination.per_page` | `integer (int32)` | Yes |  |
| `pagination.prev_page` | `integer (int32), nullable` |  |  |
| `pagination.total_items` | `integer (int32)` | Yes |  |
| `pagination.total_pages` | `integer (int32)` | Yes |  |

**Example response**

```json
{
  "data": [
    {
      "active": false,
      "axon_info": null,
      "block_number": 4107535,
      "coldkey": {
        "hex": "0xccc5c9e70f63d5475d61cdce984668958c68a8c0ee528b0537e79f9e63c9e50a",
        "ss58": "5GhCP4Ss4XyiMYS4asHP6jN9EcjnAU79sjRhDWtP41CPEL4y"
      },
      "consensus": "0.00120546272983901732",
      "daily_reward": "0",
      "dividends": "0",
      "emission": "0",
      "hotkey": {
        "hex": "0x8a35321620fbc616fb51ce20489c8069cc83963cc9a8f6ae0f1e7a6b533a1755",
        "ss58": "5FBvGUf3FhJfzLnDKwHCVqtycVzuK4uLqmx1dyYd4xFpP8Th"
      },
      "incentive": "0.00160219729915312428",
      "is_immunity_period": false,
      "netuid": 0,
      "rank": 52,
      "registered_block_number": 1409929,
      "stake": "1176549717",
      "timestamp": "2024-10-23T17:32:36.002Z",
      "trust": "0.22493324177920195315",
      "uid": 44,
      "updated": 2697606,
      "validator_permit": true,
      "validator_trust": "0"
    },
    {
      "active": false,
      "axon_info": null,
      "block_number": 4107535,
      "coldkey": {
        "hex": "0x22adf45cbc3509a7f99ad9379745afe94874f75c28a2aa2f719a18859b5b9f78",
        "ss58": "5CrBAGHUxUdj91kJZw8FAqA2USvksttNFgcMbfSfmqPcTu8t"
      },
      "consensus": "0.00286869611657892729",
      "daily_reward": "0",
      "dividends": "0",
      "emission": "0",
      "hotkey": {
        "hex": "0x5edf76d8d5f40da1e4336f8a051f3fbcfd53ac7387dbf12eee67507ac7dc747e",
        "ss58": "5ED6jwDECEmNvSp98R2qyEUPHDv9pi14E6n3TS8CicD6YfhL"
      },
      "incentive": "0.00381475547417410544",
      "is_immunity_period": false,
      "netuid": 0,
      "rank": 24,
      "registered_block_number": 1405120,
      "stake": "9869487004953",
      "timestamp": "2024-10-23T17:32:36.002Z",
      "trust": "0.20991836423285267414",
      "uid": 32,
      "updated": 860026,
      "validator_permit": true,
      "validator_trust": "0.00114442664225223163"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": 2,
    "per_page": 5,
    "prev_page": null,
    "total_items": 12974,
    "total_pages": 2595
  }
}
```

**Response details**

```text
 {
      "coldkey": {
        "ss58": "5GNm8nzQxKKoBbfJZvYPHUQZRiikv24TCriCtpRgL8UXbfky",
        "hex": "0xbeb662c9041c94bbe89f6e7a83f2f6ccbab9742dfe4feff3342e9bb4cdfa7a11"
      },
      "hotkey": {
        "ss58": "5GsM51NJm4q1p53A6DHnvRSoa6Pa4sm9nF1YxBCPAV5dAqCA",
        "hex": "0xd4837ddb941b671c323e9ca0f8d81362c54f25e60437c73a57b00f70d5765624"
      },
      "netuid": 19,
      "uid": 57,
      "block_number": 5453975,
      "timestamp": "2025-04-29T00:28:36.001Z",
      "active": false,
      "validator_permit": false,
      "is_immunity_period": false,
      "updated": 1848843,
      "registered_block_number": 5410171,
      "rank": 68,
      "validator_trust": "0",
      "stake": "0",
      "emission": "833482842",
      "daily_reward": "16669656840",
      "incentive": "0.00563057907988097963",
      "consensus": "0.00556954299229419394",
      "dividends": "0",
      "trust": "0.99465934233615625238",
      "axon_info": {
        "block": 5410531,
        "ip": "52.15.97.197",
        "ipType": 4,
        "placeholder1": 0,
        "placeholder2": 0,
        "port": 9010,
        "protocol": 4,
        "version": 1
      }
    },
```

### Other responses

| Status | Meaning |
| --- | --- |
| `400` | Bad request |
| `404` | Validator metrics not found |
| `500` | Internal server error |

Every request needs an `Authorization` header holding your API key — see [Getting started with the Taostats API](https://beta.taostats.io/docs/start-here/getting-started-with-taostats-api).
