NueForm

واجهة برمجة الفرق

إدارة الفرق والأعضاء والأدوار والدعوات لبناء النماذج التعاوني.

تتيح لك واجهة برمجة الفرق إنشاء وإدارة الفرق لبناء النماذج التعاوني. تسمح الفرق لعدة مستخدمين بمشاركة النماذج، مع التحكم في الوصول القائم على الأدوار الذي يحدد من يمكنه عرض النماذج والاستجابات وتعديلها وحذفها.

تستخدم جميع هياكل الطلبات والاستجابات أسماء حقول بتنسيق snake_case.

أدوار الفريق

ownerrole

وصول كامل. يمكنه إدارة الأعضاء والفوترة وحذف الفريق.

adminrole

يمكنه إنشاء النماذج وتعديلها وحذفها، وإدارة الأعضاء، وعرض الاستجابات.

editorrole

يمكنه إنشاء النماذج وتعديلها وعرض الاستجابات. لا يمكنه إدارة الأعضاء.

viewerrole

يمكنه عرض النماذج والاستجابات. لا يمكنه الإنشاء أو التعديل.

عرض الفرق

GET/api/v1/teams

يُرجع جميع الفرق التي ينتمي إليها المستخدم المُصادَق عليه.

الاستجابة

json
{
  "teams": [
    {
      "id": "665b2c3d4e5f6a7b8c9d0e1f",
      "name": "Marketing",
      "slug": "marketing",
      "owner_id": "665a0a1b2c3d4e5f6a7b8c9d",
      "created_at": "2026-01-10T09:00:00.000Z",
      "updated_at": "2026-02-15T11:30:00.000Z",
      "member_count": 5,
      "your_role": "admin"
    },
    {
      "id": "665c3d4e5f6a7b8c9d0e1f20",
      "name": "Product",
      "slug": "product",
      "owner_id": "665a0a1b2c3d4e5f6a7b8c9d",
      "created_at": "2026-02-01T14:00:00.000Z",
      "updated_at": "2026-02-20T16:45:00.000Z",
      "member_count": 3,
      "your_role": "owner"
    }
  ]
}

أمثلة الشيفرة البرمجية

bash
curl -X GET "https://api.nueform.io/api/v1/teams" \
  -H "Authorization: Bearer YOUR_API_KEY"

إنشاء فريق

POST/api/v1/teams

يُنشئ فريقاً جديداً. يصبح المستخدم المُصادَق عليه مالك الفريق.

جسم الطلب

namestring

اسم الفريق

مثال الطلب

json
{
  "name": "Marketing"
}

الاستجابة

json
{
  "id": "665b2c3d4e5f6a7b8c9d0e1f",
  "name": "Marketing",
  "slug": "marketing",
  "owner_id": "665a0a1b2c3d4e5f6a7b8c9d",
  "created_at": "2026-02-28T12:00:00.000Z",
  "updated_at": "2026-02-28T12:00:00.000Z"
}

أمثلة الشيفرة البرمجية

bash
curl -X POST "https://api.nueform.io/api/v1/teams" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Marketing" }'

الحصول على فريق

GET/api/v1/teams/:teamId

يسترجع فريقاً واحداً بواسطة المعرّف.

معاملات المسار

teamIdstring

معرّف الفريق

الاستجابة

json
{
  "id": "665b2c3d4e5f6a7b8c9d0e1f",
  "name": "Marketing",
  "slug": "marketing",
  "owner_id": "665a0a1b2c3d4e5f6a7b8c9d",
  "created_at": "2026-01-10T09:00:00.000Z",
  "updated_at": "2026-02-15T11:30:00.000Z",
  "member_count": 5
}

أمثلة الشيفرة البرمجية

bash
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f" \
  -H "Authorization: Bearer YOUR_API_KEY"

تحديث فريق

PUT/api/v1/teams/:teamId

يُحدّث خصائص الفريق. يتطلب دور owner أو admin.

معاملات المسار

teamIdstring

معرّف الفريق

جسم الطلب

namestring

اسم الفريق الجديد

مثال الطلب

