Tài liệu API

Giới thiệu

Zubnet API cung cấp cho bạn quyền truy cập theo chương trình vào 408 Các mô hình AI để tạo văn bản, hình ảnh, video, âm nhạc, giọng nói và mã. Hoàn toàn tương thích với đặc tả OpenAI API — nếu bạn đang sử dụng OpenAI, bạn có thể chuyển sang Zubnet bằng cách thay đổi khóa URL và API cơ bản của mình.

Đế URL

https://api.zubnet.com/v1

Bắt đầu nhanh

# Using curl
curl https://api.zubnet.com/v1/chat/completions \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'
# Using Python with OpenAI SDK
from openai import OpenAI

client = OpenAI(
    api_key="your-zubnet-api-key",
    base_url="https://api.zubnet.com/v1"
)

response = client.chat.completions.create(
    model="claude-sonnet-5",
    messages=[{"role": "user", "content": "Hello!"}]
)

print(response.choices[0].message.content)

Xác thực

Mọi yêu cầu API đều phải xác thực bằng Bearer token trong header Authorization.

Authorization: Bearer YOUR_API_KEY

Bạn có thể tạo khóa API từ cài đặt tài khoản. Hãy bảo mật khóa của bạn — họ cấp quyền truy cập đầy đủ vào tài khoản của bạn.

Sử dụng Khóa nhà cung cấp của riêng bạn (BYOK)

Bạn có thể sử dụng khóa API của riêng mình từ các nhà cung cấp được hỗ trợ. Thêm chúng vào cài đặt không gian làm việc của bạn và chúng sẽ được sử dụng tự động cho các yêu cầu gửi tới các nhà cung cấp đó — ở mức đánh dấu bằng không. BYOK có sẵn trên các gói hỗ trợ nó.

Khi khóa BYOK được định cấu hình cho nhà cung cấp, khóa này sẽ được ưu tiên hơn khóa nền tảng. Không cần thay đổi đối với các yêu cầu API của bạn — độ phân giải chính hoàn toàn trong suốt.

Nhà cung cấp BYOK được hỗ trợ

Anthropic Google Gemini DeepSeek Mistral Cohere AI21 Nvidia Alibaba Moonshot MiniMax Sambanova Zhipu ElevenLabs Speechify Hume Cartesia Resemble StabilityAI Black Forest Labs Ideogram HiDream PixVerse Vidu Kling Suno ByteDance

Mô hình

GET /v1/models

Liệt kê tất cả các mô hình có sẵn.

curl https://api.zubnet.com/v1/models \
  -H "Authorization: Bearer $ZUBNET_API_KEY"
phản hồi
{
  "object": "list",
  "data": [
    {
      "id": "claude-sonnet-5",
      "object": "model",
      "created": 1699900000,
      "owned_by": "anthropic"
    },
    {
      "id": "deepseek-chat",
      "object": "model",
      "created": 1699900000,
      "owned_by": "deepseek"
    },
    ...
  ]
}

Chat Completions

POST /v1/chat/completions

Tạo một phản hồi trò chuyện. Đây là điểm cuối chính để tạo văn bản, tương thích với định dạng Chat Completions của OpenAI.

Nội dung yêu cầu

tham số loại Mô tả
modelbắt buộc string ID mô hình cần dùng (ví dụ: "claude-sonnet-5", "deepseek-chat", "gemini-2.5-pro")
messagesbắt buộc array Mảng đối tượng tin nhắn với rolecontent
temperaturetùy chọn con số Nhiệt độ lấy mẫu (0-2). Mặc định: 0,7
max_tokenstùy chọn integer Số token tối đa cần tạo (1–128.000). Mặc định: 4.096
streamtùy chọn boolean Truyền phát phản hồi qua SSE. Mặc định: true
top_ptùy chọn con số Tham số lấy mẫu hạt nhân (0-1). Mặc định: 1
frequency_penaltytùy chọn con số Phạt tần suất (-2 đến 2). Mặc định: 0
presence_penaltytùy chọn con số Hình phạt hiện diện (-2 đến 2). Mặc định: 0
stoptùy chọn string/array Dừng trình tự

Yêu cầu mẫu

curl https://api.zubnet.com/v1/chat/completions \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "What is the capital of France?"}
    ],
    "temperature": 0.7,
    "max_tokens": 150
  }'
phản hồi
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1699900000,
  "model": "claude-sonnet-5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "The capital of France is Paris."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 8,
    "total_tokens": 33
  }
}

Truyền phát

Khi nào stream là true, phản hồi được gửi dưới dạng Server-Sent Events (SSE). Mỗi sự kiện có một loại được đặt tên và tải trọng JSON:

Sự kiện Mô tả
token Một văn bản token/delta từ mô hình
reasoning-token Token suy luận mở rộng (dành cho các mô hình hỗ trợ suy luận)
call Công cụ ACuộc gọi /function với tên và thông số
message Đối tượng tin nhắn hoàn chỉnh cuối cùng (được gửi khi luồng kết thúc)
error Thông báo lỗi nếu truyền trực tiếp thất bại
// SSE event format
event: token
data: {"data": "Hello", "attributes": {}}

event: token
data: {"data": " world", "attributes": {}}

event: message
data: {"id": "msg-uuid", "content": "Hello world", ...}

Tạo mã

POST /api/ai/completions/code

Tạo mã từ lời nhắc bằng ngôn ngữ tự nhiên. Trả về phản hồi truyền trực tiếp qua Server-Sent Events (SSE).

Nội dung yêu cầu

tham số loại Mô tả
promptbắt buộc string Mô tả ngôn ngữ tự nhiên của mã để tạo
languagebắt buộc string Ngôn ngữ lập trình (ví dụ: "python", "javascript", "rust")
temperaturetùy chọn con số Nhiệt độ lấy mẫu (0-2)
max_tokenstùy chọn integer Số token tối đa cần tạo (1–128.000)

Yêu cầu mẫu

curl https://zubnet.com/api/ai/completions/code \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A function that checks if a number is prime",
    "language": "python"
  }'
Điểm cuối này truyền trực tiếp qua SSE. Bạn sẽ nhận được chunk các sự kiện có nội dung gia tăng, theo sau là sự kiện cuối cùng document sự kiện với mã được tạo hoàn chỉnh.
Đối tượng phản hồi cuối cùng
{
  "object": "code_document",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "model": "claude-sonnet-5",
  "cost": 1,
  "title": "Prime Number Checker",
  "content": "def is_prime(n): ..."
}

Tạo hình ảnh

POST /v1/images/generations

