API दस्तावेज़ीकरण

परिचय

Zubnet API आपको टेक्स्ट, इमेज, वीडियो, संगीत, आवाज़, और कोड जनरेशन के लिए 408 AI मॉडल तक प्रोग्रामेटिक एक्सेस देता है। It's fully compatible with the OpenAI API specification — अगर आप पहले से OpenAI का उपयोग कर रहे हैं, तो आप अपना बेस URL और API की बदलकर Zubnet पर स्विच कर सकते हैं।

बेस URL

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)

प्रमाणीकरण

सभी API अनुरोधों को Authorization हेडर में Bearer टोकन के ज़रिए प्रमाणीकरण की आवश्यकता होती है।

Authorization: Bearer YOUR_API_KEY

आप अपने अकाउंट सेटिंग्स। अपनी कीज़ सुरक्षित रखें — वे आपके खाते तक पूरी पहुँच प्रदान करती हैं।

अपनी खुद की प्रोवाइडर कीज़ इस्तेमाल करें (BYOK)

आप समर्थित प्रोवाइडर्स से अपनी खुद की API कीज़ का उपयोग कर सकते हैं। उन्हें अपनी वर्कस्पेस सेटिंग्स में जोड़ें और वे उन प्रोवाइडर्स को अनुरोधों के लिए स्वचालित रूप से उपयोग की जाएंगी — बिना किसी मार्कअप के। BYOK उन प्लान पर उपलब्ध है जो इसे सपोर्ट करते हैं।

जब किसी प्रोवाइडर के लिए BYOK कुंजी कॉन्फ़िगर की जाती है, तो यह प्लेटफ़ॉर्म कुंजी पर प्राथमिकता लेती है। आपके API अनुरोधों में कोई बदलाव करने की आवश्यकता नहीं है — की का समाधान पूरी तरह से पारदर्शी है।

समर्थित BYOK प्रोवाइडर

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

मॉडल

GET /v1/models

सभी उपलब्ध मॉडल सूचीबद्ध करें।

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

चैट कम्प्लीशन

POST /v1/chat/completions

चैट कम्प्लीशन बनाएँ। यह टेक्स्ट जनरेशन के लिए प्राथमिक एंडपॉइंट है, OpenAI चैट कम्प्लीशन फ़ॉर्मैट के साथ संगत।

रिक्वेस्ट बॉडी

पैरामीटर प्रकार विवरण
modelआवश्यक string उपयोग करने के लिए मॉडल ID (जैसे, "claude-sonnet-5", "deepseek-chat", "gemini-2.5-pro")
messagesआवश्यक ऐरे मैसेज ऑब्जेक्ट्स की एरे जिसमें role और content
temperatureवैकल्पिक संख्या सैंपलिंग टेम्परेचर (0-2). Default: 0.7
max_tokensवैकल्पिक इंटीजर जनरेट करने के लिए अधिकतम टोकन (1-128000)। डिफ़ॉल्ट: 4096
streamवैकल्पिक बूलियन SSE के ज़रिए रिस्पॉन्स स्ट्रीम करें। डिफ़ॉल्ट: true
top_pवैकल्पिक संख्या न्यूक्लियस सैंपलिंग पैरामीटर (0-1)। डिफ़ॉल्ट: 1
frequency_penaltyवैकल्पिक संख्या फ़्रीक्वेंसी पेनल्टी (-2 से 2)। डिफ़ॉल्ट: 0
presence_penaltyवैकल्पिक संख्या प्रेज़ेंस पेनल्टी (-2 से 2)। डिफ़ॉल्ट: 0
stopवैकल्पिक string/array स्टॉप सीक्वेंस

उदाहरण अनुरोध

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

स्ट्रीमिंग

कब stream true होने पर, प्रतिक्रिया Server-Sent Events (SSE) के रूप में दी जाती है। प्रत्येक इवेंट का एक नामित टाइप और एक JSON पेलोड होता है:

इवेंट विवरण
token मॉडल से एक टेक्स्ट टोकन/डेल्टा
reasoning-token एक विस्तारित सोच टोकन (रीज़निंग सपोर्ट करने वाले मॉडल के लिए)
call नाम और पैरामीटर के साथ एक टूल/फ़ंक्शन कॉल
message अंतिम पूर्ण मैसेज ऑब्जेक्ट (स्ट्रीम समाप्त होने पर भेजा जाता है)
error स्ट्रीमिंग विफल होने पर एरर मैसेज
// SSE event format
event: token
data: {"data": "Hello", "attributes": {}}

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

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

कोड जनरेशन

POST /api/ai/completions/code

प्राकृतिक भाषा प्रॉम्प्ट से कोड जनरेट करें। Server-Sent Events (SSE) के ज़रिए स्ट्रीमिंग रिस्पॉन्स लौटाता है।

रिक्वेस्ट बॉडी

पैरामीटर प्रकार विवरण
promptआवश्यक string जनरेट करने के लिए कोड का प्राकृतिक भाषा विवरण
languageआवश्यक string प्रोग्रामिंग भाषा (जैसे, "python", "javascript", "rust")
temperatureवैकल्पिक संख्या सैंपलिंग टेम्परेचर (0-2)
max_tokensवैकल्पिक इंटीजर जनरेट करने के लिए अधिकतम टोकन (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"
  }'
यह एंडपॉइंट SSE के माध्यम से स्ट्रीम करता है। आपको प्राप्त होगा chunk क्रमिक कंटेंट वाले इवेंट्स, जिसके बाद एक अंतिम document इवेंट जिसमें पूरा जनरेट किया गया कोड हो।
अंतिम रिस्पॉन्स ऑब्जेक्ट
{
  "object": "code_document",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "model": "claude-sonnet-5",
  "cost": 1,
  "title": "Prime Number Checker",
  "content": "def is_prime(n): ..."
}

इमेज जनरेशन

POST /v1/images/generations

FLUX, Stable Diffusion, Ideogram, और अन्य के मॉडल इस्तेमाल करके टेक्स्ट प्रॉम्प्ट से इमेज जनरेट करें।

उपलब्ध मॉडल

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

रिक्वेस्ट बॉडी

