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

# userRateLimit | Hyperliquid Info API

> Hyperliquid userRateLimit: fetch a user's API rate-limit usage and cap.

<CardGroup cols={2}>
  <Card title="Credit Cost"> 1 per call</Card>
  <Card title="Processing"> Realtime</Card>
</CardGroup>

The Hyperliquid info endpoint with `type: "userRateLimit"` is used to fetch a user's API rate-limit usage and cap.

<Tip>
  Estimate your monthly cost for this API using the [Pricing Calculator](/docs/pricing-calculator?endpoint=%2Fapi-reference%2Fhyperliquid-info%2Fuser-rate-limit).
</Tip>

<Info>
  * Wire-equal to `POST api.hyperliquid.xyz/info` with `{"type": "userRateLimit", "user": "..."}`.
  * This reports Hyperliquid's own address-based L1 request allowance; it is unrelated to your GoldRush credit budget.
  * The request cap (`nRequestsCap`) is a function of the account's cumulative traded volume (`cumVlm`), so higher-volume accounts are granted more requests.
</Info>

Returns the address-based API rate-limit accounting Hyperliquid maintains for a wallet: cumulative traded volume, how many requests have been used, the current cap, and any surplus beyond it. Use it to monitor how much of an account's request allowance remains.

User-keyed.

## Endpoint

```
POST https://hypercore.goldrushdata.com/info
Authorization: Bearer <GOLDRUSH_API_KEY>
Content-Type: application/json
```

## Request

<ParamField body="type" type="string" required>
  Always `"userRateLimit"`.
</ParamField>

<ParamField body="user" type="string" required>
  The wallet address (lowercase 0x-prefixed hex).
</ParamField>

### Example

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://hypercore.goldrushdata.com/info \
    -H "Authorization: Bearer $GOLDRUSH_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "type": "userRateLimit",
      "user": "0x31ca8395cf837de08b24da3f660e77761dfb974b"
    }'
  ```

  ```typescript TypeScript theme={null}
  const response = await fetch("https://hypercore.goldrushdata.com/info", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${process.env.GOLDRUSH_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      type: "userRateLimit",
      user: "0x31ca8395cf837de08b24da3f660e77761dfb974b",
    }),
  });

  const rateLimit = await response.json();
  ```

  ```python Python theme={null}
  import os, requests

  response = requests.post(
      "https://hypercore.goldrushdata.com/info",
      headers={"Authorization": f"Bearer {os.environ['GOLDRUSH_API_KEY']}"},
      json={
          "type": "userRateLimit",
          "user": "0x31ca8395cf837de08b24da3f660e77761dfb974b",
      },
  )

  rate_limit = response.json()
  ```
</CodeGroup>

## Response

```json theme={null}
{
  "cumVlm": "471728188.87",
  "nRequestsUsed": 370317503,
  "nRequestsCap": 471738188,
  "nRequestsSurplus": 0
}
```

### Field descriptions

<Note>
  `cumVlm` is returned as a **decimal string**. Do not parse it as a float.
</Note>

<ResponseField name="cumVlm" type="string">Cumulative traded volume for the account, in USDC.</ResponseField>
<ResponseField name="nRequestsUsed" type="int">Number of requests consumed so far against the address allowance.</ResponseField>
<ResponseField name="nRequestsCap" type="int">Current maximum number of requests allowed for the account.</ResponseField>
<ResponseField name="nRequestsSurplus" type="int">Requests made beyond the cap; `0` when the account is within its limit.</ResponseField>

*Last reviewed: 2026-07-24*
