Messages (định dạng Anthropic)
Gọi model qua POST /v1/messages theo định dạng Anthropic Messages, dùng được với Anthropic SDK và Claude Code.
Trên trang này
Endpoint POST /v1/messages nhận yêu cầu theo định dạng Anthropic Messages. Gateway tự chuyển đổi định dạng, nên bạn có thể gọi cả model không thuộc Anthropic bằng cùng cú pháp này.
Thông tin endpoint
| Mục | Giá trị |
|---|---|
| URL | https://rexapf.com/v1/messages |
| Phương thức | POST |
| Xác thực | x-api-key: <khoá API> hoặc Authorization: Bearer <khoá API> |
| Content-Type | application/json |
Các trường thường dùng: model, max_tokens, messages, và tuỳ chọn system, stream.
Anthropic SDK tự thêm /v1/messages vào sau Base URL. Vì vậy hãy đặt Base URL là https://rexapf.com, không kèm /v1. Đây là địa chỉ hiện ở mục Messages API trong thẻ API Endpoints trên trang Tổng quan.
Gửi yêu cầu
Chuẩn bị khoá
Tạo khoá ở Khoá API và đặt vào biến môi trường.
bash$ export REXAPF_API_KEY="sk_9r_..."Chọn model
Sao chép ID model ở API Gateway › Model. Xem Model & bảng giá.
Gửi yêu cầu
$ curl https://rexapf.com/v1/messages \ -H "x-api-key: $REXAPF_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "Content-Type: application/json" \ -d '{ "model": "<model-id>", "max_tokens": 1024, "system": "Bạn là trợ lý ngắn gọn.", "messages": [{"role": "user", "content": "Tóm tắt HTTP/2 trong 3 ý."}] }'import Anthropic from "@anthropic-ai/sdk"; const client = new Anthropic({ apiKey: process.env.REXAPF_API_KEY, baseURL: "https://rexapf.com", }); const msg = await client.messages.create({ model: "<model-id>", max_tokens: 1024, messages: [{ role: "user", content: "Tóm tắt HTTP/2 trong 3 ý." }], }); console.log(msg.content);import os from anthropic import Anthropic client = Anthropic(api_key=os.environ["REXAPF_API_KEY"], base_url="https://rexapf.com") msg = client.messages.create( model="<model-id>", max_tokens=1024, messages=[{"role": "user", "content": "Tóm tắt HTTP/2 trong 3 ý."}], ) print(msg.content)Xem kết quả trên bảng điều khiển
Mở API Gateway › Sử dụng › Lịch sử để xem token và chi phí của yêu cầu.
Stream phản hồi
Đặt "stream": true để nhận sự kiện SSE theo định dạng Anthropic.
const stream = client.messages.stream({
model: "<model-id>",
max_tokens: 1024,
messages: [{ role: "user", content: "Viết một bài haiku về mưa." }],
});
for await (const event of stream) {
if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
process.stdout.write(event.delta.text);
}
}Đếm token
Endpoint POST /v1/messages/count_tokens trả về input_tokens cho phần messages bạn gửi.
$ curl https://rexapf.com/v1/messages/count_tokens \
-H "Content-Type: application/json" \
-d '{"model": "<model-id>", "messages": [{"role": "user", "content": "Xin chào"}]}'Số input_tokens được ước lượng theo độ dài văn bản (khoảng 4 ký tự một token), không phải số token thật mà model tính phí. Dùng để ước chừng, không dùng để đối soát chi phí.
Dùng với Claude Code
Claude Code gọi endpoint Messages. Bạn chỉ cần đặt ANTHROPIC_BASE_URL và ANTHROPIC_AUTH_TOKEN:
$ export ANTHROPIC_BASE_URL="https://rexapf.com/v1"
$ export ANTHROPIC_AUTH_TOKEN="sk_9r_..."$env:ANTHROPIC_BASE_URL="https://rexapf.com/v1"
$env:ANTHROPIC_AUTH_TOKEN="sk_9r_..."Hướng dẫn đầy đủ, kèm lệnh cấu hình một dòng, ở Claude Code.
Lỗi thường gặp
| Mã | Khi nào |
|---|---|
401 | Thiếu khoá, khoá sai hoặc đã thu hồi |
402 | Hết hạn gói và hết credit |
403 | Model ngoài gói (model_not_allowed) hoặc tài khoản bị khoá |
429 | Hết ngân sách cửa sổ hoặc chạm giới hạn chi tiêu |
Chi tiết ở Mã lỗi & giới hạn.