पैरामीटर प्रकार विवरण
modelआवश्यक string इस्तेमाल करने के लिए इमेज मॉडल
promptआवश्यक string जनरेट करने के लिए इमेज का टेक्स्ट विवरण
nवैकल्पिक इंटीजर जनरेट करने के लिए इमेज की संख्या. Default: 1
sizeवैकल्पिक string इमेज साइज़ (उदाहरण के लिए, "1024x1024", "1792x1024")
response_formatवैकल्पिक string "url" या "b64_json"। डिफ़ॉल्ट: "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..."
    }
  ]
}

असिंक्रोनस मॉडल — 202 Accepted

कुछ मॉडल (FLUX, Runway, Luma, Kling, Leonardo, Vidu, Bria enhance/upscale) असिंक्रोनस रूप से जनरेट करते हैं: वे जॉब स्वीकार करते हैं और कुछ ही क्षणों बाद उसे पूरा करते हैं। इनके लिए एंडपॉइंट इमेज के बजाय एक पोल हैंडल के साथ 202 Accepted देता है — OpenAI कॉन्ट्रैक्ट का एक जानबूझकर किया गया विस्तार, जिसमें ऐसा कोई रूट नहीं है:

प्रतिक्रिया — 202 Accepted
{
  "id": "01934f2e-7c1b-7e55-9f3a-2d1c0b4a8f66",
  "status": "queued",
  "poll": "/v1/images/01934f2e-7c1b-7e55-9f3a-2d1c0b4a8f66"
}
GET /v1/images/{id}

असिंक्रोनस रूप से शुरू किए गए जनरेशन को पोल करें। queued, processing, completed या failedरिपोर्ट करता है; पूरा होने पर इमेज URL सिंक प्रतिक्रिया जैसे ही data आकार में दिखाई देता है। कॉल करने वाली API कुंजी के वर्कस्पेस तक सीमित — जो id मौजूद नहीं है या किसी अन्य वर्कस्पेस की है, वह वही 404.

प्रतिक्रिया — पूर्ण
{
  "id": "01934f2e-7c1b-7e55-9f3a-2d1c0b4a8f66",
  "status": "completed",
  "created": 1699900000,
  "data": [
    {
      "url": "https://zubnet.com/files/abc123.png"
    }
  ]
}
POST /v1/images/edits

टेक्स्ट प्रॉम्प्ट से इमेज संपादित करें — OpenAI का images.edit कॉन्ट्रैक्ट, multipart/form-dataके रूप में भेजा जाता है। उन मॉडलों पर उपलब्ध जो इनपुट इमेज स्वीकार करते हैं (उनके मॉडल कार्ड में इमेज एडिटिंग सूचीबद्ध है): gpt-image-2.5-sunburst, gpt-image-2.5-flare, gpt-image-2, p-image-edit, gen4_image, luma/photon-1 और अन्य। कोई भी अन्य मॉडल 400देता है। सिंक्रोनस और असिंक्रोनस मॉडल जनरेशन जैसे ही 200 / 202 कॉन्ट्रैक्ट का पालन करते हैं।

फ़ॉर्म फ़ील्ड

फ़ील्ड प्रकार विवरण
modelआवश्यक string एक इमेज मॉडल जो इनपुट इमेज स्वीकार करता है
promptआवश्यक string क्या बदलना है
imageआवश्यक फ़ाइल संपादित की जाने वाली इमेज (PNG, JPEG या WebP)। जहाँ मॉडल अनुमति देता है वहाँ कई इमेज भेजने के लिए image[] भेजें
maskवैकल्पिक फ़ाइल अल्फा चैनल वाला PNG, इमेज के समान आकार का; पारदर्शी पिक्सेल बताते हैं कि क्या दोबारा बनाना है। केवल gpt-image मॉडल
sizeवैकल्पिक string आउटपुट आकार (जैसे "1024x1024", "1536x1024")
qualityवैकल्पिक string gpt-image परिवार पर "low", "medium" या "high"
nवैकल्पिक इंटीजर जनरेट किए जाने वाले संपादनों की संख्या। डिफ़ॉल्ट: 1

उदाहरण अनुरोध

curl https://api.zubnet.com/v1/images/edits \
  -H "Authorization: Bearer $ZUBNET_API_KEY" \
  -F "model=gpt-image-2.5-sunburst" \
  -F "prompt=Turn the sky into a starry night, keep everything else" \
  -F "image=@photo.png"
प्रतिक्रिया
{
  "created": 1699900000,
  "data": [
    {
      "url": "https://zubnet.com/files/def456.png",
      "revised_prompt": "Turn the sky into a starry night, keep everything else"
    }
  ]
}

वीडियो जनरेशन

POST /api/ai/videos

टेक्स्ट प्रॉम्प्ट या इमेज से वीडियो जनरेट करें। टेक्स्ट-टू-वीडियो, इमेज-टू-वीडियो, और वीडियो-टू-वीडियो वर्कफ़्लो सपोर्ट करता है।

उपलब्ध मॉडल

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

रिक्वेस्ट बॉडी

पैरामीटर प्रकार विवरण
modelआवश्यक string इस्तेमाल करने के लिए वीडियो मॉडल
promptआवश्यक* string वीडियो का टेक्स्ट विवरण। *लिप-सिंक या अपस्केल मॉडल के लिए ज़रूरी नहीं
framesवैकल्पिक file[] इमेज-टू-वीडियो के लिए इनपुट इमेज। प्रत्येक अधिकतम 10MB (jpg, png, webp)
videoवैकल्पिक फ़ाइल वीडियो-टू-वीडियो के लिए इनपुट वीडियो। अधिकतम 100MB (mp4, webm, mov)
audioवैकल्पिक फ़ाइल लिप-सिंक मॉडल के लिए ऑडियो फ़ाइल। अधिकतम 25MB
aspect_ratioवैकल्पिक string आस्पेक्ट रेशियो (जैसे, "16:9", "9:16", "1:1")
durationवैकल्पिक इंटीजर सेकंड में वीडियो अवधि
negative_promptवैकल्पिक string वीडियो में क्या नहीं चाहिए (मॉडल पर निर्भर)
resolutionवैकल्पिक string आउटपुट रेज़ोल्यूशन, जैसे "480p", "720p", "1080p", "4k" (मॉडल पर निर्भर)
qualityवैकल्पिक string क्वालिटी/स्पीड स्तर जहाँ समर्थित ("speed" या "quality")
audioवैकल्पिक string "on"/"off" — समर्थित मॉडलों पर नेटिव सिंक ऑडियो (Seedance 2.0, Kling, PixVerse, CogVideoX…)
seedवैकल्पिक इंटीजर पुनरुत्पादन के लिए सीड (जहाँ समर्थित)
styleवैकल्पिक string स्टाइल प्रीसेट (समर्थित मॉडल, जैसे Vidu: "general"/"anime")
हर मॉडल अपने विशिष्ट विकल्प भी स्वीकारता है (fps, multi_clip, mode, loop, motion_mode, अनुपात…) — बिल्कुल वही सेलेक्टर जो ऐप में उस मॉडल के लिए दिखते हैं। अज्ञात पैरामीटर अनदेखे किए जाते हैं।

