TexAPI
Tài liệu kỹ thuật

Tài liệu TexAPI

Mọi thứ bạn cần để dùng TexAPI: chọn tool đúng model, tích hợp trong một lệnh hoặc thủ công, gọi API trực tiếp, và tra lỗi khi có sự cố.

Trong trang này
01

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.

01

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.

02

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.

03

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.

02

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.

Gọi trực tiếp

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.

Qua bộ chuyển đổi

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ì.

Qua chuyển đổi + định hình CLI

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 gọi được

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.

Kimi

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.

DeepSeekGLMMiniMaxQwen

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ụKimiMở

Claude Code

/v1/messages

Gọi trực tiếpQua bộ chuyển đổi

Codex CLI

/v1/responses

Không gọi đượcQua bộ chuyển đổi

Gemini CLI

:generateContent

Không gọi đượcQua bộ chuyển đổi

Cline

/v1/chat/completions

Qua chuyển đổi + định hình CLIGọi trực tiếp

Roo Code

/v1/chat/completions

Qua chuyển đổi + định hình CLIGọi trực tiếp

Continue

/v1/chat/completions

Qua chuyển đổi + định hình CLIGọi trực tiếp

aider

/v1/chat/completions

Qua chuyển đổi + định hình CLIGọi trực tiếp

Zed

/v1/chat/completions

Qua chuyển đổi + định hình CLIGọ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ì”.

Claude Code
KimiMở
Codex CLI
KimiMở
Gemini CLI
KimiMở
Cline
KimiMở
Roo Code
KimiMở
Continue
KimiMở
aider
KimiMở
Zed
KimiMở

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/messages

Nhó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.

03

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

  1. 1
    Chạ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).
  2. 2
    Sau 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.
  3. 3
    Và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.
  4. 4
    Chạ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

connector
npx @texapi/connect

Kết nối máy này vào TexAPI — chưa ghi config tool nào

npx @texapi/connect apply

Ghi config cho đúng các tool đã bật ở dashboard

npx @texapi/connect status

Xem máy đang kết nối gì, tool nào đã áp dụng

npx @texapi/connect disconnect

Thu 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-run

Xem connector sẽ ghi gì mà không ghi thật

--only claude-code,codex-cli

Chỉ cấu hình những tool này

--no-browser

In URL phê duyệt ra terminal thay vì mở browser (SSH/server)

--json

Xuấ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.

Luồng phê duyệt connector — Đang cập nhật
04

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 CodeCodex CLI / Codex desktopGemini CLIaiderCline / Roo Code (VS Code)ContinueZed

Claude Code

Dùng cho mọi họ đang bán; Kimi cần Messages gốc.

  1. 1
    Mở hoặc tạo file settings.json (hỗ trợ comment — JSONC).
  2. 2
    Thêm hoặc sửa env.ANTHROPIC_BASE_URL trỏ về TexAPI và env.ANTHROPIC_AUTH_TOKEN là API key của bạn.
  3. 3
    Nế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.
  4. 4
    Khởi động lại Claude Code. Gọi một model bất kỳ để kiểm tra.
~/.claude/settings.json
{
  "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.

  1. 1
    Mở hoặc tạo config.toml. Đặt model_provider = "texapi" ở đầu file (ngoài mọi khối [table]).
  2. 2
    Thêm khối [model_providers.texapi] như snippet — base_url kết thúc bằng /v1.
  3. 3
    Ghi key vào auth.json: OPENAI_API_KEY là API key TexAPI và auth_mode là "apikey".
  4. 4
    Khở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.
~/.codex/config.toml
model_provider = "texapi"

[model_providers.texapi]
name = "TexAPI"
base_url = "https://texapi.dev/v1"
wire_api = "responses"
requires_openai_auth = true
~/.codex/auth.json
{
  "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.

  1. 1
    Mở hoặc tạo ~/.gemini/.env (CLI tự nạp file này, không cần export).
  2. 2
    Đặt GOOGLE_GEMINI_BASE_URL là origin trần KHÔNG có /v1beta — SDK tự nối /v1beta/models/… vào sau.
  3. 3
    Đặt GEMINI_API_KEY là API key TexAPI.
  4. 4
    Nế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.
~/.gemini/.env
GOOGLE_GEMINI_BASE_URL=https://texapi.dev
GEMINI_API_KEY=sk-texapi-...
~/.gemini/settings.json
{
  "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.

  1. 1
    Mở hoặc tạo ~/.aider.conf.yml.
  2. 2
    Đặt openai-api-base trỏ về https://texapi.dev/v1 và openai-api-key là API key của bạn.
  3. 3
    Model 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.
~/.aider.conf.yml
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.

  1. 1
    Mở VS Code Settings (Ctrl+,), tìm “Cline: OpenAI Compatible Settings” (Roo Code tương tự).
  2. 2
    Base URL: https://texapi.dev/v1 — API Key: sk-texapi-… của bạn.
  3. 3
    Model 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.

  1. 1
    Mở ~/.continue/config.yaml.
  2. 2
    Trong 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.
  3. 3
    Chọ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.

  1. 1
    Mở settings.json của Zed (Zed: Open Settings).
  2. 2
    Thêm khối language_models.openai: api_url = "https://texapi.dev/v1".
  3. 3
    API 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.
Vị trí config trên dashboard — Đang cập nhật
05

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

POSTOpenAI Chat Completions/v1/chat/completions

Tương thích SDK openai. Dùng cho mọi tool chat và phần lớn model.

POSTAnthropic Messages/v1/messages

Tương thích SDK Anthropic và Claude Code. Đây là endpoint duy nhất của Kimi.

POSTOpenAI Responses/v1/responses

Tương thích Codex CLI. Dùng cho các họ đang bán qua giao diện Responses.

POSTGoogle generateContent/v1beta/models/{model}:generateContent

Tươ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

chChat (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!"}]
  }'
meMessages (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!"}]
  }'
reResponses (OpenAI)
curl https://texapi.dev/v1/responses \
  -H "Authorization: Bearer sk-texapi-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-pro",
    "input": "Hello!"
  }'
geGemini
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.

Ví dụ response — Đang cập nhật
06

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óiGiá thángGiá VNDGồm dùngRPMTPMKhoá
Dev$9249.000 ₫1.000 credit3001.000.0005
Studio$29799.000 ₫3.200 credit8004.000.00020
Scale$992.699.000 ₫11.000 credit200012.000.000100

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.

Bảng giá dashboard — Đang cập nhật
07

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 endpoint

Tool 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ừ upstream

Nhó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ức

Nhó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 value

Giá 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_key

Key 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_balance

Số 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_limit

Vượ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_limit

Vượ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.

08

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.

Vẫn bị kẹt? Mở widget chat hỗ trợ góc phải màn hình — hỗ trợ kỹ thuật trả lời trong giờ làm việc.

Tài liệu pháp lý