Tạo hình ảnh từ lời nhắc văn bản bằng FLUX, Stable Diffusion, Ideogram và nhiều mô hình khác.

Các mô hình hiện có

seedream-5.0-pro flux-pro-1.1-ultra gemini-2.5-flash-image grok-imagine-image qwen-image-2.0 ideogram-3.0 glm-image recraftv4

Nội dung yêu cầu

tham số loại Mô tả
modelbắt buộc string Mô hình hình ảnh sử dụng
promptbắt buộc string Mô tả văn bản của hình ảnh để tạo
ntùy chọn integer Số lượng hình ảnh để tạo ra. Mặc định: 1
sizetùy chọn string Kích thước hình ảnh (ví dụ: "1024x1024", "1792x1024")
response_formattùy chọn string "url" hoặc "b64_json". Mặc định: "url"

Yêu cầu mẫu

curl https://api.zubnet.com/v1/images/generations \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "flux-pro-1.1-ultra",
    "prompt": "A serene mountain lake at sunset, photorealistic",
    "n": 1,
    "size": "1024x1024"
  }'
phản hồi
{
  "created": 1699900000,
  "data": [
    {
      "url": "https://zubnet.com/files/abc123.png",
      "revised_prompt": "A serene mountain lake..."
    }
  ]
}

Tạo video

POST /api/ai/videos

Tạo video từ lời nhắc văn bản hoặc hình ảnh. Hỗ trợ quy trình văn bản thành video, hình ảnh thành video và video thành video.

Các mô hình hiện có

sora-2 seedance-2.0 kling-v3-pro veo-3.1-generate-001 grok-imagine-video-1.5 minimax/hailuo-2.3 pixverse-v6 vidu-q3-pro

Nội dung yêu cầu

tham số loại Mô tả
modelbắt buộc string Mô hình video cần dùng
promptbắt buộc* string Mô tả video bằng văn bản. *Không bắt buộc với mô hình đồng bộ khẩu hình hoặc nâng cấp độ phân giải
framestùy chọn file[] Nhập hình ảnh cho hình ảnh thành video. Tối đa 10 MB mỗi cái (jpg, png, webp)
videotùy chọn file Đầu vào video cho video-to-video. Tối đa 100 MB (mp4, webm, Mov)
audiotùy chọn file Tệp âm thanh dành cho mô hình đồng bộ khẩu hình. Tối đa 25 MB
aspect_ratiotùy chọn string Tỷ lệ khung hình (ví dụ: "16:9", "9:16", "1:1")
durationtùy chọn integer Thời lượng video tính bằng giây
negative_prompttùy chọn string Nội dung cần tránh trong video (tùy mô hình)
resolutiontùy chọn string Độ phân giải đầu ra, ví dụ "480p", "720p", "1080p", "4k" (tùy mô hình)
qualitytùy chọn string Cấp Quality/speed được hỗ trợ (ví dụ: "speed" hoặc "quality")
audiotùy chọn string "on"/"off" — âm thanh đồng bộ nguyên bản trên các mô hình hỗ trợ tính năng này (Seedance 2.0, Kling, PixVerse, CogVideoX…)
seedtùy chọn integer Hạt giống tái sản xuất nếu được hỗ trợ
styletùy chọn string Kiểu dựng sẵn trên các mô hình được hỗ trợ (ví dụ Vidu: "general"/"anime")
Các mô hình cũng chấp nhận các tùy chọn cụ thể của riêng chúng (khung hình / giây, multi_clip, chế độ, vòng lặp, motion_mode, tỷ lệ khung hình…) - chính xác là các bộ chọn được hiển thị cho mô hình đó trong ứng dụng. Các tham số không xác định sẽ bị bỏ qua.

Ví dụ: Chuyển văn bản thành video

curl https://zubnet.com/api/ai/videos \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1-generate-001",
    "prompt": "A drone shot flying over a coral reef at golden hour",
    "aspect_ratio": "16:9",
    "duration": 8
  }'

Ví dụ: Chuyển hình ảnh thành video

curl https://zubnet.com/api/ai/videos \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -F "model=kling-v2-5-turbo" \
  -F "prompt=Camera slowly zooms in" \
  -F "frames=@my-image.png"
Quá trình tạo video diễn ra bất đồng bộ. Phản hồi bao gồm một state trường (“chế biến”, “hoàn thành”, “thất bại”) và một progress phần trăm. Thăm dò điểm cuối thư viện để kiểm tra trạng thái hoàn tất.
phản hồi
{
  "object": "video",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "model": "veo-3.1-generate-001",
  "state": "processing",
  "progress": 0,
  "cost": 5,
  "output_file": null,
  "created_at": "2026-02-25T12:00:00Z"
}

Hiểu nội dung video

Phân tích nội dung video bằng AI. Gửi video URL để phân tích và thăm dò kết quả. Hỗ trợ nhiều loại phân tích.

POST /api/ai/video-understanding

Gửi video để phân tích AI. Trả về ID công việc mà bạn có thể thăm dò kết quả.

Nội dung yêu cầu

tham số loại Mô tả
video_urlbắt buộc string Công khai HTTPS URL của video để phân tích
typetùy chọn string Loại phân tích: summary (mặc định), topics, chaptershoặc highlights

Yêu cầu mẫu

curl https://zubnet.com/api/ai/video-understanding \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "https://example.com/video.mp4",
    "type": "summary"
  }'
phản hồi
{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "queued"
}
GET /api/ai/video-understanding/{jobId}

Kiểm tra trạng thái của công việc phân tích video.

Phản hồi (đã hoàn thành)
{
  "status": "completed",
  "result": {
    "type": "summary",
    "content": "The video shows a product demonstration..."
  }
}
URL Video phải là các liên kết HTTPS có thể truy cập công khai. URL Private/internal bị từ chối vì lý do bảo mật. Kết quả được lưu trữ trong 1 giờ.

Sáng tác âm nhạc

POST /api/ai/compositions

Tạo nhạc gốc từ mô tả văn bản, lời bài hát hoặc thẻ phong cách.

Các mô hình hiện có

suno/v5 lyria-3-clip-preview minimax/music-2.0 stable-audio-2

Nội dung yêu cầu

tham số loại Mô tả
modelbắt buộc string Mô hình âm nhạc cần dùng
prompttùy chọn string Mô tả nhạc hoặc lời bài hát cần đặt
tagstùy chọn string Thẻ thể loại và phong cách (ví dụ: "lo-fi, chill, jazz")
instrumentaltùy chọn boolean Chỉ tạo nhạc cụ (không có giọng hát). Mặc định: false

Yêu cầu mẫu