उदाहरण: टेक्स्ट-टू-वीडियो

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 फ़ील्ड (“प्रोसेसिंग”, “पूर्ण”, “विफल”) और एक progress प्रतिशत। पूर्णता की स्थिति जांचने के लिए लाइब्रेरी एंडपॉइंट को पोल करें।
प्रतिक्रिया
{
  "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"
}

वीडियो अंडरस्टैंडिंग

AI का उपयोग करके वीडियो कंटेंट का विश्लेषण करें। विश्लेषण के लिए वीडियो URL सबमिट करें और परिणामों के लिए पोल करें। मल्टीple analysis types.

POST /api/ai/video-understanding

AI विश्लेषण के लिए वीडियो सबमिट करें। एक जॉब ID मिलती है जिसे आप परिणामों के लिए पोल कर सकते हैं।

रिक्वेस्ट बॉडी

पैरामीटर प्रकार विवरण
video_urlआवश्यक string विश्लेषण के लिए वीडियो का सार्वजनिक HTTPS URL
typeवैकल्पिक string विश्लेषण का प्रकार: summary (डिफ़ॉल्ट), topics, chapters, या 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"
}
GET /api/ai/video-understanding/{jobId}

वीडियो विश्लेषण जॉब की स्थिति जाँचें।

रिस्पॉन्स (completed)
{
  "status": "completed",
  "result": {
    "type": "summary",
    "content": "The video shows a product demonstration..."
  }
}
वीडियो URLs सार्वजनिक HTTPS लिंक होने चाहिए। सुरक्षा कारणों से प्राइवेट/इंटरनल URLs अस्वीकार किए जाते हैं। Results are cached for 1 hour.

संगीत कम्पोज़िशन

POST /api/ai/compositions

टेक्स्ट विवरण, गीत, या स्टाइल टैग से ओरिजिनल संगीत जनरेट करें।

उपलब्ध मॉडल

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

रिक्वेस्ट बॉडी

पैरामीटर प्रकार विवरण
modelआवश्यक string इस्तेमाल करने के लिए म्यूज़िक मॉडल
promptवैकल्पिक string सेट करने के लिए संगीत या गीत का विवरण
tagsवैकल्पिक string शैली और स्टाइल टैग (e.g., "lo-fi, chill, jazz")
instrumentalवैकल्पिक बूलियन केवल इंस्ट्रूमेंटल जनरेट करें (कोई वोकल नहीं)। डिफ़ॉल्ट: 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
  }'
Suno मॉडल आमतौर पर प्रति अनुरोध 2 कंपोज़िशन वेरिएंट लौटाते हैं। Lyria 48kHz पर एक एकल 30-सेकंड क्लिप लौटाता है।
प्रतिक्रिया
[
  {
    "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
  }
]

साउंड इफ़ेक्ट्स

POST /api/ai/sound-effects

टेक्स्ट विवरण से साउंड इफ़ेक्ट जनरेट करें।

रिक्वेस्ट बॉडी

पैरामीटर प्रकार विवरण
modelआवश्यक string इस्तेमाल करने के लिए साउंड इफ़ेक्ट मॉडल
promptआवश्यक string जनरेट करने के लिए साउंड इफ़ेक्ट का विवरण

उदाहरण अनुरोध

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

टेक्स्ट-टू-स्पीच

POST /v1/audio/speech

ElevenLabs, Cartesia, Speechify, और अन्य की आवाज़ों का इस्तेमाल करके टेक्स्ट को प्राकृतिक भाषण ऑडियो में बदलें।

पैरामीटर प्रकार विवरण
modelआवश्यक string TTS मॉडल (जैसे, "tts-1", "tts-1-hd", "elevenlabs")
inputआवश्यक string स्पीच में बदलने के लिए टेक्स्ट (अधिकतम 5000 अक्षर)
voiceआवश्यक string उपयोग की जाने वाली Voice ID (जैसे, "alloy", "echo", "nova", या एक कस्टम Voice ID)
response_formatवैकल्पिक string ऑडियो फ़ॉर्मैट: mp3, opus, aac, flac। डिफ़ॉल्ट: 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

ट्रांसक्रिप्शन

POST /v1/audio/transcriptions

ऑडियो को टेक्स्ट में ट्रांसक्राइब करें।

पैरामीटर प्रकार विवरण
modelआवश्यक string ट्रांसक्रिप्शन मॉडल (जैसे, "whisper-1")
fileआवश्यक फ़ाइल ट्रांसक्राइब करने के लिए ऑडियो फ़ाइल। अधिकतम 25MB (mp3, mp4, wav, webm, ogg, flac)
languageवैकल्पिक string भाषा कोड (उदाहरण के लिए, "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..."
}

वॉइस आइसोलेशन

POST /api/ai/isolated-voices

ऑडियो से क्लीन वोकल्स निकालें, बैकग्राउंड नॉइज़ और म्यूज़िक हटाएँ। ElevenLabs द्वारा संचालित।

पैरामीटर प्रकार विवरण
fileआवश्यक फ़ाइल ऑडियो फ़ाइल। अधिकतम 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"
  }
}

स्टेम सेपरेशन

POST /api/ai/stem-separations

ऑडियो को अलग-अलग स्टेम्स में विभाजित करें (वोकल्स, ड्रम्स, बेस, गिटार, पियानो, अन्य)। ElevenLabs द्वारा संचालित।

पैरामीटर प्रकार विवरण
fileआवश्यक फ़ाइल ऑडियो फ़ाइल। अधिकतम 25MB (mp3, mp4, wav, m4a, webm, ogg, flac)
stem_variationवैकल्पिक string सेपरेशन मोड। डिफ़ॉल्ट: "six_stems_v1" (वोकल्स, ड्रम्स, बास, गिटार, पियानो, अन्य)

