---
title: HTTP Methods
seoTitle: Solana RPC HTTP Methods
hideTableOfContents: false
h1: Solana RPC HTTP Methods
---

Solana nodes accept HTTP requests using the
[JSON-RPC 2.0](https://www.jsonrpc.org/specification) specification.

> For JavaScript applications, use the
> [@solana/web3.js](https://github.com/solana-labs/solana-web3.js) library as a
> convenient interface for the RPC methods to interact with a Solana node. For
> an PubSub connection to a Solana node, use the
> [Websocket API](/docs/rpc/websocket/).

## RPC HTTP Endpoint

Default port: `8899`

- http://localhost:8899
- http://192.168.1.88:8899

## Request Formatting

To make a JSON-RPC request, send an HTTP POST request with a
`Content-Type: application/json` header. The JSON request data should contain 4
fields:

- `jsonrpc: <string>` - set to `"2.0"`
- `id: <string | number | null>` - a unique identifier for the request,
  generated by the client. Typically a string or number, though null is
  technically allowed but not advised
- `method: <string>` - a string containing the method to be invoked
- `params: <array>` - a JSON array of ordered parameter values

Example using curl:

```shell
curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '
  {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getBalance",
    "params": [
      "83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"
    ]
  }
'
```

The response output will be a JSON object with the following fields:

- `jsonrpc: <string>` - matching the request specification
- `id: <number>` - matching the request identifier
- `result: <array|number|object|string>` - requested data or success
  confirmation

Requests can be sent in batches by sending an array of JSON-RPC request objects
as the data for a single POST.

### Example Request

The commitment parameter should be included as the last element in the `params`
array:

```shell
curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '
  {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getBalance",
    "params": [
      "83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri",
      {
        "commitment": "finalized"
      }
    ]
  }
'
```

## Definitions

- Hash: A SHA-256 hash of a chunk of data.
- Pubkey: The public key of a Ed25519 key-pair.
- Transaction: A list of Solana instructions signed by a client keypair to
  authorize those actions.
- Signature: An Ed25519 signature of transaction's payload data including
  instructions. This can be used to identify transactions.

## Health Check

Although not a JSON RPC API, a `GET /health` at the RPC HTTP Endpoint provides a
health-check mechanism for use by load balancers or other network
infrastructure. This request will always return a HTTP 200 OK response with a
body of "ok", "behind" or "unknown":

- `ok`: The node is within `HEALTH_CHECK_SLOT_DISTANCE` slots from the latest
  cluster confirmed slot
- `behind { distance }`: The node is behind `distance` slots from the latest
  cluster confirmed slot where `distance > HEALTH_CHECK_SLOT_DISTANCE`
- `unknown`: The node is unable to determine where it stands in relation to the
  cluster
