Translateتجريبي
تسجيل الدخول

واجهة API

واجهة REST API لترجمة النصوص والمستندات. أنشئ مفتاحًا من لوحة التحكم.

المصادقة

مرّر مفتاحك كرمز bearer (أو عبر ترويسة x-api-key).

headers.http
HTTP
Authorization: Bearer wsk_xxx# …or, equivalently:x-api-key: wsk_xxx

ترجمة نص

POST/api/v1/translate
curl -X POST https://translate.baobabtech.app/api/v1/translate \  -H "Authorization: Bearer wsk_xxx" \  -H "Content-Type: application/json" \  -d '{    "source": "en",    "target": "fr",    "text": "Clean water saves lives.",    "domain": "wash"  }'
response.json
JSON
{  "translation": "...",  "source": "en",  "target": "fr",  "domain": "wash",  "model": "...",  "ragApplied": true,  "characters": 24}

domain قيمته الافتراضية wash. وبحدّ أقصى 50,000 حرف لكل طلب. الحقل الاختياري reasoning_effort (off · low · medium · high) قيمته الافتراضية off — الترجمة لا تحتاج إلى تفكير.

الترجمة على دفعات

أرسل مصفوفة في text لترجمة ما يصل إلى 100 نص في استدعاء واحد. تعود الترجمات في translations بترتيب الإدخال نفسه. وتُحتسب الدفعة طلبًا واحدًا مقابل حدّ المعدّل، فمهمة من مئات النصوص القصيرة تكلّف بضعة طلبات بدلًا من مئات. والنصوص المتطابقة تُترجم مرة واحدة وتُحتسب مرة واحدة.

curl -X POST https://translate.baobabtech.app/api/v1/translate \  -H "Authorization: Bearer wsk_xxx" \  -H "Content-Type: application/json" \  -d '{    "source": "en",    "target": "fr",    "domain": "wash",    "text": [      "Clean water saves lives.",      "Hygiene promotion",      "Household water treatment and safe storage"    ]  }'# → { "translations": ["...", "...", "..."], "items": 3, "characters": 74, ... }
response.json
JSON
{  "translations": ["...", "...", "..."],  "items": 3,  "source": "en",  "target": "fr",  "domain": "wash",  "format": "text",  "model": "...",  "characters": 74}

ترجمة HTML

اضبط format على html لقيم حقول أنظمة إدارة المحتوى. لا تُرسَل الوسوم إلى النموذج أبدًا: تُترجم عُقد النص وحدها ثم تُعاد إلى المستند الأصلي، فتبقى الجداول والصور والإطارات والروابط والفئات وسمات data- كما هي. ويُعاد script وstyle حرفيًا دون ترجمة. وتُحتسب الحروف على النص الظاهر فقط.

ترجمة مستند (.docx, .pptx, .xlsx, .pdf)

ثلاث خطوات: اطلب عنوان رفع، وارفع الملف، وابدأ المهمة، ثم استعلِم عن الحالة.

# 1. Create the job → returns a presigned upload URLcurl -X POST https://translate.baobabtech.app/api/v1/documents \  -H "Authorization: Bearer wsk_xxx" \  -H "Content-Type: application/json" \  -d '{ "filename": "report.docx", "source": "en", "target": "fr", "domain": "wash" }'# → { "jobId": "...", "uploadUrl": "https://...", "method": "PUT", "contentType": "..." }
# 2. Upload the file straight to the presigned URLcurl -X PUT "<uploadUrl>" \  -H "Content-Type: <contentType>" \  --data-binary @report.docx
# 3. Start processingcurl -X POST https://translate.baobabtech.app/api/v1/documents/<jobId>/start \  -H "Authorization: Bearer wsk_xxx"# → { "jobId": "...", "status": "processing" }
# 4. Poll until done, then downloadcurl https://translate.baobabtech.app/api/v1/documents/<jobId> \  -H "Authorization: Bearer wsk_xxx"# → { "status": "done", "downloadUrl": "https://...", "segmentCount": 120 }

الاستكشاف

يعيد GET /api/v1/help نقاط النهاية والحدود والإمكانات بصيغة JSON. وهو عام، فيمكن للتكامل أن يضبط نفسه ويتحقق من الاتصال قبل تعيين أي مفتاح.

# All three endpoints are public — no API key required.curl https://translate.baobabtech.app/api/v1/languages# → { "languages": [ { "code": "fr", "name": "French", "script": "Latn", "rtl": false } ] }
curl https://translate.baobabtech.app/api/v1/domains# → { "domains": [ { "slug": "wash", "name": "WASH", "description": "..." } ] }
# Endpoints, limits and capabilities, for integrations that self-configure.curl https://translate.baobabtech.app/api/v1/help# → { "endpoints": { ... }, "formats": ["text", "html"], "languages": ["en", "fr", ...] }

حدود المعدل والحصة

لكل مفتاح حدّ للطلبات في الدقيقة وحصة شهرية من الأحرف (حسب الفئة). وعند التجاوز:

  • 429 مع Retry-After — حدّ المعدل
  • 402 quota_exceeded — بلوغ الحصة الشهرية من الأحرف
  • 401 — مفتاح مفقود أو غير صالح
error.json
JSON
{ "error": { "code": "rate_limited", "message": "..." } }