उदाहरण अनुरोध

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

वॉइसेज़

टेक्स्ट-टू-स्पीच जनरेशन के लिए कस्टम आवाज़ें बनाएँ और प्रबंधित करें।

POST /api/voices

ऑडियो सैंपल अपलोड करके कस्टम आवाज़ बनाएँ।

GET /api/voices

अपनी वर्कस्पेस में उपलब्ध सभी आवाज़ें सूचीबद्ध करें, जिसमें आपकी बनाई कस्टम आवाज़ें शामिल हैं।

PUT /api/voices/{id}

कस्टम आवाज़ अपडेट करें (नाम, सेटिंग्स)।

DELETE /api/voices/{id}

कस्टम आवाज़ हटाएँ।

कस्टम आवाज़ ID का उपयोग इसमें किया जा सकता है voice Text-to-Speech एंडपॉइंट का पैरामीटर।

एम्बेडिंग

POST /v1/embeddings

सिमैंटिक सर्च और समानता के लिए टेक्स्ट एम्बेडिंग्स बनाएँ।

पैरामीटर प्रकार विवरण
modelआवश्यक string एम्बेडिंग मॉडल (जैसे, "text-embedding-3-small")
inputआवश्यक string/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"
  }'

नॉलेज बेस

रिट्रीवल-ऑग्मेंटेड जनरेशन (RAG) के लिए नॉलेज बेस बनाएँ और प्रबंधित करें। Upload documents (PDF, DOCX, TXT, Markdown) or add web URLs and raw text, then query them in your chat completions.

POST /api/knowledge-bases

नया नॉलेज बेस बनाएँ।

रिक्वेस्ट बॉडी

पैरामीटर प्रकार विवरण
nameआवश्यक string नॉलेज बेस का नाम
descriptionवैकल्पिक string नॉलेज बेस का विवरण

उदाहरण: एक नॉलेज बेस बनाएँ

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"
}
GET /api/knowledge-bases

अपने वर्कस्पेस के सभी नॉलेज बेस सूचीबद्ध करें।

प्रतिक्रिया
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "My KB",
    "description": "Optional description",
    "status": "active"
  },
  ...
]
GET /api/knowledge-bases/{id}

किसी विशिष्ट नॉलेज बेस का विवरण प्राप्त करें, जिसमें उसके दस्तावेज़ भी शामिल हैं।

DELETE /api/knowledge-bases/{id}

एक नॉलेज बेस और उसके सभी दस्तावेज़ हटाएं।

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

किसी नॉलेज बेस में एक दस्तावेज़ इनजेस्ट करें। यह फ़ाइल अपलोड, URL, और रॉ टेक्स्ट का समर्थन करता है।

रिक्वेस्ट बॉडी

पैरामीटर प्रकार विवरण
fileविकल्प 1 फ़ाइल मल्टीपार्ट फ़ाइल अपलोड (PDF, DOCX, TXT, MD — अधिकतम 10MB)
titleआवश्यक string दस्तावेज़ का शीर्षक (URL और टेक्स्ट प्रकारों के लिए आवश्यक)
typeविकल्प 2/3 string "url" या "text" (नॉन-फ़ाइल इनजेशन के लिए)
urlविकल्प 2 string फ़ेच और इनजेस्ट करने के लिए URL (जब टाइप "url" हो)
contentविकल्प 3 string इनजेस्ट करने के लिए रॉ टेक्स्ट कंटेंट (जब टाइप "text" हो)

उदाहरण: एक फ़ाइल इनजेस्ट करें

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

उदाहरण: एक 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"
  }'

उदाहरण: रॉ टेक्स्ट इनजेस्ट करें

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

नॉलेज बेस के सभी दस्तावेज़ सूचीबद्ध करें।

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

नॉलेज बेस से एक विशिष्ट दस्तावेज़ हटाएं।

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

किसी विशिष्ट दस्तावेज़ की एक्सट्रैक्ट की गई टेक्स्ट सामग्री पढ़ें।

रीरैंकिंग

POST /v1/reranking

क्वेरी के अनुसार डॉक्यूमेंट्स की सूची को प्रासंगिकता के आधार पर रीरैंक करें। Useful for improving search results, RAG pipelines, and recommendation systems.

उपलब्ध मॉडल

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

रिक्वेस्ट बॉडी

पैरामीटर प्रकार विवरण
modelआवश्यक string उपयोग करने के लिए रीरैंकिंग मॉडल
queryआवश्यक string जिसके आधार पर दस्तावेज़ों को रैंक करना है, वह सर्च क्वेरी
documentsआवश्यक ऐरे रीरैंक करने के लिए डॉक्यूमेंट स्ट्रिंग्स की ऐरे
top_nवैकल्पिक इंटीजर लौटाए जाने वाले शीर्ष परिणामों की संख्या। डिफ़ॉल्ट: सभी

उदाहरण अनुरोध

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"
}
परिणामों को प्रासंगिकता स्कोर के अनुसार अवरोही क्रम में सॉर्ट किया जाता है। The index फ़ील्ड मूल इनपुट ऐरे में प्रत्येक दस्तावेज़ की स्थिति को दर्शाता है।

लाइब्रेरी

लाइब्रेरी वह जगह है जहाँ सभी जनरेट किया गया कंटेंट रहता है — इमेज, वीडियो, कंपोज़िशन, कोड दस्तावेज़, ट्रांसक्रिप्शन, और भी बहुत कुछ। इसका उपयोग आइटम सूचीबद्ध करने, एसिंक जनरेशन स्थिति जाँचने, मेटाडेटा अपडेट करने और अपने कंटेंट को प्रबंधित करने के लिए करें।

GET /api/library/{type}

अपनी लाइब्रेरी के आइटम कंटेंट प्रकार के अनुसार सूचीबद्ध करें।

कंटेंट टाइप्स

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

Query पैरामीटर

