API Documentation
API tương thích OpenAI. Chỉ cần đổi base_url và API key.
Base URL
https://www.thuehay.com/v1
Xác thực
Gửi API key qua header Authorization:
curl https://www.thuehay.com/v1/chat/completions \
-H "Authorization: Bearer sk-duan-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"messages": [{"role": "user", "content": "Xin chào"}]
}'
Endpoints
| Method | Path | Mô tả |
|---|---|---|
POST | /v1/chat/completions | Chat completion (hỗ trợ streaming) |
POST | /v1/completions | Text completion |
POST | /v1/embeddings | Vector embedding |
POST | /v1/messages | Anthropic-style messages |
GET | /v1/models | Danh sách model khả dụng |
GET | /v1/usage | Thống kê sử dụng của bạn |
Python (OpenAI SDK)
from openai import OpenAI
client = OpenAI(
api_key="sk-duan-xxx",
base_url="https://www.thuehay.com/v1",
)
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Viết haiku về AI"}],
)
print(resp.choices[0].message.content)
Node.js
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-duan-xxx",
baseURL: "https://www.thuehay.com/v1",
});
const r = await client.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: "user", content: "Hello" }],
});
console.log(r.choices[0].message.content);
cURL (streaming)
curl -N https://www.thuehay.com/v1/chat/completions \
-H "Authorization: Bearer sk-duan-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"stream": true,
"messages": [{"role": "user", "content": "Kể một câu chuyện dài"}]
}'
Mã lỗi
401 | Thiếu hoặc sai API key |
402 | Không đủ credit |
429 | Vượt rate limit |
400 | Request không hợp lệ / model không khả dụng |
502 | Lỗi kết nối tới upstream |
Billing
- Tiền tính theo token thực tế:
input_tokens × giá_input + output_tokens × giá_output - Trừ tiền sau mỗi request thành công, ghi vào ledger
- Header trả về:
X-DuanAPI-Cost-Micros,X-DuanAPI-Total-Tokens - Xem chi tiết tại /user/usage