curl https://zubnet.com/api/ai/compositions \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "suno/v5",
    "prompt": "An upbeat synthwave track about coding at 3am",
    "tags": "synthwave, electronic, upbeat",
    "instrumental": true
  }'
Các mô hình Suno thường trả về hai biến thể sáng tác cho mỗi yêu cầu. Lyria trả về một đoạn 30 giây ở 48 kHz.
phản hồi
[
  {
    "object": "composition",
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "model": "suno/v5",
    "title": "Midnight Code",
    "tags": "synthwave, electronic, upbeat",
    "cost": 2,
    "output_file": {
      "url": "https://zubnet.com/files/abc123.mp3"
    }
  },
  {
    "object": "composition",
    "id": "550e8400-e29b-41d4-a716-446655440001",
    // ... second variant
  }
]

Hiệu ứng âm thanh

POST /api/ai/sound-effects

Tạo hiệu ứng âm thanh từ mô tả văn bản.

Nội dung yêu cầu

tham số loại Mô tả
modelbắt buộc string Mô hình hiệu ứng âm thanh để sử dụng
promptbắt buộc string Mô tả hiệu ứng âm thanh để tạo ra

Yêu cầu mẫu

curl https://zubnet.com/api/ai/sound-effects \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sound-effect-model",
    "prompt": "Thunder rumbling in the distance followed by heavy rain"
  }'
phản hồi
{
  "object": "sound_effect",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "model": "sound-effect-model",
  "cost": 1,
  "output_file": {
    "url": "https://zubnet.com/files/abc123.mp3"
  }
}

Chuyển văn bản thành giọng nói

POST /v1/audio/speech

Chuyển đổi văn bản thành âm thanh lời nói có âm thanh tự nhiên bằng giọng nói từ ElevenLabs, Cartesia, Speechify, v.v.

tham số loại Mô tả
modelbắt buộc string Mô hình TTS (ví dụ: "tts-1", "tts-1-hd", "elevenlabs")
inputbắt buộc string Văn bản để chuyển đổi thành giọng nói (tối đa 5000 ký tự)
voicebắt buộc string ID giọng nói để sử dụng (ví dụ: "alloy", "echo", "nova" hoặc ID giọng nói tùy chỉnh)
response_formattùy chọn string Định dạng âm thanh: mp3, opus, aac, flac. Mặc định: mp3

Yêu cầu mẫu

curl https://api.zubnet.com/v1/audio/speech \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1-hd",
    "input": "Welcome to Zubnet, the future of AI.",
    "voice": "nova"
  }' --output speech.mp3

Phiên âm

POST /v1/audio/transcriptions

Chuyển âm thanh thành văn bản.

tham số loại Mô tả
modelbắt buộc string Mô hình phiên âm (ví dụ: "whisper-1")
filebắt buộc file Tệp âm thanh cần phiên âm. Tối đa 25 MB (mp3, mp4, wav, webm, ogg, flac)
languagetùy chọn string Mã ngôn ngữ (ví dụ: "en", "fr", "es")

Yêu cầu mẫu

curl https://api.zubnet.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -F "model=whisper-1" \
  -F "file=@recording.mp3"
phản hồi
{
  "object": "transcription",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "model": "whisper-1",
  "content": "Hello, this is a test recording..."
}

Tách giọng

POST /api/ai/isolated-voices

Trích xuất giọng hát rõ ràng từ âm thanh, loại bỏ tiếng ồn xung quanh và âm nhạc. Được cung cấp bởi ElevenLabs.

tham số loại Mô tả
filebắt buộc file Tệp âm thanh. Tối đa 25 MB (mp3, mp4, wav, m4a, webm, ogg, flac)

Yêu cầu mẫu

curl https://zubnet.com/api/ai/isolated-voices \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -F "file=@noisy-recording.mp3"
phản hồi
{
  "object": "isolated_voice",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "cost": 1,
  "input_file": {
    "url": "https://zubnet.com/files/input.mp3"
  },
  "output_file": {
    "url": "https://zubnet.com/files/isolated.mp3"
  }
}

Tách stem

POST /api/ai/stem-separations

Tách âm thanh thành các thân riêng lẻ (giọng hát, trống, bass, guitar, piano, loại khác). Được cung cấp bởi ElevenLabs.

tham số loại Mô tả
filebắt buộc file Tệp âm thanh. Tối đa 25 MB (mp3, mp4, wav, m4a, webm, ogg, flac)
stem_variationtùy chọn string Chế độ tách. Mặc định: "six_stems_v1" (vocal, trống, bass, guitar, piano, khác)

Yêu cầu mẫu

curl https://zubnet.com/api/ai/stem-separations \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -F "file=@song.mp3"
phản hồi
{
  "object": "stem_separation",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "cost": 1,
  "input_file": {
    "url": "https://zubnet.com/files/song.mp3"
  },
  "output_file": {
    "url": "https://zubnet.com/files/stems.zip"
  }
}

Giọng nói

Tạo và quản lý giọng nói tùy chỉnh để tạo văn bản thành giọng nói.

POST /api/voices

Tạo giọng nói tùy chỉnh bằng cách tải lên các mẫu âm thanh.

GET /api/voices

Liệt kê tất cả các giọng nói có sẵn trong không gian làm việc của bạn, bao gồm cả các giọng nói tùy chỉnh mà bạn đã tạo.

PUT /api/voices/{id}

Cập nhật giọng nói tùy chỉnh (tên, cài đặt).

DELETE /api/voices/{id}

Xóa một giọng nói tùy chỉnh.

ID giọng nói tùy chỉnh có thể được sử dụng trong voice tham số của điểm cuối chuyển văn bản thành giọng nói.

Nhúng

POST /v1/embeddings

Tạo các phần nhúng văn bản để tìm kiếm ngữ nghĩa và tương tự.

tham số loại Mô tả
modelbắt buộc string Mô hình embedding (ví dụ: "text-embedding-3-small")
inputbắt buộc string/array Văn bản cần nhúng (string hoặc array của chuỗi)

Yêu cầu mẫu

curl https://api.zubnet.com/v1/embeddings \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-embedding-3-small",
    "input": "The quick brown fox jumps over the lazy dog"
  }'

Cơ sở kiến thức

Tạo và quản lý cơ sở kiến thức cho phương pháp tạo sinh tăng cường truy xuất (RAG). Tải lên tài liệu (PDF, DOCX, TXT, Markdown), thêm URL web hoặc văn bản thô, rồi truy vấn chúng trong Chat Completions.

POST /api/knowledge-bases

Tạo nền tảng kiến thức mới.

Nội dung yêu cầu

