# Get Subnets

Returns the latest subnet configuration, emission metrics, registration settings and participant counts.

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

_Last reviewed: 2026-09-18_

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

Requires an API key in the `Authorization` header.

Returns the latest subnet configuration, emission metrics, registration settings and participant counts. Use netuid to select a subnet. Pool prices and reserves are available from the separate dTAO pool endpoints.

## Try it

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

### Examples

Get the current pool, price and emission data for subnet 19

```text
https://api.taostats.io/api/subnet/latest/v1?netuid=19
```

List all subnets ranked by emission, highest first

```text
https://api.taostats.io/api/subnet/latest/v1?order=emission_desc&limit=50
```

### Code samples

**cURL**

```bash
curl -H "Authorization: <YOUR_API_KEY>" \
  "https://api.taostats.io/api/subnet/latest/v1?netuid=19"
```

**JavaScript**

```js
const response = await fetch('https://api.taostats.io/api/subnet/latest/v1?netuid=19', {
  headers: {
    Authorization: '<YOUR_API_KEY>',
  },
});
const data = await response.json();
```

**Python**

```python
import requests

response = requests.get(
    "https://api.taostats.io/api/subnet/latest/v1?netuid=19",
    headers={"Authorization": "<YOUR_API_KEY>"},
)
data = response.json()
```

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `netuid` | query | `integer (int32)` |  | Subnet ID |
| `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`, `emission_asc`, `emission_desc`. |

## Responses

