Địa chỉ API
| Kiểu | Base URL | Endpoint |
|---|---|---|
| OpenAI-compatible | https://apivn.vn/v1 | GET /modelsPOST /chat/completionsPOST /responses |
| Anthropic-compatible | https://apivn.vn | POST /v1/messages |
Xác thực qua header Authorization: Bearer sk-.... Endpoint kiểu Anthropic nhận cả header x-api-key. Mô hình phải thuộc nhóm của khoá, tra ở Mô hình.
cURL
Xem khoá của bạn gọi được những mô hình nào:
curl https://apivn.vn/v1/models \ -H "Authorization: Bearer $APIVN_API_KEY"
Gửi một tin nhắn qua Chat Completions:
curl https://apivn.vn/v1/chat/completions \
-H "Authorization: Bearer $APIVN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"messages": [{"role": "user", "content": "Xin chào APIVN"}]
}'Responses API
Cần khoá nhóm GPT. Codex CLI gọi endpoint này.
curl https://apivn.vn/v1/responses \
-H "Authorization: Bearer $APIVN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-5.6-sol", "input": "Xin chào APIVN"}'Messages API (Anthropic)
Cần khoá nhóm Claude.
curl https://apivn.vn/v1/messages \
-H "x-api-key: $APIVN_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 512,
"messages": [{"role": "user", "content": "Xin chào APIVN"}]
}'Tạo ảnh
Cần khoá nhóm GPT, mô hình gpt-image-2 hoặc gpt-image-2.5, tính tiền theo từng ảnh (xem Mô hình). Một ảnh mất chừng 20 đến 35 giây.
curl https://apivn.vn/v1/images/generations \
-H "Authorization: Bearer $APIVN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "Ly cà phê sữa đá trên bàn gỗ, ánh nắng buổi sáng",
"size": "1024x1024"
}'Ảnh PNG nằm ở data[0].url. Tải về và tự lưu ngay, vì đường dẫn này có thể hết hạn sau một thời gian.
Bằng SDK Python:
result = client.images.generate(
model="gpt-image-2",
prompt="Ly cà phê sữa đá trên bàn gỗ",
size="1024x1024",
)
print(result.data[0].url)Streaming
Thêm "stream": true để nhận câu trả lời theo từng đoạn. Với cURL, thêm -N để in ra ngay khi có:
curl -N https://apivn.vn/v1/chat/completions \
-H "Authorization: Bearer $APIVN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"stream": true,
"messages": [{"role": "user", "content": "Xin chào"}]
}'Phản hồi mang Content-Type: text/event-stream; mỗi đoạn là một dòng data: ..., và Chat Completions kết thúc bằng data: [DONE].
Python
Cài SDK: pip install openai.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["APIVN_API_KEY"],
base_url="https://apivn.vn/v1",
)
reply = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "Xin chào APIVN"}],
)
print(reply.choices[0].message.content)Node.js
Cài SDK: npm install openai.
import OpenAI from 'openai'
const client = new OpenAI({
apiKey: process.env.APIVN_API_KEY,
baseURL: 'https://apivn.vn/v1',
})
const reply = await client.chat.completions.create({
model: 'claude-sonnet-5',
messages: [{ role: 'user', content: 'Xin chào APIVN' }],
})
console.log(reply.choices[0].message.content)Chỉ gọi API từ phía máy chủ. Đừng đưa khoá vào mã chạy trên trình duyệt hay biến môi trường public của framework.
Postman
Tạo request GET https://apivn.vn/v1/models với header Authorization: Bearer {{APIVN_API_KEY}}. Cất khoá trong biến loại secret của Environment và đừng đồng bộ giá trị thật lên workspace dùng chung.
Dùng APIVN làm nguồn cho hệ thống relay
Nếu hệ thống của bạn tự nối thêm /v1/..., điền https://apivn.vn; nếu ô nhập đòi Base URL OpenAI đầy đủ, điền https://apivn.vn/v1. Gọi /models trước để chắc đường dẫn không bị lặp thành /v1/v1. Dùng một khoá riêng có hạn mức cho relay, tách khỏi khoá cá nhân.