Error Codes and Common Errors
What 88API errors 401, 403, 404, 429 and 5xx mean and how to fix them, from invalid tokens and low balance to rate limits and Claude Code or Codex errors.
When a call fails, the API returns an HTTP status code and a JSON body. The reason is in error.message:
{
"error": {
"code": "",
"message": "Invalid token (request id: 2026101605444223...)",
"type": "new_api_error"
}
}The request id at the end of message identifies this request; include it when you contact support. The Usage Log page in the console also records the time, model and error message of failed requests. When troubleshooting, check the status code first, then the message.
Error messages follow the language saved in your profile (or the client's Accept-Language header). If neither is set, the message may be returned in Chinese; the meanings below are the same.
Quick reference
| Status code | Meaning | What to do first |
|---|---|---|
| 400 | The model does not accept the request content or parameters | Adjust the parameters, prompt or image according to the error message |
| 401 | Invalid token | Check that the API Key is entered correctly and has not been deleted |
| 403 | Token unavailable, insufficient balance or no permission | Check your balance, the token status, and the token's group and model restrictions |
| 404 | The address or model does not exist | Check whether the API address has an extra /v1, and whether the model name is available in the current group |
| 429 | Too many requests or the model is busy | Lower the request rate and retry later |
| 500, 502, 503, 504, 524 | The model service is temporarily unavailable or timed out | Retry later; if it keeps failing, switch to another group or model |
401: Invalid token
Common messages: Invalid token, 无效的令牌 (invalid token).
- The API Key was copied incompletely, or has leading or trailing spaces or line breaks.
- The token has been deleted in the console. Create or copy one again on the API Token page.
- Claude Code: an old
ANTHROPIC_API_KEYis also set. It takes priority overANTHROPIC_AUTH_TOKEN; delete it and keep onlyANTHROPIC_AUTH_TOKEN. - Request header format: OpenAI format uses
Authorization: Bearer sk-...; Anthropic format usesx-api-key: sk-....
403: Token unavailable, insufficient balance or no permission
Insufficient balance or quota
Common messages: Insufficient user quota, Not enough quota to pre-consume for this request: … remaining, … required.
- Your account balance does not cover the pre-charge for this request. Top up on the Wallet page.
- Your account has a balance but you are still told it is insufficient: a token can have its own quota limit, so check the remaining quota of that token.
- Claude Code shows this kind of 403 as an authentication failure or "API Error 403". The fix is the same.
Token status unavailable
Common message: This token status is unavailable.
The token is disabled, has expired, or has used up its quota. On the API Token page, enable the token, change its expiration time or adjust its quota.
No permission for the group or model
Common messages: No permission to access group …, API Key 所属专属分组不再允许当前用户使用 (the dedicated group this API Key belongs to is no longer available to the current user), This token has no access to model ….
- Your account cannot use the group bound to the token: edit the token and switch to a group available in the Model Square.
- The token has model restrictions: allow the model in the token settings, or use a different token.
The current group does not support this endpoint
Common message: This group does not allow /v1/messages dispatch.
The selected group does not support endpoints of this protocol (for example, calling Anthropic's /v1/messages with a group that only supports the OpenAI format). For Claude Code, use a token from a Claude group; for other clients, call the endpoint type that the model supports as shown in the Model Square.
404: The address or model does not exist
An extra or missing /v1 in the address
Common messages: Invalid URL, 404 page not found.
- For Claude Code, set
ANTHROPIC_BASE_URLtohttps://api.88api.aiwithout/v1(Claude Code appends/v1/messagesitself, so.../v1becomes/v1/v1/messages). - For Codex, set
base_urltohttps://api.88api.ai/v1; it must include/v1. - Most OpenAI-compatible apps use
https://api.88api.ai/v1. See the app setup guides for each app.
The model is not available in the current group
Common messages: No available channel for model … under group …, Model "…" is not supported by any configured account in this group, model not found.
- The model name is misspelled, or has an extra prefix or suffix. Copy the exact model name from Profile Settings or the Model Square.
- The model is not in the group selected for the token. Check which groups support the model in the Model Square, then change the token's group.
400: The request content or parameters are not accepted
| Error message (examples) | Cause and fix |
|---|---|
输入内容超过模型上下文限制 (input exceeds the model's context limit), Input exceeds the context limit | The conversation is too long. Trim the history or start a new session; in Claude Code you can use /compact to compress the context |
请求中包含该模型不支持的参数(如 presence_penalty / frequency_penalty) (the request contains parameters this model does not support, such as presence_penalty / frequency_penalty) | Remove the parameter named in the error |
该模型是生图模型,不能通过对话接口调用 (this is an image generation model and cannot be called through the chat endpoint) | Use /v1/images/generations to generate images and /v1/images/edits to edit them; see Image API |
please use the Gemini native API | This model only supports the native Gemini format; see Gemini API |
the selected model cannot disable reasoning, 不支持关闭深度思考 (disabling deep thinking is not supported) | This model must have thinking enabled. Remove the parameter that disables thinking (or set the thinking type to enabled) |
requires adaptive thinking | This Claude model requires adaptive thinking: remove the thinking parameter, or change it to type=adaptive as the error suggests |
当前输入触发平台内容安全规则 (the input triggered the platform's content safety rules), 未通过内容安全审核 (failed content safety review), 可能违反了…内容政策 (may violate … content policy) | The prompt or reference image was blocked by safety review. Change the content and try again |
Failed to download multimodal content, mime type is not supported | The image URL cannot be reached or the format is not supported. Use a publicly accessible PNG, JPEG or WebP image, or send it as base64 |
429: Too many requests or busy
Account request rate exceeded
Common message: Your request rate is too high. The current user group allows up to … successful requests within a …-minute window.
The default limit is 60 RPM (requests per minute). Lower the concurrency or add retry intervals in your client; if you really need a higher rate, contact customer service to request an increase.
Model busy
Common messages: Upstream rate limit exceeded, service error, please try again later, Concurrency limit exceeded.
The model is handling a large volume of requests. Wait a few seconds and retry; for more stable access, switch to another group in the Model Square.
500, 502, 503, 504, 524: Service temporarily unavailable or timed out
Common messages: Upstream service temporarily unavailable, Service temporarily unavailable. Please retry., 系统过载,请稍后重试 (system overloaded, please try again later), 模型请求失败,请稍后重试或更换模型 (model request failed, please try again later or switch models), bad response status code 504.
- These errors are usually caused by a model service being briefly busy or by network fluctuations, and retrying usually works. We recommend retrying in your client with increasing intervals of 1, 2 and 4 seconds.
- If the same model keeps failing, switch to another group or another model.
- 524 and 504 mostly happen on requests that take a long time to generate: enable streaming (
stream: true) for chat requests; for images and videos, use the async task endpoints and poll for results.
Still not solved
Find the failed record in the Usage Log and send the request time, model name, status code and full error message (including the request id) to online customer service. Do not send your full API Key.