وثائق API

مقدمة

يمنحك Zubnet API إمكانية الوصول البرمجي إلى 408 نموذج ذكاء اصطناعي لإنشاء النصوص والصور والفيديو والموسيقى والصوت والشيفرة. وتتوافق الواجهة بالكامل مع مواصفات OpenAI API — إذا كنت تستخدم OpenAI بالفعل، فيمكنك الانتقال إلى Zubnet بتغيير عنوان URL الأساسي ومفتاح API.

قاعدة 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 المصادقة باستخدام رمز Bearer في ترويسة Authorization.

Authorization: Bearer YOUR_API_KEY

يمكنك إنشاء مفاتيح API من إعدادات الحساب. حافظ على مفاتيحك آمنة — فهي تمنح وصولًا كاملًا إلى حسابك.

استخدام مفاتيح الموفر الخاصة بك (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مطلوب سلسلة نصية معرّف النموذج المطلوب استخدامه (مثل "claude-sonnet-5" أو "deepseek-chat" أو "gemini-2.5-pro")
messagesمطلوب صفيف مجموعة من كائنات الرسالة مع role و content
temperatureاختياري رقم درجة حرارة أخذ العينات (0-2). الافتراضي: 0.7
max_tokensاختياري عدد صحيح الحد الأقصى من الرموز المميزة التي سيتم إنشاؤها (1-128000). الافتراضي: 4096
streamاختياري قيمة منطقية دفق الردود عبر SSE. الافتراضي: صحيح
top_pاختياري رقم معلمة أخذ عينات النواة (0-1). الافتراضي: 1
frequency_penaltyاختياري رقم عقوبة التردد (-2 إلى 2). الافتراضي: 0
presence_penaltyاختياري رقم عقوبة الحضور (-2 إلى 2). الافتراضي: 0
stopاختياري سلسلة/صفيف تسلسل التوقف

مثال على الطلب

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 مفعّلًا، تُرسل الاستجابة عبر الأحداث المرسلة من الخادم (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

أنشئ شيفرة من تعليمات بلغة طبيعية، واحصل على استجابة متدفقة عبر الأحداث المرسلة من الخادم (SSE).

نص الطلب

المعامل النوع الوصف
promptمطلوب سلسلة نصية وصف اللغة الطبيعية للكود المراد إنشاؤه
languageمطلوب سلسلة نصية لغة البرمجة (على سبيل المثال، "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مطلوب سلسلة نصية نموذج الصورة للاستخدام
promptمطلوب سلسلة نصية الوصف النصي للصورة المراد إنشاؤها
nاختياري عدد صحيح عدد الصور المراد إنشاؤها. الافتراضي: 1
sizeاختياري سلسلة نصية حجم الصورة (على سبيل المثال، "1024x1024"، "1792x1024")
response_formatاختياري سلسلة نصية "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..."
    }
  ]
}

توليد الفيديو

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مطلوب سلسلة نصية نموذج فيديو للاستخدام
promptمطلوب* سلسلة نصية الوصف النصي للفيديو. *غير مطلوب لمزامنة الشفاه أو النماذج الراقية
framesاختياري ملف[] صور الإدخال للتحويل من صورة إلى فيديو. الحد الأقصى لكل صورة 10 ميغابايت (jpg وpng وwebp)
videoاختياري ملف فيديو الإدخال للتحويل من فيديو إلى فيديو. الحد الأقصى 100 ميغابايت (mp4 وwebm وmov)
audioاختياري ملف ملف صوتي لنماذج مزامنة الشفاه. الحد الأقصى 25 ميغابايت
aspect_ratioاختياري سلسلة نصية نسبة العرض إلى الارتفاع (على سبيل المثال، "16:9"، "9:16"، "1:1")
durationاختياري عدد صحيح مدة الفيديو بالثواني
negative_promptاختياري سلسلة نصية ما يجب تجنبه في الفيديو (حسب الموديل)
resolutionاختياري سلسلة نصية دقة الإخراج، على سبيل المثال. "480p"، "720p"، "1080p"، "4k" (يعتمد على الطراز)
qualityاختياري سلسلة نصية مستوى الجودة/السرعة حيث يكون مدعومًا (على سبيل المثال، "speed" أو "quality")
audioاختياري سلسلة نصية "on" أو "off" — صوت أصلي متزامن في النماذج التي تدعمه (Seedance 2.0 وKling وPixVerse وCogVideoX وغيرها)
seedاختياري عدد صحيح بذور التكاثر حيثما تكون مدعومة
styleاختياري سلسلة نصية نمط معدّ مسبقًا في النماذج المدعومة (مثل Vidu: ‏"general" أو "anime")
تقبل النماذج أيضًا خياراتها المحددة (إطار في الثانية، مقطع متعدد، وضع، حلقة، وضع الحركة، نسب العرض إلى الارتفاع...) - بالضبط المحددات المعروضة لهذا النموذج في التطبيق. يتم تجاهل المعلمات غير المعروفة.