tham số loại Mô tả
namebắt buộc string Tên cơ sở kiến thức
descriptiontùy chọn string Mô tả cơ sở tri thức

Ví dụ: Tạo cơ sở kiến thức

curl https://zubnet.com/api/knowledge-bases \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My KB",
    "description": "Optional description"
  }'
phản hồi
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "My KB",
  "description": "Optional description",
  "status": "active"
}
GET /api/knowledge-bases

Liệt kê tất cả các cơ sở kiến thức trong không gian làm việc của bạn.

phản hồi
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "My KB",
    "description": "Optional description",
    "status": "active"
  },
  ...
]
GET /api/knowledge-bases/{id}

Nhận thông tin chi tiết về một cơ sở kiến thức cụ thể, bao gồm cả tài liệu của nó.

DELETE /api/knowledge-bases/{id}

Xóa cơ sở kiến thức và tất cả tài liệu của nó.

POST /api/knowledge-bases/{id}/documents

Nạp tài liệu vào cơ sở kiến thức. Hỗ trợ tải tệp lên, URL và văn bản thô.

Nội dung yêu cầu

tham số loại Mô tả
filelựa chọn 1 file Tệp tải lên dạng multipart (PDF, DOCX, TXT, MD — tối đa 10MB)
titlebắt buộc string Tiêu đề tài liệu (bắt buộc đối với URL và các loại văn bản)
typetùy chọn 2/3 string "url" hoặc "text" (khi không nạp bằng tệp)
urllựa chọn 2 string URL để tìm nạp và nhập (khi loại là "url")
contentlựa chọn 3 string Nội dung văn bản thô cần nhập (khi loại là "text")

Ví dụ: Nhập một tệp

curl https://zubnet.com/api/knowledge-bases/550e8400-.../documents \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -F "file=@report.pdf"

Ví dụ: Nhập URL

curl https://zubnet.com/api/knowledge-bases/550e8400-.../documents \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Zubnet Docs",
    "type": "url",
    "url": "https://zubnet.com/developers.html"
  }'

Ví dụ: Nhập văn bản thô

curl https://zubnet.com/api/knowledge-bases/550e8400-.../documents \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Company Policy",
    "type": "text",
    "content": "All employees must complete security training annually..."
  }'
GET /api/knowledge-bases/{id}/documents

Liệt kê tất cả các tài liệu trong cơ sở tri thức.

DELETE /api/knowledge-bases/{id}/documents/{docId}

Xóa một tài liệu cụ thể khỏi cơ sở kiến thức.

GET /api/knowledge-bases/{id}/documents/{docId}/content

Đọc nội dung văn bản được trích xuất của một tài liệu cụ thể.

Sắp xếp lại

POST /v1/reranking

Xếp hạng lại danh sách tài liệu theo độ liên quan với truy vấn. Hữu ích để cải thiện kết quả tìm kiếm, quy trình RAG và hệ thống đề xuất.

Các mô hình hiện có

rerank-2.5 rerank-2.5-lite jina-reranker-v3 jina-reranker-m0

Nội dung yêu cầu

tham số loại Mô tả
modelbắt buộc string Sắp xếp lại mô hình để sử dụng
querybắt buộc string Truy vấn tìm kiếm dùng để xếp hạng tài liệu
documentsbắt buộc array Mảng chuỗi tài liệu cần sắp xếp lại
top_ntùy chọn integer Số lượng kết quả hàng đầu được trả về. Mặc định: tất cả

Yêu cầu mẫu

curl https://api.zubnet.com/v1/reranking \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "rerank-v4.0-pro",
    "query": "How do I reset my password?",
    "documents": [
      "To reset your password, go to Settings > Security > Change Password.",
      "Our pricing plans start at $9/month for individuals.",
      "Password requirements: minimum 8 characters, one uppercase letter.",
      "Contact support at help@example.com for account issues."
    ],
    "top_n": 3
  }'
phản hồi
{
  "object": "list",
  "results": [
    {
      "index": 0,
      "relevance_score": 0.953
    },
    {
      "index": 2,
      "relevance_score": 0.714
    },
    {
      "index": 3,
      "relevance_score": 0.389
    }
  ],
  "model": "rerank-v4.0-pro"
}
Kết quả được sắp xếp theo điểm phù hợp theo thứ tự giảm dần. các index trường đề cập đến vị trí của từng tài liệu trong đầu vào ban đầu array.

Thư viện

Thư viện là nơi chứa tất cả nội dung được tạo — hình ảnh, video, tác phẩm, tài liệu mã, bản ghi âm, v.v. Sử dụng nó để liệt kê các mục, kiểm tra trạng thái tạo không đồng bộ, cập nhật siêu dữ liệu và quản lý nội dung của bạn.

GET /api/library/{type}

Liệt kê các mục trong thư viện của bạn theo loại nội dung.

Các loại nội dung

images videos compositions sound-effects documents code-documents speeches transcriptions isolated-voices stem-separations conversations

Tham số truy vấn

tham số loại Mô tả
limittùy chọn integer Kết quả trên mỗi trang (tối đa 100)
starting_aftertùy chọn string Con trỏ để phân trang chuyển tiếp (mục UUID)
ending_beforetùy chọn string Con trỏ để phân trang lùi (mục UUID)
sorttùy chọn string Sắp xếp trường và hướng (ví dụ: "created_at:desc")
querytùy chọn string Tìm kiếm toàn văn (tối đa 255 ký tự)
modeltùy chọn string Lọc theo mô hình được sử dụng để tạo
phản hồi
{
  "object": "list",
  "data": [
    {
      "id": "550e8400-...",
      "object": "video",
      "model": "veo-3.1-generate-001",
      "title": "Coral reef drone shot",
      "state": 3,
      "progress": 100,
      "cost": 5,
      "output_file": {
        "url": "https://zubnet.com/files/abc123.mp4",
        "size": 8421376,
        "extension": "mp4"
      },
      "created_at": "2026-03-01T12:00:00Z"
    },
    ...
  ]
}
GET /api/library/{type}/{id}

Lấy một mục thư viện theo ID. Đây là điểm cuối chính dành cho trạng thái tạo phiếu bầu không đồng bộ.

Trạng thái tạo nội dung

tiểu bang Giá trị Mô tả
draft 0 Chưa gửi
queued 1 Đang chờ xử lý
processing 2 Hiện đang tạo
completed 3 Xong — output_file có sẵn
failed 4 Tạo nội dung thất bại

Cơ chế thăm dò

# 1. Start async generation
curl -X POST https://zubnet.com/api/ai/videos \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "veo-3.1-generate-001", "prompt": "A coral reef"}'
# Returns: {"id": "550e8400-...", "state": 1, ...}

