Kiểm tra ngày 2026-11-12

Gọi Claude API bằng một Base URL và một key

Đổi hai chỗ trong code là gọi được Claude: Base URL thành https://api.relayswitch.io/v1 và key thành key RelaySwitch. SDK Anthropic và SDK OpenAI dùng nguyên như cũ; 13 model Claude được tính tiền theo token từ số dư trả trước.

01Thử bằng curl trước

Bắt đầu bằng một request Messages tối thiểu để xác nhận key và địa chỉ, sau đó mới đưa vào SDK. Key gửi trong header x-api-key hoặc Authorization: Bearer đều được, nhưng mỗi request chỉ mang một key.

Header của response có request id. Hãy ghi id này vào log của bạn: nó dùng để lấy biên nhận của đúng request đó, và khi cần hỗ trợ thì gửi kèm id sẽ bớt được một vòng hỏi đáp.

bash
1curl -i https://api.relayswitch.io/v1/messages \
2 -H "Authorization: Bearer sk-relay-..." \
3 -H "anthropic-version: 2023-06-01" \
4 -H "content-type: application/json" \
5 -d '{"model": "claude-fable-5.1", "max_tokens": 16, "messages": [{"role": "user", "content": "Reply with ok"}]}'

02SDK Anthropic: định dạng gốc của Claude

Với code viết mới, hoặc khi cần các tính năng riêng của Claude như trường system, cấu trúc tool use gốc và đánh dấu prompt cache, hãy dùng SDK Anthropic và đi qua /messages. Bạn chỉ truyền thêm base_url và key; request body, id model và phần còn lại của code giữ nguyên.

SDK Anthropic tự ghép /v1/messages vào sau Base URL. Gateway xử lý được trường hợp /v1 bị lặp, nên mọi ví dụ ở đây đều dùng chung một địa chỉ là https://api.relayswitch.io/v1.

python
1import anthropic
2
3client = anthropic.Anthropic(base_url="https://api.relayswitch.io/v1", api_key="sk-relay-...")
4reply = client.messages.create(
5 model="claude-fable-5.1",
6 max_tokens=300,
7 messages=[{"role": "user", "content": "Reply with ok"}],
8)
9print(reply.content[0].text)
10print(reply.usage)

03SDK OpenAI: cho code đã có sẵn

Nếu ứng dụng đã viết theo định dạng OpenAI, hoặc cùng một đoạn code còn phải gọi model của hãng khác, hãy đi qua /chat/completions và đổi model thành id của Claude. Không phải sửa cấu trúc code.

Hai định dạng dùng chung một key, một số dư và cùng một mức giá. Các công cụ viết code như Claude Code hay Cline thì có định dạng cố định của chúng; xem trang Claude Code hoặc các bài hướng dẫn (tiếng Anh) cho từng công cụ.

python
1from openai import OpenAI
2
3client = OpenAI(base_url="https://api.relayswitch.io/v1", api_key="sk-relay-...")
4reply = client.chat.completions.create(
5 model="claude-fable-5.1",
6 messages=[{"role": "user", "content": "Reply with ok"}],
7)
8print(reply.choices[0].message.content)

04Streaming, tool call và chuyển tuyến khi lỗi

Đặt stream: true trong request thì response trả về dạng server-sent events. Mọi model đều hỗ trợ streaming, và cả ba định dạng Chat Completions, Responses, Anthropic Messages đều hỗ trợ tool call.

Một id model có thể có nhiều tuyến phục vụ. Khi một tuyến trả về 5xx hoặc 429, request tự chuyển sang tuyến kế tiếp của model đó với giá không đổi. Model chỉ có một tuyến sẽ trả về 503; lúc đó hãy thử lại có giãn cách hoặc đổi sang id khác.

05Giá Claude API hiện tại

USD cho mỗi triệu token, input và output tính riêng, đọc từ catalog khi trang được dựng. Token đọc từ prompt cache được tính theo giá cached input của model, thấp hơn giá input thường: system prompt dài, tài liệu gửi đi gửi lại và lịch sử của hội thoại nhiều lượt được tính mức này khi trúng cache.

Biên nhận của mỗi request ghi tách riêng số token input, cached input và output, nên bạn đối chiếu được từng dòng. Cách tính tiền chi tiết có ở trang bảng giá.

