Dokumentasi API

Pendahuluan

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.

URL Dasar

https://api.zubnet.com/v1

Mulai Cepat

# 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)

Otentikasi

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.

Menggunakan Kunci Penyedia Anda Sendiri (BYOK)

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.

Penyedia BYOK yang didukung

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

Model

GET /v1/models

Tampilkan semua model yang tersedia.

curl https://api.zubnet.com/v1/models \
  -H "Authorization: Bearer $ZUBNET_API_KEY"
Respons
{
  "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

Buat chat completion. Ini adalah endpoint utama untuk pembuatan teks dan kompatibel dengan format chat completions OpenAI.

Isi Permintaan

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

Contoh Permintaan

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
  }'
Respons
{
  "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
  }
}

Streaming

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", ...}

Pembuatan Kode

POST /api/ai/completions/code

Buat kode dari prompt bahasa alami. Respons dikirim secara streaming melalui Server-Sent Events (SSE).

Isi Permintaan

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)

Contoh Permintaan

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"
  }'
Endpoint ini melakukan streaming melalui SSE. Anda akan menerima event chunk berisi konten bertahap, lalu event document yang memuat seluruh kode hasil pembuatan.
Objek Respons Akhir
{
  "object": "code_document",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "model": "claude-sonnet-5",
  "cost": 1,
  "title": "Prime Number Checker",
  "content": "def is_prime(n): ..."
}

Pembuatan Gambar

POST /v1/images/generations

Buat gambar dari prompt teks menggunakan model FLUX, Stable Diffusion, Ideogram, dan lainnya.

Model yang Tersedia

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

Isi Permintaan

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"

Contoh Permintaan

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"
  }'
Respons
{
  "created": 1699900000,
  "data": [
    {
      "url": "https://zubnet.com/files/abc123.png",
      "revised_prompt": "A serene mountain lake..."
    }
  ]
}

Pembuatan Video

POST /api/ai/videos

Buat video dari prompt teks atau gambar. Mendukung alur kerja text-to-video, image-to-video, dan video-to-video.

Model yang Tersedia

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

Isi Permintaan

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.

Contoh: Teks-ke-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
  }'

Contoh: Gambar-ke-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"
Pembuatan video berjalan asinkron. Respons menyertakan kolom state dengan nilai (“processing”, “completed”, “failed”) serta kolom progress berupa persentase. Lakukan polling pada endpoint pustaka untuk memeriksa status penyelesaian.
Respons
{
  "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"
}

Pemahaman Video

Analisis konten video dengan AI. Kirim URL video untuk dianalisis, lalu lakukan polling untuk mengambil hasilnya. Mendukung beberapa jenis analisis.

POST /api/ai/video-understanding

Kirim video untuk dianalisis AI. Respons mengembalikan ID tugas yang dapat digunakan untuk melakukan polling hasil.

Isi Permintaan

Parameter Tipe Deskripsi
video_urldiperlukan string URL HTTPS publik dari video yang akan dianalisis
typeopsional string Jenis analisis: summary (standar), topics, chapters, atau highlights

Contoh Permintaan

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"
  }'
Respons
{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "queued"
}
GET /api/ai/video-understanding/{jobId}

Periksa status pekerjaan analisis video.

Respons (selesai)
{
  "status": "completed",
  "result": {
    "type": "summary",
    "content": "The video shows a product demonstration..."
  }
}
URL video harus berupa tautan HTTPS yang dapat diakses publik. URL privat/internal ditolak demi keamanan. Hasil disimpan dalam cache selama 1 jam.

Komposisi Musik

POST /api/ai/compositions

Hasilkan musik asli dari deskripsi teks, lirik, atau tag gaya.

Model yang Tersedia

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

Isi Permintaan

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

Contoh Permintaan

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
  }'
Model Suno biasanya mengembalikan 2 varian komposisi per permintaan. Lyria mengembalikan satu klip berdurasi 30 detik pada 48kHz.
Respons
[
  {
    "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
  }
]

Efek Suara

POST /api/ai/sound-effects

Hasilkan efek suara dari deskripsi teks.

Isi Permintaan

Parameter Tipe Deskripsi
modeldiperlukan string Model efek suara yang akan digunakan
promptdiperlukan string Deskripsi efek suara yang akan dihasilkan

Contoh Permintaan

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"
  }'
Respons
{
  "object": "sound_effect",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "model": "sound-effect-model",
  "cost": 1,
  "output_file": {
    "url": "https://zubnet.com/files/abc123.mp3"
  }
}

Teks-ke-Ucapan