# 2. Poll for completion
curl https://zubnet.com/api/library/videos/550e8400-... \
  -H "Authorization: Bearer $ZUBNET_API_KEY"
# Returns: {"state": 2, "progress": 45, ...}  (still processing)
# Returns: {"state": 3, "progress": 100, "output_file": {"url": "..."}}  (done!)
Phân trang dựa trên con trỏ. Sử dụng id của mục cuối cùng trong starting_after để có được trang tiếp theo. Không có tham số offset/page.
POST /api/library/{type}/{id}

Cập nhật siêu dữ liệu của mục thư viện.

tham số loại Mô tả
titletùy chọn string Tiêu đề mục
visibilitytùy chọn integer 0 (riêng tư) hoặc 1 (công khai)
is_favoritedtùy chọn boolean Thêm hoặc xóa khỏi mục yêu thích
metatùy chọn vật thể Siêu dữ liệu tùy chỉnh (thể loại, tâm trạng, thẻ, mô tả, tác giả, v.v.)
DELETE /api/library/{type}/{id}

Xóa một mục thư viện và các tập tin liên quan của nó.

GET /api/library/{type}/count

Lấy tổng số mục cho một loại nội dung. Hỗ trợ tương tự querymodel bộ lọc giống như điểm cuối danh sách.

Trợ lý

Trợ lý là cấu hình trò chuyện có thể tái sử dụng với tên, mô hình, lời nhắc hệ thống và cài đặt riêng. Hãy dùng chúng để tạo các vai trò AI chuyên biệt cho từng công việc.

POST /api/assistants

Tạo một trợ lý mới.

GET /api/assistants

Liệt kê tất cả các trợ lý trong không gian làm việc của bạn.

PUT /api/assistants/{id}

Cập nhật cấu hình trợ lý (tên, mô hình, lời nhắc hệ thống, cài đặt).

DELETE /api/assistants/{id}

Xóa một trợ lý.

Kho MCP

Duyệt và kích hoạt máy chủ MCP (Model Context Protocol) để mở rộng khả năng sử dụng công cụ cho tác nhân — từ tìm kiếm trên web và truy cập dữ liệu đến thực thi mã và tích hợp của bên thứ ba.

GET /api/mcp-store/servers

Duyệt qua danh mục máy chủ MCP.

Tham số truy vấn

tham số loại Mô tả
categorytùy chọn string Lọc theo danh mục (tìm kiếm, dữ liệu, nhà phát triển, cơ sở hạ tầng, truyền thông, thương mại, sáng tạo, năng suất, xã hội, tiện ích)
querytùy chọn string Tìm kiếm theo tên hoặc mô tả
phản hồi
{
  "object": "list",
  "data": [
    {
      "id": "550e8400-...",
      "name": "GitHub",
      "description": "Access GitHub repositories, issues, and pull requests",
      "category": "developer",
      "config_schema": [
        {"name": "api_key", "type": "secret", "label": "API Key", "required": true}
      ],
      "tools": ["list_repos", "create_issue", "search_code"],
      "is_official": true
    },
    ...
  ]
}
POST /api/mcp-store/activations

Kích hoạt máy chủ MCP cho không gian làm việc của bạn. Cung cấp các giá trị cấu hình (khóa API, v.v.) như được xác định bởi máy chủ config_schema.

Nội dung yêu cầu

tham số loại Mô tả
server_idbắt buộc string UUID của máy chủ MCP để kích hoạt
configtùy chọn vật thể Giá trị cấu hình khớp với config_schema của máy chủ

Yêu cầu mẫu

curl https://zubnet.com/api/mcp-store/activations \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "server_id": "550e8400-e29b-41d4-a716-446655440000",
    "config": {
      "api_key": "ghp_xxxxxxxxxxxx"
    }
  }'
Phản hồi (201 Created)
{
  "id": "act-uuid-...",
  "server_id": "550e8400-...",
  "status": 1,
  "config": {
    "api_key": "••••••••"
  },
  "server": {
    "name": "GitHub",
    ...
  },
  "created_at": "2026-03-01T12:00:00Z"
}
Các trường bí mật trong cấu hình được che trong phản hồi API. Mỗi không gian làm việc chỉ có thể kích hoạt một máy chủ nhất định một lần. Sự trở lại idactivation_id dùng khi liên kết máy chủ MCP với tác nhân.
GET /api/mcp-store/activations

Liệt kê tất cả các máy chủ MCP được kích hoạt trong không gian làm việc của bạn.

PUT /api/mcp-store/activations/{id}

Cập nhật cấu hình hoặc trạng thái của kích hoạt.

DELETE /api/mcp-store/activations/{id}

Vô hiệu hóa máy chủ MCP khỏi không gian làm việc của bạn.

Tác nhân AI

Tạo và quản lý tác nhân AI tự chủ hoạt động trên nhiều kênh liên lạc. Tác nhân có thể trả lời tin nhắn trên Telegram và Discord, chạy theo lịch và sử dụng cơ sở kiến thức cùng máy chủ MCP để mở rộng khả năng.

POST /api/agents

Tạo một tác nhân mới.

Nội dung yêu cầu

tham số loại Mô tả
namebắt buộc string Tên tác nhân (tối đa 64 ký tự)
modelbắt buộc string ID mô hình cần dùng (ví dụ: "claude-sonnet-5", "deepseek-chat")
system_prompttùy chọn string Lời nhắc hệ thống tùy chỉnh xác định hành vi và tính cách của tác nhân
modetùy chọn string "quick" hoặc "advanced". Mặc định: "quick"
avatartùy chọn string Avatar URL (tối đa 512 ký tự)

Yêu cầu mẫu

curl https://zubnet.com/api/agents \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Support Bot",
    "model": "claude-sonnet-5",
    "system_prompt": "You are a friendly support agent. Answer questions clearly and concisely.",
    "mode": "advanced"
  }'
Phản hồi (201 Created)
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "Support Bot",
  "slug": "support-bot",
  "avatar": null,
  "model": "claude-sonnet-5",
  "system_prompt": "You are a friendly support agent...",
  "status": 1,
  "mode": "advanced",
  "permissions": {
    "time_windows": [],
    "frequency_cap": {
      "max_messages_per_hour": 60,
      "max_messages_per_day": 500
    },
    "channel_preferences": {},
    "allowed_actions": {
      "can_use_tools": true,
      "can_access_kb": true,
      "max_tool_calls_per_message": 5
    }
  },
  "cost": 0,
  "last_active_at": null,
  "created_at": 1709136000,
  "updated_at": null,
  "user": {
    "id": "a1b2c3d4-...",
    "first_name": "Jane",
    "last_name": "Doe",
    "avatar": "https://zubnet.com/files/avatar.jpg"
  },
  "channels": []
}
GET /api/agents