पैरामीटर प्रकार विवरण
limitवैकल्पिक इंटीजर प्रति पेज परिणाम (अधिकतम 100)
starting_afterवैकल्पिक string आगे की ओर पेजिनेशन के लिए कर्सर (आइटम UUID)
ending_beforeवैकल्पिक string पीछे की ओर पेजिनेशन के लिए कर्सर (आइटम UUID)
sortवैकल्पिक string सॉर्ट फ़ील्ड और दिशा (उदाहरण के लिए, "created_at:desc")
queryवैकल्पिक string फुल-टेक्स्ट सर्च (अधिकतम 255 अक्षर)
modelवैकल्पिक string जनरेशन के लिए उपयोग किए गए मॉडल के अनुसार फ़िल्टर करें
प्रतिक्रिया
{
  "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}

ID के आधार पर एक एकल लाइब्रेरी आइटम प्राप्त करें। यह इसके लिए प्राथमिक एंडपॉइंट है एसिंक जनरेशन स्थिति की पोलिंग.

जनरेशन स्टेट्स

स्थिति मान विवरण
draft 0 अभी सबमिट नहीं किया गया
queued 1 प्रोसेस होने की प्रतीक्षा में
processing 2 वर्तमान में जनरेट हो रहा है
completed 3 पूर्ण — output_file उपलब्ध है
failed 4 जनरेशन विफल रहा

पोलिंग पैटर्न

# 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!)
पेजिनेशन कर्सर-बेस्ड है। Use the id में अंतिम आइटम का starting_after अगला पेज पाने के लिए। कोई offset/page पैरामीटर नहीं हैं।
POST /api/library/{type}/{id}

लाइब्रेरी आइटम का मेटाडेटा अपडेट करें।

पैरामीटर प्रकार विवरण
titleवैकल्पिक string आइटम शीर्षक
visibilityवैकल्पिक इंटीजर 0 (निजी) या 1 (सार्वजनिक)
is_favoritedवैकल्पिक बूलियन पसंदीदा में जोड़ें या हटाएँ
metaवैकल्पिक ऑब्जेक्ट कस्टम मेटाडेटा (शैली, मूड, टैग्स, विवरण, लेखक, आदि)
DELETE /api/library/{type}/{id}

एक लाइब्रेरी आइटम और उससे जुड़ी फ़ाइलें हटाएं।

GET /api/library/{type}/count

किसी कंटेंट टाइप के लिए आइटम्स की कुल गिनती प्राप्त करें। यह वही समर्थन करता है query और model फ़िल्टर लिस्ट एंडपॉइंट के समान।

असिस्टेंट्स

असिस्टेंट्स पुन: उपयोग योग्य चैट प्रीसेट हैं with a custom name, model, system prompt, and settings. Use them to create specialized AI personas for different tasks.

POST /api/assistants

नया असिस्टेंट बनाएँ।

GET /api/assistants

अपनी वर्कस्पेस में सभी असिस्टेंट सूचीबद्ध करें।

PUT /api/assistants/{id}

असिस्टेंट का कॉन्फ़िगरेशन अपडेट करें (नाम, मॉडल, सिस्टम प्रॉम्प्ट, सेटिंग्स)।

DELETE /api/assistants/{id}

एक असिस्टेंट हटाएँ।

MCP स्टोर

MCP (Model Context Protocol) सर्वर ब्राउज़ करें और एक्टिवेट करें to give your agents extended tool capabilities — वेब सर्च और डेटा एक्सेस से लेकर कोड एक्ज़ीक्यूशन और थर्ड-पार्टी इंटीग्रेशन तक।

GET /api/mcp-store/servers

MCP सर्वर कैटलॉग ब्राउज़ करें।

Query पैरामीटर

पैरामीटर प्रकार विवरण
categoryवैकल्पिक string श्रेणी के अनुसार फ़िल्टर करें (search, data, developer, infrastructure, communication, commerce, creative, productivity, social, utilities)
queryवैकल्पिक string नाम या विवरण से खोजें
प्रतिक्रिया
{
  "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

अपने वर्कस्पेस के लिए एक MCP सर्वर सक्रिय करें। सर्वर द्वारा परिभाषित कॉन्फ़िगरेशन वैल्यू (API कीज़ आदि) प्रदान करें config_schema.

रिक्वेस्ट बॉडी

पैरामीटर प्रकार विवरण
server_idआवश्यक string एक्टिवेट करने के लिए MCP सर्वर का UUID
configवैकल्पिक ऑब्जेक्ट सर्वर के config_schema से मेल खाने वाले कॉन्फ़िगरेशन मान

उदाहरण अनुरोध

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"
    }
  }'
रिस्पॉन्स (201 Created)
{
  "id": "act-uuid-...",
  "server_id": "550e8400-...",
  "status": 1,
  "config": {
    "api_key": "••••••••"
  },
  "server": {
    "name": "GitHub",
    ...
  },
  "created_at": "2026-03-01T12:00:00Z"
}
कॉन्फ़िग में सीक्रेट फ़ील्ड्स को API प्रतिक्रियाओं में मास्क किया जाता है। प्रत्येक वर्कस्पेस किसी दिए गए सर्वर को केवल एक बार सक्रिय कर सकता है। लौटाया गया id है activation_id जिसका उपयोग आप MCP सर्वर को एजेंट्स से लिंक करते समय करते हैं।
GET /api/mcp-store/activations

अपने वर्कस्पेस में सक्रिय सभी MCP सर्वर सूचीबद्ध करें।

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

किसी एक्टिवेशन का कॉन्फ़िगरेशन या स्थिति अपडेट करें।

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

अपने वर्कस्पेस से एक MCP सर्वर निष्क्रिय करें।

एजेंट्स

ऑटोनोमस AI एजेंट्स बनाएँ और प्रबंधित करें that operate across communication channels. Agents can respond to messages on Telegram and Discord, run on scheduled triggers, and leverage knowledge bases and MCP servers for extended capabilities.

POST /api/agents

नया एजेंट बनाएँ।

रिक्वेस्ट बॉडी

पैरामीटर प्रकार विवरण
nameआवश्यक string एजेंट का नाम (अधिकतम 64 अक्षर)
modelआवश्यक string उपयोग करने के लिए मॉडल ID (जैसे, "claude-sonnet-5", "deepseek-chat")
system_promptवैकल्पिक string एजेंट के व्यवहार और व्यक्तित्व को परिभाषित करने वाला कस्टम सिस्टम प्रॉम्प्ट
modeवैकल्पिक string "quick" या "advanced"। डिफ़ॉल्ट: "quick"
avatarवैकल्पिक string अवतार URL (अधिकतम 512 अक्षर)