مثال: تحويل النص إلى فيديو

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 الذي تكون قيمته (“processing”, “completed”, “failed”)، إلى جانب حقل 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"
}

فهم الفيديو

حلّل محتوى الفيديو بالذكاء الاصطناعي. أرسل عنوان URL للفيديو ثم استعلم عن النتائج. تدعم نقطة النهاية أنواعًا متعددة من التحليل.

POST /api/ai/video-understanding

أرسل فيديو لتحليله بالذكاء الاصطناعي. تعيد نقطة النهاية معرّف مهمة يمكنك استخدامه للاستعلام عن النتائج.

نص الطلب

المعامل النوع الوصف
video_urlمطلوب سلسلة نصية عنوان HTTPS عام للفيديو المراد تحليله
typeاختياري سلسلة نصية نوع التحليل: 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}

التحقق من حالة مهمة تحليل الفيديو.

الرد (مكتمل)
{
  "status": "completed",
  "result": {
    "type": "summary",
    "content": "The video shows a product demonstration..."
  }
}
يجب أن تكون عناوين URL للفيديو عبارة عن روابط HTTPS يمكن الوصول إليها بشكل عام. تم رفض عناوين URL الخاصة/الداخلية لأسباب أمنية. يتم تخزين النتائج مؤقتًا لمدة ساعة واحدة.

التأليف الموسيقي

POST /api/ai/compositions

قم بإنشاء موسيقى أصلية من أوصاف النص أو كلمات الأغاني أو علامات النمط.

النماذج المتاحة

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

نص الطلب

المعامل النوع الوصف
modelمطلوب سلسلة نصية نموذج الموسيقى للاستخدام
promptاختياري سلسلة نصية وصف الموسيقى أو كلمات الأغاني المراد ضبطها
tagsاختياري سلسلة نصية علامات النوع والنمط (على سبيل المثال، "lo-fi، chill، jazz")
instrumentalاختياري قيمة منطقية توليد الآلات الموسيقية فقط (بدون غناء). الافتراضي: خطأ