Liệt kê tất cả các tác nhân trong không gian làm việc. Hỗ trợ phân trang và lọc.

tham số loại Mô tả
limitquery integer Kết quả trên mỗi trang. Mặc định: 25
cursorquery string Con trỏ phân trang
sortquery string "name", "created_at" hoặc "last_active_at". Mặc định: "created_at"
directionquery string "asc" hoặc "desc"
statusquery integer Lọc theo trạng thái: 0 (không hoạt động), 1 (hoạt động), 2 (tạm dừng)
phản hồi
{
  "object": "list",
  "data": [
    {
      "id": "550e8400-...",
      "name": "Support Bot",
      "slug": "support-bot",
      "model": "claude-sonnet-5",
      "status": 1,
      "mode": "advanced",
      "cost": 12.50,
      "last_active_at": 1709222400,
      "created_at": 1709136000,
      ...
    }
  ]
}
GET /api/agents/{id}

Nhận thông tin chi tiết đầy đủ về một tác nhân cụ thể, bao gồm các kênh, máy chủ MCP được liên kết và cơ sở kiến thức.

PUT /api/agents/{id}

Cập nhật tác nhân. Mọi trường đều không bắt buộc — chỉ các trường được cung cấp mới được thay đổi.

Nội dung yêu cầu

tham số loại Mô tả
nametùy chọn string Tên tác nhân (tối đa 64 ký tự)
modeltùy chọn string ID mô hình
system_prompttùy chọn string|null Lời nhắc hệ thống (đặt thành null để xóa)
statustùy chọn integer 0 (không hoạt động), 1 (hoạt động) hoặc 2 (tạm dừng)
modetùy chọn string "quick" hoặc "advanced"
permissionstùy chọn vật thể Quyền của tác nhân (xem bên dưới)

Đối tượng quyền

{
  "permissions": {
    "time_windows": [
      {
        "days": [1, 2, 3, 4, 5],  // 0=Sun, 6=Sat
        "timezone": "America/New_York",
        "start_hour": 9,            // 0-23
        "end_hour": 17              // 1-24
      }
    ],
    "frequency_cap": {
      "max_messages_per_hour": 60,    // 1-1000
      "max_messages_per_day": 500     // 1-10000
    },
    "channel_preferences": {
      "default_channel": "telegram",
      "proactive_channels": ["telegram", "discord"]
    },
    "allowed_actions": {
      "can_use_tools": true,
      "can_access_kb": true,
      "max_tool_calls_per_message": 5  // 0-50
    }
  }
}
DELETE /api/agents/{id}

Xóa một tác nhân cùng toàn bộ kênh, trình kích hoạt, tin nhắn và tích hợp của tác nhân đó.

Tích hợp

POST /api/agents/{id}/knowledge-bases

Liên kết cơ sở kiến thức với tác nhân để tạo phản hồi bằng RAG. Nội dung yêu cầu: { "knowledge_base_id": "uuid" }

DELETE /api/agents/{id}/knowledge-bases/{kid}

Hủy liên kết cơ sở kiến thức khỏi một tác nhân.

POST /api/agents/{id}/mcp-servers

Liên kết máy chủ MCP với tác nhân để mở rộng khả năng dùng công cụ. Nội dung yêu cầu: { "activation_id": "uuid" }

DELETE /api/agents/{id}/mcp-servers/{activationId}

Hủy liên kết máy chủ MCP khỏi tác nhân.

GET /api/agents/{id}/messages

Truy xuất lịch sử trò chuyện của một tác nhân.

tham số loại Mô tả
limitquery integer Số lượng tin nhắn trả về. Mặc định: 25, tối đa: 100
phản hồi
{
  "object": "list",
  "data": [
    {
      "id": "msg-uuid-...",
      "direction": "inbound",
      "content": "How do I reset my password?",
      "external_user_name": "john_doe",
      "cost": 0,
      "model": null,
      "created_at": 1709222400
    },
    {
      "id": "msg-uuid-...",
      "direction": "outbound",
      "content": "Go to Settings > Security > Change Password...",
      "cost": 0.25,
      "model": "claude-sonnet-5",
      "created_at": 1709222401
    }
  ]
}
Gói của bạn phải bật tính năng Tác nhân AI. Giới hạn của gói áp dụng cho số tác nhân, số kênh trên mỗi tác nhân và số trình kích hoạt trên mỗi tác nhân.

Kênh của tác nhân

Kết nối tác nhân với các nền tảng liên lạc. Mỗi tác nhân hỗ trợ một kênh cho mỗi loại (một bot Telegram và một bot Discord).

POST /api/agents/{id}/channels

Thêm kênh liên lạc cho một tác nhân.

Nội dung yêu cầu

tham số loại Mô tả
typebắt buộc string "telegram" hoặc "discord"
tokenbắt buộc string Token bot từ Telegram BotFather hoặc Discord Developer Portal (tối đa 256 ký tự)

Yêu cầu mẫu

curl https://zubnet.com/api/agents/550e8400-.../channels \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "telegram",
    "token": "7123456789:AAH..."
  }'
Phản hồi (201 Created)
{
  "id": "ch-uuid-...",
  "type": "telegram",
  "status": 1,
  "metadata": {},
  "last_error": null,
  "last_message_at": null,
  "created_at": 1709136000
}
Token bot được xác thực với API của nền tảng trước khi kích hoạt và được mã hóa khi lưu trữ. Với Telegram, webhook được cấu hình tự động. Trạng thái kênh: 0 = không hoạt động, 1 = hoạt động, 2 = lỗi.
GET /api/agents/{id}/channels

Liệt kê mọi kênh được kết nối với một tác nhân.

DELETE /api/agents/{id}/channels/{channelId}

Xóa một kênh khỏi tác nhân.

Trình kích hoạt tác nhân

Tự động hóa các hành động của tác nhân bằng trình kích hoạt. Trình kích hoạt theo lịch trình sử dụng biểu thức cron để chạy vào những thời điểm cụ thể; sự kiện kích hoạt cháy để đáp ứng với các sự kiện bên ngoài.

POST /api/agents/{id}/triggers

Tạo trình kích hoạt tự động cho một tác nhân.

Nội dung yêu cầu