ModelNhà phát triểnInputOutputContext
Claude Fable 5.1claude-fable-5.1Anthropic$6.00$30.001,000,000
Claude Fable 5.2claude-fable-5.2Anthropic$4.00$20.001,000,000
Claude Fable 5claude-fable-5Anthropic$3.00$15.001,000,000
Claude Opus 5.5claude-opus-5-5Anthropic$2.716$9.701,000,000
Claude Sonnet 4.6claude-sonnet-4-6Anthropic$1.80$9.001,000,000
Claude Opus 4.6claude-opus-4-6Anthropic$1.80$7.501,000,000
Claude Opus 4.7claude-opus-4-7Anthropic$1.80$7.501,000,000
Claude Opus 4.8claude-opus-4-8Anthropic$1.80$7.501,000,000
Claude Opus 5claude-opus-5Anthropic$1.80$7.501,000,000
Claude Haiku 4.5claude-haiku-4-5Anthropic$0.60$3.00200,000
Claude Sonnet 5claude-sonnet-5Anthropic$1.20$3.001,000,000
Claude Sonnet 5.5claude-sonnet-5-5Anthropic$1.20$3.001,000,000
Claude Haiku 5.5claude-haiku-5-5Anthropic$0.0582$0.14551,000,000

USD cho mỗi triệu token

06Bảng mã lỗi

Nội dung lỗi đi theo đúng cấu trúc lỗi của định dạng mà bạn đang gọi. Các mã từ 401 đến 404 được trả về trước khi request tới model; 429, 502 và 503 không trả nội dung nào. Tất cả đều không bị tính tiền.

401 invalid_api_keyThiếu key, key sai hoặc key đã bị thu hồi.
402 insufficient_balanceHết số dư. Key chạm ngân sách hoặc trần chi tiêu của riêng nó cũng trả về 402 với mã lỗi khác.
403 scope_deniedId model không nằm trong danh sách model được phép của key.
404 model_not_foundId model không có trong catalog, phần lớn là do gõ sai.
429 rate_limitedKey chạm giới hạn tốc độ. Header retry-after cho biết số giây cần chờ.
502 upstream_error, 503 upstream_unavailableTuyến phục vụ gặp lỗi, hoặc tạm thời không có tuyến nào trả lời.

07Trước khi đưa lên production

Tạo một key riêng cho môi trường production và đặt giới hạn theo nhu cầu: ngân sách, trần chi tiêu theo ngày, danh sách model được phép và danh sách IP được phép. Khi request thất bại, đọc header retry-after để quyết định chờ bao lâu rồi thử lại.

Nội dung request chỉ được chuyển tiếp: không lưu lại và không dùng để huấn luyện. Còn model có đúng là model trên nhãn hay không thì bạn không cần tin lời trang này: kết quả kiểm tra hằng ngày của từng model được công bố ở trang Proof (tiếng Anh).

Câu hỏi thường gặp

Làm sao chắc model trả lời đúng là Claude chứ không bị đổi sang model khác?
Có hai cách và cả hai đều không đòi bạn tin lời trang này. Một: mỗi model nhận cùng một prompt kiểm tra mỗi ngày, câu trả lời được so với các lần trước và kết quả công bố tại https://api.relayswitch.io/v1/proof. Hai: mỗi request có một biên nhận có chữ ký số (GET https://api.relayswitch.io/v1/requests/:id/receipt) ghi id model, số token tính tiền và số tiền, kiểm chứng offline được bằng public key.
Nên dùng định dạng Anthropic hay định dạng OpenAI?
Cả hai đều chạy trên cùng một key và cùng một Base URL (https://api.relayswitch.io/v1). SDK Anthropic đi qua /messages, SDK OpenAI đi qua /chat/completions, cách viết id của Claude giống nhau ở cả hai.
Base URL có cần /v1 không?
Có. Điền https://api.relayswitch.io/v1; SDK tự ghép /messages hoặc /chat/completions vào sau.
Giá Claude API được tính như thế nào?
Theo token: mỗi model có giá input, cached input và output riêng, tính bằng USD cho mỗi triệu token và trừ vào số dư trả trước. Không có gói thuê bao; mức nạp nhỏ nhất là $10.
Request lỗi có bị tính tiền không?
Không. Request thất bại trước khi tới model, hoặc model không trả lời, thì không bị tính. Các mã 401, 402, 403, 404, 429, 502 và 503 đều không trừ số dư.
Nạp tiền bằng gì, có cần xác minh danh tính không?
Thẻ (kể cả Apple Pay, Google Pay) hoặc crypto: USDT, USDC, BTC, ETH, SOL. Số dư tính bằng USD và không hết hạn. Mở tài khoản chỉ cần một email, không kiểm tra danh tính.

Đổi một dòng base_url

Base URL https://api.relayswitch.io/v1, model Claude tính theo giá trong catalog, mỗi request có một biên nhận có chữ ký số.