उदाहरण अनुरोध

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"
  }'
रिस्पॉन्स (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

वर्कस्पेस के सभी एजेंट्स सूचीबद्ध करें। पेजिनेशन और फ़िल्टरिंग समर्थित है।

पैरामीटर प्रकार विवरण
limitक्वेरी इंटीजर प्रति पेज परिणाम। डिफ़ॉल्ट: 25
cursorक्वेरी string पेजिनेशन कर्सर
sortक्वेरी string "name", "created_at", या "last_active_at"। डिफ़ॉल्ट: "created_at"
directionक्वेरी string "asc" या "desc"
statusक्वेरी इंटीजर स्थिति के अनुसार फ़िल्टर करें: 0 (निष्क्रिय), 1 (सक्रिय), 2 (रुका हुआ)
प्रतिक्रिया
{
  "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}

किसी विशिष्ट एजेंट का पूरा विवरण प्राप्त करें, जिसमें उसके चैनल, लिंक किए गए MCP सर्वर, और नॉलेज बेस शामिल हैं।

PUT /api/agents/{id}

एक एजेंट अपडेट करें। सभी फ़ील्ड वैकल्पिक हैं — केवल दिए गए फ़ील्ड बदले जाते हैं।

रिक्वेस्ट बॉडी

पैरामीटर प्रकार विवरण
nameवैकल्पिक string एजेंट का नाम (अधिकतम 64)
modelवैकल्पिक string मॉडल ID
system_promptवैकल्पिक string|null सिस्टम प्रॉम्प्ट (साफ़ करने के लिए null सेट करें)
statusवैकल्पिक इंटीजर 0 (निष्क्रिय), 1 (सक्रिय), या 2 (रोका गया)
modeवैकल्पिक string "quick" या "advanced"
permissionsवैकल्पिक ऑब्जेक्ट एजेंट अनुमतियाँ (नीचे देखें)

अनुमतियाँ ऑब्जेक्ट

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

एक एजेंट हटाएँ। इससे इसके सभी चैनल, ट्रिगर, मैसेज और इंटीग्रेशन भी हट जाते हैं।

इंटीग्रेशन

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

RAG-संचालित प्रतिक्रियाओं के लिए किसी एजेंट से नॉलेज बेस लिंक करें। बॉडी: { "knowledge_base_id": "uuid" }

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

एजेंट से एक नॉलेज बेस को अनलिंक करें।

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

विस्तारित टूल उपयोग के लिए किसी एजेंट से MCP सर्वर लिंक करें। बॉडी: { "activation_id": "uuid" }

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

एजेंट से एक MCP सर्वर को अनलिंक करें।

GET /api/agents/{id}/messages

किसी एजेंट के लिए बातचीत का इतिहास प्राप्त करें।

पैरामीटर प्रकार विवरण
limitक्वेरी इंटीजर लौटाए जाने वाले संदेशों की संख्या। डिफ़ॉल्ट: 25, अधिकतम: 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
    }
  ]
}
एजेंट्स के लिए आपकी योजना पर एजेंट्स सुविधा सक्षम होनी चाहिए। एजेंट्स की संख्या, प्रति एजेंट चैनल और प्रति एजेंट ट्रिगर पर योजना की सीमाएँ लागू होती हैं।

एजेंट चैनल्स

एजेंट्स को कम्युनिकेशन प्लेटफ़ॉर्म से जोड़ें। Each agent supports one channel per type (one Telegram bot, one Discord bot).

POST /api/agents/{id}/channels

एजेंट में एक कम्युनिकेशन चैनल जोड़ें।

रिक्वेस्ट बॉडी

पैरामीटर प्रकार विवरण
typeआवश्यक string "telegram" या "discord"
tokenआवश्यक string Telegram BotFather या Discord Developer Portal से बॉट टोकन (अधिकतम 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..."
  }'
रिस्पॉन्स (201 Created)
{
  "id": "ch-uuid-...",
  "type": "telegram",
  "status": 1,
  "metadata": {},
  "last_error": null,
  "last_message_at": null,
  "created_at": 1709136000
}
सक्रियण से पहले बॉट टोकनों को प्लेटफ़ॉर्म API के विरुद्ध सत्यापित किया जाता है और स्टोरेज में एन्क्रिप्ट किया जाता है। Telegram के लिए, एक वेबहुक स्वचालित रूप से कॉन्फ़िगर किया जाता है। चैनल स्टेटस: 0 = निष्क्रिय, 1 = सक्रिय, 2 = त्रुटि।
GET /api/agents/{id}/channels

किसी एजेंट से जुड़े सभी चैनल सूचीबद्ध करें।

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

किसी एजेंट से एक चैनल हटाएँ।

एजेंट ट्रिगर्स

ट्रिगर्स से एजेंट एक्शन ऑटोमेट करें। Scheduled triggers use cron expressions to run at specific times; event triggers fire in response to external events.

POST /api/agents/{id}/triggers

एजेंट के लिए एक स्वचालित ट्रिगर बनाएं।

रिक्वेस्ट बॉडी

पैरामीटर प्रकार विवरण
nameआवश्यक string ट्रिगर नाम (अधिकतम 128)
typeआवश्यक string "scheduled" या "event"
promptआवश्यक string ट्रिगर चलने पर एजेंट को भेजा जाने वाला प्रॉम्प्ट
cron_expressionवैकल्पिक string Cron शेड्यूल (उदाहरण के लिए, सप्ताह के दिनों में सुबह 9 बजे के लिए "0 9 * * 1-5")
timezoneवैकल्पिक string क्रॉन मूल्यांकन के लिए IANA टाइमज़ोन। डिफ़ॉल्ट: "UTC"
channel_idवैकल्पिक string ट्रिगर आउटपुट भेजने के लिए चैनल

उदाहरण: डेली समरी ट्रिगर

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"
  }'
