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

# Rate limits

> Learn about API rate limits and how to work with them.

The Rated API employs a number of safeguards against bursts of incoming traffic to help maximise its stability. Users who send many requests in quick succession may see error responses that show up as status code `429 Too many requests.`

For Free tier users, Rated allows up to 2 requests per second with a 10,000 Lifetime request safeguard.

For paid tiers, rate limit details can be found at our [Plans](/rated-api/pricing/plans) page.

Once you get rate limited you can use `Retry-After` and `Age` headers to compute how long you need to wait before being able to continue using the API.

## Handling Rate Limits

When you receive a `429` status code, check the response headers:

* `Retry-After`: Number of seconds to wait before making another request
* `Age`: How long the current rate limit window has been active

### Examples

<CodeGroup>
  ```python Python theme={null}
  import time
  import requests

  response = requests.get('https://api.rated.network/v0/eth/network/overview')

  if response.status_code == 429:
      retry_after = int(response.headers.get('retry-after', 1))
      print(f"Rate limited. Retry after {retry_after} seconds")
      
      # Wait before retrying
      time.sleep(retry_after)
      # Make your request again
  ```

  ```javascript JavaScript theme={null}
  if (response.status === 429) {
    const retryAfter = response.headers['retry-after'];
    console.log(`Rate limited. Retry after ${retryAfter} seconds`);
    
    // Wait before retrying
    setTimeout(() => {
      // Make your request again
    }, retryAfter * 1000);
  }
  ```

  ```bash cURL theme={null}
  # If you get a 429 response, check the headers
  curl -i https://api.rated.network/v0/eth/network/overview

  # Response headers will include:
  HTTP/1.1 429 Too Many Requests
  Retry-After: 30
  Age: 15

  # Wait 30 seconds then retry
  ```

  ```go Go theme={null}
  if resp.StatusCode == 429 {
      retryAfter := resp.Header.Get("retry-after")
      fmt.Printf("Rate limited. Retry after %s seconds\n", retryAfter)
      
      // Convert to duration and wait
      if seconds, err := strconv.Atoi(retryAfter); err == nil {
          time.Sleep(time.Duration(seconds) * time.Second)
          // Make your request again
      }
  }
  ```
</CodeGroup>

<Info>
  We may reduce limits to prevent abuse, or increase limits to enable high-traffic applications. To request an increased rate limit, please [contact us](mailto:hello@rated.network).
</Info>
