Nội dung
Tài liệu API

Tài liệu MonkeyTech API

MonkeyTech API tương thích Anthropic và OpenAI — đổi URL gốc và API key là dùng được. Cài stali-cli để cấu hình nhanh 13 công cụ AI; phần còn lại của trang là tài liệu API.

Claude Fable 8.300đ; Opus/Sonnet 6.500đ; 8 model GPT 2.400đ / 1.000.000 token; 20 model AWS (`stali/…`); 3 model DeepSeek: Flash/Pro 230đ/260đ mỗi lượt, Flash 1.500đ/1.000.000 token. GPT Image 2: 650đ/ảnh.

Bắt đầu nhanh

Ba bước: tạo tài khoản, nạp tiền, rồi tạo API key trong bảng điều khiển. Sau đó gửi lượt gọi đầu tiên:

curl -N https://api.monkeytech.vn/v1/messages \
  -H "x-api-key: $API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-fable-5",
    "max_tokens": 1024,
    "stream": true,
    "messages": [
      { "role": "user", "content": "Write a quicksort function in Python" }
    ]
  }'

Tạo ảnh với req/gpt-image-2 (650đ/ảnh) qua /v1/images/generations:

curl https://api.monkeytech.vn/v1/images/generations \
  -H "Authorization: Bearer $API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "model": "req/gpt-image-2",
    "prompt": "a tiny red circle on white",
    "size": "1024x1024",
    "n": 1
  }'

TTS với req/gpt-4o-mini-tts (1.350đ/lượt) qua /v1/audio/speech:

curl https://api.monkeytech.vn/v1/audio/speech \
  -H "Authorization: Bearer $API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "model": "req/gpt-4o-mini-tts",
    "input": "Hello, đây là MonkeyTech API TTS.",
    "voice": "alloy"
  }' \
  --output speech.mp3

Chưa muốn viết mã? Mở Studio AI để gọi thử chat trên trình duyệt, hoặc kéo xuống mục Cài stali-cli.

Cài stali-cli

Cài stali-cli một lần — wizard tự cấu hình Claude Code, Codex, OpenClaw, Cline và 9 công cụ AI khác (có backup file).

  1. Tạo API key tại Dashboard → Keys.
  2. Chọn tab hệ điều hành bên dưới → sao chép lệnh cài → dán terminal.
  3. Wizard mở sau khi cài — dán API key, chọn app và model.
  4. Kiểm tra: stali doctor · Cập nhật: stali update.
# Install stali-cli (wizard 13 công cụ AI)
curl -fsSL "https://api.monkeytech.vn/install/stali-cli.sh" | bash

# Chỉ cài, không mở wizard:
# STALI_CLI_NO_RUN=1 curl -fsSL "https://api.monkeytech.vn/install/stali-cli.sh" | bash

# Mở wizard — dán API key khi được hỏi
stali -k 'sk-mtk-...'

Windows: không dùng curl … | bash trên CMD. Chọn tab PowerShell hoặc CMD.

Repo: github.com/ngocvu/stali-cli. Hoặc mở Kết nối ứng dụng trên Dashboard để lấy lệnh đã điền sẵn API key.

Chọn đúng URL gốc

Đây là chỗ sai phổ biến nhất khi cấu hình. MonkeyTech API có hai URL gốc tuỳ theo giao thức mà ứng dụng của bạn nói — dán nhầm sẽ ra lỗi 404 chứ không phải 401.

Ứng dụng thuộc kiểuURL gốc cần dánVì sao
Anthropic — Claude Code, OpenClaw, SDK anthropichttps://api.monkeytech.vnSDK tự nối thêm đường dẫn /v1/messages
OpenAI — Cursor, Open WebUI, Dify, SDK openaihttps://api.monkeytech.vn/v1Thư viện OpenAI yêu cầu URL đã gồm /v1

Không chắc app của mình thuộc kiểu nào? Cứ thử URL không có /v1 trước; nếu app báo 404 thì đổi sang URL có /v1. Model Claude gọi /v1/chat/completions và model GPT gọi /v1/messages được cổng chuyển định dạng (kèm tool calling) giữa Messages ↔ Chat Completions.

Xác thực

Chấp nhận cả hai kiểu tiêu đề xác thực, dùng kiểu nào cũng được:

x-api-key: sk-mtk-...        # Anthropic style
Authorization: Bearer sk-mtk-...     # OpenAI style

