# Reseller image generation limit reached

> Canonical HTML: https://screenrig.ai/problems/reseller-generation-limit

HTTP 402 · `reseller_generation_limit`

## What it means

The API answers with HTTP 402 Payment Required and an `application/problem+json` document when the condition is Reseller image generation limit reached. The document's `type` member is `https://screenrig.ai/problems/reseller-generation-limit`, the address of this page, and its `code` member is `reseller_generation_limit`.

## What to do

The organization's reseller pays for its usage and has reached its monthly image generation limit; the limit resets on the 1st (UTC) and only screenRIG can raise it. Do not retry. Create the image another way and upload it (screenrig media upload FILE).

## Should you retry?

The `retryable` member appears only on HTTP 5xx problems, so this one has none. Follow the steps under What to do before sending the request again.

## Example response

Most routes answer with the error in the first entry of `errors`, and the document members `instance` and `request_id` beside it. The `type`, `code`, `title` and `status` of this problem type are fixed; `detail` varies per request, and `hint` is the registry default unless the handler sets a more specific one.

~~~http
HTTP/1.1 402 Payment Required
Content-Type: application/problem+json

{
  "errors": [
    {
      "status": 402,
      "code": "reseller_generation_limit",
      "type": "https://screenrig.ai/problems/reseller-generation-limit",
      "title": "Reseller image generation limit reached",
      "detail": "What went wrong in this request.",
      "hint": "The organization's reseller pays for its usage and has reached its monthly image generation limit; the limit resets on the 1st (UTC) and only screenRIG can raise it. Do not retry. Create the image another way and upload it (screenrig media upload FILE)."
    }
  ],
  "instance": "INSTANCE",
  "request_id": "REQUEST_ID",
  "server_time": "2026-01-01T00:00:00Z"
}
~~~

## In the API contract

The OpenAPI contract describes this problem in these words:

> Poll GET /api/operations/{id} until it is succeeded, when its result is {media_id, usage: {quality, credits, usd}} (MediaGenerationUsage), or failed, when its error is the problem. A refusal decided before any vendor work (payment_required, reseller_generation_limit, rate_limited, not_ready, invalid_request) still answers the POST.

## Operations that name this problem

These operations name this problem in the API reference:

- [Create Media Generation](https://screenrig.ai/docs/api/media#op-createMediaGeneration) — `POST /api/media/generations`
- [Create Media Generation In Project](https://screenrig.ai/docs/api/projects#op-createMediaGenerationInProject) — `POST /api/projects/{project_id}/media/generations`

## Related problems

The contract mentions these problems alongside this one:

- [Request is invalid](https://screenrig.ai/problems/invalid-request) — `invalid_request`
- [Usage credit is required](https://screenrig.ai/problems/payment-required) — `payment_required`
- [Request rate is too high](https://screenrig.ai/problems/rate-limited) — `rate_limited`
- [Service is not ready](https://screenrig.ai/problems/not-ready) — `not_ready`

## Player action

This problem defines no Player action class. It belongs to a project, pairing or account flow that an agent or the dashboard drives.

## Reference

| Field | Value |
| --- | --- |
| Code | `reseller_generation_limit` |
| HTTP status | `402 Payment Required` |
| Type | `https://screenrig.ai/problems/reseller-generation-limit` |
| Player action | `none` |

- [All problem types](https://screenrig.ai/problems)
- [API reference](https://screenrig.ai/docs/api#problems)
- [Problem registry YAML](https://screenrig.ai/docs/api/problems.yaml)