POST /v1/audio/speech

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

Contoh Permintaan

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

Transkripsi

POST /v1/audio/transcriptions

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")

Contoh Permintaan

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

Isolasi Suara

POST /api/ai/isolated-voices

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)

Contoh Permintaan

curl https://zubnet.com/api/ai/isolated-voices \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -F "file=@noisy-recording.mp3"
Respons
{
  "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"
  }
}

Pemisahan Stem

POST /api/ai/stem-separations

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)

Contoh Permintaan

curl https://zubnet.com/api/ai/stem-separations \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -F "file=@song.mp3"
Respons
{
  "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"
  }
}

Suara

Buat dan kelola suara khusus untuk pembuatan text-to-speech.

POST /api/voices

Buat suara khusus dengan mengunggah sampel audio.

GET /api/voices

Cantumkan semua suara yang tersedia di ruang kerja Anda, termasuk suara khusus yang Anda buat.

PUT /api/voices/{id}

Perbarui suara khusus (nama, pengaturan).

DELETE /api/voices/{id}

Hapus suara khusus.

ID suara kustom dapat digunakan sebagai nilai parameter voice pada endpoint Text-to-Speech.

Penyematan

POST /v1/embeddings

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)

Contoh Permintaan

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"
  }'

Basis Pengetahuan

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.

POST /api/knowledge-bases

Buat basis pengetahuan baru.

Isi Permintaan

Parameter Tipe Deskripsi
namediperlukan string Nama basis pengetahuan
descriptionopsional string Deskripsi basis pengetahuan

Contoh: Buat 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"
  }'
Respons
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "My KB",
  "description": "Optional description",
  "status": "active"
}
GET /api/knowledge-bases

Buat daftar semua basis pengetahuan di ruang kerja Anda.

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

Dapatkan detail basis pengetahuan tertentu, termasuk dokumennya.

DELETE /api/knowledge-bases/{id}

Hapus basis pengetahuan dan semua dokumennya.

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

Tambahkan dokumen ke basis pengetahuan. Mendukung unggahan file, URL, dan teks mentah.

Isi Permintaan

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")

Contoh: Masukkan File

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

Contoh: Masukkan 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"
  }'

Contoh: Masukkan Teks Mentah

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

Tampilkan semua dokumen dalam basis pengetahuan.

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

Hapus dokumen tertentu dari basis pengetahuan.

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

Baca konten teks hasil ekstraksi dari dokumen tertentu.

Pemeringkatan ulang

POST /v1/reranking

Urutkan ulang daftar dokumen menurut relevansinya terhadap kueri. Berguna untuk meningkatkan hasil pencarian, pipeline RAG, dan sistem rekomendasi.

Model yang Tersedia

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

Isi Permintaan

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

Contoh Permintaan

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
  }'
Respons
{
  "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"
}
Hasil diurutkan berdasarkan skor relevansi dari tertinggi ke terendah. Kolom index menunjukkan posisi setiap dokumen dalam array input asli.

Perpustakaan

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.

GET /api/library/{type}

Tampilkan item di pustaka Anda berdasarkan tipe konten.

Jenis Konten

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

Parameter Kueri

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
Respons
{
  "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}

Dapatkan satu item perpustakaan berdasarkan ID. Ini adalah endpoint utama untuk melakukan polling atas status pembuatan asinkron.

Status Pembuatan

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

Pola Polling

# 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!)
Paginasi berbasis kursor. Gunakan id dari item terakhir sebagai starting_after untuk mengambil halaman berikutnya. Tidak ada parameter offset/page.
POST /api/library/{type}/{id}

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.)
DELETE /api/library/{type}/{id}

Hapus item perpustakaan dan file terkaitnya.

GET /api/library/{type}/count

Dapatkan jumlah total item untuk suatu tipe konten. Mendukung filter query dan model yang sama seperti endpoint daftar.

Asisten

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.

POST /api/assistants

Buat asisten baru.

GET /api/assistants

Buat daftar semua asisten di ruang kerja Anda.

PUT /api/assistants/{id}

Perbarui konfigurasi asisten (nama, model, sistem prompt, pengaturan).

DELETE /api/assistants/{id}

Hapus asisten.

Toko MCP

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.

GET /api/mcp-store/servers

Telusuri katalog server MCP.

Parameter Kueri

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
Respons
{
  "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

Aktifkan server MCP untuk ruang kerja Anda. Berikan nilai konfigurasi (kunci API dan sebagainya) sebagaimana ditentukan oleh server dalam config_schema.

Isi Permintaan

Parameter Tipe Deskripsi
server_iddiperlukan string UUID dari server MCP untuk diaktifkan
configopsional object Nilai konfigurasi cocok dengan config_schema server

Contoh Permintaan

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"
    }
  }'