json
{
  "name": "Marketing & Growth"
}

الاستجابة

يُرجع كائن الفريق المُحدَّث.

أمثلة الشيفرة البرمجية

bash
curl -X PUT "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Marketing & Growth" }'

حذف فريق

DELETE/api/v1/teams/:teamId

يحذف فريقاً بشكل نهائي. يمكن لمالك الفريق فقط حذف الفريق.

يؤدي حذف الفريق إلى إزالة جميع عضويات الفريق والدعوات. لا يتم حذف النماذج التابعة للفريق تلقائياً ولكنها ستصبح غير قابلة للوصول لأعضاء الفريق السابقين.

معاملات المسار

teamIdstring

معرّف الفريق

الاستجابة

json
{
  "success": true
}

أمثلة الشيفرة البرمجية

bash
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f" \
  -H "Authorization: Bearer YOUR_API_KEY"

عرض الأعضاء

GET/api/v1/teams/:teamId/members

يُرجع جميع أعضاء الفريق.

معاملات المسار

teamIdstring

معرّف الفريق

الاستجابة

json
{
  "members": [
    {
      "id": "66d1e2f3a4b5c6d7e8f9a0b1",
      "user_id": "665a0a1b2c3d4e5f6a7b8c9d",
      "email": "alice@example.com",
      "first_name": "Alice",
      "last_name": "Johnson",
      "role": "owner",
      "joined_at": "2026-01-10T09:00:00.000Z"
    },
    {
      "id": "66d2e3f4a5b6c7d8e9f0a1b2",
      "user_id": "665a1b2c3d4e5f6a7b8c9d0e",
      "email": "bob@example.com",
      "first_name": "Bob",
      "last_name": "Smith",
      "role": "editor",
      "joined_at": "2026-01-15T14:30:00.000Z"
    }
  ]
}

أمثلة الشيفرة البرمجية

bash
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members" \
  -H "Authorization: Bearer YOUR_API_KEY"

إضافة عضو

POST/api/v1/teams/:teamId/members

يُضيف مستخدماً مباشرة إلى فريق بواسطة معرّف المستخدم. يتطلب دور owner أو admin. لدعوة مستخدم عبر البريد الإلكتروني، استخدم إنشاء دعوة بدلاً من ذلك.

معاملات المسار

teamIdstring

معرّف الفريق

جسم الطلب

user_idstring

معرّف المستخدم المراد إضافته

rolestring

الدور المراد تعيينه: "admin"، "editor"، "viewer" (الافتراضي: "viewer")

مثال الطلب

json
{
  "user_id": "665a1b2c3d4e5f6a7b8c9d0e",
  "role": "editor"
}

الاستجابة

json
{
  "id": "66d2e3f4a5b6c7d8e9f0a1b2",
  "user_id": "665a1b2c3d4e5f6a7b8c9d0e",
  "team_id": "665b2c3d4e5f6a7b8c9d0e1f",
  "role": "editor",
  "joined_at": "2026-02-28T12:00:00.000Z"
}

أمثلة الشيفرة البرمجية

bash
curl -X POST "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "665a1b2c3d4e5f6a7b8c9d0e",
    "role": "editor"
  }'

تحديث دور العضو

PUT/api/v1/teams/:teamId/members/:memberId

يُحدّث دور عضو في الفريق. يتطلب دور owner أو admin. لا يمكنك تغيير دور المالك.

معاملات المسار

teamIdstring

معرّف الفريق

memberIdstring

معرّف عضو الفريق

جسم الطلب

rolestring

الدور الجديد: "admin"، "editor"، "viewer"

مثال الطلب

json
{
  "role": "admin"
}

الاستجابة

json
{
  "id": "66d2e3f4a5b6c7d8e9f0a1b2",
  "user_id": "665a1b2c3d4e5f6a7b8c9d0e",
  "team_id": "665b2c3d4e5f6a7b8c9d0e1f",
  "role": "admin",
  "joined_at": "2026-01-15T14:30:00.000Z"
}

أمثلة الشيفرة البرمجية