مثال على الطلب

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 عادةً نسختين مختلفتين من المقطوعة لكل طلب، بينما يعيد Lyria مقطعًا واحدًا مدته 30 ثانية بتردد 48 كيلوهرتز.
الاستجابة
[
  {
    "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مطلوب سلسلة نصية نموذج التأثير الصوتي للاستخدام
promptمطلوب سلسلة نصية وصف المؤثرات الصوتية المراد توليدها

مثال على الطلب

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مطلوب سلسلة نصية نموذج TTS (على سبيل المثال، "tts-1"، "tts-1-hd"، "elevenlabs")
inputمطلوب سلسلة نصية النص المطلوب تحويله إلى كلام (5000 حرف كحد أقصى)
voiceمطلوب سلسلة نصية معرّف الصوت المطلوب استخدامه (مثل "alloy" أو "echo" أو "nova" أو معرّف صوت مخصّص)
response_formatاختياري سلسلة نصية تنسيق الصوت: 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مطلوب سلسلة نصية نموذج النسخ (على سبيل المثال، "whisper-1")
fileمطلوب ملف ملف صوتي للنسخ. الحد الأقصى 25 ميجابايت (mp3، mp4، wav، webm، ogg، flac)
languageاختياري سلسلة نصية رمز اللغة (على سبيل المثال، "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مطلوب ملف ملف صوتي. الحد الأقصى 25 ميجابايت (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مطلوب ملف ملف صوتي. الحد الأقصى 25 ميجابايت (mp3، mp4، wav، m4a، webm، ogg، flac)
stem_variationاختياري سلسلة نصية وضع الانفصال. الافتراضي: "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}

حذف صوت مخصص.

يمكن استخدام المعرفات الصوتية المخصصة في voice معلمة نقطة نهاية تحويل النص إلى كلام.

التضمين

POST /v1/embeddings

إنشاء تضمينات نصية للبحث الدلالي والتشابه.

المعامل النوع الوصف
modelمطلوب سلسلة نصية نموذج التضمين (على سبيل المثال، "text-embedding-3-small")
inputمطلوب سلسلة/صفيف النص المراد تضمينه (سلسلة أو مجموعة من السلاسل)

مثال على الطلب

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). ارفع مستندات PDF أو DOCX أو TXT أو Markdown، أو أضف روابط ويب ونصوصًا، ثم استعلم عنها في محادثاتك.

POST /api/knowledge-bases

إنشاء قاعدة معرفية جديدة.

نص الطلب

المعامل النوع الوصف
nameمطلوب سلسلة نصية اسم قاعدة المعرفة
descriptionاختياري سلسلة نصية وصف قاعدة المعرفة

مثال: إنشاء قاعدة معارف

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 — الحد الأقصى 10 ميغابايت)
titleمطلوب سلسلة نصية عنوان المستند (مطلوب لـ URL وأنواع النص)
typeالخيار 2/3 سلسلة نصية "url" أو "text" (لتناول غير الملفات)
urlالخيار 2 سلسلة نصية URL للجلب والاستيعاب (عندما يكون النوع "url")
contentالخيار 3 سلسلة نصية محتوى النص الخام المطلوب استيعابه (عندما يكون النوع "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

أعد ترتيب قائمة المستندات وفق صلتها بالاستعلام. يفيد ذلك في تحسين نتائج البحث ومسارات عمل RAG وأنظمة التوصية.

النماذج المتاحة

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

نص الطلب

المعامل النوع الوصف
modelمطلوب سلسلة نصية نموذج إعادة الترتيب المطلوب استخدامه
queryمطلوب سلسلة نصية استعلام البحث لترتيب المستندات مقابلها
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"
}
يتم فرز النتائج حسب درجة الصلة بترتيب تنازلي. ال index يشير الحقل إلى موضع كل مستند في مصفوفة الإدخال الأصلية.

مكتبة

تضم المكتبة كل المحتوى المُنشأ — الصور والفيديو والمقطوعات الموسيقية ومستندات الشيفرة والنصوص المنسوخة وغير ذلك. استخدمها لعرض العناصر والتحقق من حالة الإنشاء غير المتزامن وتحديث البيانات الوصفية وإدارة محتواك.

GET /api/library/{type}

قم بإدراج العناصر الموجودة في مكتبتك حسب نوع المحتوى.

أنواع المحتوى

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

معلمات الاستعلام

المعامل النوع الوصف
limitاختياري عدد صحيح النتائج لكل صفحة (الحد الأقصى 100)
starting_afterاختياري سلسلة نصية مؤشر ترقيم الصفحات للأمام (العنصر UUID)
ending_beforeاختياري سلسلة نصية مؤشر ترقيم الصفحات للخلف (العنصر UUID)
sortاختياري سلسلة نصية فرز الحقل والاتجاه (على سبيل المثال، "created_at:desc")
queryاختياري سلسلة نصية البحث عن النص الكامل (بحد أقصى 255 حرفًا)
modelاختياري سلسلة نصية التصفية حسب النموذج المستخدم للتوليد
الاستجابة
{
  "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}

استرد عنصرًا واحدًا من المكتبة حسب معرّفه. هذه هي نقطة النهاية الأساسية من أجل الاستعلام عن حالة الإنشاء غير المتزامن.

دول الجيل

الحالة القيمة الوصف
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!)
يعتمد ترقيم الصفحات على المؤشر. استخدم id من العنصر الأخير في starting_after للحصول على الصفحة التالية. لا توجد معلمات إزاحة/صفحة.
POST /api/library/{type}/{id}

تحديث البيانات التعريفية لعنصر المكتبة.

المعامل النوع الوصف
titleاختياري سلسلة نصية عنوان السلعة
visibilityاختياري عدد صحيح 0 (خاص) أو 1 (عام)
is_favoritedاختياري قيمة منطقية إضافة أو إزالة من المفضلة
metaاختياري كائن البيانات الوصفية المخصصة (النوع، الحالة المزاجية، العلامات، الوصف، المؤلف، وما إلى ذلك)
DELETE /api/library/{type}/{id}

حذف عنصر مكتبة والملفات المرتبطة به.

GET /api/library/{type}/count

استرد العدد الإجمالي لعناصر نوع محتوى معيّن. تدعم نقطة النهاية مرشحَي query و model نفسهما اللذين تدعمهما نقطة نهاية القائمة.

مساعدين

المساعدون عبارة عن إعدادات مسبقة للدردشة قابلة لإعادة الاستخدام مع اسم ونموذج وموجه نظام وإعدادات مخصصة. استخدمها لإنشاء شخصيات ذكاء اصطناعي متخصصة لمهام مختلفة.

POST /api/assistants

إنشاء مساعد جديد.

GET /api/assistants

قم بإدراج كافة المساعدين في مساحة العمل الخاصة بك.

PUT /api/assistants/{id}

قم بتحديث تكوين المساعد (الاسم والطراز وموجه النظام والإعدادات).

DELETE /api/assistants/{id}

حذف مساعد.

متجر MCP

تصفح وتنشيط خوادم MCP (نموذج سياق البروتوكول) لمنح وكلائك إمكانات أدوات موسعة — بدءًا من بحث الويب والوصول إلى البيانات وحتى تنفيذ التعليمات البرمجية وتكاملات الجهات الخارجية.

GET /api/mcp-store/servers

تصفح كتالوج خادم MCP.

معلمات الاستعلام

المعامل النوع الوصف
categoryاختياري سلسلة نصية التصفية حسب الفئة (البحث، البيانات، المطور، البنية التحتية، الاتصالات، التجارة، الإبداع، الإنتاجية، الاجتماعية، المرافق)
queryاختياري سلسلة نصية البحث بالاسم أو الوصف
الاستجابة
{
  "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مطلوب سلسلة نصية UUID لخادم MCP للتنشيط
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)
{
  "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 من مساحة العمل الخاصة بك.

الوكلاء

إنشاء وإدارة وكلاء الذكاء الاصطناعي المستقلين الذين يعملون عبر قنوات الاتصال. يمكن للوكلاء الرد على الرسائل الموجودة على Telegram وDiscord، والتشغيل على المشغلات المجدولة، والاستفادة من قواعد المعرفة وخوادم MCP للحصول على إمكانات موسعة.

POST /api/agents

إنشاء وكيل جديد.

نص الطلب

المعامل النوع الوصف
nameمطلوب سلسلة نصية اسم الوكيل (بحد أقصى 64 حرفًا)
modelمطلوب سلسلة نصية معرّف النموذج المطلوب استخدامه (مثل "claude-sonnet-5" أو "deepseek-chat")
system_promptاختياري سلسلة نصية موجه النظام المخصص لتحديد سلوك الوكيل وشخصيته
modeاختياري سلسلة نصية "quick" أو "advanced". الافتراضي: "quick"
avatarاختياري سلسلة نصية الصورة الرمزية 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)
{
  "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الاستعلام سلسلة نصية مؤشر ترقيم الصفحات
sortالاستعلام سلسلة نصية "name" أو "created_at" أو "last_active_at". الافتراضي: "created_at"
directionالاستعلام سلسلة نصية "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اختياري سلسلة نصية اسم الوكيل (الحد الأقصى 64)
modelاختياري سلسلة نصية معرّف النموذج
system_promptاختياري سلسلة|خالية موجه النظام (اضبط على القيمة الخالية للمسح)
statusاختياري عدد صحيح 0 (غير نشط)، 1 (نشط)، أو 2 (متوقف مؤقتًا)
modeاختياري سلسلة نصية "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
    }
  ]
}
يطلب الوكلاء تفعيل ميزة الوكلاء في خطتك. تنطبق حدود الخطة على عدد الوكلاء، والقنوات لكل وكيل، والمشغلات لكل وكيل.

