Tài liệu API
Trang này tương thích hoàn toàn với protocol gốc của OpenAI và Anthropic — trỏ SDK hiện có vào Base URL của chúng tôi là xong.
Thông tin cơ bản
| Trường | Giá trị |
|---|---|
| Base URL | https://aiproxynode.com |
| Tiền tố tương thích OpenAI | /v1/* |
| Tiền tố Claude gốc | /v1/messages hoặc /claude/v1/messages |
| Xác thực | Authorization: Bearer sk-xxxxxx hoặc x-api-key: sk-xxxxxx |
Protocol tương thích OpenAI
Gọi theo protocol ChatCompletions chính thức của OpenAI. Dùng tên model chính thức của từng nhà cung cấp — chúng tôi tự động định tuyến đến upstream tương ứng.
from openai import OpenAI
client = OpenAI(
api_key="sk-xxxxxx",
base_url="https://aiproxynode.com/v1",
)
# Gọi bất kỳ model nào qua protocol OpenAI
for model in ["claude-sonnet-4-6", "claude-haiku-4-5", "deepseek-chat", "deepseek-reasoner"]:
resp = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": "Hi"}],
)
print(model, "->", resp.choices[0].message.content)Đa phương thức (đầu vào hình ảnh)
resp = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Trong ảnh viết gì?"},
{"type": "image_url", "image_url": {"url": "https://example.com/x.png"}},
],
}],
)Function Calling / Tools
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Lấy thời tiết của một thành phố",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
},
}]
resp = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "Thời tiết Hà Nội thế nào?"}],
tools=tools,
)API Claude gốc
Khi dùng SDK Anthropic chính thức, chỉ cần đổi base_url thành https://aiproxynode.com.
import anthropic
client = anthropic.Anthropic(
api_key="sk-xxxxxx",
base_url="https://aiproxynode.com",
)
resp = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Hi"}],
)
print(resp.content[0].text)Cài đặt IDE Client (Claude Code / Cline / Cursor / Continue)
Mỗi token aiproxynode chỉ gắn với một nhóm duy nhất; không tự động định tuyến giữa các nhóm:
- Nhóm
kiro— chạy các model Claude (sonnet / opus / haiku) - Nhóm
gptpuls— chạy các model GPT (gpt-5.5 / 5.4 / 5.3-codex)
Nếu client trả về no available channels under group X, nhóm của token không khớp với model bạn đang gọi.
⚡ Script cài đặt 1 chạm
Không muốn chép biến môi trường bằng tay? Tải script tương ứng — script sẽ tự sao lưu cấu hình hiện tại và ghi cấu hình mới.
| Tình huống | Nhóm cần dùng | Windows (.ps1) | macOS (.sh) |
|---|---|---|---|
| VSCode + Claude Code | kiro | Tải | Tải |
| Claude Desktop + CLI | kiro | Tải | Tải |
| VSCode + Cline (dùng GPT) | gptpuls | Tải | Tải |
| Cursor + Claude | kiro | Tải | Tải |
| Cursor hỗn hợp (chọn lúc chạy) | chọn lúc chạy | Tải | Tải |
Cách dùng: chuột phải vào link → Lưu link → Windows chuột phải vào .ps1 và Run with PowerShell; macOS chạy bash setup-xxx.sh trong Terminal.
Script sẽ hỏi token rồi ghi cấu hình; KHÔNG kiểm tra kết nối online. Sau khi chạy, gửi một tin nhắn thử trong client để xác nhận.
Hầu hết AI assistant trong IDE hỗ trợ trỏ tới endpoint tương thích Anthropic tùy chỉnh thông qua biến môi trường hoặc cài đặt. Dưới đây là cách cài cho các client phổ biến.
Claude Code (Tiện ích VSCode / CLI)
Claude Code chính thức của Anthropic chuyển sang trang này thông qua hai biến môi trường — ANTHROPIC_BASE_URL và ANTHROPIC_AUTH_TOKEN:
# Toàn hệ thống, lưu vĩnh viễn (khuyến nghị)
[Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL", "https://aiproxynode.com", "User")
[Environment]::SetEnvironmentVariable("ANTHROPIC_AUTH_TOKEN", "sk-xxxxxx", "User")
# Khởi động lại VSCode để có hiệu lực# Thêm vào ~/.zshrc hoặc ~/.bashrc export ANTHROPIC_BASE_URL="https://aiproxynode.com" export ANTHROPIC_AUTH_TOKEN="sk-xxxxxx" # Khởi động lại VSCode / Terminal để có hiệu lực
Đối với chuyển đổi tạm thời chỉ cho một phiên:
ANTHROPIC_BASE_URL=https://aiproxynode.com \ ANTHROPIC_AUTH_TOKEN=sk-xxxxxx \ claude --model claude-sonnet-4-6
Khi khởi động, Claude Code truy vấn /v1/models của chúng tôi để lấy danh sách hiện có — xem Danh sách Model bên dưới để biết những gì đang được expose. Dùng lệnh /model để đổi trong phiên. Chúng tôi khuyến nghị claude-sonnet-4-6 dùng hàng ngày, claude-opus-4-7 cho suy luận nặng, và claude-haiku-4-5 cho gọi nhiều giá rẻ.
Cline / Roo Code (Tiện ích VSCode)
- Mở cài đặt Cline (biểu tượng bánh răng)
- Đặt API Provider là
Anthropic - Tích Use custom base URL, điền
https://aiproxynode.com - Đặt API Key là token
sk-xxxxxxcủa bạn - Chọn Model như
claude-sonnet-4-6hoặcclaude-opus-4-7
Cursor
Cursor không expose cài đặt Anthropic Base URL; mọi tích hợp bên thứ ba đều đi qua protocol tương thích OpenAI. Trong Cursor Settings → Models:
- Đừng bật Anthropic API Key cùng lúc: bug đã biết của Cursor — nếu cả Anthropic Key và Override OpenAI Base URL đều bật, mọi cuộc gọi Claude trả 422. Token từ trang này chỉ điền vào OpenAI API Key.
- Đừng dùng tên model chính thức trực tiếp: Cursor sẽ ưu tiên định tuyến các tên như
claude-sonnet-4-6hoặcgpt-4oqua kênh riêng của nó, nên request không bao giờ đến chúng tôi. Dùng alias riêng của trang (xem bước 3 dưới đây). - Sau khi thêm, cần làm 2 việc nữa: khi thêm model tùy chỉnh, bạn phải bật toggle ON bên phải, và chọn nó từ dropdown model trong chat, nếu không Cursor sẽ rơi về model Auto/built-in mặc định.
- Tắt toggle Anthropic API Key. Nếu trước đó đã bật, hãy tắt và xóa input Anthropic Key.
- Mở rộng phần API Keys → bật OpenAI API Key → dán token
sk-xxxxxxcủa bạn - Bật Override OpenAI Base URL → đặt URL là
https://aiproxynode.com/v1 - Cuộn lên danh sách Models, tìm input Add or search model, và thêm các dòng dưới đây (bấm Enter sau mỗi dòng):
Dùng alias thay vì tên chính thức để vượt qua định tuyến "ưu tiên built-in" của Cursor. Quản trị trang phải map các alias này tới model thực trong Channels → Model Redirect của new-api trước; người dùng thông thường có thể chép alias trên nguyên xi, không cần cài đặt gì.Alias để nhập Model thực được dùng Trường hợp dùng aiproxy/sonnetclaude-sonnet-4-6 Code hàng ngày, cân bằng chi phí/chất lượng (khuyến nghị) aiproxy/haikuclaude-haiku-4-5 Tác vụ nhẹ, rẻ nhất aiproxy/opusclaude-opus-4-7 Suy luận nặng, tác vụ phức tạp - Bật toggle ON cho mọi model vừa thêm. Chỉ thêm thôi không expose chúng vào dropdown chat.
- Mở phiên chat/Agent bất kỳ, bấm bộ chọn model ở góc dưới bên trái và chọn
aiproxy/sonnet(hoặc khác) bạn vừa thêm. Không chọn thủ công thì Cursor mặc định Auto = model built-in, request sẽ không đến trang này.
- Gửi tin nhắn thử trong Cursor
- Mở Bảng điều khiển aiproxynode.com → Log, refresh và kiểm tra request của bạn có hiện không
- Nếu hiện → ổn rồi; nếu không → nhiều khả năng bạn bỏ qua bước 5 hoặc không chọn model ở bước 6
GPT-5.4 / Opus 4.6 v.v.)Các model liệt kê sẵn ở trên cùng dùng kênh subscription riêng của Cursor và không liên quan đến trang này. Ngay cả khi đã cấu hình OpenAI Base URL đúng, chọn model built-in trong chat sẽ gửi request qua Cursor, không qua chúng tôi.
Ngay cả khi mọi thứ đã cấu hình đúng, Tab autocomplete của Cursor và hành động Apply trong chat vẫn được vận hành bởi các model nhỏ riêng của Cursor — chúng không đi qua trang này. Chỉ cuộc trò chuyện Chat/Agent chính mới dùng model tùy chỉnh của bạn.
Continue (Tiện ích VSCode / JetBrains)
Sửa ~/.continue/config.json và thêm vào mảng models:
{
"models": [
{
"title": "Claude Sonnet 4.6 via AiProxyNode",
"provider": "anthropic",
"model": "claude-sonnet-4-6",
"apiKey": "sk-xxxxxx",
"apiBase": "https://aiproxynode.com"
}
]
}Trừ khi ứng dụng của bạn phụ thuộc nghiêm ngặt vào tính năng Claude gốc (như block tool_use hoặc cấu trúc content blocks), hãy ưu tiên protocol tương thích OpenAI — công cụ debug và hệ sinh thái hoàn thiện hơn nhiều.
Streaming
Mọi model đều hỗ trợ streaming (Server-Sent Events):
stream = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "Viết một bài thơ ngắn"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)curl https://aiproxynode.com/v1/chat/completions \
-H "Authorization: Bearer sk-xxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [{"role": "user", "content": "Viết thơ"}],
"stream": true
}'Danh sách Model
Đối với model phổ biến, chỉ cần dùng tên chính thức. Danh sách đầy đủ và bảng giá tại trang chính → Models.
OpenAI
Kênh OpenAI hiện chưa được kích hoạt. Chúng tôi khuyến nghị dùng claude-sonnet-4-6 (tương đương GPT-4o) hoặc deepseek-chat (hiệu năng/giá tốt) thay thế. Phần này sẽ được cập nhật khi kênh OpenAI online.
Anthropic Claude
claude-haiku-4-5— rẻ nhất, phù hợp cho gọi nhẹ với khối lượng lớnclaude-sonnet-4-5·claude-sonnet-4-6— cân bằng chi phí và chất lượngclaude-opus-4-5·claude-opus-4-6·claude-opus-4-7— suy luận mạnh nhất
Khuyến nghị dùng các alias trên. Dạng có ngày của các phiên bản đang hoạt động (claude-haiku-4-5-20251001 / claude-sonnet-4-5-20250929 / claude-opus-4-5-20251101) cũng hoạt động — SDK Anthropic chính thức và Claude Code map alias sang tên có ngày bên trong, bạn không cần chỉ định thủ công. Tên có ngày đã ngừng hoạt động (ví dụ claude-sonnet-4-20250514) sẽ trả 503 model_not_found.
DeepSeek
deepseek-chat— chat và code thông dụng (V4 mới nhất)deepseek-reasoner— suy luận chuỗi dài / toán / tác vụ khódeepseek-coder— alias chuyên cho code
Kênh Moonshot / Doubao / Qwen / GLM / Gemini / OpenAI hiện chưa được kích hoạt — gọi các tên model đó sẽ trả 503 No available channel. Danh sách model có sẵn đầy đủ và bảng giá ở trang Models của site chính.
Mã lỗi
| HTTP | Loại lỗi | Mô tả |
|---|---|---|
| 400 | invalid_request_error | Sai tham số — thường do thiếu trường hoặc kiểu sai |
| 401 | authentication_error | API Key sai hoặc đã bị vô hiệu hóa |
| 402 | insufficient_quota | Số dư tài khoản hoặc hạn mức token đã hết |
| 403 | forbidden | Token không có quyền truy cập model này |
| 404 | not_found | Tên model không tồn tại hoặc đã ngừng hoạt động |
| 429 | rate_limit_exceeded | Chạm giới hạn tốc độ — thử lại hoặc giảm concurrency |
| 500 | internal_error | Lỗi upstream hoặc gateway — vui lòng thử lại |
| 502 / 503 | upstream_error | Upstream tạm thời không khả dụng — thử lại hoặc đổi model |
Với traffic production, luôn retry các cuộc gọi idempotent với exponential backoff và thêm fallback model tự động cho lỗi 5xx.