Key mới được lưu dưới dạng mã băm để xác thực và mã hóa AES-256-GCM để chính chủ có thể xem hoặc sao chép lại trong bảng điều khiển. Key cũ được tạo trước tính năng này không thể khôi phục. Mỗi tài khoản tối đa 10 key hoạt động cùng lúc.

Nên tạo mỗi máy hoặc mỗi ứng dụng một key riêng: khi lộ key bạn chỉ cần thu hồi đúng key đó, và trang Sử dụng sẽ tách được chi phí theo từng key. Không dán key vào mã nguồn đẩy lên Git — hãy đặt trong biến môi trường hoặc tệp cấu hình nằm ngoài kho mã.

Điểm cuối API

Phương thứcĐường dẫnMô tả
POST/v1/messagesAnthropic Messages API (khuyến nghị)
POST/v1/chat/completionsOpenAI Chat Completions (tương thích)
POST/v1/images/generationsOpenAI Images Generations (req/gpt-image-2)
POST/v1/audio/speechOpenAI Audio Speech / TTS (req/gpt-4o-mini-tts)
POST/v1/responsesOpenAI Responses API (tương thích)
GET/v1/modelsDanh sách model và giá
POST/v1/messages/count_tokensƯớc lượng token (miễn phí)

Bạn không bị ràng buộc model theo điểm cuối chat: gửi Claude tới /v1/chat/completions hoặc GPT tới /v1/messages đều được — cổng chuyển qua lại giữa Messages và Chat Completions (kể cả tools). Riêng model tạo ảnh (req/gpt-image-2) chỉ dùng /v1/images/generations; TTS (req/gpt-4o-mini-tts) chỉ dùng /v1/audio/speech. Endpoint /v1/responses giữ nguyên định dạng OpenAI Responses.

Đọc hình ảnh

Các model có nhãn Vision nhận được ảnh PNG/JPEG/WebP/GIF. Với nhóm Claude qua Anthropic Messages, gửi ảnh base64 trong cùng mảng content với câu hỏi:

curl https://api.monkeytech.vn/v1/messages \
  -H "x-api-key: $API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-fable-5",
    "max_tokens": 512,
    "messages": [{
      "role": "user",
      "content": [
        {
          "type": "image",
          "source": {
            "type": "base64",
            "media_type": "image/png",
            "data": "iVBORw0KGgoAAA..."
          }
        },
        {"type": "text", "text": "Describe this image"}
      ]
    }]
  }'

8 model GPT dùng trực tiếp chuẩn OpenAI image_url tại /v1/chat/completions. Cổng trung chuyển hỗ trợ cả URL dữ liệu base64 và URL ảnh http(s):

{
  "model": "gpt-5.6-sol",
  "messages": [{
    "role": "user",
    "content": [
      {"type": "text", "text": "Read the content of this image"},
      {
        "type": "image_url",
        "image_url": {"url": "data:image/png;base64,iVBORw0KGgoAAA..."}
      }
    ]
  }]
}

Token hình ảnh do nhà cung cấp trả về sẽ được ghi nhận và tính phí như token đầu vào. Nên nén ảnh trước khi gửi và giữ toàn bộ nội dung yêu cầu dưới giới hạn 20 MB.

Phản hồi dạng luồng

Nên đặt "stream": true (mặc định trong ví dụ SDK). Không stream thì client phải chờ hết JSON — câu dài có thể 40s+. Chuỗi sự kiện được chuyển tiếp nguyên trạng theo điểm cuối đang gọi. Với Anthropic: message_start → content_block_delta (nhiều lần) → message_delta → message_stop. Với OpenAI, dữ liệu giữ định dạng chat.completion.chunk hoặc Responses API. Chi phí được chốt khi luồng phản hồi kết thúc.

event: content_block_delta
data: {"delta":{"text":"Hello","type":"text_delta"},"index":0,"type":"content_block_delta"}

event: message_delta
data: {"delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":128}}

Tiêu đề phản hồi

Tiêu đề HTTPÝ nghĩa
x-stali-modelModel thực tế đã xử lý
x-stali-model-mapped-fromTên model bạn gửi, nếu đã được ánh xạ
x-stali-input-tokensToken đầu vào đã tính phí
x-stali-output-tokensToken đầu ra đã tính phí
x-stali-cost-vndChi phí của lượt gọi (VNĐ)
x-stali-price-vnd-per-mtokĐơn giá token đang áp dụng
x-stali-price-vnd-per-requestĐơn giá cố định mỗi lượt gọi (nếu có)

Với lượt gọi dạng luồng, các tiêu đề token/chi phí không có sẵn (chi phí chỉ biết khi luồng kết thúc) — hãy tra trong trang Sử dụng.

