# Credit Consumption

> How Easyparser charges credits per request and per operation in the Real-Time API and Bulk API, with pagination, A+ content and sales history costs.

Source: https://docs.easyparser.com/essentials/credit-consumption

Every successful request consumes credits from your plan. Most requests cost 1 credit; pagination, A+ content, sales history and larger similar product lists cost more. This page lists every case and shows how to calculate the cost before you send a request.

## How credits are charged

- A successful request costs **1 credit** unless a rule below says otherwise. The same rules apply to the Real-Time API and to each item in the Bulk API.
- Failed requests are not charged. The one exception is the Similar Products operation (`SIMILAR_PRODUCTS`): an unknown ASIN returns HTTP `404` and is charged 1 credit.
- Account and monitoring endpoints are free (see [Free endpoints](#free-endpoints)).

## Credit table

| Condition | Credits |
|---|---|
| Any operation, default | 1 |
| `DETAIL` with `a_plus_content=true` | 2 |
| `OFFER`, `SEARCH`, `SELLER_PRODUCTS`, `SELLER_FEEDBACK` | 1 per page, up to 5 pages |
| `SALES_ANALYSIS_HISTORY` with `history_range=0` (or no history found) | 5 |
| `SALES_ANALYSIS_HISTORY` with `history_range` `3` / `6` / `9` / `12` | 8 / 11 / 14 / 17 |
| `SIMILAR_PRODUCTS` with `similar_limit` `10` / `50` / `100` | 1 / 6 / 11 |
| `SIMILAR_PRODUCTS` with an empty `similar` list | 1 |
| `PRODUCT_LOOKUP`, `PACKAGE_DIMENSION`, `BEST_SELLERS_RANK`, `SELLER_PROFILE` | 1 |

The sections below explain the rules that change the cost.

## Pagination

The Offer (`OFFER`), Search (`SEARCH`), Seller Products (`SELLER_PRODUCTS`) and Seller Feedback (`SELLER_FEEDBACK`) operations accept `min_page` and `max_page`. Each page in the window costs 1 credit:

```
credits = max_page - min_page + 1
```

- `min_page` and `max_page` are integers from `1` to `400`. Both default to `1`.
- `max_page` must be greater than or equal to `min_page`. Otherwise the API returns `MSG1010` ("Maximum page count must be more than minimum page count").
- One request can fetch at most 5 pages. The window does not have to start at page 1: `min_page=6&max_page=10` is valid and costs 5 credits.
- Every page in the window is charged, even a page with no results. For example, `max_page=2` on a product that has only one page of offers costs 2 credits.
- `SEARCH`, `SELLER_PRODUCTS` and `SELLER_FEEDBACK` also accept a single `page` instead of the window. A request with `page` fetches one page and costs 1 credit.

![Animation: min_page=6 and max_page=10 select five pages, each costs 1 credit, and pages without results are charged too](https://docs.easyparser.com/media/animations/docs-credit-consumption-page-window.jpg)

*Animation: min_page=6 and max_page=10 select five pages, each costs 1 credit, and pages without results are charged too* ([MP4](https://docs.easyparser.com/media/animations/docs-credit-consumption-page-window.mp4))

This Search request fetches pages 1 to 3 and costs 3 credits:

```bash
curl --location 'https://realtime.easyparser.com/v1/request?api_key=YOUR_API_KEY&platform=AMZ&operation=SEARCH&domain=.com&keyword=wireless%20earbuds&sort_by=featured&min_page=1&max_page=3'
```

## A+ content

The Detail operation (`DETAIL`) costs 1 credit. Setting `a_plus_content=true` adds the enhanced brand content to the response and adds 1 credit, for a total of 2:

```bash
curl --location 'https://realtime.easyparser.com/v1/request?api_key=YOUR_API_KEY&platform=AMZ&operation=DETAIL&domain=.com&asin=B0CJB6V2L5&a_plus_content=true'
```

## Sales history

The Sales Analysis and History operation (`SALES_ANALYSIS_HISTORY`) has a base cost of 5 credits plus 1 credit per month of history requested in `history_range`:

| Condition | Credits |
|---|---|
| `history_range=0` (default, current snapshot only) | 5 |
| `history_range=3` | 8 |
| `history_range=6` | 11 |
| `history_range=9` | 14 |
| `history_range=12` | 17 |

> **WARNING:** The extra history credits are charged only when history exists for the product. If at least one week of history is found, the full cost for the requested range is charged. If none is found, the request costs the 5 credit base.

See [Sales Analysis and History request](/real-time-integration/sales-analysis-and-history/request) for the parameters.

## Similar products

The Similar Products operation (`SIMILAR_PRODUCTS`) is charged by `similar_limit`, the maximum number of similar products you ask for:

| Condition | Credits |
|---|---|
| `similar_limit=10` (default) | 1 |
| `similar_limit=50` | 6 |
| `similar_limit=100` | 11 |
| Response has an empty `similar` list | 1 |
| Unknown ASIN (HTTP `404`) | 1 |
| Request fails with HTTP `504` | 0 (refunded) |

The number of products returned depends on what Amazon lists for the ASIN, so a response can contain fewer items than `similar_limit`.

## Bulk API credits

Each item in a Bulk API request is charged with the same rules as the matching Real-Time API request:

- `DETAIL` items cost 1 credit per ASIN or URL, or 2 with `a_plus_content: true`.
- `SIMILAR_PRODUCTS` items cost 1, 6 or 11 credits per ASIN, depending on `similar_limit`.
- The Bulk API uses a single `page` value in `payload` instead of `min_page` and `max_page`. Each input value (keyword, URL or seller ID) fetches that one page, so `SEARCH`, `SELLER_PRODUCTS` and `SELLER_FEEDBACK` items cost 1 credit per input value.
- Only accepted items are charged. In the submit response, each accepted item is an entry in `data.accepted[].results[]` and carries its cost in `credit`.
- When your credits run out, items are accepted in order until the balance is used up. The remaining items are returned in `data.insufficient_credit` and are not charged.

This Search group has 2 keywords and fetches page 2 for each, so it costs 2 credits:

```json
[
  {
    "platform": "AMZ",
    "operation": "SEARCH",
    "domain": ".com",
    "callback_url": "https://example.com/easyparser/webhook",
    "payload": {
      "keywords": ["car play", "airpods"],
      "page": 2,
      "exclude_sponsored": true
    }
  }
]
```

See [Bulk Service Request](/bulk-integration/bulk-service-request) for the request format and [Bulk Service Response](/bulk-integration/bulk-service-response) for the submit response.

## Free endpoints

These calls do not consume credits:

- The [Account API](/account/account-api) (`GET https://account.easyparser.com/v1/account`).
- Bulk monitoring and webhook log endpoints on the Data Service.
- The error logs endpoint (`GET https://account.easyparser.com/v1/error-logs`).
- The [MCP server](/integrations/mcp-server) tools `list_operations` and `check_credits`.

## Tracking your usage

Every Real-Time API response reports credits in `request_info`. The full object is documented in the [response envelope](/real-time-integration/overview#response-envelope).

| Field | Type | Description |
|---|---|---|
| `credit_used_this_request` | integer | Credits charged for this request. |
| `credits_used` | integer | Credits your account has used in the current billing cycle. |
| `credits_remaining` | integer | Credits left in the current billing cycle after this request. |
| `credits_reset_at` | string | Date and time (ISO 8601) when your credits reset. |

- Credits reset at the start of each billing cycle. When your monthly credits are used up or your subscription ends, Real-Time API requests return HTTP `402` until credits are available again. Bulk API items are returned in `data.insufficient_credit` instead.
- The [Account API](/account/account-api) returns your plan, credit totals, per-minute credit limits and daily usage history.
- Easyparser notifies you by e-mail and SMS when you reach 80% of your credits.
- Rate limits are measured in credits per minute and depend on your plan. Requests above the limit return HTTP `429`. See [Timeouts and rate limits](/real-time-integration/overview#timeouts-and-rate-limits).

## Plan limits

Monthly credits, the per-minute credit limits for the Real-Time API and the Bulk API, and the number of saved addresses depend on your plan, and plan limits can change. For example, a plan can allow 100 Real-Time credits and 1,000 Bulk credits per minute, while a larger plan allows 500 and 5,000.

- Per-minute limits count credits, not requests. With a limit of 100 Real-Time credits per minute, you can send 100 one-credit requests or 20 five-credit Sales History requests in one minute.
- Read your current limits from the [Account API](/account/account-api) (`minutely_real_time_credit_limit`, `minutely_bulk_credit_limit`, `addresses_limit`) instead of hard-coding them. To see your plan limits and compare plans, open [Account > Plan](https://app.easyparser.com/account/plan) in the web app; [this link](https://app.easyparser.com/account/plan?wallet_path=pricing) opens the plan list directly. Prices are also on the [pricing page](https://easyparser.com/pricing).

## Related

- [Real-Time API overview](/real-time-integration/overview)
- [Common Request Fields](/real-time-integration/common-required-request-fields)
- [Bulk API overview](/bulk-integration/overview)
- [Account API](/account/account-api)
- [Operation Versioning](/essentials/operation-versioning)