bash
curl -X PUT "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members/66d2e3f4a5b6c7d8e9f0a1b2" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "role": "admin" }'

إزالة عضو

DELETE/api/v1/teams/:teamId/members/:memberId

يُزيل عضواً من الفريق. يتطلب دور owner أو admin. لا يمكن إزالة مالك الفريق.

معاملات المسار

teamIdstring

معرّف الفريق

memberIdstring

معرّف عضو الفريق

الاستجابة

json
{
  "success": true
}

أمثلة الشيفرة البرمجية

bash
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/members/66d2e3f4a5b6c7d8e9f0a1b2" \
  -H "Authorization: Bearer YOUR_API_KEY"

عرض الدعوات

GET/api/v1/teams/:teamId/invitations

يُرجع جميع الدعوات المعلقة لفريق. يتطلب دور owner أو admin.

معاملات المسار

teamIdstring

معرّف الفريق

الاستجابة

json
{
  "invitations": [
    {
      "id": "66e1f2a3b4c5d6e7f8a9b0c1",
      "email": "carol@example.com",
      "role": "editor",
      "invited_by": "665a0a1b2c3d4e5f6a7b8c9d",
      "status": "pending",
      "expires_at": "2026-03-07T12:00:00.000Z",
      "created_at": "2026-02-28T12:00:00.000Z"
    }
  ]
}

أمثلة الشيفرة البرمجية

bash
curl -X GET "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/invitations" \
  -H "Authorization: Bearer YOUR_API_KEY"

إنشاء دعوة

POST/api/v1/teams/:teamId/invitations

يُرسل دعوة عبر البريد الإلكتروني للانضمام إلى فريق. تتضمن الدعوة رمزاً فريداً وتنتهي صلاحيتها بعد 7 أيام. يتطلب دور owner أو admin.

معاملات المسار

teamIdstring

معرّف الفريق

جسم الطلب

emailstring

عنوان البريد الإلكتروني للدعوة

rolestring

الدور المراد تعيينه عند القبول: "admin"، "editor"، "viewer" (الافتراضي: "editor")

مثال الطلب

json
{
  "email": "carol@example.com",
  "role": "editor"
}

الاستجابة

json
{
  "id": "66e1f2a3b4c5d6e7f8a9b0c1",
  "email": "carol@example.com",
  "role": "editor",
  "invited_by": "665a0a1b2c3d4e5f6a7b8c9d",
  "status": "pending",
  "expires_at": "2026-03-07T12:00:00.000Z",
  "created_at": "2026-02-28T12:00:00.000Z"
}

أمثلة الشيفرة البرمجية

bash
curl -X POST "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/invitations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "carol@example.com",
    "role": "editor"
  }'

إلغاء دعوة

DELETE/api/v1/teams/:teamId/invitations/:invId

يُلغي دعوة معلقة. يتطلب دور owner أو admin. لن يكون رمز الدعوة صالحاً بعد الإلغاء.

معاملات المسار

teamIdstring

معرّف الفريق

invIdstring

معرّف الدعوة

الاستجابة

json
{
  "success": true
}

أمثلة الشيفرة البرمجية

bash
curl -X DELETE "https://api.nueform.io/api/v1/teams/665b2c3d4e5f6a7b8c9d0e1f/invitations/66e1f2a3b4c5d6e7f8a9b0c1" \
  -H "Authorization: Bearer YOUR_API_KEY"

استجابات الأخطاء

استجابات الأخطاء القياسية التي تُرجعها نقاط نهاية واجهة برمجة الفرق.

رموز الأخطاء

400Bad Request

حقول مطلوبة مفقودة، دور غير صالح

401Unauthorized

مفتاح API مفقود أو غير صالح

403Forbidden

دور غير كافٍ للإجراء المطلوب

404Not Found

الفريق أو العضو أو الدعوة غير موجود

409Conflict

المستخدم عضو بالفعل، دعوة مكررة

500Server Error

خطأ داخلي في الخادم

مثال خطأ

json
{
  "error": "Not authorized to manage team members"
}
آخر تحديث: 6 أبريل 2026