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

# Credits

> Check your remaining Crustdata API credit balance — and your recurring credit grant details — with free GET requests that consume no credits.

Use this endpoint to check your remaining API credit balance. Poll it to
monitor usage and confirm you have enough credits before a large batch of
requests. You can also view credits and usage in your
[dashboard](https://app.crustdata.com/).

<Note>
  This endpoint is **free** — checking your balance does not consume any
  credits. For how credits are charged per endpoint, see [Pricing](/general/pricing).
</Note>

## Endpoint

```
GET https://api.crustdata.com/user/credits
```

It takes no query parameters or request body. Authenticate with your API key
in the `Authorization` header.

## Example request

<CodeGroup>
  ```bash Request theme={"theme":"vitesse-black"}
  curl --request GET \
    --url https://api.crustdata.com/user/credits \
    --header 'authorization: Bearer YOUR_API_KEY'
  ```

  ```python Python theme={"theme":"vitesse-black"}
  import requests

  resp = requests.get(
      "https://api.crustdata.com/user/credits",
      headers={"Authorization": "Bearer YOUR_API_KEY"},
  )
  print(resp.json()["credits"])
  ```

  ```json Response theme={"theme":"vitesse-black"}
  {
    "credits": 9406
  }
  ```
</CodeGroup>

## Response fields

| Field     | Type   | Description                                                              |
| --------- | ------ | ------------------------------------------------------------------------ |
| `credits` | number | Remaining API credits on your account. May be fractional for some plans. |

## Errors

| Status | Body                                          | Cause                                          |
| ------ | --------------------------------------------- | ---------------------------------------------- |
| `401`  | `{ "message": "Missing API key in request" }` | No `Authorization` header.                     |
| `401`  | `{ "message": "Invalid API key in request" }` | `Authorization` header carries an invalid key. |

## Account credits

For more than the bare balance, use the account credits endpoint. It adds your
recurring credit grant: how many credits you receive each cycle, how often,
when the next refresh lands, and whether unused credits roll over.

```
GET https://api.crustdata.com/account/credits
```

Like `/user/credits`, it is **free**, takes no parameters, and is rate limited
to 300 requests per minute.

<CodeGroup>
  ```bash Request theme={"theme":"vitesse-black"}
  curl --request GET \
    --url https://api.crustdata.com/account/credits \
    --header 'authorization: Bearer YOUR_API_KEY'
  ```

  ```python Python theme={"theme":"vitesse-black"}
  import requests

  resp = requests.get(
      "https://api.crustdata.com/account/credits",
      headers={"Authorization": "Bearer YOUR_API_KEY"},
  )
  print(resp.json()["account"]["credits"])
  ```

  ```json Response theme={"theme":"vitesse-black"}
  {
    "account": {
      "credits": 9406.5,
      "recurring_credits": 10000,
      "recurring_credits_frequency": "monthly",
      "recurring_credits_refresh_date": "2026-08-01T00:00:00+00:00",
      "credit_rollover": true
    }
  }
  ```
</CodeGroup>

### Response fields

| Field                                    | Type           | Description                                                                          |
| ---------------------------------------- | -------------- | ------------------------------------------------------------------------------------ |
| `account.credits`                        | number         | Remaining API credits on your account — the shared pool all your API keys draw from. |
| `account.recurring_credits`              | number         | Credits granted each billing cycle. `0` if your plan has no recurring grant.         |
| `account.recurring_credits_frequency`    | string \| null | Grant cadence (for example `monthly`). `null` if no recurring grant.                 |
| `account.recurring_credits_refresh_date` | string \| null | ISO timestamp of the next grant refresh. `null` if no recurring grant.               |
| `account.credit_rollover`                | boolean        | Whether unused recurring credits carry into the next cycle.                          |

## What to do next

* **Understand charges** — see [Pricing](/general/pricing) for per-endpoint credit costs.
* **Avoid 429s** — review [Rate limits](/general/rate-limits) when polling at scale.
* **Check API access** — see [Permissions](/general/permissions) for which endpoints and fields your account can use.
