كل نقطة نهاية أدناه هي النسخة المفتوحة من ميزة تستخدمها بالفعل في الموقع: النماذج نفسها، والحصة نفسها، والمخرجات نفسها. الفرق الوحيد أن مفتاح API يحل محل جلسة تسجيل الدخول.
أربع خطوات من ملف PDF خام إلى ملف مترجم. نقاط نهاية الفيديو تتبع الشكل نفسه.
01
أنشئ مفتاح API
سجّل الدخول إلى belindoc.com، وافتح قائمة الصورة الرمزية أعلى اليمين، ثم اختر «مركز المطورين» وأنشئ مفتاحًا. تبدأ المفاتيح بالبادئة ft_ ولا تظهر قيمتها الكاملة إلا مرة واحدة بعد الإنشاء مباشرة.
02
ارفع الملف
اطلب رابطًا موقّعًا مسبقًا ثم ارفع الملف إليه مباشرة بطريقة PUT. الرابط صالح لعشر دقائق، واحتفظ بقيمة objectKey العائدة للخطوة التالية.
bash
# 1. احصل على رابط رفع موقَّع مسبقًا (صالح 10 دقائق)
curl -X POST https://belindoc.com/api/external/translate/batchPresignedUploadUrl \
-H "X-Api-Key: $BELINDOC_API_KEY" \
-H "Content-Type: application/json" \
-d '{"fileNameList": ["contract.pdf"]}'
# → data[0].persignedUploadUrl / data[0].objectKey
# 2. ارفع الملف مباشرة إلى هذا الرابط باستخدام PUT
curl -X PUT "<persignedUploadUrl>" --upload-file contract.pdf
03
أرسل مهمة الترجمة
الحقول fileList وsourceLanguage وtargetLanguage وmodel إلزامية. مرّر AnyLanguage لاكتشاف لغة المصدر تلقائيًا، واقرأ قائمة النماذج من getModelList بدل كتابتها في الشيفرة.
تابع باستخدام batchNo حتى تصبح قيمة status هي 3، ثم اطلب رابط التنزيل. تستجيب هذه النقطة ببث SSE، ويصل الرابط ضمن حدث [DONE].
bash
# استعلم عن المهمة: القيمة status = 3 تعني أن الترجمة جاهزة
curl -X POST https://belindoc.com/api/external/translate/searchTranslateFileByBatchNo \
-H "X-Api-Key: $BELINDOC_API_KEY" \
-H "Content-Type: application/json" \
-d '{"batchNo": "<batchNo>"}'
# احصل على رابط تنزيل الترجمة: استجابة SSE، والرابط يصل في حدث [DONE]
curl -N -X POST https://belindoc.com/api/external/translate/getTranslateS3DownloadUrl \
-H "X-Api-Key: $BELINDOC_API_KEY" \
-H "Content-Type: application/json" \
-d '{"translateOrderNo": "<translateOrderNo>", "urlType": 2}'
# event:[DONE]
# data:{"url":"https://..."}
البدء
المصادقة
نقاط النهاية المفتوحة تقع تحت /external/ وتتعرّف على المتصل بالمفتاح وحده. أما بقية التفاصيل — جسم الطلب والقيم الافتراضية وبنية الاستجابة — فمطابقة للموقع.
أرسل المفتاح مع كل طلب. المفتاح المفقود أو المعطّل أو المنتهي، أو الاتصال من عنوان IP خارج القائمة المسموح بها، يُرفض قبل الوصول إلى منطق العمل.
ترويسة language
اختيارية، وتحدد لغة الحقل msg في الاستجابة، والافتراضي en. القيم المقبولة هي لغات الموقع التسع: en وzh وzh-Hant وja وko وfr وru وde وar.
المفتاح يعمل على الحساب الشخصي
يُحَلّ المفتاح دائمًا إلى الحساب الشخصي الذي أنشأه. تُحفظ الملفات في تخزين المنصة وتُخصم المهام من حصة ذلك الحساب، أما مساحة العمل الخاصة بالمؤسسة فلا يجري الوصول إليها عبر الواجهة.
بنية الاستجابة الموحدة
تستجيب كل نقاط النهاية بالغلاف نفسه. القيمة 200 في code تعني النجاح، وأي قيمة أخرى خطأ في منطق العمل ويحمل الحقل msg نصه بلغتك.
بلا JWT وبلا توقيع للطلب
مرشّحات الرمز والتوقيع التي تحمي نقاط الموقع تتجاوز المسار /external/. المفتاح هو بيانات الاعتماد الوحيدة، فتعامل معه ككلمة مرور واحتفظ به على الخادم فقط.
/external/translate9 نقطة
ترجمة المستندات
مسار المستندات كاملًا: الرفع والإرسال والمتابعة والتنزيل، مع قوائم النماذج واللغات التي يُفضَّل قراءتها من هنا بدل كتابتها في الشيفرة.
status: 0 في الانتظار · 1 التحليل · 2 قيد الترجمة · 3 مكتمل · 4 فشل · 5 ملغى
urlType: 1 الملف الأصلي · 2 الترجمة · 3 مقارنة أفقية · 4 مقارنة رأسية · -1 معاينة EPUB
01
الحصول على روابط الرفع
POST
/external/translate/batchPresignedUploadUrl
الحصول على روابط رفع موقّعة مسبقًا لملف واحد أو أكثر.
باقة الحساب المرتبط بهذا المفتاح: الفئة والدورة الحالية والحدود التي تمنحها — التزامن وحجم الملف ومدة الفيديو.
المعاملات
بلا معاملات — أرسل جسم JSON فارغًا.
الاستجابة · data
الحقل
النوع
الوصف
vipName
string
اسم الباقة
vipType
number
فئة الباقة
subscriptionStatus
number
حالة الاشتراك، انظر المفتاح أعلاه
interval
number
دورة الاشتراك، انظر المفتاح أعلاه
startTime
number
بداية الدورة بالمللي ثانية
endTime
number
نهاية الدورة بالمللي ثانية
translateQuota
number
الصفحات الممنوحة في كل دورة
advancedTranslateQuota
number
صفحات النماذج المتقدّمة الممنوحة في كل دورة
freeTranslateQuota
number
الصفحات المجانية الممنوحة في كل دورة
freeTranslateQuotaInterval
number
دورة تجديد الصفحات المجانية: 1 يوم · 2 أسبوع · 3 شهر
concurrenceTask
number
عدد مهام المستندات المتزامنة المسموح بها
uploadFileSize
number
الحد الأقصى لحجم الملف بالميجابايت
videoDurationLimit
number
الحد الأقصى لمدة الفيديو بالدقائق
videoTranslateConcurrency
number
عدد مهام الفيديو المتزامنة المسموح بها
videoFileSize
number
الحد الأقصى لحجم الفيديو بالميجابايت
ملحق
رموز الأخطاء
أخطاء المفتاح تعود أيضًا برمز HTTP 200 مع رمز العمل داخل جسم الاستجابة. هذه هي الرموز التي يجب أن يعالجها تكاملك.
الرمز
المعنى
الإجراء
30306
مفتاح API غير صالح
تأكد من نسخ المفتاح كاملًا مع البادئة ft_. المفاتيح المحذوفة تعيد الرمز نفسه.
30307
المفتاح معطّل
أعد تفعيله من مركز المطورين أو استخدم مفتاحًا آخر.
30308
انتهت صلاحية المفتاح
مدّد تاريخ الانتهاء أو أنشئ مفتاحًا جديدًا.
30309
عنوان IP المتصل خارج القائمة المسموح بها
أضف عنوان IP الصادر من خادمك إلى قائمة المفتاح، أو أفرغ القائمة.
30312
حظر المشرف للمفتاح
تواصل مع الدعم، فهذا الحظر لا يُرفع من مركز المطورين.
أخطاء الترجمة نفسها — نفاد الحصة، أو ملف غير مدعوم، أو إرسال مكرر — لها رموزها الخاصة ويأتي معها دائمًا نص msg بلغتك. اعتمد في التفريع على code لا على msg.
ملحق
الحصة والحدود
الواجهة البرمجية مدخل إضافي لا منتج آخر، وهذه القواعد ترثها كما هي من الموقع.
الحصة نفسها بلا فوترة منفصلة
تستهلك استدعاءات الواجهة حصة الصفحات والفيديو نفسها المستخدمة في الموقع وبمعاملات النماذج نفسها، ولا يوجد سعر خاص بالواجهة.
قواعد العلامة المائية نفسها
في الباقة المجانية تحمل ملفات PDF المترجمة علامة مائية تمامًا كما في المتصفح، والمرور عبر الواجهة لا يزيلها.
الإرسال وحده يُحتسب استدعاءً
لا يتحرك عدّاد استدعاءات المفتاح إلا مع batchSubmitTranslateTask وsubmitVideoTranslate وsubmitVideoRewrite، أما استعلامات الحالة والتفاصيل فيمكن تكرارها بحرية.
إرسال واحد في كل مرة
يُنفَّذ الإرسال بالتتابع لكل حساب. إرسال ثانٍ أثناء قبول الأول يعيد رمز خطأ المهمة المكررة، فأعد المحاولة بعد لحظات بدل الإرسال المتوازي.
التعرّف الضوئي مغلق افتراضيًا
فعّل isOcr للمستندات الممسوحة ضوئيًا فقط. فالتعرّف الضوئي يخصم حصة فرعية إضافية فوق حصة الصفحات، وتركه مفعّلًا مع ملفات PDF النصية يستهلك الحصة مرتين. وعند الشك استدعِ نقطة isOcr أولًا.
تفضّل تجنّب تفاصيل HTTP؟
القدرات نفسها متاحة كأدوات MCP، فيستطيع وكيل ذكاء اصطناعي ترجمة مستند دون أن تكتب استدعاء HTTP واحدًا.