रिस्पॉन्स (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

किसी एजेंट के सभी ट्रिगर सूचीबद्ध करें।

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

एक ट्रिगर अपडेट करें। सभी फ़ील्ड वैकल्पिक हैं। सेट करें status अक्षम करने के लिए 0 और सक्षम करने के लिए 1 पर सेट करें।

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

एक ट्रिगर हटाएँ।

शेड्यूल किए गए ट्रिगर्स को मैसेज क्यू के माध्यम से असिंक्रोनस रूप से निष्पादित किया जाता है। प्रोसेसिंग से पहले प्रत्येक निष्पादन यह जाँचता है कि एजेंट सक्रिय है और वर्कस्पेस के पास पर्याप्त क्रेडिट हैं।

वर्कस्पेस

वर्कस्पेस आपकी टीम की संगठनात्मक इकाई है। Each workspace has its own credit balance, subscription, API keys, and members. Manage workspaces, invite team members, and track usage.

POST /api/workspaces

नया वर्कस्पेस बनाएँ।

पैरामीटर प्रकार विवरण
nameआवश्यक string वर्कस्पेस नाम (अधिकतम 50 वर्ण)
रिस्पॉन्स (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}

वर्कस्पेस की सेटिंग्स अपडेट करें। इसके लिए वर्कस्पेस मैनेज करने की अनुमति आवश्यक है।

पैरामीटर प्रकार विवरण
nameवैकल्पिक string वर्कस्पेस नाम (अधिकतम 50 वर्ण)
api_spending_limitवैकल्पिक संख्या मासिक API खर्च सीमा (असीमित के लिए null)
{provider}_api_keyवैकल्पिक string किसी प्रोवाइडर के लिए BYOK API कुंजी (जैसे, openai_api_key, anthropic_api_key)
DELETE /api/workspaces/{id}

वर्कस्पेस हटाएँ। वर्कस्पेस मैनेज परमिशन ज़रूरी है।

POST /api/workspaces/{id}/invitations

ईमेल के ज़रिए किसी उपयोगकर्ता को वर्कस्पेस में शामिल होने के लिए आमंत्रित करें। प्रति वर्कस्पेस अधिकतम 20 लंबित आमंत्रण।

पैरामीटर प्रकार विवरण
emailआवश्यक string आमंत्रित किए जाने वाले यूज़र का ईमेल पता
DELETE /api/workspaces/{id}/invitations/{invitationId}

लंबित आमंत्रण रद्द करें।

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

वर्कस्पेस से किसी सदस्य को हटाएँ, या अपनी स्वयं की यूज़र ID का उपयोग करके वर्कस्पेस छोड़ें।

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

वर्कस्पेस के लिए संचित उपयोग आँकड़े सूचीबद्ध करें। कर्सर-आधारित पेजिनेशन समर्थित है।

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

आइटमवार उपयोग प्रविष्टियाँ सूचीबद्ध करें (लागत सहित पूर्ण लाइब्रेरी आइटम > 0)। प्रत्येक प्रविष्टि में प्रकार, मॉडल, शीर्षक, लागत, और टाइमस्टैंप शामिल है।

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

उपयोग आइटम्स की कुल गिनती प्राप्त करें।

उपयोग और वर्कस्पेस प्रबंधन एंडपॉइंट के लिए वर्कस्पेस आवश्यक है प्रबंधित करें अनुमति (वर्कस्पेस स्वामी या एडमिन)।

बातचीत

बातचीत चैट संदेशों को सेशन में समूहित करती है। Create a conversation first, then send messages to it. Conversations can also be managed through the लाइब्रेरी API का उपयोग करके conversations कंटेंट टाइप।

POST /api/ai/conversations

एक नई बातचीत बनाएं। यह खाली संदेश सूची के साथ बातचीत ऑब्जेक्ट लौटाता है।

प्रतिक्रिया
{
  "object": "conversation",
  "id": "550e8400-...",
  "title": null,
  "cost": 0,
  "messages": [],
  "created_at": "2026-03-01T12:00:00Z"
}
POST /api/ai/conversations/{id}/messages

किसी बातचीत में संदेश भेजें और Server-Sent Events (SSE) के माध्यम से AI प्रतिक्रिया प्राप्त करें। देखें चैट कम्प्लीशन SSE इवेंट फ़ॉर्मेट विवरण के लिए सेक्शन देखें।

रिक्वेस्ट बॉडी

पैरामीटर प्रकार विवरण
modelआवश्यक string प्रतिक्रिया के लिए उपयोग किया जाने वाला मॉडल
contentवैकल्पिक string मैसेज टेक्स्ट
assistant_idवैकल्पिक string इस मैसेज के लिए उपयोग किए जाने वाले असिस्टेंट का UUID
parent_idवैकल्पिक string पैरेंट मैसेज का UUID (बातचीत को शाखाओं में बाँटने के लिए)
fileवैकल्पिक फ़ाइल अटैचमेंट (इमेज, डॉक्यूमेंट, ऑडियो/वीडियो — अधिकतम 25MB)
recordingवैकल्पिक फ़ाइल आवाज़ रिकॉर्डिंग (mp3, wav, webm, ogg — अधिकतम 10MB)

उदाहरण अनुरोध

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"
  }'
मैसेज SSE के माध्यम से स्ट्रीम किए जाते हैं। उपयोग करें multipart/form-data फ़ाइलें अपलोड करते समय। बातचीत की सूची देखने या हटाने के लिए, इसका उपयोग करें लाइब्रेरी प्रकार के साथ API conversations.

अकाउंट

अपनी यूज़र प्रोफ़ाइल प्रबंधित करें और प्रोग्रामेटिक रूप से API कीज़ जनरेट करें।

PUT /api/account

अपनी प्रोफ़ाइल जानकारी अपडेट करें।

पैरामीटर प्रकार विवरण
first_nameवैकल्पिक string पहला नाम (अधिकतम 50 अक्षर)
last_nameवैकल्पिक string अंतिम नाम (अधिकतम 50 वर्ण)
languageवैकल्पिक string पसंदीदा भाषा कोड (जैसे, "en", "fr")
preferencesवैकल्पिक ऑब्जेक्ट उपयोगकर्ता प्राथमिकता सेटिंग्स
POST /api/account/rest-api-keys

एक नई API की जनरेट करें। सुरक्षा के लिए पासवर्ड पुष्टि आवश्यक है। पूरी API की वापस दी जाती है केवल एक बार इस प्रतिक्रिया में — इसे सुरक्षित रूप से स्टोर करें।

पैरामीटर प्रकार विवरण
current_passwordआवश्यक string आपका मौजूदा अकाउंट पासवर्ड
प्रतिक्रिया
{
  "id": "550e8400-...",
  "first_name": "Jane",
  "last_name": "Doe",
  "email": "jane@example.com",
  "api_key": "zub_live_a1b2c3d4e5f6..."
}
यह api_key वैल्यू केवल इसी रिस्पॉन्स में पूरी तरह दिखाई जाती है। बाद की API कॉल्स में एक मास्क किया हुआ वर्शन मिलता है। इसे पासवर्ड की तरह समझें।