Tính phí

Mọi lượt gọi trừ vào số dư ví theo token thực dùng: Claude Fable 8.300đ; Opus/Sonnet 6.500đ; GPT 2.400đ / 1.000.000 token, DeepSeek tính cố định mỗi lượt gọi (hoặc theo token với Flash). Lỗi xác thực, dữ liệu không hợp lệ hoặc lỗi 4xx/5xx từ nhà cung cấp không bị trừ tiền.

Nạp ví qua VietQR. Mã đơn nạp bắt đầu bằng ST — hãy gửi đúng mã này khi cần đối chiếu giao dịch với bộ phận hỗ trợ.

Mã lỗi

HTTPLoại lỗiNguyên nhân
400invalid_request_errorJSON sai hoặc thiếu tham số
401authentication_errorThiếu key, key sai hoặc đã thu hồi
402insufficient_balanceHết số dư ví — cần nạp thêm
413request_too_largeNội dung yêu cầu vượt 20 MB
429rate_limit_errorQuá 5000 lượt gọi/phút trên một key (toàn cluster)
502api_errorKhông kết nối được model từ nhà cung cấp thượng nguồn
503service_unavailableHệ thống đang bảo trì
{
  "type": "error",
  "error": {
    "type": "insufficient_balance",
    "message": "Balance exhausted. Top up at https://api.monkeytech.vn/dashboard/topup"
  }
}

Khắc phục sự cố

Trước khi báo lỗi, hãy chạy lệnh kiểm tra kết nối này — nó cho biết ngay vấn đề nằm ở key, ở số dư hay ở URL:

curl https://api.monkeytech.vn/v1/messages -i \
  -H "x-api-key: sk-mtk-..." \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-fable-5","max_tokens":32,
       "messages":[{"role":"user","content":"ping"}]}' | head -20

# 200 with x-stali-cost-vnd header  -> ready
# 401 -> wrong key   402 -> out of balance   404 -> wrong base URL
Triệu chứngNguyên nhân thường gặpCách xử lý
404 hoặc “Not Found”Dán sai URL gốc — thừa hoặc thiếu đuôi /v1.Công cụ kiểu Anthropic dùng https://api.monkeytech.vn; công cụ kiểu OpenAI dùng https://api.monkeytech.vn/v1.
401 authentication_errorKey sai, đã thu hồi, hoặc app vẫn dùng key cũ đã lưu.Tạo key mới trong bảng điều khiển, xoá key cũ trong app rồi khởi động lại app.
402 insufficient_balanceHết số dư ví.Nạp thêm tại trang Nạp tiền.
429 rate_limit_errorVượt 5000 lượt gọi mỗi phút trên cùng một key.Giảm số luồng chạy song song, hoặc tách thành nhiều key cho từng máy.
Claude Code cứ đòi đăng nhậpMáy còn phiên đăng nhập tài khoản Anthropic cũ.Chạy /logout trong Claude Code, đặt ANTHROPIC_AUTH_TOKEN rồi mở lại terminal.
App báo model không tồn tạiTên model gõ sai hoặc app tự thêm tiền tố nhà cung cấp.Gọi GET /v1/models để lấy đúng tên, và bỏ các tiền tố kiểu anthropic/ nếu app không yêu cầu.
Gửi ảnh thì lỗiApp gửi ảnh theo định dạng model đó không nhận, hoặc ảnh quá lớn.Chỉ dùng model có nhãn Vision, nén ảnh và giữ toàn bộ yêu cầu dưới 20 MB.
Biến môi trường không có tác dụngTerminal cũ vẫn giữ giá trị cũ, hoặc app đọc cấu hình trong tệp riêng.Mở terminal mới (Windows: đăng xuất/đăng nhập lại), và kiểm tra xem app có tệp cấu hình ghi đè biến môi trường không.

Giới hạn

  • 5000 lượt gọi/phút/API key trên toàn hệ thống (cần cao hơn thì liên hệ).
  • Nội dung yêu cầu tối đa 20 MB.
  • Claude: ngữ cảnh tối đa 1.000.000 token, đầu ra tối đa 128.000 token; GPT/DeepSeek/AWS theo giới hạn từng model (xem /v1/models).
  • Tối đa 10 API key hoạt động mỗi tài khoản.
  • Thời gian chờ mỗi lượt gọi: 15 phút.

Còn thắc mắc? Thử ngay trong Studio AI.

Mở Studio AI
Zalo support