tham số loại Mô tả
namebắt buộc string Tên trình kích hoạt (tối đa 128)
typebắt buộc string "scheduled" hoặc "event"
promptbắt buộc string Lời nhắc được gửi đến tác nhân khi trình kích hoạt chạy
cron_expressiontùy chọn string Lịch trình Cron (ví dụ: "0 9 * * 1-5" cho các ngày trong tuần lúc 9 giờ sáng)
timezonetùy chọn string Múi giờ IANA để đánh giá cron. Mặc định: "UTC"
channel_idtùy chọn string Kênh để gửi đầu ra kích hoạt tới

Ví dụ: Kích hoạt tóm tắt hàng ngày

curl https://zubnet.com/api/agents/550e8400-.../triggers \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Daily Summary",
    "type": "scheduled",
    "prompt": "Summarize the key metrics for today and send them to the team.",
    "cron_expression": "0 18 * * 1-5",
    "timezone": "America/New_York"
  }'
Phản hồi (201 Created)
{
  "id": "tr-uuid-...",
  "name": "Daily Summary",
  "type": "scheduled",
  "status": 1,
  "cron_expression": "0 18 * * 1-5",
  "timezone": "America/New_York",
  "prompt": "Summarize the key metrics for today...",
  "channel_id": null,
  "last_run_at": null,
  "next_run_at": 1709236800,
  "run_count": 0,
  "created_at": 1709136000
}
GET /api/agents/{id}/triggers

Liệt kê tất cả các kích hoạt cho một tác nhân.

PUT /api/agents/{id}/triggers/{triggerId}

Cập nhật trình kích hoạt. Tất cả các trường là tùy chọn. Đặt status đến 0 để tắt hoặc 1 để bật.

DELETE /api/agents/{id}/triggers/{triggerId}

Xóa trình kích hoạt.

Trình kích hoạt theo lịch được thực thi bất đồng bộ qua hàng đợi tin nhắn. Mỗi lần chạy đều kiểm tra tác nhân đang hoạt động và không gian làm việc có đủ credit trước khi xử lý.

Không gian làm việc

Không gian làm việc là đơn vị tổ chức của đội ngũ. Mỗi không gian có số dư credit, gói đăng ký, khóa API và thành viên riêng. Bạn có thể quản lý không gian làm việc, mời thành viên và theo dõi mức sử dụng.

POST /api/workspaces

Tạo một không gian làm việc mới.

tham số loại Mô tả
namebắt buộc string Tên không gian làm việc (tối đa 50 ký tự)
Phản hồi (201 Created)
{
  "id": "550e8400-...",
  "name": "My Team",
  "subscription": null,
  "api_spending_limit": null,
  "api_spending_current": 0,
  "owner": { "id": "...", "email": "..." },
  "created_at": "2026-03-01T12:00:00Z"
}
POST /api/workspaces/{id}

Cập nhật cài đặt của không gian làm việc. Yêu cầu quyền quản lý không gian làm việc.

tham số loại Mô tả
nametùy chọn string Tên không gian làm việc (tối đa 50 ký tự)
api_spending_limittùy chọn con số Giới hạn chi tiêu API hàng tháng (null không giới hạn)
{provider}_api_keytùy chọn string Khóa BYOK API dành cho nhà cung cấp (ví dụ: openai_api_key, anthropic_api_key)
DELETE /api/workspaces/{id}

Xóa một không gian làm việc. Yêu cầu quyền quản lý không gian làm việc.

POST /api/workspaces/{id}/invitations

Mời người dùng tham gia không gian làm việc qua email. Tối đa 20 lời mời đang chờ xử lý cho mỗi không gian làm việc.

tham số loại Mô tả
emailbắt buộc string Địa chỉ email của người dùng để mời
DELETE /api/workspaces/{id}/invitations/{invitationId}

Hủy lời mời đang chờ xử lý.

DELETE /api/workspaces/{id}/users/{userId}

Xóa thành viên khỏi không gian làm việc hoặc rời khỏi không gian làm việc bằng cách sử dụng ID người dùng của riêng bạn.

GET /api/workspaces/{id}/logs/usage

Liệt kê số liệu thống kê sử dụng tổng hợp cho không gian làm việc. Hỗ trợ phân trang dựa trên con trỏ.

GET /api/workspaces/{id}/logs/usage/items

Liệt kê các mục sử dụng được chia thành từng khoản (các mục thư viện đã hoàn thành với chi phí > 0). Mỗi mục gồm loại, mô hình, tiêu đề, chi phí và dấu thời gian.

GET /api/workspaces/{id}/logs/usage/items/count

Lấy tổng số mục sử dụng.

Các điểm cuối quản lý mức sử dụng và không gian làm việc yêu cầu quyền quản lý quyền (chủ sở hữu hoặc quản trị viên không gian làm việc).

Cuộc trò chuyện

Conversation nhóm các tin nhắn trò chuyện thành từng phiên. Trước tiên hãy tạo một conversation, sau đó gửi tin nhắn vào đó. Bạn cũng có thể quản lý conversation qua Thư viện API sử dụng conversations loại nội dung.

POST /api/ai/conversations

Tạo một cuộc trò chuyện mới. Trả về đối tượng hội thoại có danh sách tin nhắn trống.

phản hồi
{
  "object": "conversation",
  "id": "550e8400-...",
  "title": null,
  "cost": 0,
  "messages": [],
  "created_at": "2026-03-01T12:00:00Z"
}
POST /api/ai/conversations/{id}/messages

Gửi tin nhắn đến cuộc trò chuyện và nhận phản hồi AI qua Server-Sent Events (SSE). Xem Chat Completions phần để biết chi tiết định dạng sự kiện SSE.

Nội dung yêu cầu

tham số loại Mô tả
modelbắt buộc string Mô hình sử dụng để phản hồi
contenttùy chọn string Nội dung tin nhắn
assistant_idtùy chọn string UUID của trợ lý để sử dụng cho tin nhắn này
parent_idtùy chọn string UUID của tin nhắn gốc (dành cho các cuộc hội thoại phân nhánh)
filetùy chọn file Tệp đính kèm (hình ảnh, tài liệu, âm thanh/video — tối đa 25MB)
recordingtùy chọn file Ghi âm giọng nói (mp3, wav, webm, ogg — tối đa 10MB)

Yêu cầu mẫu

curl https://zubnet.com/api/ai/conversations/550e8400-.../messages \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4.1",
    "content": "Explain quantum computing in simple terms"
  }'
Tin nhắn được truyền phát qua SSE. Sử dụng multipart/form-data khi tải tập tin lên. Để liệt kê hoặc xóa các cuộc hội thoại, hãy sử dụng Thư viện API có loại conversations.

Tài khoản

