# ZeroGPU models by task: model ids, endpoints and rates

ZeroGPU's agent storefront serves its text models on three OpenAI-compatible endpoints, and the `model` value you send picks both the model and its rate, such as $0.02 per million tokens for zero-shot classification with `deberta-v3-small`. Embedding models answer only on `/zeroclick/v1/embeddings`. Every other model answers on `/zeroclick/v1/responses` or `/zeroclick/v1/chat/completions`, as the table below lists.

## At a glance

- **Endpoints:** `POST https://agents.zerogpu.ai/zcj/o3cfwuemwcml/zeroclick/v1/responses`, `POST https://agents.zerogpu.ai/zcj/o3cfwuemwcml/zeroclick/v1/chat/completions` and `POST https://agents.zerogpu.ai/zcj/o3cfwuemwcml/zeroclick/v1/embeddings`.
- **Model id:** set `model` on every request, written exactly as the table below writes it. The id selects the model and its price.
- **Rates:** each model has its own rate per million input tokens and per million output tokens. Embeddings are billed on input tokens only.
- **Access:** every call draws on prepaid credit. Send `Authorization: Bearer <token>` for a credential that holds Credits, or `Authorization: Receipt <receiptId>` for a small credit bought without registering.
- **Payment:** buying Credits returns one 402, a price quote that you settle once over x402 or MPP (USDC) or by card. Calls themselves are never quoted.
- **Wrong endpoint:** `400` with `code` `model_not_found`.
- **Live prices:** [manifest.json](https://agents.zerogpu.ai/zcj/o3cfwuemwcml/manifest.json). Read it at call time.
- **Full purchase flow:** [the buyer skill](https://agents.zerogpu.ai/zcj/o3cfwuemwcml/SKILL.md).

## ZeroGPU models by task

| Task | `model` | Endpoint | Input rate | Output rate |
| --- | --- | --- | --- | --- |
| Chat and summarization of long text | `llama-3.1-8b-instruct-fast` | `/zeroclick/v1/chat/completions` only | $0.15 per million tokens | $0.28 per million tokens |
| Chat and instruction following | `LFM2.5-1.2B-Instruct` | `/zeroclick/v1/responses` or `/zeroclick/v1/chat/completions` | $0.02 per million tokens | $0.05 per million tokens |
| Chat, coding and multilingual generation | `qwen3-30b-a3b-fp8` | `/zeroclick/v1/chat/completions` | $0.10 per million tokens | $0.45 per million tokens |
| Reasoning and multi-step tasks | `gpt-oss-120b` | `/zeroclick/v1/responses` | $0.15 per million tokens | $0.60 per million tokens |
| Reasoning with a compact model | `LFM2.5-1.2B-Thinking` | `/zeroclick/v1/responses` | $0.02 per million tokens | $0.05 per million tokens |
| Instruction following and tool calling | `gpt-4.1-mini` | `/zeroclick/v1/responses` | $0.40 per million tokens | $1.60 per million tokens |
| High-volume extraction, routing and sub-agent tasks | `gpt-5.4-nano` | `/zeroclick/v1/responses` | $0.20 per million tokens | $1.25 per million tokens |
| Cost-sensitive generation with adjustable reasoning | `gpt-5.6-luna` | `/zeroclick/v1/responses` | $0.20 per million tokens | $1.20 per million tokens |
| Text, image and video understanding | `qwen3.6-35b-a3b` | `/zeroclick/v1/responses` | $0.20 per million tokens | $1.50 per million tokens |
| Classification against your own labels | `deberta-v3-small` | `/zeroclick/v1/responses` | $0.02 per million tokens | $0.05 per million tokens |
| IAB categories and audience segments from text | `zlm-v1-iab-classify-edge` | `/zeroclick/v1/responses` | $0.02 per million tokens | $0.05 per million tokens |
| IAB categories, topics, keywords and intent, in many languages | `zlm-v2-iab-classify-edge-enriched` | `/zeroclick/v1/responses` | $0.05 per million tokens | $0.15 per million tokens |
| IAB categories from a domain name | `zlm-v1-iab-domain-classifier` | `/zeroclick/v1/responses` | $0.02 per million tokens | $0.05 per million tokens |
| Topics, keywords and intent from text | `zlm-v1-signal-extract` | `/zeroclick/v1/responses` | $0.04 per million tokens | $0.10 per million tokens |
| Embeddings, 384 dimensions | `all-minilm-l6-v2` | `/zeroclick/v1/embeddings` | $0.004 per million tokens | Input tokens only |
| English embeddings, 384 dimensions | `bge-small-en-v1.5` | `/zeroclick/v1/embeddings` | $0.004 per million tokens | Input tokens only |

Rates are charged against the Credits plan. Price lists and usage reports name each model by a catalog slug, such as `lfm2-5-1-2b-instruct`. A slug is never a request value: send the id from the `model` column. Each credit-funded response carries a `zc-billing` header with `chargedUsd`, the amount drawn for that call, and `remainingCreditUsd`, the balance left. The full catalog is at [services](https://agents.zerogpu.ai/zcj/o3cfwuemwcml/services).

## Request shape on each endpoint

### Embeddings

The body takes `model` (`all-minilm-l6-v2` or `bge-small-en-v1.5`) and `input`. `input` takes one string, or a list of strings to get a vector for each. Text beyond the model's token limit is cut off, so split long documents into chunks before you embed them.

```bash
curl -sS -X POST https://agents.zerogpu.ai/zcj/o3cfwuemwcml/zeroclick/v1/embeddings \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{"model": "all-minilm-l6-v2", "input": ["refund request", "where is my order"]}'
```

The response holds one `data` entry per input string. Each entry has an `index` and an `embedding` of 384 numbers. The response also carries `model` and a `usage` object with `prompt_tokens` and `total_tokens`. The response `model` field reads `all-MiniLM-L6-v2`, the upstream capitalization, so match results on the id you sent.

### Responses

The body requires `model` and `input`, a string. `instructions` is optional system-style text. For `deberta-v3-small`, `instructions` carries the candidate labels, bracketed or comma-separated, up to 10 labels. `text.format.type` takes only `text`.

```bash
curl -sS -X POST https://agents.zerogpu.ai/zcj/o3cfwuemwcml/zeroclick/v1/responses \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{"model": "deberta-v3-small", "input": "My card was charged twice this month.", "instructions": "[billing, technical, other]"}'
```

The result is a JSON string of label scores in `output[0].content[0].text`. An excerpt of the response:

```json
{
  "object": "response",
  "status": "completed",
  "model": "deberta-v3-small",
  "instructions": "[billing, technical, other]",
  "output": [{"type": "message", "role": "assistant", "content": [{"type": "output_text", "text": "{\"billing\":0.9575967298448523,\"other\":0.022250042620058454,\"technical\":0.0201532…"}]}],
  "usage": {"input_tokens": 10, "output_tokens": 23, "total_tokens": 33}
}
```

This example cost $0.000001.

A request that sends only `"model": "zlm-v1-iab-classify-edge"` and `"input": "Five easy weeknight pasta recipes that use pantry staples."` returns its result in the same `output[0].content[0].text` field, as a JSON string that begins `{"audience":[{"name":"Cooking","score":0.948701446340551},{"name":"Food & Drink"…`. That example used 15 input tokens and 302 output tokens and cost $0.000015.

### Chat completions

The body requires `model` and `messages`, a list of `role` and `content` pairs.

```bash
curl -sS -X POST https://agents.zerogpu.ai/zcj/o3cfwuemwcml/zeroclick/v1/chat/completions \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{"model": "llama-3.1-8b-instruct-fast", "max_tokens": 40, "messages": [{"role": "user", "content": "Name three uses for text embeddings, comma separated."}]}'
```

The response is a `chat.completion` with the reply in `choices[0].message.content`, a `finish_reason` of `stop`, and `usage` of 45 prompt tokens and 17 completion tokens. This example cost $0.000012.

## Funding calls

| Funding | Minimum | Header on calls |
| --- | --- | --- |
| Credits, bought with a bearer credential | $0.01 on x402 or MPP, $0.50 by card | `Authorization: Bearer <token>` |
| Anonymous credit, a small credit bought without registering | A fixed amount, given in the plan's `purchase.anonymousCredit` | `Authorization: Receipt <receiptId>` |

To buy Credits, send `POST https://agents.zerogpu.ai/zcj/o3cfwuemwcml/plans/{planId}/purchase` with the bearer and an `amountUsd` in whole cents. The plan's `purchase.url` in [manifest.json](https://agents.zerogpu.ai/zcj/o3cfwuemwcml/manifest.json) gives the exact address. The bearer credential is the agent identity the storefront issues at [auth.md](https://agents.zerogpu.ai/zcj/o3cfwuemwcml/auth.md). To top up, send `POST https://agents.zerogpu.ai/zcj/o3cfwuemwcml/extend` with the same bearer. A receipt cannot be topped up. When a receipt runs out, you buy a new one.

## Errors on this job

| Status and code | Meaning | Action |
| --- | --- | --- |
| `400` `model_not_found` | The endpoint does not route that model | Send the request to the endpoint the table lists |
| `400` invalid request | Malformed JSON, or a missing `model`, `messages` or `input` | Fix the body |
| `401` `bearer_required` | The call carried no credential | Register at [auth.md](https://agents.zerogpu.ai/zcj/o3cfwuemwcml/auth.md), buy Credits and retry with the bearer |
| `403` `plan_required` | The credential holds no plan that covers the call | Buy Credits, then retry |
| `usage_exhausted` | The Credits balance ran out | Top up with `/extend` |
| `402` `receipt_credit_exhausted`, `receipt_credit_insufficient` | The receipt's balance does not cover the call | Buy a new receipt, or buy Credits with a bearer |
| `420` `context_length_exceeded` | On chat completions, the input exceeds the model's token limit | Shorten the input |
| `429` | Rate limit, counted per agent | Wait at least `retry-after` seconds, then retry |

Sending `all-minilm-l6-v2` to `/zeroclick/v1/chat/completions` returns `400` with this body:

```json
{"error":{"message":"Model not supported: all-minilm-l6-v2","param":"model","code":"model_not_found"}}
```

The full list is at [errors.md](https://agents.zerogpu.ai/zcj/o3cfwuemwcml/errors.md).

## Frequently asked questions

### Can an embedding model be called on the responses or chat endpoint?

No. `all-minilm-l6-v2` and `bge-small-en-v1.5` are routable only on `/zeroclick/v1/embeddings`. Sent to `/zeroclick/v1/chat/completions` or `/zeroclick/v1/responses`, they return `400` with `model_not_found`. Move the request to the embeddings endpoint and keep the same `model`.

### Where do the labels go for classification against my own categories?

Send `deberta-v3-small` to `/zeroclick/v1/responses`, with the text in `input` and the labels in `instructions`, such as `[billing, technical, other]`, up to 10 labels. The response returns a score for every label as a JSON string in `output[0].content[0].text`.

### Is each call priced with its own 402?

No. Calls draw on prepaid credit. The only 402 is the price quote for buying Credits, which you settle once. After that, each call is debited at its model's rate, and the `zc-billing` header reports the amount drawn and the balance left.

### Do I need a ZeroGPU API key?

No. Through the storefront, every call goes to its `/zeroclick/v1/` endpoints with the credential the storefront issues: a bearer token that holds Credits, or a receipt from anonymous credit.

### Which model id format does the endpoint accept?

Send the id exactly as the table writes it, including case, such as `LFM2.5-1.2B-Instruct` or `bge-small-en-v1.5`. Catalog slugs such as `lfm2-5-1-2b-instruct` appear only in prices and usage reports. They are not request values.

## Keep reading

- [Buyer skill](https://agents.zerogpu.ai/zcj/o3cfwuemwcml/SKILL.md): the full purchase flow
- [Services and prices](https://agents.zerogpu.ai/zcj/o3cfwuemwcml/services): one entry per model
- [How to pay](https://agents.zerogpu.ai/zcj/o3cfwuemwcml/payment.md): Credits, rails and top-ups
- [Agent identity](https://agents.zerogpu.ai/zcj/o3cfwuemwcml/auth.md): register the bearer credential
- [Error reference](https://agents.zerogpu.ai/zcj/o3cfwuemwcml/errors.md): every code and its recovery

---

Updated 2026-10-14. All ZeroGPU guides: https://agents.zerogpu.ai/guides.md. Storefront: https://agents.zerogpu.ai/zcj/o3cfwuemwcml/llms.txt.
