ما الممكن — ووفق أي قواعد
عبر الواجهة البرمجية تُنشئ وتعدّل وتنشر ما تفعله عادةً في الأدوات. وتسري القواعد نفسها: حدود باقتك، وشريط الذكاء الاصطناعي الخاص بك، وعلامة تجارية مكتملة قبل النشر، وأرقام فواتير متسلسلة دون فجوات، وفحص كل صورة مرفوعة. وما لا يُسمح به في الأداة لا يُسمح به هنا أيضًا.
إذا رُفض شيء ما، يحتوي type على رمز إنجليزي ثابت يمكن لبرنامجك أن يقرر بناءً عليه — مثل plan_limit_reached أو brand_incomplete أو ai_quota_exhausted — ويحتوي detail على الجملة التي كانت الأداة ستعرضها لك أيضًا.
{
"error": {
"type": "brand_incomplete",
"message": "The brand needs a name, an address and an email or phone number before anything is published.",
"detail": "Bevor diese Website online geht, muss klar sein, wer dahintersteht. Es fehlt: …"
}
}الصلاحيات
لكل مجال صلاحية للقراءة وأخرى للكتابة: sites:read وsites:write للمواقع الإلكترونية، وdomains:read وdns:write للنطاقات وسجلات DNS، وinvoices:read وinvoices:write للعملاء والفواتير وعروض الأسعار، وmedia:read وmedia:write لـ MediaStudio، وbrand:read لعلاماتك التجارية. اخترها عند إنشاء المفتاح تحت „ما المسموح لهذا المفتاح؟“.
المواقع الإلكترونية
يبني POST /v1/sites موقعًا إلكترونيًا كاملًا من جملة واحدة — كمسودة. يستغرق ذلك عادةً من 20 إلى 60 ثانية ويستهلك رصيد الذكاء الاصطناعي، كما في WebSiteBuilder. ويعدّل POST /v1/sites/{id}/edit صفحة واحدة من المسودة وفق تعليماتك. ولا يُنشر أي شيء على الإنترنت إلا عبر POST /v1/sites/{id}/publish؛ أما POST /v1/sites/{id}/unpublish فيزيل الموقع من الإنترنت مجددًا دون فقدان أي شيء.
يحدد brand_id العلامة التجارية التي يعرض الموقع شعارها وبيانات شركتها. إذا كانت لديك علامة تجارية واحدة فقط، يتبعها كل موقع تلقائيًا — فيحمل brand_id حينها رقمها وتكون قيمة brand_assigned هي false. ومع وجود عدة علامات تجارية، لا يعرض الموقع الشعار وبيانات الشركة إلا للعلامة التي ربطته بها؛ ودون ربط تكون قيمة brand_id هي null.
curl https://api.kenjtec.com/v1/sites \
-H "Authorization: Bearer kt_api_…" \
-H "Idempotency-Key: cafe-lumen-2026-10" \
-H "Content-Type: application/json" \
-d '{"brief": "Café Lumen in Lissabon: Frühstück, eigene Kaffeebohnen, Tische zum Reservieren."}'أرسل Idempotency-Key مع مسارات الذكاء الاصطناعي. إذا انقطع الاتصال، أعد المحاولة بالمعرّف نفسه لتحصل على الموقع الذي بُني بالفعل — دون أن تدفع مرة ثانية.
سجلات DNS
يعرض GET /v1/domains نطاقاتك التي يُدار DNS الخاص بها لدى KENJTEC. وتحتها تُنشئ السجلات (A وAAAA وCNAME وMX وTXT وNS)، وتستبدلها باستخدام PATCH وتحذفها — مع عمليات الفحص نفسها كما في DomainStudio.
السجلات التي أعدّتها KENJTEC لأحد أعمالك تحمل managed: true. ولا تغيّرها الواجهة البرمجية؛ بل يتم ذلك في DomainStudio، حيث تُعرض العواقب.
الفواتير وعروض الأسعار
يُنشئ POST /v1/customers عميلًا، ويُنشئ POST /v1/invoices مسودة — فاتورة أو عرض سعر. تحسب KENJTEC المجاميع؛ وأنت ترسل الكمية وسعر الوحدة بالسنت ونسبة الضريبة لكل سطر.
يُصدر POST /v1/invoices/{id}/issue المستند: يحصل على الرقم التالي دون فجوة ويصبح ثابتًا بعد ذلك. والتصحيح يعني الإلغاء — إذ يُنشئ POST /v1/invoices/{id}/cancel فاتورة إلغاء برقم خاص بها. ولا يُحذف أي شيء.
رفع وسائط
يتم الرفع على خطوتين، كما في MediaStudio. يعطيك POST /v1/media/uploads عنوانًا والترويسات؛ فترسل الملف إلى ذلك العنوان باستخدام PUT. بعد ذلك يفحص POST /v1/media/{id}/confirm ما وصل، وعندها فقط يصبح الملف متاحًا على عنوانه.
الصيغ المسموح بها هي JPEG وPNG وWebP وGIF وPDF وMP4 وWebM. والصورة التي لا تجتاز فحص المحتوى تُرفض بالرمز 422.
قراءة علامتك التجارية
يُرجع GET /v1/brands علاماتك التجارية من BrandStudio: الاسم والشعار والألوان والخطوط وبيانات الشركة والقنوات. وبذلك تبني برامجك الخاصة بالمظهر نفسه الذي تظهر به أعمالك في KENJTEC.