# Post RPC Http

Forward a JSON-RPC 2.0 request (object or batch array) to the default finney_lite node and relay its response.

_Source: https://beta.taostats.io/docs/new/rpc/post-rpc-http_

_Last reviewed: 2026-10-07_

```http
POST https://api.taostats.io/v1/rpc/http
```

Requires an API key in the `Authorization` header.

Forward a JSON-RPC 2.0 request (object or batch array) to the default finney_lite node and relay its response. A WebSocket variant exists at `WS /v1/rpc/ws/{target}` (targets: `finney_lite`, `finney_archive`) — it is not listed as its own OpenAPI path because OpenAPI 3 cannot describe WebSocket upgrades.

## Code samples

**cURL**

```bash
curl -X POST \
  -H "Authorization: <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{}' \
  "https://api.taostats.io/v1/rpc/http"
```

**JavaScript**

```js
const response = await fetch('https://api.taostats.io/v1/rpc/http', {
  method: 'POST',
  headers: {
    Authorization: '<YOUR_API_KEY>',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({}),
});
const data = await response.json();
```

**Python**

```python
import requests

response = requests.post(
    "https://api.taostats.io/v1/rpc/http",
    headers={"Authorization": "<YOUR_API_KEY>"},
    json={},
)
data = response.json()
```

## Parameters

_No parameters._

## Request body

A JSON-RPC 2.0 request object or batch array

_No documented fields._

```json
{}
```

## Responses

### `200` — The upstream node's JSON-RPC response

Returns `application/json` — a `object` body.

### `400` — Body is not valid JSON or not a JSON-RPC request object or array

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | `string` | Yes | Plain-english message describing the failure from the caller's perspective. |
| `status_code` | `integer (int32)` | Yes | HTTP status code (mirrored in the response status line for convenience). |

### `413` — Request body exceeds the size limit

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | `string` | Yes | Plain-english message describing the failure from the caller's perspective. |
| `status_code` | `integer (int32)` | Yes | HTTP status code (mirrored in the response status line for convenience). |

### `415` — Content type is not application/json

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | `string` | Yes | Plain-english message describing the failure from the caller's perspective. |
| `status_code` | `integer (int32)` | Yes | HTTP status code (mirrored in the response status line for convenience). |

### `500` — Upstream node unreachable or returned a non-JSON body

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | `string` | Yes | Plain-english message describing the failure from the caller's perspective. |
| `status_code` | `integer (int32)` | Yes | HTTP status code (mirrored in the response status line for convenience). |

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).