बिलिंग

उपलब्ध प्लान ब्राउज़ करें, ऑर्डर हिस्ट्री देखें, initiate checkout, and manage subscriptions.

GET /api/billing/plans

उपलब्ध सब्सक्रिप्शन प्लान सूचीबद्ध करें।

पैरामीटर प्रकार विवरण
billing_cycleवैकल्पिक string बिलिंग साइकिल के अनुसार फ़िल्टर करें
GET /api/billing/orders

वर्तमान वर्कस्पेस के ऑर्डर सूचीबद्ध करें। कर्सर-आधारित पेजिनेशन समर्थित है।

पैरामीटर प्रकार विवरण
statusवैकल्पिक string ऑर्डर स्थिति के अनुसार फ़िल्टर करें
billing_cycleवैकल्पिक string बिलिंग साइकिल के अनुसार फ़िल्टर करें
POST /api/billing/checkout

किसी सब्सक्रिप्शन प्लान या क्रेडिट खरीद के लिए चेकआउट शुरू करें। इसके लिए वर्कस्पेस मैनेज अनुमति आवश्यक है।

पैरामीटर प्रकार विवरण
idवैकल्पिक string सब्सक्राइब करने के लिए प्लान का UUID (आवश्यक है यदि कोई नहीं amount)
amountवैकल्पिक इंटीजर सेंट में क्रेडिट खरीद राशि (न्यूनतम 1000, आवश्यक यदि कोई नहीं id)
gatewayवैकल्पिक string पेमेंट गेटवे: stripe या paypal
DELETE /api/billing/subscription

वर्तमान वर्कस्पेस सदस्यता रद्द करें। इसके लिए वर्कस्पेस प्रबंधन अनुमति आवश्यक है।

कंटेंट रिपोर्ट

अनुचित या नीति-उल्लंघन कंटेंट की रिपोर्ट करें in the public library.

POST /api/content-reports

कंटेंट रिपोर्ट सबमिट करें। प्रत्येक यूज़र किसी दिए गए आइटम की रिपोर्ट केवल एक बार कर सकता है।

पैरामीटर प्रकार विवरण
item_idआवश्यक string रिपोर्ट करने के लिए लाइब्रेरी आइटम का UUID
reasonआवश्यक इंटीजर कारण कोड: 0 (स्पैम), 1 (उत्पीड़न), 2 (हिंसा), 3 (यौन सामग्री), 4 (अन्य)
descriptionवैकल्पिक string अतिरिक्त विवरण (अधिकतम 2000 अक्षर)
रिस्पॉन्स (201 Created)
{
  "id": "550e8400-e29b-41d4-a716-446655440000"
}
डुप्लिकेट रिपोर्ट्स (समान यूज़र + समान आइटम) वापस देती हैं एक 409 Conflict त्रुटि।

और एंडपॉइंट

पूरा API ऊपर के अनुभागों से बड़ा है। ये एंडपॉइंट लाइव हैं और वही ऑथेंटिकेशन इस्तेमाल करते हैं:

POST /api/ai/three-d3D मॉडल जनरेशन (Tripo, Meshy…)
POST /api/ai/tts  ·  POST /api/ai/speechesटेक्स्ट-टू-स्पीच (नेटिव + प्रीसेट)
POST /api/ai/transcriptionsबैच ऑडियो ट्रांसक्रिप्शन (मॉडल पिकर)
GET /api/ai/transcriptions/realtime/token  ·  POST /api/ai/transcriptions/realtime/saveलाइव माइक ट्रांसक्रिप्शन (सेशन टोकन + सेव)
POST /api/ai/translations  ·  GET /api/ai/translation-languagesटेक्स्ट अनुवाद + समर्थित भाषाएँ
POST /api/ai/document-extractionsदस्तावेज़ टेक्स्ट निष्कर्षण (OCR)
GET /api/ai/video-understanding/{jobId}वीडियो-अंडरस्टैंडिंग जॉब स्थिति
/api/library-stacksलाइब्रेरी स्टैक्स (कलेक्शन) — पूर्ण CRUD
/api/chatroomटीम चैटरूम (साझा AI बातचीत)
/api/automationऑटोमेशन वर्कफ़्लो (बनाएँ + चलाएँ)

एरर्स

API मानक HTTP स्टेटस कोड इस्तेमाल करता है और विस्तृत एरर मैसेज लौटाता है।

कोड विवरण
400 खराब रिक्वेस्ट — अमान्य पैरामीटर
401 अनधिकृत — अमान्य या अनुपस्थित API की
403 प्रतिबंधित — अपर्याप्त क्रेडिट्स या मॉडल आपके प्लान पर उपलब्ध नहीं है
404 नहीं मिला — मॉडल या रिसोर्स नहीं मिला
413 पेलोड बहुत बड़ा — फ़ाइल आकार सीमा से अधिक है
429 बहुत ज़्यादा रिक्वेस्ट — रेट लिमिट पार हो गई
500 आंतरिक सर्वर त्रुटि
503 सेवा अनुपलब्ध — अस्थायी ओवरलोड
एरर रिस्पॉन्स फ़ॉर्मैट
{
  "error": {
    "message": "Invalid API key provided",
    "type": "authentication_error",
    "code": "invalid_api_key"
  }
}

रेट लिमिट

रेट लिमिट प्लान के अनुसार बदलती है। हर रिस्पॉन्स में हेडर शामिल होते हैं:

हेडर विवरण
X-RateLimit-Limit प्रति मिनट अनुमत रिक्वेस्ट
X-RateLimit-Remaining वर्तमान विंडो में शेष रिक्वेस्ट
X-RateLimit-Reset लिमिट रीसेट होने का Unix टाइमस्टैम्प

अगर आप रेट लिमिट पर पहुँच जाएँ, तो रीसेट टाइम तक इंतज़ार करें या अपनी लिमिट बढ़ाने के लिए हमसे संपर्क करें।

मदद चाहिए?

हम आपके लिए यहाँ हैं

API के बारे में सवाल? हमारा FAQ देखें या सीधे संपर्क करें।