قنوات الوكيل

ربط الوكلاء بمنصات الاتصالات. يدعم كل وكيل قناة واحدة لكل نوع (روبوت Telegram واحد، وروبوت Discord واحد).

POST /api/agents/{id}/channels

إضافة قناة اتصال إلى وكيل.

نص الطلب

المعامل النوع الوصف
typeمطلوب سلسلة نصية "telegram" أو "discord"
tokenمطلوب سلسلة نصية رمز الروبوت من 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)
{
  "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}

إزالة قناة من وكيل.

مشغلات الوكيل

أتمت إجراءات الوكيل باستخدام المشغّلات. تستخدم المشغّلات المجدولة تعبيرات cron للعمل في أوقات محددة، بينما تعمل مشغّلات الأحداث استجابةً لأحداث خارجية.

POST /api/agents/{id}/triggers

إنشاء مشغل تلقائي للوكيل.

نص الطلب

المعامل النوع الوصف
nameمطلوب سلسلة نصية اسم المشغل (الحد الأقصى 128)
typeمطلوب سلسلة نصية "scheduled" أو "event"
promptمطلوب سلسلة نصية يتم إرسال المطالبة إلى الوكيل عند إطلاق الزناد
cron_expressionاختياري سلسلة نصية جدول Cron (على سبيل المثال، "0 9 * * 1-5" لأيام الأسبوع الساعة 9 صباحًا)
timezoneاختياري سلسلة نصية IANA المنطقة الزمنية لتقييم cron. الافتراضي: "UTC"
channel_idاختياري سلسلة نصية قناة لإرسال مخرجات الزناد إليها

مثال: مشغل الملخص اليومي

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

حذف الزناد.

يتم تنفيذ المشغلات المجدولة بشكل غير متزامن عبر قائمة انتظار الرسائل. يتحقق كل تنفيذ من أن الوكيل نشط وأن مساحة العمل بها أرصدة كافية قبل المعالجة.

مساحات العمل

مساحات العمل هي الوحدة التنظيمية لفريقك. تحتوي كل مساحة عمل على رصيدها الائتماني والاشتراك ومفاتيح API والأعضاء. إدارة مساحات العمل، ودعوة أعضاء الفريق، وتتبع الاستخدام.

POST /api/workspaces

إنشاء مساحة عمل جديدة.

المعامل النوع الوصف
nameمطلوب سلسلة نصية اسم مساحة العمل (50 حرفًا كحد أقصى)
الاستجابة (تم إنشاء 201)
{
  "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اختياري سلسلة نصية اسم مساحة العمل (50 حرفًا كحد أقصى)
api_spending_limitاختياري رقم الحد الأقصى للإنفاق الشهري API (فارغ لعدد غير محدود)
{provider}_api_keyاختياري سلسلة نصية BYOK API مفتاح لموفر الخدمة (على سبيل المثال، openai_api_key, anthropic_api_key)
DELETE /api/workspaces/{id}

حذف مساحة عمل. يتطلب إذن إدارة مساحة العمل.

POST /api/workspaces/{id}/invitations

قم بدعوة مستخدم للانضمام إلى مساحة العمل عبر البريد الإلكتروني. الحد الأقصى 20 دعوة معلقة لكل مساحة عمل.

المعامل النوع الوصف
emailمطلوب سلسلة نصية عنوان البريد الإلكتروني للمستخدم للدعوة
DELETE /api/workspaces/{id}/invitations/{invitationId}

إلغاء دعوة معلقة.

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

أزل عضوًا من مساحة العمل، أو غادرها باستخدام معرّف المستخدم الخاص بك.

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

سرد إحصائيات الاستخدام المجمعة لمساحة العمل. يدعم ترقيم الصفحات على أساس المؤشر.

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

قم بإدراج إدخالات الاستخدام المفصلة (عناصر المكتبة المكتملة مع التكلفة > 0). يتضمن كل إدخال النوع والنموذج والعنوان والتكلفة والطابع الزمني.

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

احصل على العدد الإجمالي لعناصر الاستخدام.

تتطلب نقاط نهاية الاستخدام وإدارة مساحة العمل مساحة عمل إدارة إذن (مالك مساحة العمل أو المسؤول).

المحادثات

تقوم المحادثات بتجميع رسائل الدردشة في جلسات. أنشئ محادثة أولاً، ثم أرسل رسائل إليها. يمكن أيضًا إدارة المحادثات من خلال مكتبة 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

أرسل رسالة إلى محادثة واحصل على استجابة الذكاء الاصطناعي عبر الأحداث المرسلة من الخادم (SSE). انظر استكمالات الدردشة قسم تفاصيل تنسيق الحدث SSE.

نص الطلب

المعامل النوع الوصف
modelمطلوب سلسلة نصية النموذج الذي سيتم استخدامه للرد
contentاختياري سلسلة نصية نص الرسالة
assistant_idاختياري سلسلة نصية UUID من المساعد لاستخدامه في هذه الرسالة
parent_idاختياري سلسلة نصية UUID للرسالة الرئيسية (للمحادثات المتفرعة)
fileاختياري ملف المرفقات (الصور والمستندات والصوت/الفيديو). — الحد الأقصى 25 ميجابايت)
recordingاختياري ملف تسجيل صوتي (mp3، wav، webm، ogg — الحد الأقصى 10 ميغابايت)

مثال على الطلب

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اختياري سلسلة نصية الاسم الأول (50 حرفًا كحد أقصى)
last_nameاختياري سلسلة نصية الاسم الأخير (بحد أقصى 50 حرفًا)
languageاختياري سلسلة نصية رمز اللغة المفضل (على سبيل المثال، "en"، "fr")
preferencesاختياري كائن إعدادات تفضيلات المستخدم
POST /api/account/rest-api-keys

قم بإنشاء مفتاح API جديد. يتطلب تأكيد كلمة المرور للأمان. يتم إرجاع مفتاح API الكامل مرة واحدة فقط في هذا الرد — قم بتخزينه بشكل آمن.

المعامل النوع الوصف
current_passwordمطلوب سلسلة نصية كلمة مرور حسابك الحالي
الاستجابة
{
  "id": "550e8400-...",
  "first_name": "Jane",
  "last_name": "Doe",
  "email": "jane@example.com",
  "api_key": "zub_live_a1b2c3d4e5f6..."
}
ال api_key تظهر قيمته كاملةً في هذه الاستجابة فقط، ثم تعيد استدعاءات API اللاحقة نسخة محجوبة. تعامل معه ككلمة مرور.

الفواتير

تصفح الخطط المتاحة، وعرض سجل الطلبات، وبدء الخروج، وإدارة الاشتراكات.

GET /api/billing/plans

قائمة خطط الاشتراك المتاحة.

المعامل النوع الوصف
billing_cycleاختياري سلسلة نصية التصفية حسب دورة الفوترة
GET /api/billing/orders

قائمة الطلبات لمساحة العمل الحالية. يدعم ترقيم الصفحات على أساس المؤشر.

المعامل النوع الوصف
statusاختياري سلسلة نصية التصفية حسب حالة الطلب
billing_cycleاختياري سلسلة نصية التصفية حسب دورة الفوترة
POST /api/billing/checkout

ابدأ عملية الدفع لخطة الاشتراك أو شراء الرصيد. يتطلب إذن إدارة مساحة العمل.

المعامل النوع الوصف
idاختياري سلسلة نصية UUID من الخطة للاشتراك فيها (مطلوب إذا كان لا amount)
amountاختياري عدد صحيح مبلغ شراء الائتمان بالسنت (الحد الأدنى 1000، مطلوب إذا لم يكن هناك id)
gatewayاختياري سلسلة نصية بوابة الدفع: stripe أو paypal
DELETE /api/billing/subscription

إلغاء الاشتراك الحالي في مساحة العمل. يتطلب إذن إدارة مساحة العمل.

تقارير المحتوى

الإبلاغ عن المحتوى غير المناسب أو المخالف للسياسة في المكتبة العامة.

POST /api/content-reports

إرسال تقرير المحتوى. يمكن لكل مستخدم الإبلاغ عن عنصر معين مرة واحدة فقط.

المعامل النوع الوصف
item_idمطلوب سلسلة نصية UUID لعنصر المكتبة المطلوب الإبلاغ عنه
reasonمطلوب عدد صحيح رمز السبب: 0 (بريد عشوائي)، 1 (مضايقات)، 2 (عنف)، 3 (محتوى جنسي)، 4 (أخرى)
descriptionاختياري سلسلة نصية تفاصيل إضافية (بحد أقصى 2000 حرف)
الاستجابة (تم إنشاء 201)
{
  "id": "550e8400-e29b-41d4-a716-446655440000"
}
التقارير المكررة (نفس المستخدم + نفس العنصر) ترجع أ 409 Conflict خطأ.

المزيد من نقاط النهاية

السطح الكامل أكبر من الأقسام المذكورة أعلاه. نقاط النهاية هذه حية وتستخدم نفس المصادقة:

POST /api/ai/three-dإنشاء نماذج ثلاثية الأبعاد (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غرف الدردشة الجماعية (محادثات الذكاء الاصطناعي المشتركة)
POST /api/graphql  ·  GET /api/graphql/subscriptionsGraphQL API (الاستعلامات + الاشتراكات)
/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 أو تواصل معنا مباشرة.