### `200` — Subnets retrieved successfully

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | `array` | Yes |  |
| `data[].active_dual` | `integer (int32)` | Yes |  |
| `data[].active_keys` | `integer (int32)` | Yes |  |
| `data[].active_miners` | `integer (int32)` | Yes |  |
| `data[].active_validators` | `integer (int32)` | Yes |  |
| `data[].activity_cutoff` | `integer (int32)` | Yes |  |
| `data[].adjustment_alpha` | `string, nullable` |  |  |
| `data[].adjustment_interval` | `integer (int32)` | Yes |  |
| `data[].alpha_high` | `string, nullable` |  |  |
| `data[].alpha_low` | `string, nullable` |  |  |
| `data[].alpha_sigmoid_steepness` | `integer (int32), nullable` |  |  |
| `data[].block_number` | `integer (int32)` | Yes |  |
| `data[].blocks_since_last_step` | `integer (int32)` | Yes |  |
| `data[].blocks_until_next_adjustment` | `integer (int32)` | Yes |  |
| `data[].blocks_until_next_epoch` | `integer (int32)` | Yes |  |
| `data[].bonds_moving_avg` | `string` | Yes |  |
| `data[].bonds_penalty` | `string, nullable` |  |  |
| `data[].bonds_reset_on` | `boolean, nullable` |  |  |
| `data[].burn_half_life` | `integer (int32), nullable` |  |  |
| `data[].burn_increase_mult` | `string, nullable` |  |  |
| `data[].collateral_drain_ratio` | `string, nullable` |  | Alpha of collateral released per alpha of miner incentive earned. |
| `data[].collateral_lock_share` | `string, nullable` |  | Share of the registration cost locked as miner collateral, as a 0-1 fraction (0 = collateral disabled; the chain caps it at ~0.95). Null before runtime 437. |
| `data[].commit_reveal_weights_enabled` | `boolean` | Yes |  |
| `data[].commit_reveal_weights_interval` | `integer (int32), nullable` |  |  |
| `data[].difficulty` | `string` | Yes |  |
| `data[].ema_price_halving_blocks` | `integer (int32), nullable` |  |  |
| `data[].ema_tao_flow` | `string` | Yes |  |
| `data[].emission` | `string` | Yes |  |
| `data[].enabled_user_liquidity` | `boolean, nullable` |  |  |
| `data[].excess_tao` | `string, nullable` |  |  |
| `data[].fee_rate` | `string, nullable` |  |  |
| `data[].immune_owner_uids_limit` | `integer (int32)` | Yes |  |
| `data[].immunity_period` | `integer (int32)` | Yes |  |
| `data[].incentive_burn` | `string` | Yes |  |
| `data[].kappa` | `integer (int32)` | Yes |  |
| `data[].last_adjustment_block` | `integer (int32), nullable` |  |  |
| `data[].liquid_alpha_enabled` | `boolean, nullable` |  |  |
| `data[].max_burn` | `string` | Yes |  |
| `data[].max_difficulty` | `string` | Yes |  |
| `data[].max_neurons` | `integer (int32)` | Yes |  |
| `data[].max_regs_per_block` | `integer (int32)` | Yes |  |
| `data[].max_validators` | `integer (int32)` | Yes |  |
| `data[].max_weights_limit` | `integer (int32)` | Yes |  |
| `data[].mech_count` | `integer (int32)` | Yes |  |
| `data[].mech_emission_split` | `array` | Yes |  |
| `data[].mech_emission_split[]` | `string` | Yes |  |
| `data[].min_allowed_weights` | `integer (int32)` | Yes |  |
| `data[].min_burn` | `string` | Yes |  |
| `data[].min_difficulty` | `string` | Yes |  |
| `data[].modality` | `integer (int32)` | Yes |  |
| `data[].net_flow_1_day` | `string` | Yes |  |
| `data[].net_flow_30_days` | `string` | Yes |  |
| `data[].net_flow_7_days` | `string` | Yes |  |
| `data[].netuid` | `integer (int32)` | Yes |  |
| `data[].neuron_registration_cost` | `string` | Yes |  |
| `data[].neuron_registrations_this_interval` | `integer (int32)` | Yes |  |
| `data[].owner` | `object, nullable` |  |  |
| `data[].owner.hex` | `string` | Yes | The hex format of the hot key |
| `data[].owner.ss58` | `string` | Yes | The SS58 format of the hot key |
| `data[].owner_hotkey` | `object, nullable` |  |  |
| `data[].owner_hotkey.hex` | `string` | Yes | The hex format of the hot key |
| `data[].owner_hotkey.ss58` | `string` | Yes | The SS58 format of the hot key |
| `data[].pow_registration_allowed` | `boolean` | Yes |  |
| `data[].projected_emission` | `string` | Yes |  |
| `data[].recycled_24_hours` | `string` | Yes |  |
| `data[].recycled_lifetime` | `string` | Yes |  |
| `data[].recycled_since_registration` | `string` | Yes |  |
| `data[].registration_allowed` | `boolean` | Yes |  |
| `data[].registration_block_number` | `integer (int32), nullable` |  |  |
| `data[].registration_cost` | `string, nullable` |  |  |
| `data[].registration_timestamp` | `string (date-time), nullable` |  |  |
| `data[].reveal_period_epochs` | `integer (int32), nullable` |  |  |
| `data[].rho` | `integer (int32)` | Yes |  |
| `data[].serving_rate_limit` | `string` | Yes |  |
| `data[].subtoken_enabled` | `boolean, nullable` |  |  |
| `data[].swap_v3_initialized` | `boolean, nullable` |  |  |
| `data[].tao_flow` | `string, nullable` |  |  |
| `data[].target_regs_per_interval` | `integer (int32)` | Yes |  |
| `data[].tempo` | `integer (int32)` | Yes |  |
| `data[].timestamp` | `string (date-time)` | Yes |  |
| `data[].transfer_toggle` | `boolean, nullable` |  |  |
| `data[].validators` | `integer (int32)` | Yes |  |
| `data[].weights_rate_limit` | `string` | Yes |  |
| `data[].weights_version` | `string` | Yes |  |
| `data[].yuma3_on` | `boolean, nullable` |  |  |
| `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_dual": 6,
      "active_keys": 2,
      "active_miners": 51,
      "active_validators": 2,
      "activity_cutoff": 5000,
      "adjustment_alpha": "0",
      "adjustment_interval": 0,
      "block_number": 4107450,
      "blocks_since_last_step": 85,
      "blocks_until_next_adjustment": 0,
      "blocks_until_next_epoch": 15,
      "bonds_moving_avg": "0",
      "difficulty": "4611686018427387903",
      "emission": "183936012",
      "immunity_period": 0,
      "kappa": 0,
      "last_adjustment_block": 4107425,
      "max_burn": "0",
      "max_difficulty": "0",
      "max_neurons": 64,
      "max_regs_per_block": 64,
      "max_validators": 64,
      "max_weights_limit": 65535,
      "min_allowed_weights": 0,
      "min_burn": "0",
      "min_difficulty": "4611686018427387903",
      "modality": null,
      "netuid": 0,
      "neuron_registration_cost": "1000000000",
      "owner": null,
      "recycled_24_hours": "-436106",
      "recycled_lifetime": "367872024",
      "recycled_since_registration": "367872024",
      "registration_allowed": true,
      "registration_block_number": 0,
      "registration_cost": "0",
      "registration_timestamp": "2023-03-20T18:47:48Z",
      "rho": 0,
      "serving_rate_limit": "0",
      "target_regs_per_interval": 64,
      "tempo": 100,
      "timestamp": "2024-10-23T17:15:36.009Z",
      "validators": 64,
      "weights_rate_limit": "0",
      "weights_version": "0"
    },
    {
      "active_dual": 0,
      "active_keys": 26,
      "active_miners": 996,
      "active_validators": 23,
      "activity_cutoff": 5000,
      "adjustment_alpha": "17893341751498265066",
      "adjustment_interval": 112,
      "block_number": 4107450,
      "blocks_since_last_step": 53,
      "blocks_until_next_adjustment": 81,
      "blocks_until_next_epoch": 46,
      "bonds_moving_avg": "0",
      "difficulty": "1000000000000000000",
      "emission": "40749507",
      "immunity_period": 7200,
      "kappa": 32767,
      "last_adjustment_block": 4107419,
      "max_burn": "0",
      "max_difficulty": "1000000000000000000",
      "max_neurons": 1024,
      "max_regs_per_block": 0,
      "max_validators": 128,
      "max_weights_limit": 455,
      "min_allowed_weights": 8,
      "min_burn": "50000000",
      "min_difficulty": "1000000000000000000",
      "modality": 1,
      "netuid": 1,
      "neuron_registration_cost": "322844193",
      "owner": {
        "hex": "0xe2ee75ea11e4c5b7f5dac2e735278cfa0b1590c9856690f66653bdd85b709104",
        "ss58": "5HCFWvRqzSHWRPecN7q8J6c7aKQnrCZTMHstPv39xL1wgDHh"
      },
      "recycled_24_hours": "47510813577",
      "recycled_lifetime": "94000050159142",
      "recycled_since_registration": "94000050159142",
      "registration_allowed": true,
      "registration_block_number": 172898,
      "registration_cost": "0",
      "registration_timestamp": "2023-04-13T19:08:36Z",
      "rho": 0,
      "serving_rate_limit": "10",
      "target_regs_per_interval": 2,
      "tempo": 99,
      "timestamp": "2024-10-23T17:15:36.009Z",
      "validators": 128,
      "weights_rate_limit": "100",
      "weights_version": "20802"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": null,
    "per_page": 1024,
    "prev_page": null,
    "total_items": 53,
    "total_pages": 1
  }
}
```

