Billing components
Every successful call produces the following usage items:| Item | Meaning |
|---|---|
prompt_tokens | Input tokens you send to the model (including system / messages / tools and everything else). |
completion_tokens | Output tokens the model returns (visible content). |
reasoning_tokens | Invisible chain-of-thought tokens from reasoning models (only o3 / GPT-5 / Claude thinking / Gemini thinking). |
cached_tokens | Input tokens that hit the prompt cache. |
Charging formula
- Input / output / cache prices come from each model’s official pricing, converted to RMB as USD price per million tokens × OpenPAI multiplier × exchange rate.
- User group multiplier: determined by your account’s group; see Core concepts.
- Cache price is typically 0.1× to 0.5× of the input price; see Cache billing.
Console log example
After a call, the Logs page shows token and billing details (without prompt / response content):| Field | Example |
|---|---|
| Model | gpt-5.5 |
| Input / output / cache / reasoning tokens | 1024 / 512 / 800 / 0 |
| Multiplier | 1.0× |
| Actual charge | ¥0.0034 |
| Request ID | req_01ab... |
Billing by model type
Chat (Chat / Responses)
Chat (Chat / Responses)
Charged by
prompt_tokens + completion_tokens.
If prompt caching is used, the cache-hit portion is settled at the cache price.Reasoning (o3 / GPT-5 / Claude thinking)
Reasoning (o3 / GPT-5 / Claude thinking)
reasoning_tokens are billed additionally at the output price (invisible but they consume compute).
The console log breaks out thinking vs. answer tokens.Embeddings
Embeddings
Charged by
prompt_tokens (input) only; there is no output.Image generation (DALL·E / gpt-image-1)
Image generation (DALL·E / gpt-image-1)
Charged by number of images + size, a fixed charge per call.
Audio (TTS / Whisper)
Audio (TTS / Whisper)
TTS is charged by input character count; Whisper is charged by audio duration (seconds).
Midjourney / Suno
Midjourney / Suno
Asynchronous task model, charged by number of tasks + action type. Failed tasks are not billed.
Rerank
Rerank
Charged by the total tokens of (query + all documents).
Are failed requests billed?
| Situation | Billed? |
|---|---|
| 4xx client error (bad params, auth failure) | ❌ Not billed |
| 5xx upstream error that auto-retries successfully | ✅ Billed for the successful attempt |
| All channels fail, client finally gets a 5xx | ❌ Not billed |
| Streaming response disconnects midway | Billed by tokens actually generated |
| Client abort | Billed by tokens the upstream already generated |
Out of balance
When account balance ≤ 0, all paid model calls immediately returninsufficient_quota (HTTP 403).
Some free models (such as Moderations) remain usable.
Check your spend
- Console → Logs: per-call details.
- Console → Usage statistics: spend charts aggregated by day / model / token.
- API:
- GET /v1/dashboard/billing/usage — spend over a time range
- GET /v1/dashboard/billing/subscription — current balance
- Response headers: every API response includes
X-OpenPAI-Quota-ConsumedandX-OpenPAI-Remaining-Quota.
Price changes
- New models: launched at the official price converted at integration time.
- Official price changes: OpenPAI follows the upstream, announced 24 hours in advance in the console.
- Price cuts / promotions: pushed from time to time, subject to the console banner.
More
Quota & tokens
Account quota, token quota, expiry and transfers.
Cache billing
OpenAI / Claude / DeepSeek prompt-cache details.