# API Credits & Rate Limits

In our API, each call to an endpoint typically consumes one API credit. However, an important exception exists for bulk endpoints.

### Bulk Endpoints and API Credits

Bulk endpoints allow users to retrieve data for multiple parameter combinations in a single request. While this is efficient in terms of reducing the number of API calls, it's essential to understand how API credits are consumed:

* **Credit Calculation**: Each request to a bulk endpoint consumes as many API credits as individual calls to the standard endpoint would. For example:
  * Calling the `/market/mvrv/bulk` endpoint with 5 assets will consume 5 API credits.
  * If a bulk request includes 5 assets and 5 exchanges, it will consume 25 API credits (one for each combination's metric value).
* **Parameter Whitelists**: When parameters are not specified (i.e., no whitelists are applied), the bulk endpoint returns data for all possible parameter values. This can lead to a significant number of API credits being consumed. To manage and predict credit usage effectively, it's advisable to:

For more detailed information on bulk endpoints and their usage, refer to the [Bulk Metrics](/~/revisions/16NjoBk2BV1L86OQTWKU/basic-api/bulk-metrics.md) documentation.

### Rate limits

* applied to all requests, at 600 req/min or depending on your access tier.
* metadata endpoints have their own rate limit which is 1200 req/min. The metadata rate limit is fully isolated and does not interfere with other requests.
* 3 headers exist
  * x-rate-limit-limit: 600

    x-rate-limit-remaining: 599

    x-rate-limit-reset: 60
* Requests to Studio from the same account do not count towards your rate limit.&#x20;
* You can talk with your account manager to increase the rate limit
* If the rate limit is exceeded a 429 error is thrown
* A common issue is
  * &#x20;to run into rate limits when too many parameter combinations are requested, for example assets. Its then adviced to look at the Bulk endpoints which allow to request many parameters, like all assets or all exchanges, within a single request. This is a common pitfall when trying to keep various metrics up to date with many parameters
  * Another issue is when looping through many metrics, here its recommended to pass the rate limit headers to your http library which usuaully is capable of automatically respecting the rate limit

## Rate Limits

Rate limits are applied to all API requests to ensure stability and fair usage. If you exceed the rate limit, the API will return a **429 Too Many Requests** error.

To increase your rate limit, please contact your account manager.

#### General Limits

* **Standard Requests:** Defaults to **600 req/min**, or varies based on your specific access tier.
* **Metadata Endpoints:** Separately limited to **1200 req/min**. This bucket is fully isolated and does not impact your standard request quota.

> **Note:** Requests made via Glassnode Studio from the same account do not consume your API rate limit.

***

#### Response Headers

Every API response includes headers to help you track your usage:

| Header                   | Description                                                      |
| ------------------------ | ---------------------------------------------------------------- |
| `x-rate-limit-limit`     | The total request limit per minute (e.g., `600`).                |
| `x-rate-limit-remaining` | The number of requests left in the current window (e.g., `599`). |
| `x-rate-limit-reset`     | Time in seconds until the limit resets (e.g., `60`).             |

#### Best Practices & Common Pitfalls

**1. High Cardinality Requests (Assets/Exchanges)** Running into limits when requesting many parameter combinations (e.g., iterating through a list of assets) is a common issue.

* **Solution:** Use [**Bulk Endpoints**](https://docs.glassnode.com/~/revisions/16NjoBk2BV1L86OQTWKU/basic-api/bulk-metrics). These allow you to fetch data for multiple parameters (like "all assets" or "all exchanges") in a single request.

**2. Looping Through Metrics** Scripts that loop through numerous metrics often trigger rate limits.

* **Solution:** Pass the `x-rate-limit` headers to your HTTP client library. Most modern libraries can read these headers to automatically pace requests and respect the reset window.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.glassnode.com/~/revisions/16NjoBk2BV1L86OQTWKU/basic-api/api-credits.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
