Dokumentasi API
- Beranda
- Pengembang
- API
Teks
Media
Suara
Lainnya
Platform
Agen
Zubnet API memberi Anda akses terprogram ke 408 model AI untuk pembuatan teks, gambar, video, musik, suara, dan kode. Sepenuhnya kompatibel dengan spesifikasi API OpenAI — jika Anda sudah menggunakan OpenAI, beralihlah ke Zubnet dengan mengganti URL dasar dan kunci API.
https://api.zubnet.com/v1
# 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)
Semua permintaan API memerlukan autentikasi melalui token Bearer pada header Authorization.
Authorization: Bearer YOUR_API_KEY
Anda dapat membuat kunci API dari pengaturan akun. Jaga keamanan kunci Anda — kunci tersebut memberikan akses penuh ke akun Anda.
Anda dapat menggunakan kunci API sendiri dari penyedia yang didukung. Tambahkan kunci tersebut di pengaturan ruang kerja agar digunakan otomatis untuk permintaan ke penyedia terkait — tanpa markup biaya. BYOK tersedia pada paket yang mendukungnya.
Saat kunci BYOK dikonfigurasi untuk penyedia, kunci tersebut diprioritaskan dibandingkan kunci platform. Tidak ada perubahan yang diperlukan pada permintaan API Anda — resolusi kunci sepenuhnya transparan.
Tampilkan semua model yang tersedia.
curl https://api.zubnet.com/v1/models \
-H "Authorization: Bearer $ZUBNET_API_KEY"
{
"object": "list",
"data": [
{
"id": "claude-sonnet-5",
"object": "model",
"created": 1699900000,
"owned_by": "anthropic"
},
{
"id": "deepseek-chat",
"object": "model",
"created": 1699900000,
"owned_by": "deepseek"
},
...
]
}
Buat chat completion. Ini adalah endpoint utama untuk pembuatan teks dan kompatibel dengan format chat completions OpenAI.
| Parameter | Tipe | Deskripsi |
|---|---|---|
modeldiperlukan |
string | ID model yang akan digunakan (mis., "claude-sonnet-5", "deepseek-chat", "gemini-2.5-pro") |
messagesdiperlukan |
array | Array objek pesan yang berisi role dan content |
temperatureopsional |
number | Sampling temperature (0-2). Bawaan: 0.7 |
max_tokensopsional |
integer | Token maksimum yang akan dihasilkan (1-128000). Bawaan: 4096 |
streamopsional |
boolean | Streaming tanggapan melalui SSE. Bawaan: true |
top_popsional |
number | Parameter pengambilan sampel inti (0-1). Bawaan: 1 |
frequency_penaltyopsional |
number | Penalti frekuensi (-2 hingga 2). Bawaan: 0 |
presence_penaltyopsional |
number | Penalti kehadiran (-2 hingga 2). Bawaan: 0 |
stopopsional |
string/array | Hentikan urutan |
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 }'
{
"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
}
}
Jika stream bernilai true, respons dikirim melalui Server-Sent Events (SSE). Setiap event memiliki tipe bernama dan payload JSON:
| Event | Deskripsi |
|---|---|
token |
Token teks/delta dari model |
reasoning-token |
Token pemikiran yang diperluas (untuk model yang mendukung penalaran) |
call |
Panggilan tool/function dengan nama dan parameter |
message |
Objek pesan lengkap terakhir (dikirim saat streaming selesai) |
error |
Pesan kesalahan jika streaming gagal |
// SSE event format event: token data: {"data": "Hello", "attributes": {}} event: token data: {"data": " world", "attributes": {}} event: message data: {"id": "msg-uuid", "content": "Hello world", ...}
Buat kode dari prompt bahasa alami. Respons dikirim secara streaming melalui Server-Sent Events (SSE).
| Parameter | Tipe | Deskripsi |
|---|---|---|
promptdiperlukan |
string | Deskripsi bahasa alami dari kode yang akan dihasilkan |
languagediperlukan |
string | Bahasa pemrograman (misalnya, "python", "javascript", "rust") |
temperatureopsional |
number | Suhu pengambilan sampel (0-2) |
max_tokensopsional |
integer | Token maksimum yang akan dihasilkan (1-128000) |
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" }'
chunk berisi konten bertahap, lalu event document yang memuat seluruh kode hasil pembuatan.
{
"object": "code_document",
"id": "550e8400-e29b-41d4-a716-446655440000",
"model": "claude-sonnet-5",
"cost": 1,
"title": "Prime Number Checker",
"content": "def is_prime(n): ..."
}
Buat gambar dari prompt teks menggunakan model FLUX, Stable Diffusion, Ideogram, dan lainnya.
| Parameter | Tipe | Deskripsi |
|---|---|---|
modeldiperlukan |
string | Model gambar yang akan digunakan |
promptdiperlukan |
string | Deskripsi teks dari gambar yang akan dihasilkan |
nopsional |
integer | Jumlah gambar yang akan dihasilkan. Bawaan: 1 |
sizeopsional |
string | Ukuran gambar (misalnya, "1024x1024", "1792x1024") |
response_formatopsional |
string | "url" atau "b64_json". Bawaan: "url" |
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" }'
{
"created": 1699900000,
"data": [
{
"url": "https://zubnet.com/files/abc123.png",
"revised_prompt": "A serene mountain lake..."
}
]
}
Buat video dari prompt teks atau gambar. Mendukung alur kerja text-to-video, image-to-video, dan video-to-video.
| Parameter | Tipe | Deskripsi |
|---|---|---|
modeldiperlukan |
string | Model video yang akan digunakan |
promptdiperlukan* |
string | Deskripsi teks video. *Tidak diperlukan untuk sinkronisasi bibir atau model kelas atas |
framesopsional |
file[] | Masukkan gambar untuk gambar-ke-video. Maksimum masing-masing 10MB (jpg, png, webp) |
videoopsional |
file | Video input untuk video-to-video. Maksimum 100 MB (mp4, webm, mov) |
audioopsional |
file | File audio untuk model sinkronisasi bibir. Maks 25MB |
aspect_ratioopsional |
string | Rasio aspek (misalnya, "16:9", "9:16", "1:1") |
durationopsional |
integer | Durasi video dalam hitungan detik |
negative_promptopsional |
string | Apa yang harus dihindari dalam video (tergantung model) |
resolutionopsional |
string | Resolusi keluaran, mis. "480p", "720p", "1080p", "4k" (tergantung model) |
qualityopsional |
string | Tingkat Quality/speed jika didukung (misalnya "speed" atau "quality") |
audioopsional |
string | "on"/"off" — audio tersinkronisasi asli pada model yang mendukungnya (Seedance 2.0, Kling, PixVerse, CogVideoX…) |
seedopsional |
integer | Reproduksibilitas benih jika didukung |
styleopsional |
string | Prasetel gaya pada model yang didukung (misalnya Vidu: "general"/"anime") |
| Model juga menerima opsi spesifiknya sendiri (fps, multi_clip, mode, loop, motion_mode, rasio aspek…) — persis dengan pemilih yang ditampilkan untuk model tersebut di aplikasi. Parameter yang tidak diketahui diabaikan. | ||
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 }'
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"
state dengan nilai (“processing”, “completed”, “failed”) serta kolom progress berupa persentase. Lakukan polling pada endpoint pustaka untuk memeriksa status penyelesaian.
{
"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"
}
Analisis konten video dengan AI. Kirim URL video untuk dianalisis, lalu lakukan polling untuk mengambil hasilnya. Mendukung beberapa jenis analisis.
Kirim video untuk dianalisis AI. Respons mengembalikan ID tugas yang dapat digunakan untuk melakukan polling hasil.
| Parameter | Tipe | Deskripsi |
|---|---|---|
video_urldiperlukan |
string | URL HTTPS publik dari video yang akan dianalisis |
typeopsional |
string | Jenis analisis: summary (standar), topics, chapters, atau highlights |
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" }'
{
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "queued"
}
Periksa status pekerjaan analisis video.
{
"status": "completed",
"result": {
"type": "summary",
"content": "The video shows a product demonstration..."
}
}
Hasilkan musik asli dari deskripsi teks, lirik, atau tag gaya.
| Parameter | Tipe | Deskripsi |
|---|---|---|
modeldiperlukan |
string | Model musik untuk digunakan |
promptopsional |
string | Deskripsi musik atau lirik yang akan disetel |
tagsopsional |
string | Tag genre dan gaya (misalnya, "lo-fi, chill, jazz") |
instrumentalopsional |
boolean | Hasilkan instrumental saja (tanpa vokal). Bawaan: false |
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 }'
[
{
"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
}
]
Hasilkan efek suara dari deskripsi teks.
| Parameter | Tipe | Deskripsi |
|---|---|---|
modeldiperlukan |
string | Model efek suara yang akan digunakan |
promptdiperlukan |
string | Deskripsi efek suara yang akan dihasilkan |
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" }'
{
"object": "sound_effect",
"id": "550e8400-e29b-41d4-a716-446655440000",
"model": "sound-effect-model",
"cost": 1,
"output_file": {
"url": "https://zubnet.com/files/abc123.mp3"
}
}
Konversikan teks menjadi audio ucapan yang terdengar alami menggunakan suara dari ElevenLabs, Cartesia, Speechify, dan banyak lagi.
| Parameter | Tipe | Deskripsi |
|---|---|---|
modeldiperlukan |
string | Model TTS (misalnya, "tts-1", "tts-1-hd", "elevenlabs") |
inputdiperlukan |
string | Teks untuk diubah menjadi ucapan (maks 5000 karakter) |
voicediperlukan |
string | ID Suara yang akan digunakan (misalnya, "alloy", "echo", "nova", atau ID suara khusus) |
response_formatopsional |
string | Format audio: mp3, opus, aac, flac. Bawaan: mp3 |
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
Transkripsikan audio ke teks.
| Parameter | Tipe | Deskripsi |
|---|---|---|
modeldiperlukan |
string | Model transkripsi (mis., "whisper-1") |
filediperlukan |
file | File audio untuk ditranskripsi. Maks 25MB (mp3, mp4, wav, webm, ogg, flac) |
languageopsional |
string | Kode bahasa (misalnya, "en", "fr", "es") |
curl https://api.zubnet.com/v1/audio/transcriptions \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -F "model=whisper-1" \ -F "file=@recording.mp3"
{
"object": "transcription",
"id": "550e8400-e29b-41d4-a716-446655440000",
"model": "whisper-1",
"content": "Hello, this is a test recording..."
}
Ekstrak vokal bersih dari audio, hilangkan kebisingan latar belakang dan musik. Didukung oleh ElevenLabs.
| Parameter | Tipe | Deskripsi |
|---|---|---|
filediperlukan |
file | berkas audio. Maks 25MB (mp3, mp4, wav, m4a, webm, ogg, flac) |
curl https://zubnet.com/api/ai/isolated-voices \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -F "file=@noisy-recording.mp3"
{
"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"
}
}
Pisahkan audio menjadi setiap stem (vokal, drum, bas, gitar, piano, dan lainnya). Didukung oleh ElevenLabs.
| Parameter | Tipe | Deskripsi |
|---|---|---|
filediperlukan |
file | berkas audio. Maks 25MB (mp3, mp4, wav, m4a, webm, ogg, flac) |
stem_variationopsional |
string | Modus pemisahan. Default: "six_stems_v1" (vokal, drum, bass, gitar, piano, lainnya) |
curl https://zubnet.com/api/ai/stem-separations \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -F "file=@song.mp3"
{
"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"
}
}
Buat dan kelola suara khusus untuk pembuatan text-to-speech.
Buat suara khusus dengan mengunggah sampel audio.
Cantumkan semua suara yang tersedia di ruang kerja Anda, termasuk suara khusus yang Anda buat.
Perbarui suara khusus (nama, pengaturan).
Hapus suara khusus.
voice pada endpoint Text-to-Speech.
Buat embedding teks untuk pencarian semantik dan pencocokan kemiripan.
| Parameter | Tipe | Deskripsi |
|---|---|---|
modeldiperlukan |
string | Model penyematan (misalnya, "text-embedding-3-small") |
inputdiperlukan |
string/array | Teks yang akan disematkan (string string atau array) |
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" }'
Buat dan kelola basis pengetahuan untuk retrieval-augmented generation (RAG). Unggah dokumen (PDF, DOCX, TXT, Markdown), atau tambahkan URL web dan teks mentah, lalu gunakan sebagai sumber dalam chat completions Anda.
Buat basis pengetahuan baru.
| Parameter | Tipe | Deskripsi |
|---|---|---|
namediperlukan |
string | Nama basis pengetahuan |
descriptionopsional |
string | Deskripsi basis pengetahuan |
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" }'
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "My KB",
"description": "Optional description",
"status": "active"
}
Buat daftar semua basis pengetahuan di ruang kerja Anda.
[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "My KB",
"description": "Optional description",
"status": "active"
},
...
]
Dapatkan detail basis pengetahuan tertentu, termasuk dokumennya.
Hapus basis pengetahuan dan semua dokumennya.
Tambahkan dokumen ke basis pengetahuan. Mendukung unggahan file, URL, dan teks mentah.
| Parameter | Tipe | Deskripsi |
|---|---|---|
filepilihan 1 |
file | Unggah file multi-bagian (PDF, DOCX, TXT, MD — maks 10 MB) |
titlediperlukan |
string | Judul dokumen (wajib untuk URL dan jenis teks) |
typeopsi 2/3 |
string | "url" atau "text" (untuk penyerapan non-file) |
urlpilihan 2 |
string | URL untuk mengambil dan menyerap (jika tipenya adalah "url") |
contentpilihan 3 |
string | Konten teks mentah yang akan diserap (bila jenisnya "text") |
curl https://zubnet.com/api/knowledge-bases/550e8400-.../documents \ -H "Authorization: Bearer $ZUBNET_API_KEY" \ -F "file=@report.pdf"
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" }'
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..." }'
Tampilkan semua dokumen dalam basis pengetahuan.
Hapus dokumen tertentu dari basis pengetahuan.
Baca konten teks hasil ekstraksi dari dokumen tertentu.
Urutkan ulang daftar dokumen menurut relevansinya terhadap kueri. Berguna untuk meningkatkan hasil pencarian, pipeline RAG, dan sistem rekomendasi.
| Parameter | Tipe | Deskripsi |
|---|---|---|
modeldiperlukan |
string | Model pemeringkatan ulang yang akan digunakan |
querydiperlukan |
string | Permintaan pencarian untuk menentukan peringkat dokumen |
documentsdiperlukan |
array | Array string dokumen untuk diubah peringkatnya |
top_nopsional |
integer | Jumlah hasil teratas yang akan ditampilkan. Bawaan: semua |
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 }'
{
"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"
}
index menunjukkan posisi setiap dokumen dalam array input asli.
Perpustakaan adalah tempat semua konten yang dihasilkan berada — gambar, video, komposisi, dokumen kode, transkripsi, dan banyak lagi. Gunakan untuk membuat daftar item, memeriksa status pembuatan asinkron, memperbarui metadata, dan mengelola konten Anda.
Tampilkan item di pustaka Anda berdasarkan tipe konten.
| Parameter | Tipe | Deskripsi |
|---|---|---|
limitopsional |
integer | Hasil per halaman (maks 100) |
starting_afteropsional |
string | Kursor untuk penomoran halaman depan (item UUID) |
ending_beforeopsional |
string | Kursor untuk penomoran halaman mundur (item UUID) |
sortopsional |
string | Urutkan bidang dan arah (misalnya, "created_at:desc") |
queryopsional |
string | Pencarian teks lengkap (maks 255 karakter) |
modelopsional |
string | Filter menurut model yang digunakan untuk pembuatan |
{
"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"
},
...
]
}
Dapatkan satu item perpustakaan berdasarkan ID. Ini adalah endpoint utama untuk melakukan polling atas status pembuatan asinkron.
| Status | Nilai | Deskripsi |
|---|---|---|
draft |
0 | Belum diserahkan |
queued |
1 | Menunggu untuk diproses |
processing |
2 | Saat ini menghasilkan |
completed |
3 | Selesai — output_file tersedia |
failed |
4 | Pembuatan gagal |
# 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!)
id dari item terakhir sebagai starting_after untuk mengambil halaman berikutnya. Tidak ada parameter offset/page.
Perbarui metadata item perpustakaan.
| Parameter | Tipe | Deskripsi |
|---|---|---|
titleopsional |
string | Judul item |
visibilityopsional |
integer | 0 (pribadi) atau 1 (publik) |
is_favoritedopsional |
boolean | Menambah atau menghapus dari favorit |
metaopsional |
object | Metadata khusus (genre, suasana hati, tag, deskripsi, penulis, dll.) |
Hapus item perpustakaan dan file terkaitnya.
Dapatkan jumlah total item untuk suatu tipe konten. Mendukung filter query dan model yang sama seperti endpoint daftar.
Asisten adalah preset obrolan yang dapat digunakan kembali dengan nama, model, sistem prompt, dan pengaturan khusus. Gunakan mereka untuk membuat persona AI khusus untuk berbagai tugas.
Buat asisten baru.
Buat daftar semua asisten di ruang kerja Anda.
Perbarui konfigurasi asisten (nama, model, sistem prompt, pengaturan).
Hapus asisten.
Telusuri dan aktifkan server MCP (Model Context Protocol) untuk memberikan agen Anda kemampuan alat yang lebih luas — dari pencarian web dan akses data hingga eksekusi kode dan integrasi pihak ketiga.
Telusuri katalog server MCP.
| Parameter | Tipe | Deskripsi |
|---|---|---|
categoryopsional |
string | Filter berdasarkan kategori (penelusuran, data, pengembang, infrastruktur, komunikasi, perdagangan, materi iklan, produktivitas, sosial, utilitas) |
queryopsional |
string | Cari berdasarkan nama atau deskripsi |
{
"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
},
...
]
}
Aktifkan server MCP untuk ruang kerja Anda. Berikan nilai konfigurasi (kunci API dan sebagainya) sebagaimana ditentukan oleh server dalam config_schema.
| Parameter | Tipe | Deskripsi |
|---|---|---|
server_iddiperlukan |
string | UUID dari server MCP untuk diaktifkan |
configopsional |
object | Nilai konfigurasi cocok dengan config_schema server |
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" } }'
{
"id": "act-uuid-...",
"server_id": "550e8400-...",
"status": 1,
"config": {
"api_key": "••••••••"
},
"server": {
"name": "GitHub",
...
},
"created_at": "2026-03-01T12:00:00Z"
}
id yang dikembalikan adalah activation_id yang digunakan untuk menautkan server MCP ke agen.
Cantumkan semua server MCP yang diaktifkan di ruang kerja Anda.
Perbarui konfigurasi atau status aktivasi.
Nonaktifkan server MCP dari ruang kerja Anda.
Membuat dan mengelola agen AI otonom yang beroperasi di seluruh saluran komunikasi. Agen dapat merespons pesan di Telegram dan Discord, dijalankan pada pemicu terjadwal, dan memanfaatkan basis pengetahuan dan server MCP untuk kemampuan yang lebih luas.
Buat agen baru.
| Parameter | Tipe | Deskripsi |
|---|---|---|
namediperlukan |
string | Nama agen (maks 64 karakter) |
modeldiperlukan |
string | ID model yang akan digunakan (mis., "claude-sonnet-5", "deepseek-chat") |
system_promptopsional |
string | Sistem kustom prompt mendefinisikan perilaku dan kepribadian agen |
modeopsional |
string | "quick" atau "advanced". Bawaan: "quick" |
avataropsional |
string | Avatar URL (maks 512 karakter) |
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" }'
{
"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": []
}
Daftar semua agen di ruang kerja. Mendukung penomoran halaman dan pemfilteran.
| Parameter | Tipe | Deskripsi |
|---|---|---|
limitquery |
integer | Hasil per halaman. Bawaan: 25 |
cursorquery |
string | Kursor paginasi |
sortquery |
string | "name", "created_at", atau "last_active_at". Bawaan: "created_at" |
directionquery |
string | "asc" atau "desc" |
statusquery |
integer | Filter berdasarkan status: 0 (tidak aktif), 1 (aktif), 2 (dijeda) |
{
"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,
...
}
]
}
Dapatkan detail lengkap tentang agen tertentu, termasuk salurannya, server MCP yang tertaut, dan basis pengetahuan.
Perbarui agen. Semua bidang bersifat opsional — hanya bidang yang disediakan yang diubah.
| Parameter | Tipe | Deskripsi |
|---|---|---|
nameopsional |
string | Nama agen (maks 64) |
modelopsional |
string | ID Model |
system_promptopsional |
string|null | Sistem prompt (setel ke null untuk menghapus) |
statusopsional |
integer | 0 (tidak aktif), 1 (aktif), atau 2 (dijeda) |
modeopsional |
string | "quick" atau "advanced" |
permissionsopsional |
object | Izin agen (lihat di bawah) |
{
"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
}
}
}
Hapus agen. Tindakan ini juga menghapus semua saluran, pemicu, pesan, dan integrasinya.
Tautkan basis pengetahuan ke agen untuk respons berbasis RAG. Body: { "knowledge_base_id": "uuid" }
Putuskan tautan basis pengetahuan dari agen.
Tautkan server MCP ke agen untuk memperluas penggunaan tool. Body: { "activation_id": "uuid" }
Putuskan tautan server MCP dari agen.
Ambil riwayat percakapan untuk agen.
| Parameter | Tipe | Deskripsi |
|---|---|---|
limitquery |
integer | Jumlah pesan yang akan dikembalikan. Default: 25, maks: 100 |
{
"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
}
]
}
Hubungkan agen ke platform komunikasi. Setiap agen mendukung satu saluran per jenis (satu bot Telegram, satu bot Discord).
Tambahkan saluran komunikasi ke agen.
| Parameter | Tipe | Deskripsi |
|---|---|---|
typediperlukan |
string | "telegram" atau "discord" |
tokendiperlukan |
string | Token Bot dari Telegram BotFather atau Discord Developer Portal (maks 256) |
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..." }'
{
"id": "ch-uuid-...",
"type": "telegram",
"status": 1,
"metadata": {},
"last_error": null,
"last_message_at": null,
"created_at": 1709136000
}
Daftar semua saluran yang terhubung ke agen.
Hapus saluran dari agen.
Otomatiskan tindakan agen dengan pemicu. Pemicu terjadwal memakai ekspresi cron untuk berjalan pada waktu tertentu; pemicu peristiwa dijalankan sebagai respons terhadap peristiwa eksternal.
Buat pemicu otomatis untuk agen.
| Parameter | Tipe | Deskripsi |
|---|---|---|
namediperlukan |
string | Nama pemicu (maks 128) |
typediperlukan |
string | "scheduled" atau "event" |
promptdiperlukan |
string | prompt dikirim ke agen saat pemicu diaktifkan |
cron_expressionopsional |
string | Jadwal Cron (misalnya "0 9 * * 1-5" untuk hari kerja pukul 9 pagi) |
timezoneopsional |
string | Zona waktu IANA untuk evaluasi cron. Bawaan: "UTC" |
channel_idopsional |
string | Saluran untuk mengirim keluaran pemicu |
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" }'
{
"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
}
Cantumkan semua pemicu untuk agen.
Perbarui pemicu. Semua bidang bersifat opsional. Tetapkan status ke 0 untuk menonaktifkan atau 1 untuk mengaktifkan.
Hapus pemicu.
Ruang kerja adalah unit organisasi untuk tim Anda. Setiap ruang kerja memiliki saldo kredit, langganan, kunci API, dan anggotanya sendiri. Kelola ruang kerja, undang anggota tim, dan lacak penggunaan.
Buat ruang kerja baru.
| Parameter | Tipe | Deskripsi |
|---|---|---|
namediperlukan |
string | Nama ruang kerja (maks 50 karakter) |
{
"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"
}
Perbarui pengaturan ruang kerja. Memerlukan izin pengelolaan ruang kerja.
| Parameter | Tipe | Deskripsi |
|---|---|---|
nameopsional |
string | Nama ruang kerja (maks 50 karakter) |
api_spending_limitopsional |
number | Batas pembelanjaan API bulanan (null tanpa batas) |
{provider}_api_keyopsional |
string | Kunci BYOK API untuk penyedia (misalnya, openai_api_key, anthropic_api_key) |
Hapus ruang kerja. Memerlukan izin pengelolaan ruang kerja.
Undang pengguna untuk bergabung dengan ruang kerja melalui email. Maksimal 20 undangan tertunda per ruang kerja.
| Parameter | Tipe | Deskripsi |
|---|---|---|
emaildiperlukan |
string | Alamat email pengguna yang akan diundang |
Batalkan undangan yang tertunda.
Hapus anggota dari ruang kerja, atau tinggalkan ruang kerja dengan menggunakan ID pengguna Anda sendiri.
Cantumkan statistik penggunaan gabungan untuk ruang kerja. Mendukung penomoran halaman berbasis kursor.
Tampilkan rincian entri penggunaan (item pustaka yang selesai dengan biaya > 0). Setiap entri mencakup jenis, model, judul, biaya, dan stempel waktu.
Dapatkan jumlah total item penggunaan.
Percakapan mengelompokkan pesan obrolan ke dalam sesi. Buat percakapan terlebih dahulu, lalu kirim pesan ke sana. Percakapan juga dapat dikelola melalui API Perpustakaan dengan tipe konten conversations.
Buat percakapan baru. Mengembalikan objek percakapan dengan daftar pesan kosong.
{
"object": "conversation",
"id": "550e8400-...",
"title": null,
"cost": 0,
"messages": [],
"created_at": "2026-03-01T12:00:00Z"
}
Kirim pesan ke percakapan dan terima respons AI melalui Server-Sent Events (SSE). Lihat bagian Chat Completions untuk detail format event SSE.
| Parameter | Tipe | Deskripsi |
|---|---|---|
modeldiperlukan |
string | Model yang akan digunakan untuk respons |
contentopsional |
string | Teks pesan |
assistant_idopsional |
string | UUID dari asisten yang digunakan untuk pesan ini |
parent_idopsional |
string | UUID dari pesan induk (untuk percakapan bercabang) |
fileopsional |
file | Lampiran (gambar, dokumen, audio/video — maks 25 MB) |
recordingopsional |
file | Rekaman suara (mp3, wav, webm, ogg — maks 10 MB) |
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" }'
multipart/form-data saat mengunggah file. Untuk melihat daftar atau menghapus percakapan, gunakan API Perpustakaan dengan tipe conversations.
Kelola profil pengguna Anda dan buat kunci API secara terprogram.
Perbarui informasi profil Anda.
| Parameter | Tipe | Deskripsi |
|---|---|---|
first_nameopsional |
string | Nama depan (maks 50 karakter) |
last_nameopsional |
string | Nama belakang (maks 50 karakter) |
languageopsional |
string | Kode bahasa pilihan (misalnya "en", "fr") |
preferencesopsional |
object | Pengaturan preferensi pengguna |
Buat kunci API baru. Konfirmasi kata sandi diperlukan demi keamanan. Kunci API lengkap ditampilkan satu kali dalam respons ini — simpan dengan aman.
| Parameter | Tipe | Deskripsi |
|---|---|---|
current_passworddiperlukan |
string | Kata sandi akun Anda saat ini |
{
"id": "550e8400-...",
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@example.com",
"api_key": "zub_live_a1b2c3d4e5f6..."
}
api_key ditampilkan lengkap hanya dalam respons ini. Panggilan API berikutnya mengembalikan versi tersamar. Perlakukan seperti kata sandi.
Jelajahi paket yang tersedia, lihat riwayat pesanan, mulai pembayaran, dan kelola langganan.
Buat daftar paket berlangganan yang tersedia.
| Parameter | Tipe | Deskripsi |
|---|---|---|
billing_cycleopsional |
string | Filter berdasarkan siklus penagihan |
Buat daftar pesanan untuk ruang kerja saat ini. Mendukung penomoran halaman berbasis kursor.
| Parameter | Tipe | Deskripsi |
|---|---|---|
statusopsional |
string | Filter berdasarkan status pesanan |
billing_cycleopsional |
string | Filter berdasarkan siklus penagihan |
Mulai pembayaran untuk paket berlangganan atau pembelian kredit. Memerlukan izin pengelolaan ruang kerja.
| Parameter | Tipe | Deskripsi |
|---|---|---|
idopsional |
string | UUID dari paket berlangganan (diperlukan jika tidak ada amount) |
amountopsional |
integer | Jumlah pembelian kredit dalam sen (min 1000, diperlukan jika tidak ada id) |
gatewayopsional |
string | Gerbang pembayaran: stripe atau paypal |
Batalkan langganan ruang kerja saat ini. Memerlukan izin pengelolaan ruang kerja.
Laporkan konten yang tidak pantas atau melanggar kebijakan di perpustakaan umum.
Kirimkan laporan konten. Setiap pengguna hanya dapat melaporkan item tertentu satu kali.
| Parameter | Tipe | Deskripsi |
|---|---|---|
item_iddiperlukan |
string | UUID dari item perpustakaan yang akan dilaporkan |
reasondiperlukan |
integer | Kode alasan: 0 (spam), 1 (pelecehan), 2 (kekerasan), 3 (konten seksual), 4 (lainnya) |
descriptionopsional |
string | Detail tambahan (maks 2000 karakter) |
{
"id": "550e8400-e29b-41d4-a716-446655440000"
}
409 Conflict.
Cakupan API lengkap lebih luas daripada bagian di atas. Endpoint berikut sudah aktif dan menggunakan autentikasi yang sama:
POST /api/ai/three-d | Pembuatan model 3D (Tripo, Meshy…) |
POST /api/ai/tts · POST /api/ai/speeches | Text-to-speech (dukungan native + preset) |
POST /api/ai/transcriptions | Transkripsi audio batch (pemilih model) |
GET /api/ai/transcriptions/realtime/token · POST /api/ai/transcriptions/realtime/save | Transkripsi mikrofon langsung (token sesi + simpan) |
POST /api/ai/translations · GET /api/ai/translation-languages | Terjemahan teks + bahasa yang didukung |
POST /api/ai/document-extractions | Ekstraksi teks dokumen (OCR) |
GET /api/ai/video-understanding/{jobId} | Status pekerjaan pemahaman video |
/api/library-stacks | Koleksi pustaka — CRUD lengkap |
/api/chatroom | Ruang obrolan tim (percakapan AI bersama) |
POST /api/graphql · GET /api/graphql/subscriptions | GraphQL API (kueri + langganan) |
/api/automation | Alur kerja otomatisasi (build + run) |
API menggunakan kode status HTTP standar dan mengembalikan pesan kesalahan terperinci.
| Kode | Deskripsi |
|---|---|
400 |
Bad Request — Parameter tidak valid |
401 |
Unauthorized — Kunci API tidak valid atau hilang |
403 |
Forbidden — Kredit atau model tidak mencukupi pada paket Anda |
404 |
Not Found — Model atau sumber daya tidak ditemukan |
413 |
Payload Too Large — File melebihi batas ukuran |
429 |
Too Many Requests — Batas permintaan terlampaui |
500 |
Internal Server Error |
503 |
Service Unavailable — Kelebihan beban sementara |
{
"error": {
"message": "Invalid API key provided",
"type": "authentication_error",
"code": "invalid_api_key"
}
}
Batas permintaan berbeda menurut paket. Header disertakan dalam setiap respons:
| Header | Deskripsi |
|---|---|
X-RateLimit-Limit |
Permintaan diperbolehkan per menit |
X-RateLimit-Remaining |
Sisa permintaan dalam periode berjalan |
X-RateLimit-Reset |
Timestamp Unix saat batas direset |
Jika mencapai batas permintaan, tunggu hingga waktu reset atau hubungi kami untuk menaikkan batas Anda.
Ada pertanyaan tentang API? Baca FAQ kami atau hubungi kami langsung.