# Get Blocks

Returns indexed Bittensor blocks with hashes, timestamps, validators and counts of calls, extrinsics and events.

_Source: https://beta.taostats.io/docs/api-reference/block/get-block_

_Last reviewed: 2026-09-18_

```http
GET https://api.taostats.io/api/block/v1
```

Requires an API key in the `Authorization` header.

Returns indexed Bittensor blocks with hashes, timestamps, validators and counts of calls, extrinsics and events. Filter by block number, block or time range, hash, network or runtime spec version.

## Try it

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

### Examples

Get the latest blocks

```text
https://api.taostats.io/api/block/v1?order=block_number_desc&limit=10
```

Look up a specific block by number

```text
https://api.taostats.io/api/block/v1?block_number=8600000
```

### Code samples

**cURL**

```bash
curl -H "Authorization: <YOUR_API_KEY>" \
  "https://api.taostats.io/api/block/v1?limit=10&order=block_number_desc"
```

**JavaScript**

```js
const response = await fetch('https://api.taostats.io/api/block/v1?limit=10&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/block/v1?limit=10&order=block_number_desc",
    headers={"Authorization": "<YOUR_API_KEY>"},
)
data = response.json()
```

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `network` | query | `string` |  | One of `finney`, `nakamoto`, `kusanagi`, `testnet`. |
| `block_number` | query | `integer (int32)` |  | Exact block number (as opposed to a range). |
| `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) |
| `hash` | query | `string` |  | Block hash number. |
| `spec_version` | query | `integer (int32)` |  |  |
| `validator` | query | `string` |  | not used |
| `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 `spec_version_asc`, `spec_version_desc`, `block_number_asc`, `block_number_desc`, `timestamp_asc`, `timestamp_desc`, `hash_asc`, `hash_desc`, `events_count_asc`, `events_count_desc`, `extrinsics_count_asc`, `extrinsics_count_desc`. |

## Responses

### `200` — Blocks retrieved successfully

| Field | Type | Required |
| --- | --- | --- |
| `data` | `array` | Yes |
| `data[].block_number` | `integer (int32)` | Yes |
| `data[].calls_count` | `integer (int32)` | Yes |
| `data[].events_count` | `integer (int32)` | Yes |
| `data[].extrinsics_count` | `integer (int32)` | Yes |
| `data[].extrinsics_root` | `string` | Yes |
| `data[].hash` | `string` | Yes |
| `data[].impl_name` | `string` | Yes |
| `data[].impl_version` | `integer (int32)` | Yes |
| `data[].parent_hash` | `string` | Yes |
| `data[].spec_name` | `string` | Yes |
| `data[].spec_version` | `integer (int32)` | Yes |
| `data[].state_root` | `string` | Yes |
| `data[].timestamp` | `string (date-time)` | Yes |
| `data[].validator` | `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": [
    {
      "block_number": 5012771,
      "calls_count": 17,
      "events_count": 50,
      "extrinsics_count": 17,
      "extrinsics_root": "0x5693b7ec443ed7e940ec6d16603c24b69286a8d6cf8c0bf57961a59cf985d8b2",
      "hash": "0xa8a178b7dd69db4137e36a5a111a9b1d1e6c3ec4120a8427d9ee20993b9097dc",
      "impl_name": "node-subtensor",
      "impl_version": 1,
      "parent_hash": "0xa7703c86d57e82e54edae7a3a26acc2745ce647112e7d55418ecf5c843a9b2e5",
      "spec_name": "node-subtensor",
      "spec_version": 244,
      "state_root": "0x6122a6e6ffbef31269e522a4cefed502920b311676ac4c8b7847f3b1711527f6",
      "timestamp": "2025-02-26T17:47:48Z",
      "validator": null
    },
    {
      "block_number": 5012770,
      "calls_count": 17,
      "events_count": 52,
      "extrinsics_count": 17,
      "extrinsics_root": "0x1dd23bfd4deb77849e7b31b1ddd542523a500d83d5d0d1ef273ab5b555b7fed0",
      "hash": "0xa7703c86d57e82e54edae7a3a26acc2745ce647112e7d55418ecf5c843a9b2e5",
      "impl_name": "node-subtensor",
      "impl_version": 1,
      "parent_hash": "0x81cf430f54397cd9d91f49061a0e39bd2ffd8c792322caba3345cade2141d6e4",
      "spec_name": "node-subtensor",
      "spec_version": 244,
      "state_root": "0x6869a835388a38be4a0ed026cff4d9cd53782526be12bf715ab63a5c8cfb4634",
      "timestamp": "2025-02-26T17:47:36Z",
      "validator": null
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": 2,
    "per_page": 50,
    "prev_page": null,
    "total_items": 5012772,
    "total_pages": 100256
  }
}
```

**Response details**

```text
{
      "block_number": 5452222,
      "hash": "0xc46d4aaf06d2f111c81bf01694d68a96336af2f0c83edc2c4b19c3e281c21fab",
      "parent_hash": "0x3cb824ac79275e14d922ebc162c9cb932776d11a7b6353722fa9179fe30b072c",
      "state_root": "0xb99e3495f4f4902c1ec2f50e8b3d4c48c408a072993ded0ede4d9538a41a97b9",
      "extrinsics_root": "0x0e1c5107c5f5b140126f231a298526a380ae75d4e55736bb779a1d4997488d5a",
      "spec_name": "node-subtensor",
      "spec_version": 261,
      "impl_name": "node-subtensor",
      "impl_version": 1,
      "timestamp": "2025-04-28T18:38:00Z",
      "validator": null,
      "events_count": 67,
      "extrinsics_count": 19,
      "calls_count": 20
    },
```

### Other responses

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