> For the complete documentation index, see [llms.txt](https://docs.january.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.january.ai/rest-api/credits-and-pricing.md).

# Credits and pricing

Every successful v1.2 call costs a fixed number of API credits, set per operation. Your plan includes a credit allowance and a free-call allowance for each billing period, and `GET /v1.2/credits` reports where you stand.

## What each operation costs

Each operation's description in the reference opens with its price; the table collects them.

| Category       | Operation                                      | Endpoint                                                                         | Credits                              |
| -------------- | ---------------------------------------------- | -------------------------------------------------------------------------------- | ------------------------------------ |
| Food analysis  | Meal Scanning                                  | `POST /v1.2/food-analysis/image`                                                 | 10                                   |
| Food analysis  | Natural Language Logging                       | `POST /v1.2/food-analysis/text`                                                  | 5                                    |
| Food analysis  | Edit Results with AI                           | `POST /v1.2/food-analysis/corrections`                                           | 5; one free per successful meal scan |
| Foods          | Food Search                                    | `GET /v1.2/foods`                                                                | 2                                    |
| Foods          | Food Search – Autocomplete                     | `GET /v1.2/foods/autocomplete`                                                   | Free, up to your free-call allowance |
| Foods          | Barcode Scan                                   | `GET /v1.2/foods/barcode/{barcode}`                                              | 2                                    |
| Foods          | Retrieve Food                                  | `GET /v1.2/foods/{food_id}`                                                      | 1                                    |
| Foods          | Healthy Food Alternatives                      | `POST /v1.2/foods/{food_id}/alternatives`                                        | 4                                    |
| Food logs      | Create / List / Get / Update / Delete Food Log | `POST`, `GET /v1.2/food-logs`; `GET`, `PATCH`, `DELETE /v1.2/food-logs/{log_id}` | Free, up to your free-call allowance |
| Glucose        | Glucose Prediction                             | `POST /v1.2/glucose/predictions`                                                 | 3                                    |
| Restaurants    | Search Restaurant Name                         | `GET /v1.2/restaurants`                                                          | 2                                    |
| Restaurants    | Search Restaurant Menu Item                    | `GET /v1.2/restaurants/{restaurant_id}/menu-items`, `GET /v1.2/menu-items`       | 2                                    |
| Authentication | Create / Revoke Client Token                   | `POST /v1.2/auth/client-tokens`, `POST /v1.2/auth/client-token-revocations`      | Never charged                        |
| Credits        | Credits                                        | `GET /v1.2/credits`                                                              | Never charged                        |

Prices are the same on every plan. Enterprise contracts change the allowance, its term and the overage rate, never an operation's price.

## How charging works

* **Per successful call.** A request that fails validation, is refused by a limit, or fails upstream costs nothing and uses no free call.
* **The free-call allowance.** Autocomplete and the food-log operations share one counter per billing period, sized by your plan (see [Your billing period](#your-billing-period)). Past it they cost **1 credit per block of 100 calls**, charged when a block starts. On Free, call 1,001 costs 1 credit and calls 1,002–1,100 cost nothing more. The never-charged operations do not use the allowance.
* **One free correction per meal scan.** Each successful `POST /v1.2/food-analysis/image` banks one free `POST /v1.2/food-analysis/corrections` for the same billing period. Corrections beyond what is banked cost 5 credits. Two scans and then three corrections cost 10 + 10 + 0 + 0 + 5.

## Your billing period

Credits and free calls reset with your billing period, not the calendar month.

| Plan       | Free calls per period | Billing period                                                                       |
| ---------- | --------------------- | ------------------------------------------------------------------------------------ |
| Free       | 1,000                 | Calendar month, UTC                                                                  |
| Pro        | 10,000                | Your subscription period: it starts the day payment starts and rolls on each renewal |
| Startup    | 100,000               | Your subscription period, as for Pro                                                 |
| Enterprise | Per contract          | Your contract term, with no monthly reset                                            |

Your plan's included credits are shown on the billing page of the [January Developer Dashboard](https://dashboard.january.ai/billing) and returned as `included_credits` by [`GET /v1.2/credits`](/rest-api/credits.md), along with `used_credits`, `remaining_credits`, `period_start`, `period_end` and `resets_at`. Read the reset date from `resets_at` rather than assuming the first of the month.

## When credits run out

A call is refused **before it runs** when it costs more than you have left. With 3 credits left a meal scan is refused, but a 1-credit food lookup still works. Once your credits are spent, every v1.2 endpoint answers `429` with code `credit_limit_exceeded` until `resets_at`, including the free-call operations and a correction you have banked. Only `GET /v1.2/credits` keeps answering, so you can always read your balance and reset date.

```json
{
  "message": "Credit limit reached for this billing period: this request requires 10 available credits from the 1000 credits included in the free plan. The allowance resets on 2026-10-01. Call GET /v1.2/credits for your current balance, or contact January to raise your limit.",
  "code": "credit_limit_exceeded"
}
```

{% hint style="warning" %}
**Do not retry `credit_limit_exceeded`.** The response carries no `Retry-After` header, and no retry succeeds before `resets_at`. To keep going sooner, upgrade your plan on the billing page of the [January Developer Dashboard](https://dashboard.january.ai/billing).
{% endhint %}

**Enterprise is never cut off.** Calls past the allowance keep working and are billed as overage.

## Next steps

* [Credits](/rest-api/credits.md) — the `GET /v1.2/credits` reference.
* [API overview](/rest-api/api-overview.md) — base URL, credentials and endpoint groups.
