> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ironflow.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Hyperliquid RPC: your API key as an endpoint

> A Hyperliquid RPC endpoint with its own API rate limit. Change one line in the official Python SDK and read /info on your plan's limits instead of the public per-IP budget.

Your API key is a Hyperliquid RPC URL. Change one line in a Hyperliquid SDK and `/info` reads use your plan's limits.

```python Python theme={null}
from hyperliquid.info import Info

info = Info(base_url="https://api.ironflow.sh/rpc/if_your_key", skip_ws=True)
print(info.user_state("0xYourWallet"))
```

```bash curl theme={null}
curl -X POST https://api.ironflow.sh/rpc/if_your_key/info \
  -H "Content-Type: application/json" \
  -d '{"type": "clearinghouseState", "user": "0xYourWallet"}'
```

Same JSON body and same JSON answer as `https://api.hyperliquid.xyz/info`. The URL holds your key, so keep it private. We never store it.

No key yet? [Get a free one](https://ironflow.sh/key).

## Supported types

| Type | Notes |
| - | - |
| `clearinghouseState`, `spotClearinghouseState`, `openOrders`, `frontendOpenOrders`, `meta`, `spotMeta`, `userAbstraction` | From our own node |
| `allMids` | Main dex and spot |
| `l2Book` | `nSigFigs` 2 to 5, no `mantissa` |
| `candleSnapshot` | At most the latest 1,000 candles per call, every interval below `1w` |

Any other type answers `400` listing these.

## Limits by plan

| Plan | Requests | Candle history |
| - | - | - |
| Free | 60 a minute | 14 days |
| Explorer | 100 a minute | 90 days |
| Builder | 1,000 a minute | 1 year |
| Enterprise | 10,000 a minute | Everything stored |

Each call is one request. No keyless access.

## Orders

There is no `/exchange` here. Send orders directly to Hyperliquid: keep your `Exchange` client on Hyperliquid's own URL. `/rpc/<key>/exchange` answers `400`.

## Errors

| Status | Code | Meaning |
| - | - | - |
| 400 | `INVALID_PARAMETER`, `INVALID_BODY` | Unsupported `type` or a body we cannot read |
| 400 | `EXCHANGE_NOT_SERVED` | Orders go directly to Hyperliquid |
| 401 | `INVALID_API_KEY` | The key in the URL is wrong |
| 429 | `RATE_LIMIT_EXCEEDED` | Over your plan's rate limit; see `Retry-After` |
| 503 | `NODE_UNAVAILABLE` | Our node is behind or restarting; retry after `Retry-After` seconds |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.