### Get Board Activities Example Request Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/boards.md Example curl command to fetch board activities with pagination parameters. Uses Basic authentication. ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/activities?per_page=40&page=1" \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" ``` -------------------------------- ### Get Project Members - Example Response (JSON) Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/users.md Example JSON response containing a list of users and an empty global_admins array. Each user includes ID, display_name, user_login, email, photo, role, is_super, and is_wpadmin. ```json { "users": [ { "ID": 1, "display_name": "John Doe", "user_login": "johndoe", "email": "john@example.com", "photo": "https://secure.gravatar.com/avatar/example1?s=128&d=mm&r=g", "role": "admin", "is_super": false, "is_wpadmin": true }, { "ID": 2, "display_name": "Jane Smith", "user_login": "janesmith", "email": "jane@example.com", "photo": "https://secure.gravatar.com/avatar/example2?s=128&d=mm&r=g", "role": "member", "is_super": false, "is_wpadmin": false } ], "global_admins": [] } ``` -------------------------------- ### Get Project Assignees Example Request Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/users.md Example curl command to fetch project assignees. Uses Basic authentication with API credentials. ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/assignees" \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" ``` -------------------------------- ### Get Project Assignees Example Response Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/users.md Example JSON response containing an array of assignable users with user details and pivot information. ```json { "data": [ { "ID": 1, "user_login": "john_doe", "user_nicename": "john-doe", "user_email": "john.doe@example.com", "user_url": "https://example.com", "user_registered": "2024-01-15 10:30:00", "user_status": "0", "display_name": "John Doe", "photo": "https://secure.gravatar.com/avatar/example123?s=128&d=mm&r=g", "pivot": { "object_id": "3", "foreign_id": "1", "settings": "a:1:{s:8:\"is_admin\";b:0;}", "preferences": "a:6:{s:19:\"email_after_comment\";b:0;s:29:\"email_after_task_stage_change\";b:0;s:23:\"email_after_task_assign\";b:0;s:32:\"email_after_task_due_date_change\";b:0;s:28:\"email_after_remove_from_task\";b:0;s:24:\"email_after_task_archive\";b:0;}", "created_at": "2025-01-15T10:30:00+00:00", "updated_at": "2025-01-20T14:45:00+00:00" } }, { "ID": 2, "user_login": "jane_smith", "user_nicename": "jane-smith", "user_email": "jane.smith@example.com", "user_url": "https://janesmith.com", "user_registered": "2024-02-20 09:15:00", "user_status": "0", "display_name": "Jane Smith", "photo": "https://secure.gravatar.com/avatar/example456?s=128&d=mm&r=g", "pivot": { "object_id": "3", "foreign_id": "2", "settings": "a:1:{s:8:\"is_admin\";b:1;}", "preferences": "a:6:{s:19:\"email_after_comment\";b:1;s:29:\"email_after_task_stage_change\";b:1;s:23:\"email_after_task_assign\";b:1;s:32:\"email_after_task_due_date_change\";b:1;s:28:\"email_after_remove_from_task\";b:0;s:24:\"email_after_task_archive\";b:0;}", "created_at": "2025-01-10T08:00:00+00:00", "updated_at": "2025-01-18T16:30:00+00:00" } } ] } ``` -------------------------------- ### GET /wp-json/fluent-boards/v2/projects/{board_id} - curl Example Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/boards.md Example curl command to retrieve a board. Uses Basic authentication with API_USERNAME and API_PASSWORD. ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}" \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" ``` -------------------------------- ### Get Board Activities Example Response Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/boards.md Example JSON response for the Get Board Activities endpoint. Contains pagination metadata and activity data with user details. ```json { "activities": { "current_page": 1, "data": [ { "id": 538, "object_id": "3", "object_type": "board_activity", "action": "deleted", "column": "task", "old_value": "Updated Task Title", "new_value": null, "description": null, "created_by": "1", "settings": null, "created_at": "2025-08-04T09:23:52+00:00", "user": { "ID": 1, "display_name": "John Doe", "user_login": "john_doe", "email": "john@example.com", "photo": "https://secure.gravatar.com/avatar/..." } }, { "id": 533, "object_id": "3", "object_type": "board_activity", "action": "created", "column": "task", "old_value": null, "new_value": "New Task Title", "description": "on stage Feature Requests", "created_by": "1", "settings": { "task_id": 279 }, "created_at": "2025-08-04T09:00:39+00:00", "user": { "ID": 1, "display_name": "John Doe", "user_login": "john_doe", "email": "john@example.com", "photo": "https://secure.gravatar.com/avatar/..." } } ], "per_page": 40, "total": 94 // ... other pagination properties } } ``` -------------------------------- ### Example Request: curl with Basic Authentication Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/tasks.md Use this curl command to fetch task activities. Replace yourdomain.com, {board_id}, {task_id}, API_USERNAME, and API_PASSWORD with your actual values. ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/tasks/{task_id}/activities" \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" ``` -------------------------------- ### Get Board Members Example Request Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/boards.md Example curl command to fetch board members. Uses Basic authentication with API credentials. ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/users" \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" ``` -------------------------------- ### Import Stages From Board Example Response Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/templates.md Example response for the Import Stages From Board endpoint. ```json { "message": "Import successfully" } ``` -------------------------------- ### GET /wp-json/fluent-boards/v2/projects/{board_id} - Example Response Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/boards.md Example JSON response for a successful board retrieval. Contains board details including id, title, type, background, settings, label colors, users, owner, stages, labels, and custom_fields. ```json { "board": { "id": 1, "title": "Sample Board", "type": "to-do", "background": { "color": "#2196F3", "id": "solid_1" }, "settings": { "tasks_count": 15 }, "labelColor": { "green": "#4bce97", "blue": "#579dff", "red": "#f87168" }, "labelColorText": { "green": "#1B2533", "blue": "#1B2533", "red": "#1B2533" }, "users": [ { "ID": 1, "user_login": "admin", "display_name": "Admin User", "role": "Admin" } ], "owner": { "ID": 1, "display_name": "Admin User" }, "stages": [ { "id": 1, "title": "To Do", "position": "1.00" }, { "id": 2, "title": "In Progress", "position": "2.00" } ], "labels": [ { "id": 1, "title": "bug", "bg_color": "#E6B0AA" }, { "id": 2, "title": "feature", "bg_color": "#AED6F1" } ], "custom_fields": [] } } ``` -------------------------------- ### Get Stage Task Available Positions - Example Response Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/stages.md Example JSON response showing the stage ID, available positions array, and current task count. ```json { "data": { "stage_id": 2, "available_positions": [1, 2, 3, 4, 5], "current_task_count": 3 } } ``` -------------------------------- ### Create Task From Template Example Response Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/templates.md Example response for the Create Task From Template endpoint. ```json { "task": { "id": 999, "board_id": 1, "stage_id": 10, "title": "Example Task", "settings": { "subtask_count": 2, "attachment_count": 1 }, "assignees": [ { "ID": 1, "display_name": "John Doe" } ], "labels": [ { "id": 7, "title": "bug" } ], "attachments": [ { "id": 1, "attachment_type": "image/png", "secure_url": "..." } ] }, "message": "Task has been successfully created", "updatedTasks": [ { "id": 999, "stage_id": 10 } ] } ``` -------------------------------- ### Example controller class Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/extend.md Shows a controller extending the FluentCrm framework's base Controller. Uses sendSuccess to return responses and request->all() to get request data. ```php namespace MyPlugin\Controllers; use FluentCrm\Framework\Http\Controller; class MyController extends Controller { public function index() { return $this->sendSuccess(['ok' => true], 200); } public function create() { $data = $this->request->all(); return $this->sendSuccess($data, 201); } } ``` -------------------------------- ### Example Response: JSON with activities list Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/tasks.md Sample response showing a paginated list of task activities. Each activity includes id, object_id, object_type, action, column, old_value, new_value, created_at, and user details. The response includes pagination metadata such as current_page, per_page, total, from, to, and last_page. ```json { "activities": { "current_page": 1, "data": [ { "id": 120, "object_id": "85", "object_type": "task_activity", "action": "created", "column": "task", "old_value": null, "new_value": "Sample Task Title", "created_at": "2024-12-24T08:43:52+00:00", "user": { "ID": 1, "display_name": "John Doe", "user_email": "john@example.com" } }, { "id": 372, "object_id": "85", "object_type": "task_activity", "action": "joined", "column": "task", "old_value": null, "new_value": null, "created_at": "2025-07-16T08:01:16+00:00", "user": { "ID": 1, "display_name": "John Doe", "user_email": "john@example.com" } }, { "id": 373, "object_id": "85", "object_type": "task_activity", "action": "added", "column": "assignee", "old_value": null, "new_value": "Jane Smith", "created_at": "2025-07-16T08:01:17+00:00", "user": { "ID": 1, "display_name": "John Doe", "user_email": "john@example.com" } } ], "per_page": 15, "total": 13, "from": 1, "to": 13, "last_page": 1 // ... pagination URLs and links } } ``` -------------------------------- ### List All Boards - Example Response Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/boards.md Example JSON response for the list boards request. ```json { "boards": { "current_page": 1, "data": [ { "id": 1, "title": "Sample Board", "type": "to-do", "background": { "color": "#2196F3", "id": "solid_1" }, "settings": { "tasks_count": 15 }, "completed_tasks_count": "5", "users": [ { "ID": 1, "user_login": "admin", "display_name": "Admin User", "role": "Admin", "photo": "https://secure.gravatar.com/avatar/example?s=128&d=mm&r=g" } ], "stages": [ { "id": 1, "title": "To Do", "position": "1.00" } ] } ], "per_page": 20, "total": 1 }, "folder_mapping": [] } ``` -------------------------------- ### Example Response - Create a Folder Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/folders.md Response for creating a folder, includes the created folder object and success message. ```json { "message": "Folder has been created", "folder": { "id": 12, "title": "Development", "created_by": 1, "boards_ids": [] } } ``` -------------------------------- ### Get a Single Task - Example Request Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/tasks.md Example curl command to get a single task. Uses Basic authentication. ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/tasks/{task_id}" \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" ``` -------------------------------- ### Directory structure example Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/extend.md Shows the recommended directory structure for a plugin with Policies and Controllers folders. ```text my-plugin/ ├── my-plugin.php ├── Policies/ │ └── MyPolicy.php └── Controllers/ └── MyController.php ``` -------------------------------- ### GET /wp-json/fluent-boards/v2/projects/{board_id}/tasks/{task_id}/comments Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/tasks.md Retrieves comments for a specific task, with optional sorting by latest or oldest. ```APIDOC ## [GET] /wp-json/fluent-boards/v2/projects/{board_id}/tasks/{task_id}/comments ### Description Retrieves comments for a specific task, with optional sorting by latest or oldest. ### Method GET ### Endpoint /wp-json/fluent-boards/v2/projects/{board_id}/tasks/{task_id}/comments ### Parameters #### Path Parameters - **board_id** (integer) - Required - The ID of the project (board) containing the task. - **task_id** (integer) - Required - The ID of the task whose comments are retrieved. #### Query Parameters - **filter** (string) - Optional - Sort order for comments (latest, oldest). ### Request Example ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/tasks/{task_id}/comments" \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" ``` ### Response #### Success Response (200) - **comments** (object) - Paginated list of comments. - **current_page** (integer) - Current page number. - **data** (array) - Array of comment objects. - **id** (integer) - Comment ID. - **board_id** (string) - Board ID. - **task_id** (string) - Task ID. - **parent_id** (null) - Parent comment ID (null for top-level). - **type** (string) - Comment type. - **privacy** (string) - Privacy setting. - **status** (string) - Comment status. - **author_name** (string) - Author name. - **author_email** (string) - Author email. - **author_ip** (string) - Author IP. - **description** (string) - Comment content. - **created_by** (string) - User ID of creator. - **settings** (object) - Additional settings. - **created_at** (string) - Creation timestamp. - **updated_at** (string) - Last update timestamp. - **replies** (array) - Array of replies. - **replies_count** (integer) - Number of replies. - **avatar** (string) - Avatar URL. - **user** (object) - User details. - **images** (array) - Array of images. - **first_page_url** (string) - URL of first page. - **from** (integer) - Starting index. - **last_page** (integer) - Last page number. - **last_page_url** (string) - URL of last page. - **links** (array) - Pagination links. - **next_page_url** (null) - URL of next page. - **path** (string) - Base path. - **per_page** (integer) - Items per page. - **prev_page_url** (null) - URL of previous page. - **to** (integer) - Ending index. - **total** (integer) - Total number of comments. - **total** (integer) - Total number of comments. #### Response Example ```json { "comments": { "current_page": 1, "data": [ { "id": 3, "board_id": "3", "task_id": "85", "parent_id": null, "type": "comment", "privacy": "private", "status": "published", "author_name": "John Doe", "author_email": "john@example.com", "author_ip": "", "description": "Hello world", "created_by": "1", "settings": { "raw_description": "Hello world", "mentioned_id": null }, "created_at": "2025-08-06T10:10:27+00:00", "updated_at": "2025-08-06T10:10:27+00:00", "replies": [], "replies_count": 0, "avatar": "https://example.com/avatar.jpg", "user": { "ID": 1, "user_login": "johndoe", "user_nicename": "john-doe", "user_email": "john@example.com", "user_url": "https://example.com", "user_registered": "2024-01-01 00:00:00", "user_status": "0", "display_name": "John Doe", "photo": "https://example.com/avatar.jpg" }, "images": [] } ], "first_page_url": "https://example.com/wp-json/fluent-boards/v2/projects/3/tasks/85/comments/?page=1", "from": 1, "last_page": 1, "last_page_url": "https://example.com/wp-json/fluent-boards/v2/projects/3/tasks/85/comments/?page=1", "links": [ { "url": null, "label": "pagination.previous", "active": false }, { "url": "https://example.com/wp-json/fluent-boards/v2/projects/3/tasks/85/comments/?page=1", "label": "1", "active": true }, { "url": null, "label": "pagination.next", "active": false } ], "next_page_url": null, "path": "https://example.com/wp-json/fluent-boards/v2/projects/3/tasks/85/comments", "per_page": 10, "prev_page_url": null, "to": 1, "total": 1 }, "total": 1 } ``` ``` -------------------------------- ### HTTP Request: GET /wp-json/fluent-boards/v2/projects/{board_id}/tasks/{task_id}/activities Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/tasks.md The endpoint to retrieve recent activities for a specific task. Replace {board_id} and {task_id} with actual values. ```http GET /wp-json/fluent-boards/v2/projects/{board_id}/tasks/{task_id}/activities ``` -------------------------------- ### GET /wp-json/fluent-boards/v2/projects/{board_id}/tasks/{task_id}/activities Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/tasks.md Retrieves recent activities for a specific task. The endpoint accepts an optional filter parameter to sort activities by newest or oldest. ```APIDOC ## [GET] /wp-json/fluent-boards/v2/projects/{board_id}/tasks/{task_id}/activities ### Description Retrieve recent activities for a specific task. ### Method GET ### Endpoint /wp-json/fluent-boards/v2/projects/{board_id}/tasks/{task_id}/activities ### Parameters #### Query Parameters - **filter** (string) - Optional - Sort order for activities (newest, oldest) ### Request Example ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/tasks/{task_id}/activities" \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" ``` ### Response #### Success Response (200) - **activities** (object) - Contains paginated activity data. - **current_page** (integer) - Current page number. - **data** (array) - List of activity objects. - **id** (integer) - Activity ID. - **object_id** (string) - ID of the object the activity is associated with. - **object_type** (string) - Type of object (e.g., task_activity). - **action** (string) - Action performed (e.g., created, joined, added). - **column** (string) - Column affected (e.g., task, assignee). - **old_value** (string|null) - Previous value. - **new_value** (string|null) - New value. - **created_at** (string) - Timestamp of the activity. - **user** (object) - User who performed the action. - **ID** (integer) - User ID. - **display_name** (string) - Display name. - **user_email** (string) - User email. - **per_page** (integer) - Number of items per page. - **total** (integer) - Total number of activities. - **from** (integer) - Starting index. - **to** (integer) - Ending index. - **last_page** (integer) - Last page number. #### Response Example ```json { "activities": { "current_page": 1, "data": [ { "id": 120, "object_id": "85", "object_type": "task_activity", "action": "created", "column": "task", "old_value": null, "new_value": "Sample Task Title", "created_at": "2024-12-24T08:43:52+00:00", "user": { "ID": 1, "display_name": "John Doe", "user_email": "john@example.com" } }, { "id": 372, "object_id": "85", "object_type": "task_activity", "action": "joined", "column": "task", "old_value": null, "new_value": null, "created_at": "2025-07-16T08:01:16+00:00", "user": { "ID": 1, "display_name": "John Doe", "user_email": "john@example.com" } }, { "id": 373, "object_id": "85", "object_type": "task_activity", "action": "added", "column": "assignee", "old_value": null, "new_value": "Jane Smith", "created_at": "2025-07-16T08:01:17+00:00", "user": { "ID": 1, "display_name": "John Doe", "user_email": "john@example.com" } } ], "per_page": 15, "total": 13, "from": 1, "to": 13, "last_page": 1 } } ``` ``` -------------------------------- ### Example Response - List Folders Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/folders.md JSON response containing an array of folders. ```json { "folders": [ { "id": 11, "title": "Lorem Ipsum", "created_by": "1", "boards_ids": [ 3 ] } ] } ``` -------------------------------- ### Get Board Members Example Response Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/boards.md Example JSON response for the Get Board Members endpoint. Contains a users array with member details and a global_admins array. ```json { "users": [ { "ID": 1, "display_name": "John Doe", "user_login": "john_doe", "email": "john@example.com", "photo": "https://secure.gravatar.com/avatar/...", "role": "member", "is_super": false, "is_wpadmin": true }, { "ID": 2, "display_name": "Jane Smith", "user_login": "jane_smith", "email": "jane@example.com", "photo": "https://secure.gravatar.com/avatar/...", "role": "member", "is_super": false, "is_wpadmin": false } ], "global_admins": [] } ``` -------------------------------- ### Example Response - Add Boards to Folder Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/folders.md Response for adding boards to a folder. ```json { "message": "Added to folder successfully!" } ``` -------------------------------- ### Example Response for Get Time Tracks Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/time-tracking.md Example response for the Get Time Tracks request. Shows two tracks: one completed and one active, with user details and estimated minutes. ```json { "tracks": [ { "id": 1, "task_id": 1, "board_id": 1, "user_id": 1, "started_at": "2025-08-06 10:00:00", "completed_at": "2025-08-06 12:00:00", "status": "completed", "working_minutes": 120, "billable_minutes": 0, "is_manual": 0, "message": "Design work on homepage", "created_at": "2025-08-06 10:00:00", "updated_at": "2025-08-06 12:00:00", "user": { "ID": 1, "display_name": "John Doe", "user_email": "john@example.com" } }, { "id": 2, "task_id": 1, "board_id": 1, "user_id": 1, "started_at": "2025-08-06 14:00:00", "completed_at": null, "status": "active", "working_minutes": 0, "billable_minutes": 0, "is_manual": 0, "message": "Continued design work", "created_at": "2025-08-06 14:00:00", "updated_at": "2025-08-06 14:00:00", "user": { "ID": 1, "display_name": "John Doe", "user_email": "john@example.com" } } ], "estimated_minutes": 60 } ``` -------------------------------- ### List All Tasks - Example Request Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/tasks.md Example curl command to list all tasks. Uses Basic authentication with API credentials. ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/tasks" \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" ``` -------------------------------- ### Get Settings Response Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/roadmaps.md Example response for the Get Settings endpoint. Contains the settings object with an enabled flag. ```json { "settings": { "enabled": true } } ``` -------------------------------- ### Get Labels Used in Tasks - Example Response Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/labels.md Example response containing an array of label objects assigned to tasks. ```json { "labels": [ { "id": 33, "board_id": "3", "title": "bugs", "slug": "", "type": "label", "position": "0.00", "color": null, "bg_color": "#E6B0AA", "settings": null, "archived_at": null, "created_at": "2024-12-24T08:43:51+00:00", "updated_at": "2024-12-24T08:43:51+00:00" }, { "id": 35, "board_id": "3", "title": "improvement", "slug": "", "type": "label", "position": "0.00", "color": null, "bg_color": "#AED6F1", "settings": null, "archived_at": null, "created_at": "2024-12-24T08:43:51+00:00", "updated_at": "2024-12-24T08:43:51+00:00" }, { "id": 38, "board_id": "3", "title": "later", "slug": "", "type": "label", "position": "0.00", "color": null, "bg_color": "#658ca5", "settings": null, "archived_at": null, "created_at": "2024-12-24T08:43:51+00:00", "updated_at": "2024-12-24T08:43:51+00:00" } ] } ``` -------------------------------- ### POST /wp-json/fluent-boards/v2/projects - curl Example Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/boards.md Example curl command to create a board. Sends a JSON body with board title, description, and type. Uses Basic authentication. ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects" \ -X POST \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" \ -H "Content-Type: application/json" \ -d '{ "board": { "title": "New Project Board", "description": "A new project board for development tasks", "type": "to-do" } }' ``` -------------------------------- ### Add Members to Project - Example Response (JSON) Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/users.md Example JSON response confirming the member was added. Contains a success message and the member object with user details. ```json { "message": "Member added successfully", "member": { "ID": 5, "user_login": "janesmith", "user_nicename": "jane-smith", "user_email": "jane@example.com", "user_url": "", "user_registered": "2024-02-01 09:15:00", "user_status": "0", "display_name": "Jane Smith", "photo": "https://secure.gravatar.com/avatar/example5?s=128&d=mm&r=g" } } ``` -------------------------------- ### Initialize Boards API with FluentBoardsApi('boards') Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/global-functions/boards-api-function.md Initializes the Boards API instance. Returns an instance of the FluentBoards\App\Api\Classes\Boards class. ```php $boardsApi = FluentBoardsApi('boards'); ``` -------------------------------- ### Make User Manager - Example Request Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/users.md Example curl command to promote a user to manager. Uses basic authentication. ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/user/{user_id}/make-manager" \ -X POST \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" ``` -------------------------------- ### Get Custom Fields for a Task - Example Request Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/custom-fields.md Example curl command to retrieve custom fields for a task. Requires Basic authentication. ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/tasks/{task_id}/custom-fields" \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" ``` -------------------------------- ### List All Boards - cURL Example Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/boards.md Example cURL command to fetch boards with pagination parameters. ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects?per_page=10&page=1" \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" ``` -------------------------------- ### Get Timesheet by Users - Example Response Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/time-tracking.md Example response for the by-users timesheet report. Contains users array, date_labels, totalMinutes, time_sheets, and date_range. ```json { "users": [], "date_labels": [ "2025-08-01", "2025-08-02", "2025-08-03", "2025-08-04", "2025-08-05", "2025-08-06", "2025-08-07", "2025-08-08" ], "totalMinutes": 0, "time_sheets": [], "date_range": [ "2025-08-01 09:16:56", "2025-08-08 23:59:59" ] } ``` -------------------------------- ### Get Timesheet by Tasks - Example Response Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/time-tracking.md Example response for the by-tasks timesheet report. Contains tasks array, date_labels, totalMinutes, time_sheets, and date_range. ```json { "tasks": [], "date_labels": [ "2025-08-01", "2025-08-02", "2025-08-03", "2025-08-04", "2025-08-05", "2025-08-06", "2025-08-07", "2025-08-08" ], "totalMinutes": 0, "time_sheets": [], "date_range": [ "2025-08-01 00:00:00", "2025-08-08 23:59:59" ] } ``` -------------------------------- ### Example Request with curl Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/custom-fields.md Example curl command to list custom fields, using Basic authentication. ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/custom-fields" \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" ``` -------------------------------- ### POST /wp-json/fluent-boards/v2/projects - Example Response Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/boards.md Example JSON response for a successful board creation. Contains a success message and the created board object with default currency and background. ```json { "message": "Board has been created successfully", "board": { "title": "New Project Board", "type": "to-do", "description": "A new project board for development tasks", "currency": "USD", "background": { "id": "solid_4", "is_image": false, "image_url": null, "color": "#5f27cd" }, "created_by": 1, "id": 9, "meta": [], "isUserOnlyViewer": false } } ``` -------------------------------- ### cURL Example: Get Task Comments Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/tasks.md A cURL command that sends a GET request to the comments endpoint. It uses Basic authentication and requires no request body. ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/tasks/{task_id}/comments" \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" ``` -------------------------------- ### Get a Single Task - Example Response Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/tasks.md Example JSON response for a single task. Includes nested objects for assignees, attachments, board, stage, and labels. ```json { "task": { "id": 1, "title": "Design Homepage", "slug": "design-homepage", "board_id": "3", "stage_id": "25", "status": "open", "priority": "low", "description": "
Create new homepage design
", "created_by": "1", "position": "23.00", "settings": { "subtask_count": 5, "attachment_count": 1, "subtask_completed_count": 2 }, "due_at": "2025-07-04 23:45:00", "isOverdue": true, "nextStage": "In Progress", "meta": { "is_template": "no" }, "assignees": [ { "ID": 1, "display_name": "John Doe", "email": "john@example.com" // ... other properties } ], "attachments": [ { "id": 24, "title": "document.csv", "file_size": "2 KB" // ... other properties } ], "board": { "id": 3, "title": "Sample Board", "type": "to-do" // ... other properties }, "stage": { "id": 25, "title": "Planned" // ... other properties }, "labels": [ { "id": 38, "title": "later", "bg_color": "#658ca5" // ... other properties } ] // ... other task properties } } ``` -------------------------------- ### Settings Object Example Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/settings.md Example JSON structure of the settings object, showing general, appearance, notifications, and security settings. ```json { "general": { "site_name": "Fluent Boards", "timezone": "UTC", "date_format": "Y-m-d", "time_format": "H:i:s", "language": "en" }, "appearance": { "theme": "light", "primary_color": "#7742e6", "sidebar_collapsed": false, "compact_mode": false }, "notifications": { "email_notifications": true, "push_notifications": true, "task_assignments": true, "project_updates": true, "due_date_reminders": true }, "security": { "session_timeout": 3600, "password_policy": "strong", "two_factor_auth": false, "ip_whitelist": [] } } ``` -------------------------------- ### Create a Stage - Example Request (curl) Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/stages.md Example curl command to create a stage with title, position, and status. Uses Basic authentication. ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/stage-create" \ -X POST \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" \ -H "Content-Type: application/json" \ -d '{ "title": "Review", "position": 3, "status": "open" }' ``` -------------------------------- ### Get Timesheet by Users - cURL Example Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/time-tracking.md Example cURL command to fetch timesheet data by users. Uses board_id and date_range[] query parameters with Basic authentication. ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/timesheet/by-users?board_id=3&date_range[]=2025-08-01&date_range[]=2025-08-08" \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" ``` -------------------------------- ### Get Timesheet by Tasks - cURL Example Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/time-tracking.md Example cURL command to fetch timesheet data by tasks. Uses board_id and date_range[] query parameters with Basic authentication. ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/timesheet/by-tasks?board_id=3&date_range[]=2025-08-01&date_range[]=2025-08-08" \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" ``` -------------------------------- ### Get Custom Fields for a Task - Example Response Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/custom-fields.md Example JSON response containing an array of custom field objects with id, object_id, object_type, foreign_id, settings, and preferences. ```json { "customFields": [ { "id": 99, "object_id": "85", "object_type": "task_custom_field", "foreign_id": "111", "settings": { "value": "Hello world" }, "preferences": null } ] } ``` -------------------------------- ### create() Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/global-functions/boards-api-function.md Creates a new board with the provided data, also creating default labels and stages. ```APIDOC ## create() ### Description Creates a new board with the provided data. It also creates default labels and stages for the board. ### Method PHP method call ### Endpoint FluentBoardsApi('boards')->create() ### Parameters - `$data` (array) - Required - The board data, including `title` (required). ### Return - The created `Board` model or `false` if creation fails. ### Example ```php $newBoard = $boardsApi->create([ 'title' => 'New Project Board', 'description' => 'A board for managing new projects' ]); ``` ``` -------------------------------- ### Get Stage Task Available Positions - Example Request Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/stages.md Example curl command to call the stage task available positions endpoint. Uses Basic authentication with API credentials. ```bash curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/stage-task-available-positions/{stage_id}" \ -H "Authorization: Basic API_USERNAME:API_PASSWORD" ``` -------------------------------- ### Get FluentBoards database instance with fluentBoardsDb Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/global-functions/index.md Returns the FluentBoards database instance. ```php $db = fluentBoardsDb(); ``` -------------------------------- ### Create a Stage - Example Response Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/src/rest-api/stages.md Example JSON response after creating a stage. Contains the updated stages array and a success message. ```json { "updatedStages": [ { "id": 107, "board_id": "10", "title": "Review", "slug": null, "type": "stage", "position": "2.50", "color": null, "bg_color": null, "settings": { "default_task_status": "open", "default_task_assignees": [] }, "archived_at": null, "created_at": "2025-08-06T10:45:32+00:00", "updated_at": "2025-08-06T10:45:32+00:00" } ], "message": "stage has been created" } ``` -------------------------------- ### Build Fluent Boards documentation locally Source: https://github.com/wpmanageninja/fluent-boards-dev-doc/blob/master/README.md Install dependencies and start the VuePress development server for local documentation building. ```bash npm install npm run dev ```