Respons (201 Created)
{
  "id": "act-uuid-...",
  "server_id": "550e8400-...",
  "status": 1,
  "config": {
    "api_key": "••••••••"
  },
  "server": {
    "name": "GitHub",
    ...
  },
  "created_at": "2026-03-01T12:00:00Z"
}
Kolom rahasia dalam konfigurasi disamarkan di respons API. Setiap ruang kerja hanya dapat mengaktifkan satu server tertentu. Nilai id yang dikembalikan adalah activation_id yang digunakan untuk menautkan server MCP ke agen.
GET /api/mcp-store/activations

Cantumkan semua server MCP yang diaktifkan di ruang kerja Anda.

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

Perbarui konfigurasi atau status aktivasi.

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

Nonaktifkan server MCP dari ruang kerja Anda.

Agen

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.

POST /api/agents

Buat agen baru.

Isi Permintaan

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)

Contoh Permintaan

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"
  }'
Respons (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

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)
Respons
{
  "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}

Dapatkan detail lengkap tentang agen tertentu, termasuk salurannya, server MCP yang tertaut, dan basis pengetahuan.

PUT /api/agents/{id}

Perbarui agen. Semua bidang bersifat opsional — hanya bidang yang disediakan yang diubah.

Isi Permintaan

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)

Objek Izin

{
  "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}

Hapus agen. Tindakan ini juga menghapus semua saluran, pemicu, pesan, dan integrasinya.

Integrasi

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

Tautkan basis pengetahuan ke agen untuk respons berbasis RAG. Body: { "knowledge_base_id": "uuid" }

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

Putuskan tautan basis pengetahuan dari agen.

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

Tautkan server MCP ke agen untuk memperluas penggunaan tool. Body: { "activation_id": "uuid" }

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

Putuskan tautan server MCP dari agen.

GET /api/agents/{id}/messages

Ambil riwayat percakapan untuk agen.

Parameter Tipe Deskripsi
limitquery integer Jumlah pesan yang akan dikembalikan. Default: 25, maks: 100
Respons
{
  "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
    }
  ]
}
Agen memerlukan fitur Agen untuk diaktifkan pada paket Anda. Batasan paket berlaku untuk jumlah agen, saluran per agen, dan pemicu per agen.

Saluran Agen

Hubungkan agen ke platform komunikasi. Setiap agen mendukung satu saluran per jenis (satu bot Telegram, satu bot Discord).

POST /api/agents/{id}/channels

Tambahkan saluran komunikasi ke agen.

Isi Permintaan

Parameter Tipe Deskripsi
typediperlukan string "telegram" atau "discord"
tokendiperlukan string Token Bot dari Telegram BotFather atau Discord Developer Portal (maks 256)

Contoh Permintaan

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..."
  }'
Respons (201 Created)
{
  "id": "ch-uuid-...",
  "type": "telegram",
  "status": 1,
  "metadata": {},
  "last_error": null,
  "last_message_at": null,
  "created_at": 1709136000
}
Token bot divalidasi melalui API platform sebelum aktivasi dan dienkripsi saat tersimpan. Untuk Telegram, webhook dikonfigurasi secara otomatis. Status kanal: 0 = tidak aktif, 1 = aktif, 2 = error.
GET /api/agents/{id}/channels

Daftar semua saluran yang terhubung ke agen.

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

Hapus saluran dari agen.

Agen Pemicu

Otomatiskan tindakan agen dengan pemicu. Pemicu terjadwal memakai ekspresi cron untuk berjalan pada waktu tertentu; pemicu peristiwa dijalankan sebagai respons terhadap peristiwa eksternal.

POST /api/agents/{id}/triggers

Buat pemicu otomatis untuk agen.

Isi Permintaan

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

Contoh: Pemicu Ringkasan Harian

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"
  }'
Respons (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

Cantumkan semua pemicu untuk agen.

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

Perbarui pemicu. Semua bidang bersifat opsional. Tetapkan status ke 0 untuk menonaktifkan atau 1 untuk mengaktifkan.

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

Hapus pemicu.

Pemicu terjadwal dijalankan secara asinkron melalui antrean pesan. Setiap eksekusi memeriksa apakah agen aktif dan ruang kerja memiliki kredit yang cukup sebelum diproses.

Ruang kerja

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.

POST /api/workspaces

Buat ruang kerja baru.

Parameter Tipe Deskripsi
namediperlukan string Nama ruang kerja (maks 50 karakter)
Respons (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}

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)
DELETE /api/workspaces/{id}

