دليل المستخدم مرجع الواجهة البرمجية (API)

دليل البدء

كل ما تحتاجه لإجراء أول طلب لك عبر واجهة برمجة التطبيقات

عناوين URL الأساسية

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

واجهة REST API القياسية (للطلبات الفردية):

https://moknah.io/api/v1/

واجهة WebSocket API الفورية (للبث المستمر):

wss://moknah.io/api/v1/

المصادقة

تستخدم واجهة برمجة تطبيقات مكنه مفاتيح API للمصادقة. قم بتضمين مفتاح API الخاص بك في ترويسة Authorization باستخدام نظام Bearer مع كل طلب HTTP ومصافحة WebSocket.

Authorization: Bearer YOUR_API_KEY

الحصول على مفتاح API الخاص بك

  1. سجل الدخول إلى لوحة تحكم مكنة
  2. اشترك في الخطة الاحترافية أو تواصل مع المبيعات للحصول على وصول المؤسسات.
  3. انتقل إلى API
  4. إضغط على إدارة مفاتيح API
  5. إضغط على مفتاح جديد
  6. انسخ مفتاحك واحفظه بشكل آمن
حافظ على أمان مفتاحك

لا تكشف أبداً عن مفتاح API الخاص بك في كود جانب العميل أو المستودعات العامة. تعامل معه ككلمة مرور.

مثال HTTP سريع

إليك مثال كامل لتوليد الكلام من النص باستخدام REST API القياسي:

curl -X POST "https://moknah.io/api/v1/tts/generate/" \
  -H "Authorization: Bearer your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "مرحبا بك في منصة مكنة",
    "voice_id": 1
  }' \
  --output speech.mp3
import requests

response = requests.post(
    "https://moknah.io/api/v1/tts/generate/",
    headers={
        "Authorization": f"Bearer your_api_key",
    },
    json={
        "text": "مرحبا بك في منصة مكنة",
        "voice_id": 1
    }
)

if response.status_code == 200:
    with open("speech.mp3", "wb") as f:
        f.write(response.content)
    print("تم حفظ الصوت!")
else:
    print(f"خطأ: {response.json()}")
const response = await fetch(
    'https://moknah.io/api/v1/tts/generate/',
    {
        method: 'POST',
        headers: {
            'Authorization': 'Bearer your_api_key',
            'Content-Type': 'application/json'
        },
        body: JSON.stringify({
            text: 'مرحبا بك في منصة مكنة',
            voice_id: 1
        })
    }
);

if (response.ok) {
    const blob = await response.blob();
    // استخدم كتلة الصوت (audio blob)
    console.log("تم توليد الصوت!");
} else {
    const error = await response.json();
    console.error(error);
}

تنسيق الاستجابة

استجابات النجاح

تختلف استجابات النجاح حسب نقطة النهاية:

  • توليد تحويل النص إلى كلام (POST): يرجع بيانات صوتية ثنائية كاملة (audio/mpeg)
  • بث تحويل النص إلى كلام (WSS): يبث مقاطع MP3 ثنائية بشكل مستمر أثناء توليدها
  • نقاط النهاية الأخرى: ترجع بيانات JSON منظمة

ترويسات حدود الاستخدام (HTTP فقط)

تتضمن كل استجابة HTTP معلومات حول حدود الاستخدام (تطبق WebSockets الحدود عبر إغلاق الاتصال):

الترويسة (Header) الوصف
RateLimit-Limit الحد الأقصى لعدد الطلبات في الدقيقة
RateLimit-Remaining الطلبات المتبقية في النافذة الحالية
RateLimit-Reset طابع Unix الزمني عند إعادة تعيين الحد
Moknah-Credits-Remaining رصيدك المتبقي من النقاط

أكواد الخطأ الشائعة

الكود النوع الوصف
400 INVALID_REQUEST Parameters غير صالحة أو تنسيق JSON مشوه
401 UNAUTHORIZED مفتاح API غير صالح أو مفقود
402 INSUFFICIENT_CREDITS الحساب لا يملك رصيداً كافياً
429 RATE_LIMIT_EXCEEDED طلبات كثيرة جداً (HTTP)
4290 CONCURRENT_LIMIT اتصالات نشطة كثيرة جداً (WSS)
500 INTERNAL_SERVER_ERROR خطأ في الخادم
تعرف على المزيد

راجع صفحة أخطاء للحصول على توجيهات مفصلة حول التعامل مع الأخطاء.

الخطوات التالية

الآن بعد أن انتهيت من الإعداد، استكشف نقاط النهاية المتاحة:

POST قائمة الأصوات

احصل على الأصوات المتاحة لتحويل النص إلى كلام

POST توليد الكلام

تحويل النص إلى صوت

WSS بث الكلام

تحويل النص لكلام عبر WebSocket بالوقت الحقيقي

POST نسخ الكلام

استخراج النص من ملف صوتي

WSS بث النسخ النصي

تحويل الكلام لنص عبر WebSocket بالوقت الحقيقي

دعم واجهة برمجة التطبيقات (API)

للأسئلة أو المشكلات المتعلقة بواجهة برمجة التطبيقات، اتصل بنا على api@moknah.io.