ANTHROPIC_API_KEYphải đặt thành chuỗi rỗng "" — để trống hẳn (không set) sẽ khiến Claude Code cố xác thực thẳng với Anthropic nếu máy từng có key Anthropic thật.
Nếu trước đó từng chạy claude login, gõ /logout trong Claude Code rồi khởi động lại — phiên đăng nhập Anthropic cũ được cache riêng, không tự mất khi đổi biến môi trường.
Khởi động lại terminal (hoặc mở terminal mới) sau khi đổi biến môi trường hoặc file cấu hình.
Kiểm tra:trong Claude Code, gõ /status — phải thấy Base URL là https://motapis.com.
File cấu hình thường ở ~/.continue/config.yaml — kiểm tra đường dẫn thật trong phần cài đặt Continue nếu không thấy model mới.
Kiểm tra:mở model picker trong Continue — model vừa thêm phải xuất hiện trong danh sách.
Codex CLI
Cài đặt:npm install -g @openai/codex
Sửa ~/.codex/config.toml, thêm provider MộtAPI:
model_provider = "motapis"
model = "claude-opus-4-8"
[model_providers.motapis]
name = "motapis"
base_url = "https://motapis.com/v1"
requires_openai_auth = false
env_key = "MOTAPIS_API_KEY"
export MOTAPIS_API_KEY=sk-mot-...
codex
Gói npm đúng tên là @openai/codex (có scope) — gói codex không scope là một project cũ không liên quan, cài nhầm sẽ không chạy được gì.
Model phải gõ đúng tên trong bảng model (vd claude-opus-4-8), không dùng cú pháp alias ~vendor/model của OpenRouter.
Nếu Codex báo lỗi liên quan wire_api: schema này đã đổi giữa các bản Codex CLI — thử thêm dòng wire_api = "responses" hoặc wire_api = "chat" vào khối provider, tuỳ bản đang cài.
Kiểm tra:chạy codex, gửi thử một câu hỏi — nếu báo "Unknown model" thì kiểm tra lại tên model.
Script chỉ ghi file cấu hình cho công cụ đã cài sẵn — không tự cài Claude Code, Codex hay OpenCode, không sửa file khởi động shell, không cần quyền root. File cấu hình cũ được sao lưu trước khi ghi đè.
Script hỏi API key khi chạy (không hiện lại trên màn hình) — hoặc đặt sẵn biến môi trường MOTAPIS_API_KEY trước khi chạy nếu dùng trong script tự động khác.
An toàn:nên tải script về rồi đọc qua trước khi chạy — đây là thói quen tốt cho mọi script tải từ Internet, kể cả script của chính MộtAPI.
// 06 · STREAMING
Streaming
Đặt "stream": true để nhận dữ liệu theo thời gian thực qua SSE. Mỗi phần nội dung nằm trong một dòng data:; kết thúc bằng data: [DONE].
from openai import OpenAI
client = OpenAI(
base_url="https://motapis.com/v1",
api_key="sk-mot-..."
)
stream = client.chat.completions.create(
model="claude-opus-4-8",
messages=[{"role": "user", "content": "Kể một câu chuyện ngắn."}],
stream=True
)
for chunk in stream:
text = chunk.choices[0].delta.content
if text:
print(text, end="", flush=True)
// 07 · MODEL CATALOG
Bảng model & giá
Giá tính trên 1 triệu token. Với model hình ảnh, giá hiển thị theo ảnh. Ví USD credit được trừ theo token thực tế của từng request.
Model
Nhà cung cấp
Hạng
Giá vào ($/1M token)
Giá ra ($/1M token)
Đang tải danh sách model...
// 08 · BILLING
Giá & thanh toán
Thanh toán theo token thực tế của mỗi request qua ví USD credit. Đây là mô hình trả theo mức sử dụng, không thuê bao và số dư không hết hạn.
Nạp tiền:VietQR, USDT-TRC20 hoặc PayPal trong dashboard tại /dashboard.html.
Số dư được trừ dần theo giá của model và số token input/output thực tế. Kiểm tra bảng model để xem đơn giá hiện tại trước khi triển khai.
// 09 · ERROR HANDLING
Xử lý lỗi
Mã / lỗi
Nguyên nhân
Cách xử lý
401
Sai hoặc thiếu API key
Kiểm tra header Authorization: Bearer và tạo key mới trong dashboard.
402
Hết số dư
Nạp thêm tiền vào ví USD credit bằng VietQR, USDT-TRC20 hoặc PayPal.
insufficient balance
Số dư không đủ cho request
Nạp thêm số dư rồi gửi lại request.
429
Quá nhiều request
Chờ một lúc, giảm tốc độ gửi và thêm retry với exponential backoff.
5xx
Lỗi tạm thời phía dịch vụ hoặc upstream
Thử lại request sau một khoảng thời gian; không lặp vô hạn.
// 10 · FAQ
Câu hỏi thường gặp
Base URL của MộtAPI là gì?
Kiểu OpenAI (/v1/chat/completions): https://motapis.com/v1. Kiểu Anthropic (/v1/messages): https://motapis.com — SDK/CLI tự thêm /v1/messages vào sau, không cần gõ /v1 ở cuối.
MộtAPI dùng được với công cụ nào?
Bất kỳ SDK/CLI nào hỗ trợ base_url tuỳ chỉnh kiểu OpenAI hoặc Anthropic — xem hướng dẫn chi tiết Cursor, Claude Code, Cline/Roo Code, Continue.dev, Codex CLI, OpenCode CLI ở mục Cài đặt cho công cụ phía trên.
Vì sao Claude Code vẫn báo lỗi liên quan Anthropic dù đã đổi key?
Thường do ANTHROPIC_API_KEY chưa được đặt thành chuỗi rỗng "" (chỉ để trống/không set là chưa đủ), hoặc Claude Code đang dùng phiên đăng nhập Anthropic cũ — gõ /logout trong Claude Code rồi thử lại. Chi tiết ở mục Claude Code (CLI).
Lỗi 401 hoặc "model not found" phải làm sao?
401 nghĩa là key sai hoặc thiếu header Authorization: Bearer/x-api-key. "Model not found" nghĩa là tên model gõ sai — đối chiếu đúng chính tả với bảng model, MộtAPI dùng tên model thật, không dùng alias kiểu vendor/model.
Streaming có hoạt động không?
Có, với mọi model — đặt "stream": true trong request. Xem ví dụ đầy đủ ở mục Streaming.
Nên chọn model nào?
Tuỳ nhu cầu và ngân sách — xem bảng model & giá để so sánh giá vào/ra của từng model trước khi chọn.
Billing hoạt động ra sao?
Trả theo mức dùng thực tế qua ví USD credit, không thuê bao, số dư không hết hạn. Xem mục Giá & thanh toán.
Codex CLI báo "Unknown model" hoặc cài xong không chạy được?
Kiểm tra đã cài đúng gói @openai/codex (có scope, không phải gói codex trần) và tên model trong config.toml khớp đúng chính tả với bảng model. Chi tiết ở mục Codex CLI.