Bắt đầu nhanh
Ba bước từ chưa có gì tới request đầu tiên thành công. Toàn bộ journey này mất khoảng 5 phút.
Tạo API key
Đăng ký tại texapi.dev, vào dashboard → API keys → Tạo key. Key có dạng sk-texapi-… và chỉ hiện đầy đủ một lần — lưu lại ngay.
Chọn tool theo model bạn cần
Xem ma trận tool × mô hình bên dưới. Quy tắc ngắn: các họ đang bán nhận mọi tool; Kimi dùng Messages gốc nên Codex CLI không gọi được.
Gắn tool và gọi request đầu tiên
Chạy một lệnh connector (bên dưới) để tự động cấu hình, hoặc mở mục Tích hợp thủ công nếu bạn muốn tự sửa file cấu hình. Sau đó chỉ cần dùng tool như bình thường.
Ma trận tool × nhóm mô hình
Các họ TexAPI đang bán đều nhận client chuẩn; chỉ Kimi có endpoint riêng (Messages). Ma trận này cho bạn biết ngay từ đầu: tool bạn đang dùng gọi trực tiếp được nhóm nào, nhóm nào phải qua converter, và trường hợp nào bị chặn.
Tool của bạn nói đúng protocol mà nguồn của nhóm mô hình phục vụ. Không chuyển đổi, không mất trường nào của request — đây là cách dùng tốt nhất.
Tool vẫn chạy được: TexAPI chuyển request của bạn sang protocol mà nguồn phục vụ. Một số tham số hiếm không có chỗ trên protocol đích sẽ bị bỏ. Với tool lập trình thông thường thì gần như không khác gì.
Hiếm gặp: nhóm mô hình chỉ nhận client chính thức của hãng, nhưng TexAPI vẫn có thể định hình lại request cho giống client đó. Đường mòn — khi cần ổn định lâu dài, hãy chọn tool ở mức “gọi trực tiếp”.
Không có đường: tool này không có converter tới protocol nào nhóm mô hình phục vụ.
Hai kiểu kết nối
Phần lớn họ đang bán nhận mọi client chuẩn. Kimi là ngoại lệ: nhóm này chỉ phục vụ Messages gốc, nên tool chat phải đi qua converter và Codex CLI không có đường.
Kimi: Messages gốc
Kimi chỉ mở /v1/messages. Claude Code và các tool chat dùng được (chat đi qua converter); Codex CLI bị chặn vì thiếu converter Responses→Messages.
Dùng được mọi tool
Các họ còn lại nhận mọi client chuẩn, không kiểm tra hình dạng. Tool nào cũng gọi trực tiếp được.
Hàng là tool, cột là nhóm mô hình. Ô hiển thị mức tương thích theo màu — đưa chuột lên để xem chú giải mức đó của ô.
| Công cụ | Kimi | Mở |
|---|---|---|
Claude Code /v1/messages | Gọi trực tiếp | Qua bộ chuyển đổi |
Codex CLI /v1/responses | Không gọi được | Qua bộ chuyển đổi |
Gemini CLI :generateContent | Không gọi được | Qua bộ chuyển đổi |
Cline /v1/chat/completions | Qua chuyển đổi + định hình CLI | Gọi trực tiếp |
Roo Code /v1/chat/completions | Qua chuyển đổi + định hình CLI | Gọi trực tiếp |
Continue /v1/chat/completions | Qua chuyển đổi + định hình CLI | Gọi trực tiếp |
aider /v1/chat/completions | Qua chuyển đổi + định hình CLI | Gọi trực tiếp |
Zed /v1/chat/completions | Qua chuyển đổi + định hình CLI | Gọi trực tiếp |
Mỗi tool nên dùng nhóm nào
Cùng nội dung ma trận, xếp theo tool — cho bạn đang cài một tool và hỏi “dùng model gì”.
Chi tiết nhóm Kimi
Vì sao Kimi cần endpoint Messages, tool nào chạy được, và lỗi bạn sẽ thấy nếu dùng Codex CLI.
Kimi
/v1/messagesNhóm Kimi chỉ phục vụ /v1/messages — đã xác minh bằng probe: endpoint chat bị từ chối với protocol_not_supported dù catalog quảng cáo.
Claude Code (gọi trực tiếp). Tool chat (Cline, aider, Zed…) chạy qua converter chat→messages.
Codex CLI KHÔNG gọi được nhóm này — không có converter từ Responses sang Messages. Dùng Codex thì chọn một họ khác có Responses.
Tích hợp tự động (connector)
Một lệnh duy nhất cấu hình toàn bộ tool trên máy bạn: phát hiện tool đang cài, xin phê duyệt trong browser, cấp key riêng cho máy, và ghi config vào đúng chỗ tool đọc. Hỗ trợ rollback sạch bằng một lệnh disconnect.
Connector hoạt động thế nào
- 1Chạy lệnh connect — connector mở browser để bạn phê duyệt. Mã hiện trên terminal phải khớp mã trên trang phê duyệt (chống giả mạo).
- 2Sau khi phê duyệt, TexAPI cấp một API key riêng cho máy đó — một key một máy, không dùng key của bạn trực tiếp.
- 3Vào dashboard → Tích hợp, bật/tắt tool nào connector được phép cấu hình trên máy này.
- 4Chạy apply — connector ghi config vào đúng file của từng tool (đúng những gì mô tả ở mục Tích hợp thủ công bên dưới), và hoàn tác đúng phần nó ghi khi bạn disconnect.
Các lệnh
npx @texapi/connectKết nối máy này vào TexAPI — chưa ghi config tool nào
npx @texapi/connect applyGhi config cho đúng các tool đã bật ở dashboard
npx @texapi/connect statusXem máy đang kết nối gì, tool nào đã áp dụng
npx @texapi/connect disconnectThu hồi key của máy và phục hồi config như trước khi kết nối
Tuỳ chọn hay dùng
--dry-runXem connector sẽ ghi gì mà không ghi thật
--only claude-code,codex-cliChỉ cấu hình những tool này
--no-browserIn URL phê duyệt ra terminal thay vì mở browser (SSH/server)
--jsonXuất JSON — dùng cho script/CI
Yêu cầu duy nhất: Node.js trên máy. Không cần quyền admin — connector chỉ ghi vào file của chính user.
Tích hợp thủ công từng tool
Nếu bạn muốn tự cấu hình, không dùng máy có Node.js, hoặc đơn giản là muốn hiểu tool đọc gì — đây là cấu hình chính xác cho từng tool. Đây là đúng những gì connector ghi, không phải bản diễn giải.
Tool có hướng dẫn dưới đây
Claude Code
Dùng cho mọi họ đang bán; Kimi cần Messages gốc.
- 1Mở hoặc tạo file settings.json (hỗ trợ comment — JSONC).
- 2Thêm hoặc sửa env.ANTHROPIC_BASE_URL trỏ về TexAPI và env.ANTHROPIC_AUTH_TOKEN là API key của bạn.
- 3Nếu env.ANTHROPIC_API_KEY đang có giá trị thì XOÁ nó — Claude Code có thể ưu tiên biến này và gọi thẳng nhà cung cấp cũ thay vì TexAPI.
- 4Khởi động lại Claude Code. Gọi một model bất kỳ để kiểm tra.
{
"env": {
"ANTHROPIC_BASE_URL": "https://texapi.dev",
"ANTHROPIC_AUTH_TOKEN": "sk-texapi-..."
}
}- Settings cấp project (.claude/settings.json trong repo) đè settings user — nếu có file đó trong repo, kiểm tra nó không ghi đè base URL.
Codex CLI / Codex desktop
Dùng cho các họ đang bán qua giao diện Responses.
- 1Mở hoặc tạo config.toml. Đặt model_provider = "texapi" ở đầu file (ngoài mọi khối [table]).
- 2Thêm khối [model_providers.texapi] như snippet — base_url kết thúc bằng /v1.
- 3Ghi key vào auth.json: OPENAI_API_KEY là API key TexAPI và auth_mode là "apikey".
- 4Khởi động lại Codex. Nếu từng đăng nhập bằng tài khoản khác, auth_mode mới ghi đè — disconnect connector sẽ phục hồi, còn thủ công thì bạn tự sao lưu trước.
model_provider = "texapi"
[model_providers.texapi]
name = "TexAPI"
base_url = "https://texapi.dev/v1"
wire_api = "responses"
requires_openai_auth = true{
"OPENAI_API_KEY": "sk-texapi-...",
"auth_mode": "apikey"
}- wire_api = "responses" là giá trị connector chọn cho Codex bản mới; bản CLI cũ chưa bỏ dùng "chat" thì TexAPI vẫn phục vụ cả hai.
- auth.json là file credential thật của Codex — nếu bạn đang có key OpenAI thật trong đó, nó sẽ bị thay. Sao lại lưu key cũ trước khi sửa.
Gemini CLI
Dùng cho các họ đang bán qua giao diện Google generateContent.
- 1Mở hoặc tạo ~/.gemini/.env (CLI tự nạp file này, không cần export).
- 2Đặt GOOGLE_GEMINI_BASE_URL là origin trần KHÔNG có /v1beta — SDK tự nối /v1beta/models/… vào sau.
- 3Đặt GEMINI_API_KEY là API key TexAPI.
- 4Nếu bạn từng login Google (OAuth): mở settings.json và đặt security.auth.selectedType = "gemini-api-key", nếu không base URL mới bị bỏ qua.
GOOGLE_GEMINI_BASE_URL=https://texapi.dev
GEMINI_API_KEY=sk-texapi-...{
"security": {
"auth": {
"selectedType": "gemini-api-key"
}
}
}- Bẫy kinh điển: thêm /v1beta vào base URL khiến mọi request 404 trước khi tới TexAPI — SDK đã tự nối phần đó.
aider
Dùng cho mọi họ đang bán qua giao diện OpenAI-compatible.
- 1Mở hoặc tạo ~/.aider.conf.yml.
- 2Đặt openai-api-base trỏ về https://texapi.dev/v1 và openai-api-key là API key của bạn.
- 3Model phải có tiền tố openai/ — ví dụ openai/glm-5.2. Không có tiền tố, aider phân loại model theo bảng nhà cung cấp và đi sai endpoint.
openai-api-base: https://texapi.dev/v1
openai-api-key: sk-texapi-...
model: openai/glm-5.2- aider nạp .aider.conf.yml theo thứ tự: home → git root → thư mục hiện tại, file sau đè file trước. Nếu repo của bạn có file này, nó đè cấu hình home — kiểm tra trước khi thắc mắc request vẫn đi về OpenAI.
Cline / Roo Code (VS Code)
Dùng cho mọi họ đang bán qua giao diện OpenAI-compatible.
- 1Mở VS Code Settings (Ctrl+,), tìm “Cline: OpenAI Compatible Settings” (Roo Code tương tự).
- 2Base URL: https://texapi.dev/v1 — API Key: sk-texapi-… của bạn.
- 3Model ID: chọn model TexAPI hỗ trợ chat (xem ma trận).
- Cấu hình Cline/Roo nằm trong state database của VS Code chứ không phải file user chỉnh được — đó cũng là lý do connector chưa hỗ trợ tự động cho tool này.
Continue
Dùng cho mọi họ đang bán qua giao diện OpenAI-compatible.
- 1Mở ~/.continue/config.yaml.
- 2Trong danh sách models, thêm một mục: model là id TexAPI, apiBase là https://texapi.dev/v1, apiKey là sk-texapi-…, provider là openai.
- 3Chọn model đó trong Continue. File do Continue tự sinh khi trống — thêm vào đúng mục models (danh sách) chứ không viết đè cả file.
- config.yaml là YAML dạng danh sách — thụt lề sai là cả tool ngừng nạp. Sao lưu trước khi sửa.
Zed
Dùng cho mọi họ đang bán qua giao diện OpenAI-compatible.
- 1Mở settings.json của Zed (Zed: Open Settings).
- 2Thêm khối language_models.openai: api_url = "https://texapi.dev/v1".
- 3API key KHÔNG nằm trong settings.json — Zed sẽ hỏi và lưu vào keychain của hệ điều hành khi bạn gọi request đầu tiên.
- Mục keychain của Zed gắn với api_url — đổi URL làm mất key cũ đã lưu trong keychain, bạn sẽ phải nhập lại.
Tham chiếu API
TexAPI phục vụ cả bốn giao diện chuẩn ngành — dùng SDK chính thức của bất kỳ hãng nào hoặc HTTP thô. Tất cả đều xác thực bằng header Authorization: Bearer sk-texapi-… (Gemini nhận thêm x-goog-api-key).
Xác thực
Mọi endpoint nhận key TexAPI qua Authorization: Bearer sk-texapi-…. Key tạo ở dashboard → API keys. Một key một máy nếu bạn dùng connector; key tự quản thì đặt tên để phân biệt.
Bốn giao diện, một key
/v1/chat/completionsTương thích SDK openai. Dùng cho mọi tool chat và phần lớn model.
/v1/messagesTương thích SDK Anthropic và Claude Code. Đây là endpoint duy nhất của Kimi.
/v1/responsesTương thích Codex CLI. Dùng cho các họ đang bán qua giao diện Responses.
/v1beta/models/{model}:generateContentTương thích SDK google-genai và Gemini CLI. Dùng cho các họ đang bán qua giao diện Google.
Streaming
Mọi endpoint text đều hỗ trợ streaming (SSE): đặt "stream": true trong body (Gemini dùng :streamGenerateContent?alt=sse). Số token usage khi stream luôn được TexAPI báo đầy đủ — kể cả khi upstream không trả. Các trường chi phí đã tất toán cost_usd, cost_credits và credits_per_usd hiện chỉ được thêm vào phản hồi JSON không streaming; dùng request id và biên nhận định giá để đối chiếu lượt streaming.
Tạo ảnh
/v1/images/generations và /v1/images/edits theo giao diện OpenAI Images. Hiện danh mục chưa mở bán model tạo ảnh; endpoint vẫn được giữ để tương thích.
Danh sách model
GET /v1/models trả mọi model đang bật cho key của bạn, kèm trường toolCompat của từng model — chính là dữ liệu ma trận ở trang này.
Kiểm tra nhanh bằng curl
Chat (OpenAI)
curl https://texapi.dev/v1/chat/completions \
-H "Authorization: Bearer sk-texapi-..." \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.2",
"messages": [{"role": "user", "content": "Hello!"}]
}'Messages (Anthropic)
curl https://texapi.dev/v1/messages \
-H "Authorization: Bearer sk-texapi-..." \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "kimi-k3",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello!"}]
}'Responses (OpenAI)
curl https://texapi.dev/v1/responses \
-H "Authorization: Bearer sk-texapi-..." \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro",
"input": "Hello!"
}'Gemini
curl "https://texapi.dev/v1beta/models/qwen3.8-max:generateContent" \
-H "x-goog-api-key: sk-texapi-..." \
-H "Content-Type: application/json" \
-d '{
"contents": [{"parts": [{"text": "Hello!"}]}]
}'OpenAPI đầy đủ
Spec OpenAPI 3.1 hoàn chỉnh có tại /openapi.json và /openapi.yaml — nạp vào Postman/Insomnia/curl hay sinh SDK tuỳ ý. Trong phản hồi JSON không streaming đã tất toán, usage.cost_usd vẫn là khoản USD chuẩn để tương thích và đối chiếu; usage.cost_credits = cost_usd × 100 được suy ra sau tất toán; texapi.credits_per_usd công bố tỷ lệ cố định 100.
Giá & giới hạn
Giá hiển thị bằng credit / 1M token theo tỷ lệ cố định 100 credit = 1 USD giá trị sử dụng, cập nhật realtime theo bảng giá dashboard. Trả theo lượt dùng — không phí ẩn; credit chỉ bị trừ cho lượng sử dụng phải tính tiền theo Chính sách tính tiền.
Các gói
Bảng gói và bậc nạp hiện tại (tham khảo trang Giá để có UI đầy đủ):
| Gói | Giá tháng | Giá VND | Gồm dùng | RPM | TPM | Khoá |
|---|---|---|---|---|---|---|
| Dev | $9 | 249.000 ₫ | 1.000 credit | 300 | 1.000.000 | 5 |
| Studio | $29 | 799.000 ₫ | 3.200 credit | 800 | 4.000.000 | 20 |
| Scale | $99 | 2.699.000 ₫ | 11.000 credit | 2000 | 12.000.000 | 100 |
Trần dài (long context)
Một số model có giá bậc thang theo context: càng dài càng theo tỷ lệ của bước tương ứng. Công thức bậc thang hiển thị sẵn ở trang Models của từng model — dùng tab Calculator để ước chi phí trước khi chạy.
Đọc cache
Đọc từ cache của model (prompt caching) được tính riêng, rẻ hơn input mới — đơn giá hiển thị ở dòng “Cached input” của từng model. Không có dòng này = model đó chưa hỗ trợ cache riêng.
Giới hạn theo gói
Mỗi gói có trần request/phút (rpm) và số request song song (concurrent). Request song song mặc định là rpm chia 8. 429 kèm header Retry-After — tool chuẩn sẽ tự chờ rồi thử lại.
Tra lỗi
Gần như luôn là tool ↔ mô hình không khớp. Đối chiếu thông báo bạn nhận được:
This model does not support this endpointTool của bạn nói protocol mà nhóm mô hình không phục vụ và không có converter bắc cầu.
Tra cột của nhóm mô hình ở ma trận trên, đổi tool hoặc đổi model.
protocol_not_supported / 400 từ upstreamNhóm chỉ nhận protocol khác với thứ request đang mang.
Lỗi hiếm khi khách thấy — gateway tự chuyển hướng. Nếu thấy, báo hỗ trợ kèm request id.
400 nói về “official CLI” / client chính thứcNhóm Kimi chỉ phục vụ Messages; request mang giao diện khác chưa có converter.
Dùng Claude Code hoặc tool chat (đi qua converter), hoặc đổi sang họ khác nếu đang dùng Codex CLI.
Invalid reasoning_effort valueGiá trị reasoning_effort mà model đó không nhận.
Gateway tự bỏ trường và thử lại — không cần làm gì. Nếu vẫn lỗi, đổi model.
401 invalid_api_keyKey sai, bị thu hồi, hoặc sai header.
Kiểm tra key ở dashboard → API keys. Dạng đúng: Authorization: Bearer sk-texapi-… (không có ‘Bearer’ cũng bị từ chối).
402 insufficient_balanceSố dư credit đã hết hoặc tài khoản chưa từng nạp.
Nạp thêm ở dashboard → Ví. Với request lớn, số dư credit phải đủ cho cả ước lượng output.
429 rate_limitVượt trần rpm hoặc request song song của gói.
Đợi Retry-After rồi thử lại. Nếu thường xuyên, cân nhắc gói cao hơn.
429 spend_limitVượt trần chi tiêu tháng bạn tự đặt cho key (spend limit).
Nâng hoặc bỏ trần ở dashboard → API keys → chỉnh key.
Hỏi đáp
Tôi có phải dùng tool chính hãng không?
Tất cả họ đang bán đều nhận client chuẩn. Kimi chỉ phục vụ Messages, nên Claude Code và tool chat dùng được, còn Codex CLI thì không. Ma trận phía trên là câu trả lời chính thức.
Một API key dùng cho nhiều máy được không?
Được — key tự quản không gắn máy. Nhưng connector cấp MỘT KEY RIÊNG cho mỗi máy (dễ thu hồi từng máy, thấy rõ key nào của máy nào). Nếu bạn muốn key dùng chung thì tạo thủ công ở dashboard.
Chuyển đổi format có làm mất dữ liệu không?
Cực ít. Converter hai chiều đã được phủ bằng hàng trăm test. Vài tham số hiếm (ví dụ stop_sequences khi chuyển sang Responses) không có chỗ trên protocol đích và bị bỏ — nội dung hội thoại và tool call luôn nguyên vẹn.
Sao request của tôi vẫn đi về nhà cung cấp cũ sau khi cấu hình?
Ba nguyên nhân hay gặp: (1) biến môi trường cũ của tool còn sống ở nơi khác đè config; (2) file config scope nhỏ hơn (repo .claude/settings.json, .aider.conf.yml của repo) đè file bạn vừa sửa; (3) tool chạy từ shell khác chưa nạp lại env. Connector chạy status sẽ chỉ rõ tool đang đọc config nào.
Giá có đổi không?
Giá neo theo chi phí nguồn và được rà mỗi lần sync (vài giờ). Đơn giá luôn hiện ở dashboard → Models và /api/public/pricing — không có giá bán không công bố.
Có giảm giá theo lượng không?
Có: gói subscription kèm chiết khấu dùng lượng theo tháng (discountBps hiển thị theo gói), và mã giảm (coupon) nhập ở trang Redeem. Rè biên tối thiểu luôn bảo đảm không bao giờ bán dưới giá vốn.
Dữ liệu tôi có bị lưu lại không?
Request log lưu metadata (model, số token, chi phí, status, request id) phục vụ billing và tra lỗi — không lưu nội dung hội thoại. Chính sách chi tiết ở trang Pháp lý → Bảo mật.
Tôi cần model chưa có trong danh sách?
Danh sách mở liên tục theo nguồn. Liên hệ hỗ trợ (widget chat góc phải) nêu tên model và use case — nếu nguồn có và biên hợp lệ thì thêm trong sync kế tiếp.