واجهة برمجة النماذج
إنشاء واسترجاع وتحديث وحذف ونشر وتكرار النماذج.
تتيح لك واجهة برمجة النماذج إدارة نماذج NueForm برمجياً. يمكنك عرض وإنشاء واسترجاع وتحديث وحذف ونشر وإلغاء نشر وتكرار النماذج.
تستخدم جميع هياكل الطلب والاستجابة أسماء حقول بتنسيق snake_case.
عرض النماذج
/api/v1/formsيُرجع قائمة مُقسّمة لصفحات من النماذج التي يملك المستخدم المُصادَق عليه حق الوصول إليها، بما في ذلك النماذج الشخصية والنماذج من الفرق التي ينتمي إليها المستخدم.
معاملات الاستعلام
pageintegerرقم الصفحة (افتراضي: 1)
per_pageintegerالنتائج لكل صفحة (افتراضي: 50)
searchstringتصفية النماذج حسب العنوان (مطابقة جزئية غير حساسة لحالة الأحرف)
team_idstringإرجاع النماذج التابعة لهذا الفريق فقط
publishedbooleanالتصفية حسب حالة النشر (true أو false)
الاستجابة
{
"forms": [
{
"id": "665a1b2c3d4e5f6a7b8c9d0e",
"title": "Customer Feedback Survey",
"description": "Quarterly satisfaction survey for Q1 2026",
"slug": "a1b2c3d4e5f6",
"published": true,
"created_at": "2026-01-15T10:30:00.000Z",
"updated_at": "2026-02-20T14:22:00.000Z",
"theme_color": "#6366f1",
"background_color": "#0a0a0a",
"response_count": 142,
"team": {
"id": "665b2c3d4e5f6a7b8c9d0e1f",
"name": "Marketing"
}
}
],
"total": 24,
"page": 1,
"per_page": 50
}
أمثلة على الكود
curl -X GET "https://api.nueform.io/api/v1/forms?page=1&per_page=10&published=true" \
-H "Authorization: Bearer YOUR_API_KEY"
إنشاء نموذج
/api/v1/formsيُنشئ نموذجاً جديداً. يمكنك اختيارياً تضمين مصفوفة من الأسئلة لإنشائها مع النموذج.
هيكل الطلب
titlestringعنوان النموذج (لا يمكن أن يكون فارغاً)
descriptionstringوصف النموذج
team_idstringتعيين النموذج لفريق (يتطلب صلاحية create_forms)
publishedbooleanما إذا كان النموذج منشوراً (افتراضي: false)
theme_colorstringلون القالب الرئيسي (hex، افتراضي: #6366f1)
background_colorstringلون الخلفية (hex، افتراضي: #0a0a0a)
text_colorstringلون نص السؤال (hex)
answer_text_colorstringلون نص الإجابة (hex)
placeholder_colorstringلون النص التوضيحي (hex)
button_colorstringلون خلفية الزر (hex)
button_text_colorstringلون نص الزر (hex)
title_colorstringلون نص العنوان (hex)
description_colorstringلون نص الوصف (hex)
option_text_colorstringلون نص خيارات الاختيار (hex)
indicator_bg_colorstringلون خلفية مؤشر الخطوة (hex)
indicator_text_colorstringلون نص مؤشر الخطوة (hex)
font_familystringعائلة خط السؤال
font_family_answerstringعائلة خط الإجابة
font_family_buttonstringعائلة خط الزر
font_family_descriptionstringعائلة خط الوصف
font_family_optionstringعائلة خط خيارات الاختيار
font_family_indicatorstringعائلة خط مؤشر الخطوة
question_font_sizestringحجم خط السؤال (مثل: "24px")
custom_cssstringCSS مخصص يُحقن في عارض النموذج
show_progress_barbooleanعرض شريط التقدم (افتراضي: true)
branding_logo_urlstringرابط شعار العلامة التجارية
branding_footer_textstringنص التذييل المخصص
hide_brandingbooleanإخفاء علامة NueForm التجارية (افتراضي: false)
top_logo_urlstringرابط الشعار المعروض في أعلى النموذج
top_logo_sizestringحجم الشعار العلوي (مثل: "120px")
top_logo_alignmentstringمحاذاة الشعار العلوي ("left" أو "center" أو "right")
top_logo_cssstringCSS مخصص للشعار العلوي
watermark_cssstringCSS مخصص للعلامة المائية
welcome_titlestringعنوان شاشة الترحيب
welcome_descriptionstringوصف شاشة الترحيب
welcome_button_textstringنص زر شاشة الترحيب (افتراضي: "Start")
thank_you_titlestringعنوان شاشة الشكر (افتراضي: "Thank you!")
thank_you_descriptionstringوصف شاشة الشكر
modestringوضع النموذج: "standard" أو "knowledge_quiz" أو "lead_qualification" أو "match_quiz" (افتراضي: "standard")
quiz_settingsobjectإعدادات الاختبار (لأوضاع الاختبار)
variablesobjectمتغيرات على مستوى النموذج للمنطق
start_logic_jumpsarrayقواعد القفز المنطقي المُطبَّقة عند بدء النموذج
webhook_urlstringرابط لاستقبال POST عند الإرسال (يتطلب خطة Pro)
limit_one_responsebooleanتقييد استجابة واحدة لكل زائر (افتراضي: false)
incremental_submissionbooleanحفظ الإجابات تدريجياً أثناء تقدم المستجيب (افتراضي: false)
questionsarrayمصفوفة كائنات الأسئلة لإنشائها (انظر أدناه)
مثال على الطلب
{
"title": "Customer Feedback Survey",
"description": "Help us improve our product",
"theme_color": "#2563eb",
"background_color": "#ffffff",
"show_progress_bar": true,
"welcome_title": "We value your feedback",
"welcome_description": "This survey takes about 3 minutes.",
"welcome_button_text": "Let's go",
"thank_you_title": "Thank you!",
"thank_you_description": "Your feedback helps us build a better product.",
"questions": [
{
"type": "short_text",
"title": "What is your name?",
"required": true
},
{
"type": "multiple_choice",
"title": "How did you hear about us?",
"required": true,
"properties": {
"choices": [
{ "label": "Search engine" },
{ "label": "Social media" },
{ "label": "Friend or colleague" },
{ "label": "Other" }
],
"allow_multiple": false
}
},
{
"type": "rating",
"title": "How would you rate your overall experience?",
"required": true,
"properties": {
"steps": 5,
"shape": "star"
}
}
]
}
الاستجابة
يُرجع كائن النموذج المُنشأ مع جميع الأسئلة:
{
"id": "665a1b2c3d4e5f6a7b8c9d0e",
"title": "Customer Feedback Survey",
"description": "Help us improve our product",
"slug": "a1b2c3d4e5f6",
"published": false,
"created_at": "2026-02-28T12:00:00.000Z",
"updated_at": "2026-02-28T12:00:00.000Z",
"theme_color": "#2563eb",
"background_color": "#ffffff",
"show_progress_bar": true,
"welcome_title": "We value your feedback",
"welcome_description": "This survey takes about 3 minutes.",
"welcome_button_text": "Let's go",
"thank_you_title": "Thank you!",
"thank_you_description": "Your feedback helps us build a better product.",
"questions": [
{
"id": "66a1b2c3d4e5f6a7b8c9d001",
"type": "short_text",
"title": "What is your name?",
"description": null,
"required": true,
"order": 0,
"properties": {},
"logic_jumps": [],
"validations": {}
},
{
"id": "66a1b2c3d4e5f6a7b8c9d002",
"type": "multiple_choice",
"title": "How did you hear about us?",
"description": null,
"required": true,
"order": 1,
"properties": {
"choices": [
{ "label": "Search engine" },
{ "label": "Social media" },
{ "label": "Friend or colleague" },
{ "label": "Other" }
],
"allow_multiple": false
},
"logic_jumps": [],
"validations": {}
},
{
"id": "66a1b2c3d4e5f6a7b8c9d003",
"type": "rating",
"title": "How would you rate your overall experience?",
"description": null,
"required": true,
"order": 2,
"properties": {
"steps": 5,
"shape": "star"
},
"logic_jumps": [],
"validations": {}
}
]
}
أمثلة على الكود
curl -X POST "https://api.nueform.io/api/v1/forms" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Customer Feedback Survey",
"description": "Help us improve our product",
"questions": [
{
"type": "short_text",
"title": "What is your name?",
"required": true
}
]
}'
الحصول على نموذج
/api/v1/forms/:idيسترجع نموذجاً واحداً بواسطة المعرّف، بما في ذلك جميع الأسئلة مُرتَّبة حسب موقعها.
معاملات المسار
idstringمعرّف النموذج
الاستجابة
{
"id": "665a1b2c3d4e5f6a7b8c9d0e",
"title": "Customer Feedback Survey",
"description": "Help us improve our product",
"slug": "a1b2c3d4e5f6",
"published": true,
"created_at": "2026-01-15T10:30:00.000Z",
"updated_at": "2026-02-20T14:22:00.000Z",
"theme_color": "#2563eb",
"background_color": "#ffffff",
"text_color": null,
"answer_text_color": null,
"placeholder_color": null,
"button_color": null,
"button_text_color": null,
"font_family": null,
"question_font_size": null,
"custom_css": null,
"show_progress_bar": true,
"incremental_submission": false,
"limit_one_response": false,
"welcome_title": "We value your feedback",
"welcome_description": "This survey takes about 3 minutes.",
"welcome_button_text": "Let's go",
"thank_you_title": "Thank you!",
"thank_you_description": "Your feedback helps us build a better product.",
"branding_logo_url": null,
"branding_footer_text": null,
"hide_branding": false,
"mode": "standard",
"webhook_url": null,
"has_unpublished_changes": false,
"published_version_id": "66c3d4e5f6a7b8c9d0e1f2a3",
"response_count": 142,
"questions": [
{
"id": "66a1b2c3d4e5f6a7b8c9d001",
"type": "short_text",
"title": "What is your name?",
"description": null,
"required": true,
"order": 0,
"properties": {},
"logic_jumps": [],
"validations": {}
}
]
}
أمثلة على الكود
curl -X GET "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e" \
-H "Authorization: Bearer YOUR_API_KEY"
تحديث نموذج
/api/v1/forms/:idيُحدّث حقول النموذج ويُزامن أسئلته. عند تضمين مصفوفة questions، سيقوم NueForm بما يلي:
- تحديث الأسئلة الموجودة (المُطابَقة بواسطة
id) - إنشاء أسئلة جديدة (بدون
idأوidغير معروف) - حذف الأسئلة الموجودة في النموذج ولكن غير موجودة في المصفوفة
إذا كان النموذج منشوراً حالياً، يتم تعيين علامة has_unpublished_changes تلقائياً إلى true.
معاملات المسار
idstringمعرّف النموذج
هيكل الطلب
يقبل جميع الحقول من إنشاء نموذج باستثناء team_id. قم بتضمين الحقول التي تريد تغييرها فقط.
مثال على الطلب
{
"title": "Updated Survey Title",
"description": "Revised description for Q2",
"theme_color": "#10b981",
"questions": [
{
"id": "66a1b2c3d4e5f6a7b8c9d001",
"type": "short_text",
"title": "What is your full name?",
"required": true
},
{
"type": "long_text",
"title": "Any additional comments?",
"required": false
}
]
}
الاستجابة
يُرجع كائن النموذج المُحدَّث مع جميع الأسئلة (نفس مخطط الحصول على نموذج).
أمثلة على الكود
curl -X PUT "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Updated Survey Title",
"theme_color": "#10b981"
}'
حذف نموذج
/api/v1/forms/:idيحذف نموذجاً نهائياً مع جميع البيانات المرتبطة به، بما في ذلك الأسئلة والاستجابات والإصدارات وإدخالات سجل التغييرات. يتم تنظيف الملفات المرفوعة المرتبطة بشكل غير متزامن.
هذا الإجراء لا يمكن التراجع عنه. سيتم حذف جميع الاستجابات المُجمَّعة لهذا النموذج نهائياً.
معاملات المسار
idstringمعرّف النموذج
الاستجابة
{
"success": true
}
أمثلة على الكود
curl -X DELETE "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e" \
-H "Authorization: Bearer YOUR_API_KEY"
نشر نموذج
/api/v1/forms/:id/publishينشر نموذجاً عن طريق إنشاء لقطة مُرقَّمة للنموذج الحالي وأسئلته. كل عملية نشر تزيد رقم الإصدار. يصبح النموذج متاحاً للعامة عبر رابطه القابل للمشاركة.
معاملات المسار
idstringمعرّف النموذج
الاستجابة
يُرجع كائن النموذج مع حقل published_version يشير إلى رقم الإصدار الجديد:
{
"id": "665a1b2c3d4e5f6a7b8c9d0e",
"title": "Customer Feedback Survey",
"slug": "a1b2c3d4e5f6",
"published": true,
"has_unpublished_changes": false,
"published_version_id": "66c3d4e5f6a7b8c9d0e1f2a3",
"published_version": 3,
"questions": [ ... ]
}
أمثلة على الكود
curl -X POST "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e/publish" \
-H "Authorization: Bearer YOUR_API_KEY"
إلغاء نشر نموذج
/api/v1/forms/:id/publishيُلغي نشر نموذج، مما يجعله غير متاح عبر رابطه العام. يتم الاحتفاظ بلقطة الإصدار المنشور بحيث يمكنك إعادة النشر لاحقاً.
معاملات المسار
idstringمعرّف النموذج
الاستجابة
يُرجع كائن النموذج المُحدَّث مع تعيين published إلى false.
{
"id": "665a1b2c3d4e5f6a7b8c9d0e",
"title": "Customer Feedback Survey",
"published": false,
"questions": [ ... ]
}
أمثلة على الكود
curl -X DELETE "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e/publish" \
-H "Authorization: Bearer YOUR_API_KEY"
تكرار نموذج
/api/v1/forms/:id/duplicateيُنشئ نسخة من نموذج موجود، بما في ذلك جميع الأسئلة. يتم إعادة تعيين مراجع القفز المنطقي تلقائياً إلى معرّفات الأسئلة الجديدة. يتم إنشاء النموذج المُكرَّر دائماً في حالة غير منشورة.
معاملات المسار
idstringمعرّف النموذج المراد تكراره
هيكل الطلب
titlestringعنوان النموذج الجديد (افتراضي: "العنوان الأصلي (نسخة)")
team_idstringتعيين النسخة المُكرَّرة لفريق مختلف
مثال على الطلب
{
"title": "Customer Feedback Survey v2",
"team_id": "665b2c3d4e5f6a7b8c9d0e1f"
}
الاستجابة
يُرجع كائن النموذج المُنشأ حديثاً (نفس مخطط الحصول على نموذج) مع تعيين published إلى false.
أمثلة على الكود
curl -X POST "https://api.nueform.io/api/v1/forms/665a1b2c3d4e5f6a7b8c9d0e/duplicate" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "title": "Customer Feedback Survey v2" }'
استجابات الأخطاء
تُرجع جميع نقاط النهاية استجابات أخطاء قياسية.
رموز الأخطاء
400Bad Requestخطأ في التحقق أو حقل مطلوب مفقود
401Unauthorizedمفتاح API مفقود أو غير صالح
403Forbiddenصلاحيات غير كافية لنماذج الفريق
404Not Foundالنموذج غير موجود
500Server Errorخطأ داخلي في الخادم
مثال على خطأ
{
"error": "Title is required"
}