# Get Historical Subnet Pools

Returns historical subnet pool prices, reserves, market caps and liquidity snapshots.

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

_Last reviewed: 2026-09-18_

```http
GET https://api.taostats.io/api/dtao/pool/history/v1
```

Requires an API key in the `Authorization` header.

Returns historical subnet pool prices, reserves, market caps and liquidity snapshots. Filter by netuid to inspect one subnet pool.

## Try it

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

### Examples

Track subnet 19's pool price over time

```text
https://api.taostats.io/api/dtao/pool/history/v1?netuid=19&order=block_number_desc&limit=100
```

### Code samples

**cURL**

```bash
curl -H "Authorization: <YOUR_API_KEY>" \
  "https://api.taostats.io/api/dtao/pool/history/v1?netuid=19&limit=100&order=block_number_desc"
```

**JavaScript**

```js
const response = await fetch('https://api.taostats.io/api/dtao/pool/history/v1?netuid=19&limit=100&order=block_number_desc', {
  headers: {
    Authorization: '<YOUR_API_KEY>',
  },
});
const data = await response.json();
```

**Python**

```python
import requests

response = requests.get(
    "https://api.taostats.io/api/dtao/pool/history/v1?netuid=19&limit=100&order=block_number_desc",
    headers={"Authorization": "<YOUR_API_KEY>"},
)
data = response.json()
```

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `netuid` | query | `integer (int32)` |  | subnet |
| `frequency` | query | `string` |  | One of `by_block`, `by_hour`, `by_day`. |
| `block_number` | query | `integer (int32)` |  | The exact block number |
| `block_start` | query | `integer (int32)` |  | Start of block range (inclusive) |
| `block_end` | query | `integer (int32)` |  | End of block range (inclusive) |
| `timestamp_start` | query | `integer (int64)` |  | Start of timestamp range in Unix timestamp (seconds since 1970-01-01) (inclusive) |
| `timestamp_end` | query | `integer (int64)` |  | End of timestamp range in Unix timestamp (seconds since 1970-01-01) (inclusive) |
| `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 `block_number_asc`, `block_number_desc`, `timestamp_asc`, `timestamp_desc`, `price_asc`, `price_desc`. |

## Responses

### `200` — Dtao pools retrieved successfully

| Field | Type | Required |
| --- | --- | --- |
| `data` | `array` | Yes |
| `data[].alpha_in_pool` | `string` | Yes |
| `data[].alpha_sqrt_price` | `string, nullable` |  |
| `data[].alpha_staked` | `string` | Yes |
| `data[].block_number` | `integer (int32)` | Yes |
| `data[].current_tick` | `integer (int32), nullable` |  |
| `data[].enabled_user_liquidity` | `boolean, nullable` |  |
| `data[].fee_global_alpha` | `string, nullable` |  |
| `data[].fee_global_tao` | `string, nullable` |  |
| `data[].fee_rate` | `string, nullable` |  |
| `data[].liquidity` | `string` | Yes |
| `data[].liquidity_raw` | `string, nullable` |  |
| `data[].market_cap` | `string` | Yes |
| `data[].name` | `string` | Yes |
| `data[].netuid` | `integer (int32)` | Yes |
| `data[].price` | `string` | Yes |
| `data[].protocol_provided_alpha` | `string, nullable` |  |
| `data[].protocol_provided_tao` | `string, nullable` |  |
| `data[].rank` | `integer (int32)` | Yes |
| `data[].root_prop` | `string` | Yes |
| `data[].startup_mode` | `boolean` | Yes |
| `data[].swap_v3_initialized` | `boolean, nullable` |  |
| `data[].symbol` | `string` | Yes |
| `data[].timestamp` | `string (date-time)` | Yes |
| `data[].total_alpha` | `string` | Yes |
| `data[].total_tao` | `string` | Yes |
| `data[].user_provided_alpha` | `string, nullable` |  |
| `data[].user_provided_tao` | `string, 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": [
    {
      "alpha_in_pool": "309650552567823",
      "alpha_staked": "425339517721064",
      "block_number": 5373802,
      "liquidity": "2432464684449.9999988910914295",
      "market_cap": "2886862908160.8847268668157859",
      "name": "𝜏",
      "netuid": 23,
      "price": "0.00392775770021791803",
      "symbol": "ψ",
      "timestamp": "2025-04-17T21:14:00.001Z",
      "total_alpha": "734990070288887",
      "total_tao": "1216232342225"
    },
    {
      "alpha_in_pool": "271657071697653",
      "alpha_staked": "486365627804195",
      "block_number": 5373802,
      "liquidity": "8622025798511.999998872158885",
      "market_cap": "12029304501663.573627560015876",
      "name": "𝜏",
      "netuid": 41,
      "price": "0.01586931962534750864",
      "symbol": "נ",
      "timestamp": "2025-04-17T21:14:00.001Z",
      "total_alpha": "758022699501848",
      "total_tao": "4311012899256"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": 2,
    "per_page": 50,
    "prev_page": null,
    "total_items": 35600067,
    "total_pages": 712002
  }
}
```

**Response details**

```text
 {
      "netuid": 19,
      "block_number": 5453877,
      "timestamp": "2025-04-29T00:09:00Z",
      "name": "𝜏",
      "symbol": "t",
      "rank": 8,
      "market_cap": "59441463321024.643624407561697", in tao as rao
      "market_cap_change_1_day": "-3.846094939556050115", percentage change
      "liquidity": "45018004643438.000000101740943", in rao
      "total_tao": "22509002321719", tao in pool as rao
      "total_alpha": "856421874395587", total alpha as rao
      "alpha_in_pool": "324305642595491", alpha in pool as rao
      "alpha_staked": "532116231800096", alpha out as rao
      "price": "0.06940675512635053689", price in tao
      "price_change_1_hour": "-0.216805016991778647", % change
      "price_change_1_day": "-5.034051585669554908", % change
      "price_change_1_week": "-29.213601152223015603",% change
      "price_change_1_month": "9.183499318978998146",% change
      "tao_volume_24_hr": "5625165881462", as rao
      "tao_volume_24_hr_change_1_day": "42.469244614287561127",% change
      "tao_buy_volume_24_hr": "2564533168881", as rao
      "tao_sell_volume_24_hr": "3060632712581", as rao
      "buys_24_hr": 1523,
      "sells_24_hr": 2052,
      "buyers_24_hr": 242,
      "sellers_24_hr": 168,
      "seven_day_prices": [
        {
          "block_number": 5403477,
          "timestamp": "2025-04-22T00:09:00Z",
          "price": "0.0980509762554903941"
        },
      <snip>
      ],
      "startup_mode": false
    }
```

### Other responses

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