**Response details**

```text
 {
      "block_number": 5453828,
      "timestamp": "2025-04-28T23:59:12Z",
      "netuid": 0,
      "owner": {
        "ss58": "5C4hrfjw9DjXZTzV3MwzrrAr9P1MJhSrvWGWqi1eSuyUpnhM",
        "hex": "0x0000000000000000000000000000000000000000000000000000000000000000"
      },
      "registration_block_number": null,
      "registration_timestamp": "2023-03-20T18:47:48Z",
      "registration_cost": "0",
      "neuron_registration_cost": "500000",
      "max_neurons": 64,
      "neuron_registrations_this_interval": 0,
      "active_keys": 64,
      "validators": 8,
      "active_validators": 8,
      "active_miners": 34,
      "active_dual": 4,
      "modality": 0,
      "pow_registration_allowed": false,
      "emission": "0",
      "rho": 10,
      "kappa": 32767,
      "immunity_period": 4096,
      "min_allowed_weights": 0,
      "max_weights_limit": 65535,
      "tempo": 100,
      "min_difficulty": "0.24999999999999999996",
      "max_difficulty": "0.24999999999999999996",
      "weights_version": "0",
      "weights_rate_limit": "18446744073709551615",
      "adjustment_interval": 100,
      "activity_cutoff": 5000,
      "registration_allowed": true,
      "target_regs_per_interval": 64,
      "min_burn": "500000",
      "max_burn": "100000000000",
      "bonds_moving_avg": "900000",
      "max_regs_per_block": 64,
      "serving_rate_limit": "50",
      "max_validators": 64,
      "adjustment_alpha": "0",
      "difficulty": "0.24999999999999999996",
      "last_adjustment_block": 5453825,
      "blocks_since_last_step": 440,
      "blocks_until_next_epoch": -340,
      "blocks_until_next_adjustment": 0,
      "recycled_lifetime": "2729430220511",
      "recycled_24_hours": "0",
      "recycled_since_registration": "2729430220511",
      "liquid_alpha_enabled": false,
      "alpha_high": "0.90000762951094834821",
      "alpha_low": "0.70000762951094834821",
      "commit_reveal_weights_interval": 1,
      "commit_reveal_weights_enabled": false
    },
```

### Other responses

| Status | Meaning |
| --- | --- |
| `400` | Bad request |
| `404` | Subnets 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).
