---
title: "التكاملات الخارجية عبر فريقي API"
description: "واجهة فريقي API هي REST API لإدارة المشاريع، وقوائم المهام، والمهام، والملفات، والمناقشات. تعتمد الطلبات بمفتاح Bearer ونطاق وقائمة عمليات مسموح بها."
url: https://fareeqy.com/api/v1/docs
language: ar
---

للمطوّرين

# التكاملات الخارجية عبر فريقي API

فريقي API هي REST API تتيح قراءة المشاريع، وقوائم المهام، والمهام، ومناقشات المجلس، والملفات، والمجلدات، وأحداث التقويم، والأعضاء، والتعليقات، وإنشاءها، وتحديثها. يُعتمد الطلب بمفتاح Bearer ونطاق وعمليات مسموح بها. الواجهة قيد المعاينة وتُفعّل لكل شركة.

عنوان الخدمة

`https://app.fareeqy.com/api/v1`

الإصدار

[v1.3.0](https://fareeqy.com/api/v1/docs/changelog)

OpenAPI 3.1

[ملف OpenAPI](https://fareeqy.com/openapi.yaml)

الحالة

معاينة، تُفعَّل لكل شركة على حدة

المحتويات

الأساسيات

-   ابدأ في ثلاث خطوات
-   الوصول والتفعيل
-   المصادقة
-   سلطة المفتاح
-   النطاق والعمليات
-   المعرّفات والعناوين
-   أشكال الاستجابة
-   الحدود والحصة اليومية
-   جدول العمليات
-   الأخطاء
-   كل المسارات

المسارات

-   [الحساب](https://fareeqy.com/api/v1/docs/account)
-   [الأحداث](https://fareeqy.com/api/v1/docs/events)
-   [المشاريع](https://fareeqy.com/api/v1/docs/projects)
-   [الأعضاء](https://fareeqy.com/api/v1/docs/members)
-   [قوائم المهام](https://fareeqy.com/api/v1/docs/task-lists)
-   [المهام](https://fareeqy.com/api/v1/docs/tasks)
-   [التعليقات](https://fareeqy.com/api/v1/docs/comments)
-   [المجلس](https://fareeqy.com/api/v1/docs/discussions)
-   [الملفات](https://fareeqy.com/api/v1/docs/files)
-   [المجلدات](https://fareeqy.com/api/v1/docs/folders)

المزيد

-   [سجل التغييرات](https://fareeqy.com/api/v1/docs/changelog)

الأساسيات

-   ابدأ في ثلاث خطوات
-   الوصول والتفعيل
-   المصادقة
-   سلطة المفتاح
-   النطاق والعمليات
-   المعرّفات والعناوين
-   أشكال الاستجابة
-   الحدود والحصة اليومية
-   جدول العمليات
-   الأخطاء
-   كل المسارات

المسارات

-   [الحساب](https://fareeqy.com/api/v1/docs/account)
-   [الأحداث](https://fareeqy.com/api/v1/docs/events)
-   [المشاريع](https://fareeqy.com/api/v1/docs/projects)
-   [الأعضاء](https://fareeqy.com/api/v1/docs/members)
-   [قوائم المهام](https://fareeqy.com/api/v1/docs/task-lists)
-   [المهام](https://fareeqy.com/api/v1/docs/tasks)
-   [التعليقات](https://fareeqy.com/api/v1/docs/comments)
-   [المجلس](https://fareeqy.com/api/v1/docs/discussions)
-   [الملفات](https://fareeqy.com/api/v1/docs/files)
-   [المجلدات](https://fareeqy.com/api/v1/docs/folders)

المزيد

-   [سجل التغييرات](https://fareeqy.com/api/v1/docs/changelog)

## ابدأ في ثلاث خطوات

1.   أنشئ مفتاح API من إعدادات شركتك، وحدّد نطاقه والعمليات التي يحملها.
2.   تأكد أن المفتاح يعمل، واعرف ما يحمله من عمليات ولأي شركة يعمل.
3.   اقرأ مشاريعك، ثم اعمل داخلها: قوائم، ومهام، ومجلس، وملفات.

الطلب نسخ

 `curl "https://app.fareeqy.com/api/v1/me" \   -H "Authorization: Bearer $FAREEQY_API_KEY"`

الاستجابة نسخ

 `{   "data": {     "key": {       "name": "مزامنة الفوترة",       "access": "write",       "operations": [         "projects:read",         "tasks:read",         "tasks:write"       ]     },     "company": {       "name": "فريق التقنية"     },     "created_by": {       "name": "سارة العتيبي",       "email": "sara@example.com"     }   } }`

حقل `created_by` توقيع يُعرف به أي مفتاح تحمله تكاملاتك، وليس الهوية التي يُنفَّذ بها الطلب.

## الوصول والتفعيل

الواجهة متاحة على خطتَي **المتطور** و **الإنتاجي**. أما الخطة المجانية والاحترافية فلا تشملان الوصول إلى API، وأي طلب منهما يُرفض بالرمز 403 ورسالة `plan_upgrade_required`، ولا فائدة من إعادة المحاولة.

السطح في مرحلة معاينة، ويُفعَّل لكل شركة على حدة. وما دام غير مفعّل لشركتك، يرجع كل مسار مصادَق عليه الرمز 404: السطح مخفي، لا ممنوع. يُفحص المفتاح أولاً، فالمفتاح الخاطئ يبقى 401، ثم يُفحص التفعيل، فلا يظهر الـ 404 إلا بعد تقديم مفتاح صالح.

لتفعيل الواجهة لشركتك، أو لطلب حدود أعلى، تواصل معنا وسنفعّلها على حسابك.

## المصادقة

كل طلب يحمل مفتاح API في header `Authorization` بصيغة Bearer. ويُعرض المفتاح مرة واحدة عند إنشائه، ولا يُخزَّن منه إلا بصمته المشفّرة، فاحفظه حينها.

cURL نسخ

 `curl "https://app.fareeqy.com/api/v1/me" \   -H "Authorization: Bearer $FAREEQY_API_KEY"`

مفاتيح REST ورموز MCP بيانات اعتماد مختلفة، ولا يصادق أحدهما على واجهة الآخر.

## سلطة المفتاح

-   المفتاح ملك للشركة لا لمنشئه، ويستمر بعد مغادرته.

-   عملية غير ممنوحة للمفتاح ← 403.

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

-   سجل تابع لشركة أخرى ← 404.

-   `created_by` اسم منشئ المفتاح، لا هوية تنفيذ الطلب.

-   إدارة المفاتيح للمالك وللمصرّح له، وليست للمدير أو العضو افتراضياً.


## النطاق والعمليات

كل مسار يعلن العملية الواحدة التي يطلبها، وهي نص ثابت بصيغة `<المورد>:<القدرة>` مثل `projects:write`. والمفتاح يُفحص مرتين قبل أن يمر الطلب.

-   **النطاق** هو السقف: `read` أو `write`. ومفتاح `write` يحمل `read` معه. النطاق يقرر أي العمليات يجوز للمفتاح أن يحملها أصلاً.

-   **قائمة العمليات المسموحة** هي البوابة الفعلية: العمليات التي يستطيع هذا المفتاح استدعاءها بالتحديد، ويُتحقق أنها ضمن ما يسمح به نطاقه. ولا يُحفظ مفتاح بقائمة فارغة، فلا ينفتح مفتاح بالخطأ.


يجب أن يتحقق الشرطان معاً: أن تكون العملية في قائمة المفتاح، وأن يفي نطاقه بقدرتها. وإلا فالطلب مرفوض بالرمز 403، ويُسجَّل في سجل التدقيق بحالة `denied`.

**الحذف اختياري بقرار صريح.** عمليات `destructive` تحتاج نطاق `write`، لكنها مستثناة عمداً من المنح الافتراضي، فتُفعَّل كل عملية حذف يدوياً على المفتاح. اطّلع على جدول العمليات بالأسفل.

## المعرّفات والعناوين

المشاريع، وقوائم المهام، والمهام، ومواضيع المجلس ترجع إليك بمعرّف ثابت في حقل `id`: `prj-8f3kd`، و `lst-4m2qp`، و `tsk-9wb7t`، و `mjl-6khz2`. المعرّف الثابت فريد في المنصة كلها، وحروفه لاتينية فلا يحتاج ترميز URL، ولا يتغير حين يُعاد تسمية السجل. وهو ما يظهر في شريط المتصفح، فما ينسخه زميلك من الشاشة يعمل في سكربتك كما هو.

والـ slug ما زال مقبولاً في كل عنوان متداخل كان يُقبل فيه، والمعرّف الرقمي كذلك، للمشروع، ولقائمة المهام، وللمهمة، ولموضوع المجلس، وللملف، فلا شيء مخزَّن عندك من إصدار سابق يحتاج ترحيلاً. ما تغيّر هو أيّ الأشكال نسلّمه لك، لا أيّها نقبل.

وحقول `*_slug` في الاستجابات ( `project_slug`، و `task_list_slug`، و `task_slug`، و `discussion_slug` ) تحمل المعرّف الثابت أيضاً، لا الـ slug. وبقي اسمها كما هو حفاظاً على التوافق.

وكل مشروع، وقائمة مهام، ومهمة، وموضوع مجلس، وتعليق، وملف، ومجلد، وحدث، ونتيجة بحث يحمل حقل `url`: العنوان الكامل للصفحة التي يفتحها الشخص في فريقي. التعليق بلا صفحة خاصة، فيحمل عنوان صفحة أبيه، والمجلد يحمل صفحة ملفات المشروع مفتوحةً عليه. اربط به بدل أن تبني العنوان بنفسك.

للسجل الواحد عنوانان، والفرق بينهما هو حجة الأمان كلها:

-   **العنوان المتداخل** يستقبل الشكلين معاً: `/projects/{project}/lists/{list}/tasks/{task}`. وهو يظل يعني ما يقوله، فالعنوان الذي يسمّي الأب الخطأ يرجع 404 حتى لو كان معرّف الورقة ثابتاً وكان سيُحلّ وحده.

-   **العنوان المسطّح** لا يستقبل إلا المعرّف الثابت: `/tasks/tsk-9wb7t` و `/lists/lst-4m2qp` و `/discussions/mjl-6khz2` و `DELETE /files/fil-3qd8n`. والرفض هو المقصود: الـ slug يتكرر بين المشاريع، فخدمة بحث مسطّح بالـ slug تسليم لسجل مشروع آخر.

-   المعرّف مقيَّد بسابقته لا بشكله العام، فـ `/tasks/lst-4m2qp` يرجع 404 بدل أن يخدم قائمة مهام من عنوان المهمة. والوصول إلى سجل من نوع آخر بصمت هو أسوأ ما قد يصيب نظام عناوين، فهو مرفوض مرتين: عند التوجيه، ثم عند الحلّ.

-   المجموعات تبقى تحت أبيها لأن المجموعة ملك أبيها («مهام هذه القائمة»)، لكن الأب نفسه يُسمّى مسطّحاً: `/lists/lst-4m2qp/tasks` هي القائمة نفسها بلا مشروع.


الملف حالة وسط: له معرّف ثابت ( `fil-3qd8n` ) يستقبله مسار الحذف المسطّح ويرجعه البحث في حقل `id`، لكن قائمة ملفات المشروع ما زالت ترجع معرّفه الرقمي، وكلاهما يُحلّ حيثما يُقبل الملف.

أما المجلدات، والأحداث، والتعليقات، ومرفقات التعليقات فلا معرّف ثابت لها، وتُعنوَن بمعرّفات رقمية. وهي عامة، لذلك تمرّ كل عملية بحث عنها عبر مشروعها (أو عبر شركة المفتاح، في حالة الأحداث)، فمعرّف من شركة أخرى ينتهي إلى 404، لا إلى تسريب.

الـ slugs عربية لأن أسماء مشاريعك عربية، فرمّزها ترميز URL قبل إرسالها: `تطوير-الموقع` تصبح `%D8%AA%D8%B7%D9%88%D9%8A%D8%B1-...`. أمثلة الطلبات هنا تعرض النص الأصلي ليبقى مقروءاً. والمعرّف الثابت يعفيك من هذا كله.

## أشكال الاستجابة

كل استجابة مغلّفة، فلا تتعامل مع مصفوفة عارية ولا مع حقل في الجذر.

-   مورد واحد: `{ "data": { ... } }`

-   مجموعة: `{ "data": [ ... ], "meta": { total, limit, offset, count } }`

-   حذف: `{ "data": { "deleted": true, ... } }`

-   خطأ: `{ "error": { "code": "...", "message": "..." } }`


`error.code` هو الجزء الثابت الذي يقرؤه برنامجك، ويبقى بالإنجليزية. أما `error.message` فمكتوبة بالعربية ليقرأها الإنسان. ابنِ منطقك على الرمز لا على الرسالة. والاستثناء الوحيد من هذا الشكل استجابة حد الاندفاع، فهي تصل قبل التطبيق بحقل `error` نصي.

المجموعات تستقبل `limit` (الافتراضي 50، والحد الأقصى 100، وما تجاوزه يُقصَر عليه) و `offset` (الافتراضي 0). و `meta.total` هو العدد الكلي بلا ترشيح، و `meta.count` عدد السجلات في الصفحة المُرجَعة.

## الحدود والحصة اليومية

طبقتان مستقلتان، وترفضان بطريقتين مختلفتين.

**الاندفاع.** كل مفتاح محدود بـ 300 طلب في الدقيقة، ويسري حد مماثل لكل عنوان IP. وتجاوز أيهما يرجع 429.

**الحصة اليومية.** كل طلب يستهلك واحداً من رصيد الشركة اليومي. والرصيد للشركة لا للمفتاح، فإنشاء مفاتيح إضافية لا يرفعه، ويتجدد عند منتصف الليل بتوقيت شركتك.

| الخطة | الطلبات اليومية |
| --- | --- |
| المجاني | لا وصول إلى API |
| الاحترافي | لا وصول إلى API |
| المتطور | 1,000 |
| الإنتاجي | 10,000 |

الخطة بلا وصول ليست خطة محدودة السرعة: الرفض فيها 403 برمز `plan_upgrade_required`، ولا يصحبه `Retry-After`، لأن الانتظار لن ينفع أبداً. أما الخطة التي تملك وصولاً واستهلكت رصيد يومها فترجع 429 برمز `rate_limit_exceeded` ومعه `Retry-After` يشير إلى منتصف ليل شركتك القادم. الخلط بين الحالتين يدفع عميلاً منضبطاً إلى حلقة إعادة محاولة لا تنجح أبداً.

تُضاف الـ headers `X-RateLimit-Limit` و `X-RateLimit-Remaining` و `X-RateLimit-Reset` إلى **كل** استجابة مخدومة، لا إلى الرفض وحده، حتى يبطئ عميلك قبل أن يصل إلى الصفر. وعلى خطة بلا سقف تقرأ الأوليان `unlimited`.

## جدول العمليات

يعرض الجدول جميع العمليات التي يمكن منحها للمفتاح، مجمعةً حسب المورد. لا تُمنح عمليات الحذف تلقائياً، بل تُفعّل كل عملية منها فردياً.

| المورد | قراءة | كتابة | حذف |
| --- | --- | --- | --- |
| `account` | `account:read` | لا يوجد | لا يوجد |
| `projects` | `projects:read` | `projects:write` | `projects:destructive` |
| `task_lists` | `task_lists:read` | `task_lists:write` | `task_lists:destructive` |
| `tasks` | `tasks:read` | `tasks:write` | `tasks:destructive` |
| `discussions` | `discussions:read` | `discussions:write` | `discussions:destructive` |
| `comments` | `comments:read` | `comments:write` | لا يوجد |
| `files` | `files:read` | `files:write` | `files:destructive` |
| `events` | `events:read` | `events:write` | `events:destructive` |

## الأخطاء

تستخدم جميع الأخطاء بنيةً موحدةً تتضمن رمزاً ثابتاً قابلاً للقراءة آلياً، ورسالةً توضيحيةً. وقد يُرجعها أي مسار.

### 401 Unauthorized

Missing or invalid API key.

401 نسخ

 `{   "error": {     "code": "unauthorized",     "message": "مفتاح الـ API غير صالح أو غير مُرسَل."   } }`

### 403 Forbidden

Two different refusals share this status, and a client must tell them apart by `error.code`. `forbidden` means the key's scope or allowlist does not permit this operation, or Pundit denied the action. `plan_upgrade_required` means the company's plan carries no API access at all, so no key on it can ever succeed and there is nothing to retry.

This key may not perform this operation

403 نسخ

 `{   "error": {     "code": "forbidden",     "message": "هذا الـ API key لا يملك صلاحية تنفيذ هذه العملية."   } }`

The company's plan carries no API access

403 نسخ

 `{   "error": {     "code": "plan_upgrade_required",     "message": "خطة «الاحترافي» لا تشمل الوصول إلى API. رقِّ إلى «المتطور» أو «الإنتاجي» لتفعيله."   } }`

### 404 NotFound

Resource not found or not accessible — also returned for EVERY endpoint when the company's `rest_api` feature flag is disabled (the surface is hidden). Lookups drill through the URL hierarchy, so another company's record is a 404 and never a leak. A path that matches no route at all answers 404 with the distinct code `unknown_endpoint` and echoes the path back, so a mistyped or half-built URL is told apart from a record that is missing or out of reach.

A record that is missing or out of reach

404 نسخ

 `{   "error": {     "code": "not_found",     "message": "غير موجود، أو لا تملك صلاحية الوصول إليه."   } }`

A path that matches no endpoint

404 نسخ

 `{   "error": {     "code": "unknown_endpoint",     "message": "لا يوجد endpoint يطابق GET /api/v1/projcts. راجع المسار في توثيق الـ API."   } }`

### 422 Unprocessable

A caller-fixable bad request (validation error, bad date, bad enum).

422 نسخ

 `{   "error": {     "code": "unprocessable_entity",     "message": "قيمة due_at غير صالحة؛ أرسل تاريخاً مثل 2026-07-20. المهمة تُستحق في يوم، وأي وقت ترسله يُهمل."   } }`

### 409 Conflict

A uniqueness/record conflict; retry.

409 نسخ

 `{   "error": {     "code": "conflict",     "message": "تعذّر إتمام العملية بسبب تعارض. أعد المحاولة."   } }`

### 409 ProjectInUse

The project cannot be deleted because a connected integration sends its work there. Nothing was deleted. Disconnect the integration, or point it at another project, then delete again. Retrying as-is will not help.

409 نسخ

 `{   "error": {     "code": "project_in_use",     "message": "هذا المشروع وجهة تكامل موصول (Sentry). حذفه لا يوقف وصول الأخطاء، بل يجعلها تصل إلى لا مكان. افصل التكامل من «الإعدادات ← التكاملات»، أو وجّهه إلى مشروع آخر، ثم احذف هذا المشروع."   } }`

### 429 RateLimited

Either the company's daily API allowance is spent ( `rate_limit_exceeded` ), or the per-key / per-IP burst throttle of 300 requests per minute fired. Both come back after a wait, so `Retry-After` is honest here. **The two bodies are not the same shape.** The daily-quota refusal uses the standard error envelope. The burst throttle is served by Rack::Attack ahead of the application, so its body is a flat `{"error": "<string>"}` with no `code`. A client that reads `error.code` has to tolerate `error` being a plain string.

الـ headers المصاحبة

`Retry-After` Seconds to wait before retrying. On a spent daily allowance this points at the company's next midnight.

`X-RateLimit-Limit` The plan's daily API allowance, or `unlimited`.

`X-RateLimit-Remaining` Calls left in today's allowance, or `unlimited`.

`X-RateLimit-Reset` Unix timestamp of the next reset (the company's next midnight).

Today's daily allowance is spent (application envelope)

429 نسخ

 `{   "error": {     "code": "rate_limit_exceeded",     "message": "استهلكت رصيد اليوم من طلبات API في خطة «المتطور» (1000 طلب يوميًا). يتجدد الرصيد عند منتصف الليل بتوقيت Asia/Riyadh."   } }`

Over 300 requests in a minute (Rack::Attack body, flat error)

429 نسخ

 `{   "error": "Rate limit exceeded. Please try again later." }`

## كل المسارات

يسرد الفهرس جميع المسارات. افتح مجموعة أي مسار لعرض بارامتراته، وجسم طلبه، ومثال استجابته.

### [الحساب](https://fareeqy.com/api/v1/docs/account)

هوية المفتاح الذي يستدعي الواجهة، والبحث الموحّد في مساحة العمل.

-   [GET /me هوية المفتاح المستخدَم](https://fareeqy.com/api/v1/docs/account#getMe)
-   [GET /search بحث موحّد في مساحة العمل](https://fareeqy.com/api/v1/docs/account#search)

### [الأحداث](https://fareeqy.com/api/v1/docs/events)

أحداث تقويم الشركة. معرّفات رقمية.

-   [GET /events عرض أحداث التقويم](https://fareeqy.com/api/v1/docs/events#listEvents)
-   [POST /events إنشاء حدث](https://fareeqy.com/api/v1/docs/events#createEvent)
-   [GET /events/ {id} عرض حدث](https://fareeqy.com/api/v1/docs/events#getEvent)
-   [PATCH /events/ {id} تعديل حدث](https://fareeqy.com/api/v1/docs/events#updateEvent)
-   [DELETE /events/ {id} حذف حدث](https://fareeqy.com/api/v1/docs/events#deleteEvent)

### [المشاريع](https://fareeqy.com/api/v1/docs/projects)

مشاريع الشركة، ومنها الخاصة.

-   [GET /projects عرض مشاريع الشركة](https://fareeqy.com/api/v1/docs/projects#listProjects)
-   [POST /projects إنشاء مشروع](https://fareeqy.com/api/v1/docs/projects#createProject)
-   [GET /projects/ {id} عرض مشروع](https://fareeqy.com/api/v1/docs/projects#getProject)
-   [PATCH /projects/ {id} تعديل مشروع](https://fareeqy.com/api/v1/docs/projects#updateProject)
-   [DELETE /projects/ {id} حذف مشروع](https://fareeqy.com/api/v1/docs/projects#deleteProject)
-   [POST /projects/ {id} /archive أرشفة مشروع](https://fareeqy.com/api/v1/docs/projects#archiveProject)
-   [POST /projects/ {id} /unarchive إلغاء أرشفة مشروع](https://fareeqy.com/api/v1/docs/projects#unarchiveProject)

### [الأعضاء](https://fareeqy.com/api/v1/docs/members)

من يمكن إسناد العمل إليهم داخل المشروع.

-   [GET /projects/ {project\_id} /members عرض من يمكن إسناد العمل إليهم](https://fareeqy.com/api/v1/docs/members#listProjectMembers)

### [قوائم المهام](https://fareeqy.com/api/v1/docs/task-lists)

حاويات تجمع المهام داخل المشروع. معرّفات ثابتة (lst-)، ويبقى الـ slug مقبولاً.

-   [GET /projects/ {project\_id} /lists عرض قوائم مهام المشروع](https://fareeqy.com/api/v1/docs/task-lists#listTaskLists)
-   [POST /projects/ {project\_id} /lists إنشاء قائمة مهام](https://fareeqy.com/api/v1/docs/task-lists#createTaskList)
-   [GET /projects/ {project\_id} /lists/ {id} عرض قائمة مهام](https://fareeqy.com/api/v1/docs/task-lists#getTaskList)
-   [PATCH /projects/ {project\_id} /lists/ {id} تعديل قائمة مهام](https://fareeqy.com/api/v1/docs/task-lists#updateTaskList)
-   [DELETE /projects/ {project\_id} /lists/ {id} حذف قائمة مهام](https://fareeqy.com/api/v1/docs/task-lists#deleteTaskList)
-   [POST /projects/ {project\_id} /lists/ {id} /complete إتمام قائمة مهام](https://fareeqy.com/api/v1/docs/task-lists#completeTaskList)
-   [POST /projects/ {project\_id} /lists/ {id} /incomplete إعادة فتح قائمة مهام](https://fareeqy.com/api/v1/docs/task-lists#reopenTaskList)
-   [POST /projects/ {project\_id} /lists/ {id} /move نقل قائمة مهام إلى مشروع آخر](https://fareeqy.com/api/v1/docs/task-lists#moveTaskList)
-   [GET /lists/ {id} عرض قائمة مهام بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/task-lists#getTaskListByRef)
-   [PATCH /lists/ {id} تعديل قائمة مهام بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/task-lists#updateTaskListByRef)
-   [DELETE /lists/ {id} حذف قائمة مهام بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/task-lists#deleteTaskListByRef)
-   [POST /lists/ {id} /complete إتمام قائمة مهام بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/task-lists#completeTaskListByRef)
-   [POST /lists/ {id} /incomplete إعادة فتح قائمة مهام بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/task-lists#incompleteTaskListByRef)
-   [POST /lists/ {id} /move نقل قائمة مهام إلى مشروع آخر بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/task-lists#moveTaskListByRef)

### [المهام](https://fareeqy.com/api/v1/docs/tasks)

البنود القابلة للتنفيذ داخل قائمة المهام. معرّفات ثابتة (tsk-)، ويبقى الـ slug مقبولاً.

-   [GET /projects/ {project\_id} /lists/ {task\_list\_id} /tasks عرض مهام قائمة](https://fareeqy.com/api/v1/docs/tasks#listTasks)
-   [POST /projects/ {project\_id} /lists/ {task\_list\_id} /tasks إنشاء مهمة](https://fareeqy.com/api/v1/docs/tasks#createTask)
-   [GET /projects/ {project\_id} /lists/ {task\_list\_id} /tasks/ {id} عرض مهمة](https://fareeqy.com/api/v1/docs/tasks#getTask)
-   [PATCH /projects/ {project\_id} /lists/ {task\_list\_id} /tasks/ {id} تعديل مهمة](https://fareeqy.com/api/v1/docs/tasks#updateTask)
-   [DELETE /projects/ {project\_id} /lists/ {task\_list\_id} /tasks/ {id} حذف مهمة](https://fareeqy.com/api/v1/docs/tasks#deleteTask)
-   [POST /projects/ {project\_id} /lists/ {task\_list\_id} /tasks/ {id} /complete إتمام مهمة](https://fareeqy.com/api/v1/docs/tasks#completeTask)
-   [POST /projects/ {project\_id} /lists/ {task\_list\_id} /tasks/ {id} /incomplete إعادة فتح مهمة](https://fareeqy.com/api/v1/docs/tasks#reopenTask)
-   [POST /projects/ {project\_id} /lists/ {task\_list\_id} /tasks/ {id} /move نقل مهمة إلى قائمة أخرى في المشروع نفسه](https://fareeqy.com/api/v1/docs/tasks#moveTask)
-   [POST /projects/ {project\_id} /lists/ {task\_list\_id} /tasks/ {id} /time تسجيل الوقت المستغرق على مهمة](https://fareeqy.com/api/v1/docs/tasks#setTaskTimeSpent)
-   [GET /lists/ {task\_list\_id} /tasks عرض مهام قائمة بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/tasks#listTasksByRef)
-   [POST /lists/ {task\_list\_id} /tasks إنشاء مهمة في قائمة بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/tasks#createTaskByRef)
-   [GET /tasks/ {id} عرض مهمة بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/tasks#getTaskByRef)
-   [PATCH /tasks/ {id} تعديل مهمة بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/tasks#updateTaskByRef)
-   [DELETE /tasks/ {id} حذف مهمة بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/tasks#deleteTaskByRef)
-   [POST /tasks/ {id} /complete إتمام مهمة بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/tasks#completeTaskByRef)
-   [POST /tasks/ {id} /incomplete إعادة فتح مهمة بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/tasks#incompleteTaskByRef)
-   [POST /tasks/ {id} /move نقل مهمة إلى قائمة أخرى بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/tasks#moveTaskByRef)
-   [POST /tasks/ {id} /time تسجيل الوقت المستغرق على مهمة بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/tasks#setTaskTimeSpentByRef)

### [التعليقات](https://fareeqy.com/api/v1/docs/comments)

التعليقات على قائمة مهام، أو على مهمة، قراءةً وكتابةً، ونص الملفات المرفقة بها.

-   [GET /projects/ {project\_id} /lists/ {task\_list\_id} /comments عرض تعليقات قائمة مهام](https://fareeqy.com/api/v1/docs/comments#listTaskListComments)
-   [POST /projects/ {project\_id} /lists/ {task\_list\_id} /comments التعليق على قائمة مهام](https://fareeqy.com/api/v1/docs/comments#createTaskListComment)
-   [GET /projects/ {project\_id} /lists/ {task\_list\_id} /comments/ {comment\_id} /attachments/ {id} قراءة ملف مرفق بتعليق على قائمة مهام](https://fareeqy.com/api/v1/docs/comments#getTaskListCommentAttachment)
-   [GET /projects/ {project\_id} /lists/ {task\_list\_id} /tasks/ {task\_id} /comments عرض تعليقات مهمة](https://fareeqy.com/api/v1/docs/comments#listTaskComments)
-   [POST /projects/ {project\_id} /lists/ {task\_list\_id} /tasks/ {task\_id} /comments التعليق على مهمة](https://fareeqy.com/api/v1/docs/comments#createTaskComment)
-   [GET /projects/ {project\_id} /lists/ {task\_list\_id} /tasks/ {task\_id} /comments/ {comment\_id} /attachments/ {id} قراءة ملف مرفق بتعليق على مهمة](https://fareeqy.com/api/v1/docs/comments#getTaskCommentAttachment)
-   [GET /lists/ {task\_list\_id} /comments عرض تعليقات قائمة مهام بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/comments#listTaskListCommentsByRef)
-   [POST /lists/ {task\_list\_id} /comments التعليق على قائمة مهام بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/comments#createTaskListCommentByRef)
-   [GET /lists/ {task\_list\_id} /comments/ {comment\_id} /attachments/ {id} قراءة ملف مرفق بتعليق على قائمة مهام، بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/comments#getTaskListCommentAttachmentByRef)
-   [GET /tasks/ {task\_id} /comments عرض تعليقات مهمة بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/comments#listTaskCommentsByRef)
-   [POST /tasks/ {task\_id} /comments التعليق على مهمة بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/comments#createTaskCommentByRef)
-   [GET /tasks/ {task\_id} /comments/ {comment\_id} /attachments/ {id} قراءة ملف مرفق بتعليق على مهمة، بمعرّفها الثابت](https://fareeqy.com/api/v1/docs/comments#getTaskCommentAttachmentByRef)

### [المجلس](https://fareeqy.com/api/v1/docs/discussions)

مواضيع النقاش داخل المشروع. معرّفات ثابتة (mjl-)، ويبقى الـ slug مقبولاً.

-   [GET /projects/ {project\_id} /discussions عرض مواضيع مجلس المشروع](https://fareeqy.com/api/v1/docs/discussions#listDiscussions)
-   [POST /projects/ {project\_id} /discussions إنشاء موضوع في المجلس ونشره](https://fareeqy.com/api/v1/docs/discussions#createDiscussion)
-   [GET /projects/ {project\_id} /discussions/ {id} عرض موضوع في المجلس](https://fareeqy.com/api/v1/docs/discussions#getDiscussion)
-   [PATCH /projects/ {project\_id} /discussions/ {id} تعديل موضوع في المجلس](https://fareeqy.com/api/v1/docs/discussions#updateDiscussion)
-   [DELETE /projects/ {project\_id} /discussions/ {id} حذف موضوع من المجلس](https://fareeqy.com/api/v1/docs/discussions#deleteDiscussion)
-   [POST /projects/ {project\_id} /discussions/ {id} /reply الرد على موضوع في المجلس](https://fareeqy.com/api/v1/docs/discussions#replyToDiscussion)
-   [GET /discussions/ {id} عرض موضوع في المجلس بمعرّفه الثابت](https://fareeqy.com/api/v1/docs/discussions#getDiscussionByRef)
-   [PATCH /discussions/ {id} تعديل موضوع في المجلس بمعرّفه الثابت](https://fareeqy.com/api/v1/docs/discussions#updateDiscussionByRef)
-   [DELETE /discussions/ {id} حذف موضوع من المجلس بمعرّفه الثابت](https://fareeqy.com/api/v1/docs/discussions#deleteDiscussionByRef)
-   [POST /discussions/ {id} /reply الرد على موضوع في المجلس بمعرّفه الثابت](https://fareeqy.com/api/v1/docs/discussions#replyToDiscussionByRef)

### [الملفات](https://fareeqy.com/api/v1/docs/files)

ملفات المشروع والروابط الخارجية. معرّفات رقمية، ويستقبل مسار الحذف المسطّح معرّفاً ثابتاً (fil-).

-   [GET /projects/ {project\_id} /files عرض مستوى واحد من متصفح ملفات المشروع](https://fareeqy.com/api/v1/docs/files#listFiles)
-   [POST /projects/ {project\_id} /files رفع ملف من محتوى مباشر](https://fareeqy.com/api/v1/docs/files#uploadFile)
-   [POST /projects/ {project\_id} /files/link إضافة رابط خارجي](https://fareeqy.com/api/v1/docs/files#addExternalLink)
-   [DELETE /projects/ {project\_id} /files/ {id} حذف ملف](https://fareeqy.com/api/v1/docs/files#deleteFile)
-   [DELETE /files/ {id} حذف ملف بمعرّفه الثابت](https://fareeqy.com/api/v1/docs/files#deleteFileByRef)

### [المجلدات](https://fareeqy.com/api/v1/docs/folders)

المجلدات في قسم ملفات المشروع. معرّفات رقمية.

-   [POST /projects/ {project\_id} /folders إنشاء مجلد](https://fareeqy.com/api/v1/docs/folders#createFolder)
-   [DELETE /projects/ {project\_id} /folders/ {id} حذف مجلد](https://fareeqy.com/api/v1/docs/folders#deleteFolder)

## تفعيل API وإصدار مفتاح

اطلب تفعيل API لشركتك. بعد التفعيل، أصدر مفتاحاً من إعدادات API Keys، وحدد العمليات المسموح بها.

[افتح فريقي](https://app.fareeqy.com) [تواصل معنا](https://fareeqy.com/contact)