Quản lý hồ sơ người dùng của bạn và tạo khóa API theo chương trình.

PUT /api/account

Cập nhật thông tin hồ sơ của bạn.

tham số loại Mô tả
first_nametùy chọn string Tên (tối đa 50 ký tự)
last_nametùy chọn string Họ (tối đa 50 ký tự)
languagetùy chọn string Mã ngôn ngữ ưa thích (ví dụ: "en", "fr")
preferencestùy chọn vật thể Cài đặt tùy chọn người dùng
POST /api/account/rest-api-keys

Tạo khóa API mới. Yêu cầu xác nhận mật khẩu để bảo mật. Khóa API đầy đủ được trả về chỉ một lần trong phản hồi này — lưu trữ nó một cách an toàn.

tham số loại Mô tả
current_passwordbắt buộc string Mật khẩu tài khoản hiện tại của bạn
phản hồi
{
  "id": "550e8400-...",
  "first_name": "Jane",
  "last_name": "Doe",
  "email": "jane@example.com",
  "api_key": "zub_live_a1b2c3d4e5f6..."
}
các api_key giá trị chỉ được hiển thị đầy đủ trong phản hồi này. Các cuộc gọi API tiếp theo sẽ trả về phiên bản bị che. Hãy coi nó như một mật khẩu.

Thanh toán

Duyệt các gói có sẵn, xem lịch sử đơn hàng, bắt đầu thanh toán và quản lý đăng ký.

GET /api/billing/plans

Liệt kê các gói thuê bao có sẵn.

tham số loại Mô tả
billing_cycletùy chọn string Lọc theo chu kỳ thanh toán
GET /api/billing/orders

Liệt kê đơn hàng của không gian làm việc hiện tại. Hỗ trợ phân trang bằng con trỏ.

tham số loại Mô tả
statustùy chọn string Lọc theo trạng thái đơn hàng
billing_cycletùy chọn string Lọc theo chu kỳ thanh toán
POST /api/billing/checkout

Bắt đầu thanh toán gói đăng ký hoặc mua credit. Yêu cầu quyền quản lý không gian làm việc.

tham số loại Mô tả
idtùy chọn string UUID của gói đăng ký (bắt buộc nếu không amount)
amounttùy chọn integer Số credit cần mua, tính theo cent (tối thiểu 1.000, bắt buộc nếu không có id)
gatewaytùy chọn string Cổng thanh toán: stripe hoặc paypal
DELETE /api/billing/subscription

Hủy đăng ký không gian làm việc hiện tại. Yêu cầu quyền quản lý không gian làm việc.

Báo cáo nội dung

Báo cáo nội dung không phù hợp hoặc vi phạm chính sách trong thư viện công cộng.

POST /api/content-reports

Gửi báo cáo nội dung. Mỗi người dùng chỉ có thể báo cáo một mục nhất định một lần.

tham số loại Mô tả
item_idbắt buộc string UUID của mục thư viện để báo cáo
reasonbắt buộc integer Mã lý do: 0 (thư rác), 1 (quấy rối), 2 (bạo lực), 3 (nội dung khiêu dâm), 4 (khác)
descriptiontùy chọn string Chi tiết bổ sung (tối đa 2000 ký tự)
Phản hồi (201 Created)
{
  "id": "550e8400-e29b-41d4-a716-446655440000"
}
Các báo cáo trùng lặp (cùng một người dùng + cùng một mục) trả về một 409 Conflict lỗi.

Thêm điểm cuối

Phạm vi API đầy đủ còn lớn hơn các phần trên. Những điểm cuối sau đang hoạt động và dùng cùng phương thức xác thực:

POST /api/ai/three-dTạo mô hình 3D (Tripo, Meshy…)
POST /api/ai/tts  ·  POST /api/ai/speechesChuyển văn bản thành giọng nói (giao diện gốc và cấu hình dựng sẵn)
POST /api/ai/transcriptionsPhiên âm âm thanh hàng loạt (bộ chọn mô hình)
GET /api/ai/transcriptions/realtime/token  ·  POST /api/ai/transcriptions/realtime/savePhiên âm micrô trực tiếp (token phiên và lưu kết quả)
POST /api/ai/translations  ·  GET /api/ai/translation-languagesDịch văn bản + ngôn ngữ được hỗ trợ
POST /api/ai/document-extractionsTrích xuất văn bản tài liệu (OCR)
GET /api/ai/video-understanding/{jobId}Trạng thái công việc hiểu video
/api/library-stacksBộ sưu tập thư viện — hỗ trợ đầy đủ CRUD
/api/chatroomPhòng chat nhóm (các cuộc trò chuyện AI được chia sẻ)
POST /api/graphql  ·  GET /api/graphql/subscriptionsGraphQL API (truy vấn + đăng ký)
/api/automationQuy trình làm việc tự động hóa (xây dựng + chạy)

Lỗi

API sử dụng mã trạng thái HTTP tiêu chuẩn và trả về thông báo lỗi chi tiết.

Lập trình Mô tả
400 Yêu cầu không hợp lệ — Thông số không hợp lệ
401 Chưa xác thực — Khóa API không hợp lệ hoặc bị thiếu
403 Bị cấm — Không đủ credit hoặc mô hình không có trong gói của bạn
404 Không tìm thấy — Không tìm thấy mô hình hoặc tài nguyên
413 Tải trọng quá lớn — Tệp vượt quá giới hạn kích thước
429 Quá nhiều yêu cầu — Đã vượt quá giới hạn tỷ lệ
500 Lỗi máy chủ nội bộ
503 Dịch vụ không có sẵn — Quá tải tạm thời
Định dạng phản hồi lỗi
{
  "error": {
    "message": "Invalid API key provided",
    "type": "authentication_error",
    "code": "invalid_api_key"
  }
}

Giới hạn tỷ lệ

Giới hạn tỷ lệ thay đổi tùy theo gói. Tiêu đề được bao gồm trong mọi phản hồi:

tiêu đề Mô tả
X-RateLimit-Limit Yêu cầu được phép mỗi phút
X-RateLimit-Remaining Các yêu cầu còn lại trong cửa sổ hiện tại
X-RateLimit-Reset Dấu thời gian Unix khi đặt lại giới hạn

Nếu bạn đạt đến giới hạn tốc độ, hãy đợi đến thời gian đặt lại hoặc liên hệ với chúng tôi để tăng giới hạn của bạn.

Cần trợ giúp?

Chúng tôi ở đây vì bạn

Câu hỏi về API? Hãy xem Câu hỏi thường gặp của chúng tôi hoặc liên hệ trực tiếp.