APIMODELHUB docs

Docs / Giao thức

Xử lý sự cố

Triệu chứng → nguyên nhân → cách sửa, cho từng mã lỗi và cho các tool phổ biến.

Đọc lỗi trước đã

Mọi lỗi trả cùng một hình dạng nên một hàm xử lý là dùng được cho cả ba giao thức. Trường error.message thường đã nói nguyên nhân — đọc nó trước khi thử lại, vì thử lại một lỗi 4xx chỉ tốn thời gian.

{
  "type": "error",
  "error": {
    "type": "permission_error",
    "message": "key is not allowed to use \"claude-opus-5-5\""
  }
}

Theo mã lỗi

MãMessage thường gặpNguyên nhân thật & cách sửa
401missing api keyRequest không mang key. Kiểm tra header: Authorization: Bearer, x-api-key (Anthropic SDK), hoặc x-goog-api-key (Google SDK).
401invalid api keyKey sai, bị thu hồi, hoặc là key của dịch vụ khác. Key của chúng tôi bắt đầu bằng sk-spk-.
403key revokedKey đang tắt hoặc chưa kích hoạt (key mua bằng chuyển khoản chỉ bật khi tiền về). Bật lại ở trang API keys.
403key is not allowed to use "x"Model nằm ngoài danh sách của key. Mua key nhóm khác, hoặc gọi model mà key đó có.
404model "x" is not availableId model sai (thường do tool gửi id kèm hậu tố ngày). Gọi GET /v1/models để lấy id đúng.
400body must be JSONBody không parse được thành JSON. Hay gặp khi tự ghép chuỗi thay vì dùng SDK/JSON.stringify.
400missing modelBody không có trường model (với Gemini thì model nằm trong PATH, không trong body).
402credit exhaustedHạn mức key đã tiêu hết. Nạp thêm cho key hoặc mua key mới.
402credit remaining (...) is less than the worst-case costHạn mức còn ít hơn chi phí XẤU NHẤT của request này. Hạ max_tokens là cách sửa nhanh nhất.
404endpoint "/v1/xxx" is not supportedEndpoint nằm ngoài danh sách chúng tôi phục vụ (embeddings, images, audio, files, batches…). Chỉ có /v1/messages, /v1/messages/count_tokens, /v1/chat/completions, /v1/responses, /v1/models và /v1beta/models/....
405method not allowedGọi sai HTTP method: các endpoint trên chỉ nhận POST (trừ GET /v1/models).
413request body too largeBody vượt 32 MB. Ảnh base64 cỡ vài chục MB là nguyên nhân thường gặp — nén hoặc crop trước.
429rate limit 600 rpm exceededQuá 600 request/phút cho key này. Chờ đúng số giây trong header retry-after.
429too many concurrent requests (max N per key)Quá 500 request ĐANG CHẠY cùng lúc trên một key (stream chưa đóng cũng tính). Giảm song song hoặc chờ.
429too many failed authentication attemptsCùng một IP gửi quá nhiều key sai trong 60 giây — chặn tạm để chống dò key. Kiểm tra lại key rồi chờ hết retry-after.
429upstream rate limitedNhà cung cấp đang rate limit và mọi kênh đều đã thử. Thử lại sau; giảm song song nếu lặp lại nhiều.
502no healthy upstream for this modelNhà cung cấp của model đó đang không có kênh khoẻ. Thử model khác hoặc thử lại sau.
502upstream returned XXXNhà cung cấp trả lỗi. Lỗi 5xx thì thử lại; 4xx thì request sai tham số cho model đó.
502upstream authentication failedLỗi phía chúng tôi (credential kênh). Báo hỗ trợ kèm thời điểm và model.

Tool không nhận key

Triệu chứngNguyên nhân & cách sửa
Claude Code báo 404 modelClaude Code tự gửi id kèm hậu tố ngày (vd claude-sonnet-4-5-20250929) mà chúng tôi chỉ bán id trần. Đặt ANTHROPIC_MODEL = id trong GET /v1/models.
Tool OpenAI-compatible (Cline, Continue, OpenCode, OpenClaw) báo 404 khi chọn model claude-*Tool gửi request theo /v1/chat/completions — đường đó không tồn tại ở Anthropic. Đổi provider sang Anthropic/anthropic-messages với base URL https://api.apimodelhub.com (không /v1), hoặc dùng Claude Code/Codex cho model Claude.
Tool Anthropic báo 404 khi chọn model gpt-*Ngược lại trường hợp trên: /v1/messages không có ở OpenAI. Model GPT/Grok/DeepSeek phải đi /v1/chat/completions hoặc /v1/responses.
Tool gọi /chat/completions ở gốc domain → 404Base URL thiếu /v1. Điền https://api.apimodelhub.com/v1 (SDK tự nối path), không phải cả endpoint đầy đủ.
Dán https://api.apimodelhub.com/v1 vào SDK Anthropic → 404SDK Anthropic tự nối /v1/messages, nên base URL phải là https://api.apimodelhub.com — thêm /v1 thành /v1/v1/messages.
Tool hỏi "base URL" mà dán vào lại lỗi đường dẫnPhân biệt hai kiểu: ô "base URL" nhận https://api.apimodelhub.com/v1; ô "full endpoint" nhận https://api.apimodelhub.com/v1/chat/completions.
Cursor cấu hình được nhưng model Claude không gọi đượcCursor chỉ override được base URL của phần OpenAI (BYOK). Model Claude trong Cursor do backend của Cursor phục vụ, không đi qua chúng tôi.
Stream bị cắt giữa chừngKiểm tra client timeout (đặt ≥ 120s cho request dài). Request stream chưa đóng cũng chưa được ghi vào lịch sử sử dụng.
Model OpenAI thế hệ mới báo 400 về max_tokensChỉ xảy ra ở /v1/responses: ở /v1/chat/completions chúng tôi tự đổi sang max_completion_tokens; ở /v1/responses bạn phải tự gửi đúng tên tham số.

Nghi ngờ tính tiền sai

  1. Mở trang Lịch sử sử dụng → tab chi tiết, xem đúng request đó (token in/out và số tiền bị trừ).
  2. So với giá trong GET /v1/models: cột pricing_usd_per_1m là giá BÁN đang áp dụng.
  3. Nhớ đơn vị: hạn mức key trừ theo GIÁ GỐC provider, không theo giá bán — xem trang "Key & hạn mức".
  4. Nếu vẫn lệch, gửi chúng tôi id request và thời điểm; sổ được ghi sau mỗi request nên tra được chính xác.
Đừng suy ra tiền từ số token nhìn thấy trong responseResponse có thể không trả usage đầy đủ (một số đường stream ẩn chunk usage để client thấy y như khi gọi trực tiếp). Con số đáng tin là trong Lịch sử sử dụng, vì đó là số dùng để trừ tiền.