المطورون · REST v1

YoFont API/MCP

أنشئ خطوطًا، واجلب المحارف، وأدِر التسليم برمجيًا. المحرك نفسه الذي يشغّل التطبيق، ولا يفصلك عنه سوى رمز bearer واحد.

// المصادقة

تُصادَق كل الطلبات برمز bearer يُمرَّر في ترويسة Authorization. احتفظ به على الخادم ولا تكشفه أبدًا.

سجّل الدخول لإنشاء مفتاح API فعّال — الأمر مجاني، وكل خطة تشمل الوصول إلى API.

// حدود المعدل

الطلبات محدودة لكل مفتاح API. تجاوز الحد يعيد 429 Too Many Requests مع Retry-After. تزداد الحدود مع خطتك:

إنشاء خط · كل شيء آخر
Starter60 · 600 / دقيقة
Pro200 · 2 000 / دقيقة
Agency600 · 6 000 / دقيقة

تحتاج معدّل نقل أعلى؟ ترقية خطتك.

POST/api/public/generate

أنشئ خطًا كاملًا من وصف نصي. يعيد مهمة يمكنك استطلاعها أو استقبالها عبر webhook.

promptمطلوبوصف الخط بكلام بسيط. Optional when reference_image_url is set.
reference_image_urlصورة مرجعية للأسلوب (PNG/JPG/WEBP) — رابط عام مباشر. لا نخزّنها أبدًا؛ نُمرّر الرابط كما هو إلى محرك الرسم، تمامًا كما تفعل ميزة "لقطة الشاشة إلى خط" في إضافتَي Figma وChrome.
languagesمصفوفة من رموز ISO — الافتراضي ["en"]. Two-letter ISO codes, full list: GET /api/public/languages.
weightsمثال: ["normal","bold","thin"].
glyph_typesletters · digits · punct · special (default all).
model_tierstandard (Epicur ×1) · pro (Spinoza ×3) · ultra (Nietzsche ×5).

                
200مقبول — يعيد { success, link, task_id, glyphs_charged, status_url }
// Response JSON

                
402نفدت المحارف — أعد الشحن من صفحة الخطط
GET/api/public/status?link=…

اجلب حالة الخط وروابط التنزيل (TTF / WOFF2 / متغيّر).

// Request

                
// Response JSON

                
GET/api/public/download?link=…

نزّل ملف الخط الجاهز بالصيغة التي تريدها (ttf/otf/woff/woff2) — نفس الملف الذي ينتجه زر التنزيل في Studio.

// Request

                
// Response

                
GET/api/public/languages

كل رمز لغة ISO-2 مدعوم، مع عدد المحارف لكل نظام كتابة واتجاه النص — استخدمها لبناء مصفوفة "languages" صحيحة.

// Request

                
// Response JSON

                
GET/api/public/fonts

آخر 100 مهمة خط لديك — الحالة، النموذج، المصدر، ورابط صفحة كل خط.

// Request

                
// Response JSON

                
// الاستطلاع

الإنشاء غير متزامن. بعد إرسال POST إلى generate، استطلِع GET /api/public/status?link=… كل بضع ثوانٍ حتى تصبح الحالة font_ready (أو failed).

statusqueued · processing · font_ready · failed
progress{ total, completed, failed } — كم عدد أطالس المحارف المكتملة
fontsروابط مباشرة لـ ttf/otf/woff/woff2، تظهر متى status = font_ready.

استطلاع كل 3–5 ثوانٍ يكفي — عادةً ما تكتمل العائلة الكاملة في أقل من دقيقتين. روابط ملفات الخط ثابتة ولا تحتاج مصادقة بمجرد إعادتها.

// الأخطاء

تتبع جميع الأخطاء بنية JSON متسقة: { "success": false, "error": "…" }.

400طلب غير صالح — حقول ناقصة أو غير صالحة. راجِع error للتفاصيل.
401غير مصرّح — مفقود أو غير صالح Authorization الترويسة.
402الدفع مطلوب — نفدت حصة المحارف. أعد الشحن من صفحة الخطط.
403ممنوع — الرابط يخص حسابًا آخر.
404غير موجود — معرّف الخط غير موجود أو يخص حسابًا آخر.
429طلبات كثيرة جدًا — بلغت حد المعدل. أعد المحاولة بعد Retry-After.
500خطأ داخلي — حدث خطأ ما لدينا. عادةً ما تنجح إعادة المحاولة بعد بضع ثوانٍ.
{
  "success": false,
  "error": "Not enough glyphs. Top up: https://yofont.com/plans"
}