Hapus ruang kerja. Memerlukan izin pengelolaan ruang kerja.

POST /api/workspaces/{id}/invitations

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
DELETE /api/workspaces/{id}/invitations/{invitationId}

Batalkan undangan yang tertunda.

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

Hapus anggota dari ruang kerja, atau tinggalkan ruang kerja dengan menggunakan ID pengguna Anda sendiri.

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

Cantumkan statistik penggunaan gabungan untuk ruang kerja. Mendukung penomoran halaman berbasis kursor.

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

Tampilkan rincian entri penggunaan (item pustaka yang selesai dengan biaya > 0). Setiap entri mencakup jenis, model, judul, biaya, dan stempel waktu.

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

Dapatkan jumlah total item penggunaan.

Endpoint penggunaan dan pengelolaan ruang kerja memerlukan izin manage (pemilik atau admin ruang kerja).

Percakapan

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.

POST /api/ai/conversations

Buat percakapan baru. Mengembalikan objek percakapan dengan daftar pesan kosong.

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

Kirim pesan ke percakapan dan terima respons AI melalui Server-Sent Events (SSE). Lihat bagian Chat Completions untuk detail format event SSE.

Isi Permintaan

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)

Contoh Permintaan

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"
  }'
Pesan dialirkan melalui SSE. Gunakan multipart/form-data saat mengunggah file. Untuk melihat daftar atau menghapus percakapan, gunakan API Perpustakaan dengan tipe conversations.

Akun

Kelola profil pengguna Anda dan buat kunci API secara terprogram.

PUT /api/account

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
POST /api/account/rest-api-keys

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
Respons
{
  "id": "550e8400-...",
  "first_name": "Jane",
  "last_name": "Doe",
  "email": "jane@example.com",
  "api_key": "zub_live_a1b2c3d4e5f6..."
}
Kolom api_key ditampilkan lengkap hanya dalam respons ini. Panggilan API berikutnya mengembalikan versi tersamar. Perlakukan seperti kata sandi.

Penagihan

Jelajahi paket yang tersedia, lihat riwayat pesanan, mulai pembayaran, dan kelola langganan.

GET /api/billing/plans

Buat daftar paket berlangganan yang tersedia.

Parameter Tipe Deskripsi
billing_cycleopsional string Filter berdasarkan siklus penagihan
GET /api/billing/orders

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
POST /api/billing/checkout

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
DELETE /api/billing/subscription

Batalkan langganan ruang kerja saat ini. Memerlukan izin pengelolaan ruang kerja.

Laporan Konten

Laporkan konten yang tidak pantas atau melanggar kebijakan di perpustakaan umum.

POST /api/content-reports

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)
Respons (201 Created)
{
  "id": "550e8400-e29b-41d4-a716-446655440000"
}
Laporan duplikat (pengguna dan item yang sama) mengembalikan error 409 Conflict.

Endpoint Lainnya

Cakupan API lengkap lebih luas daripada bagian di atas. Endpoint berikut sudah aktif dan menggunakan autentikasi yang sama:

POST /api/ai/three-dPembuatan model 3D (Tripo, Meshy…)
POST /api/ai/tts  ·  POST /api/ai/speechesText-to-speech (dukungan native + preset)
POST /api/ai/transcriptionsTranskripsi audio batch (pemilih model)
GET /api/ai/transcriptions/realtime/token  ·  POST /api/ai/transcriptions/realtime/saveTranskripsi mikrofon langsung (token sesi + simpan)
POST /api/ai/translations  ·  GET /api/ai/translation-languagesTerjemahan teks + bahasa yang didukung
POST /api/ai/document-extractionsEkstraksi teks dokumen (OCR)
GET /api/ai/video-understanding/{jobId}Status pekerjaan pemahaman video
/api/library-stacksKoleksi pustaka — CRUD lengkap
/api/chatroomRuang obrolan tim (percakapan AI bersama)
POST /api/graphql  ·  GET /api/graphql/subscriptionsGraphQL API (kueri + langganan)
/api/automationAlur kerja otomatisasi (build + run)

Kesalahan

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
Format Respons Error
{
  "error": {
    "message": "Invalid API key provided",
    "type": "authentication_error",
    "code": "invalid_api_key"
  }
}

Batas Laju

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.

Butuh Bantuan?

Kami di sini untuk Anda

Ada pertanyaan tentang API? Baca FAQ kami atau hubungi kami langsung.