# Users & Members

The Users & Members API allows you to manage board members, permissions, and user roles in Fluent Boards. You can add, remove, and manage user permissions across projects.

Note

Endpoints labeled "Pro" require Fluent Boards Pro.

# List All Users

Retrieve all users in the system with their board memberships and roles.

HTTP Request

GET /wp-json/fluent-boards/v2/fluent-boards-users
1

# Example Request

curl "https://yourdomain.com/wp-json/fluent-boards/v2/fluent-boards-users" \
  -H "Authorization: Basic API_USERNAME:API_PASSWORD"
1
2

# Example Response

{
  "users": [
    {
      "ID": 1,
      "display_name": "John Doe",
      "photo": "https://secure.gravatar.com/avatar/example1?s=128&d=mm&r=g",
      "email": "[email protected]",
      "boards": [
        {
          "id": 1,
          "title": "Project Alpha",
          "role": "admin"
        },
        {
          "id": 2,
          "title": "Project Beta",
          "role": "member"
        }
      ],
      "is_super": false,
      "is_wpadmin": true
    },
    {
      "ID": 2,
      "display_name": "Jane Smith",
      "photo": "https://secure.gravatar.com/avatar/example2?s=128&d=mm&r=g",
      "email": "[email protected]",
      "boards": [
        {
          "id": 1,
          "title": "Project Alpha",
          "role": "member"
        }
      ],
      "is_super": false,
      "is_wpadmin": false
    }
  ],
  "boards": [
    {
      "id": 1,
      "title": "Project Alpha",
      "meta": {
        "custom_field_positions": "yes"
      },
      "isUserOnlyViewer": false
    },
    {
      "id": 2,
      "title": "Project Beta",
      "meta": {
        "custom_field_positions": "yes"
      },
      "isUserOnlyViewer": false
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

# Search Users

Search for users by display name. Returns users who are members of boards and match the search criteria.

HTTP Request

GET /wp-json/fluent-boards/v2/search-fluent-boards-users
1

# Parameters

Parameter Type Description
searchInput string Search term for user display name

# Example Request

curl "https://yourdomain.com/wp-json/fluent-boards/v2/search-fluent-boards-users" \
  -H "Authorization: Basic API_USERNAME:API_PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{
    "searchInput": "john"
  }'
1
2
3
4
5
6

# Example Response

[
  {
    "ID": 1,
    "user_login": "johndoe",
    "user_nicename": "john-doe",
    "user_email": "[email protected]",
    "user_url": "http://example.com",
    "user_registered": "2024-01-15 10:30:00",
    "user_status": "0",
    "display_name": "John Doe",
    "photo": "https://secure.gravatar.com/avatar/example1?s=128&d=mm&r=g",
    "which_boards": [
      {
        "id": 1,
        "parent_id": null,
        "title": "Project Alpha",
        "description": "Main project board",
        "type": "to-do",
        "currency": "USD",
        "background": {
          "id": "solid_1",
          "is_image": false,
          "image_url": null,
          "color": "#2196F3"
        },
        "settings": {
          "tasks_count": 25
        },
        "created_by": "1",
        "archived_at": null,
        "meta": {
          "custom_field_positions": "yes"
        },
        "isUserOnlyViewer": false,
        "pivot": {
          "foreign_id": "1",
          "object_id": "1",
          "settings": "a:1:{s:8:\"is_admin\";b:1;}",
          "preferences": "a:7:{s:19:\"email_after_comment\";b:1;s:23:\"email_after_task_assign\";b:1;s:29:\"email_after_task_stage_change\";b:1;s:32:\"email_after_task_due_date_change\";b:1;s:28:\"email_after_remove_from_task\";b:1;s:24:\"email_after_task_archive\";b:1;s:22:\"dashboard_notification\";b:1;}",
          "created_at": "2024-01-15T10:30:00+00:00",
          "updated_at": "2024-01-15T10:30:00+00:00"
        }
      }
    ],
    "is_wpadmin": true,
    "is_super": false
  },
  {
    "ID": 2,
    "user_login": "janesmith",
    "user_nicename": "jane-smith",
    "user_email": "[email protected]",
    "user_url": "",
    "user_registered": "2024-02-01 09:15:00",
    "user_status": "0",
    "display_name": "Jane Smith",
    "photo": "https://secure.gravatar.com/avatar/example2?s=128&d=mm&r=g",
    "which_boards": [
      {
        "id": 2,
        "parent_id": null,
        "title": "Project Beta",
        "description": "Secondary project board",
        "type": "to-do",
        "currency": "USD",
        "background": {
          "id": "solid_2",
          "is_image": false,
          "image_url": null,
          "color": "#4CAF50"
        },
        "settings": {
          "tasks_count": 15
        },
        "created_by": "1",
        "archived_at": null,
        "meta": {
          "custom_field_positions": "yes"
        },
        "isUserOnlyViewer": false,
        "pivot": {
          "foreign_id": "2",
          "object_id": "2",
          "settings": "a:1:{s:8:\"is_admin\";b:0;}",
          "preferences": "a:7:{s:19:\"email_after_comment\";b:1;s:23:\"email_after_task_assign\";b:1;s:29:\"email_after_task_stage_change\";b:1;s:32:\"email_after_task_due_date_change\";b:1;s:28:\"email_after_remove_from_task\";b:1;s:24:\"email_after_task_archive\";b:1;s:22:\"dashboard_notification\";b:1;}",
          "created_at": "2024-02-01T09:15:00+00:00",
          "updated_at": "2024-02-01T09:15:00+00:00"
        }
      }
    ],
    "all_boards": null,
    "is_super": false,
    "is_wpadmin": false
  }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95

# Get Project Members

Retrieve all members of a specific project.

HTTP Request

GET /wp-json/fluent-boards/v2/projects/{board_id}/users
1

# Example Request

curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/users" \
  -H "Authorization: Basic API_USERNAME:API_PASSWORD"
1
2

# Example Response

{
  "users": [
    {
      "ID": 1,
      "display_name": "John Doe",
      "user_login": "johndoe",
      "email": "[email protected]",
      "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": "[email protected]",
      "photo": "https://secure.gravatar.com/avatar/example2?s=128&d=mm&r=g",
      "role": "member",
      "is_super": false,
      "is_wpadmin": false
    }
  ],
  "global_admins": []
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# Add Members to Project

Add a single user to a project. The user can be added as a regular member or as a viewer only.

HTTP Request

POST /wp-json/fluent-boards/v2/projects/{board_id}/add-members
1

# Request Body

Parameter Type Required Description
memberId integer Yes ID of the user to add
isViewerOnly string No Set to 'yes' to add as viewer only

# Example Request

curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/add-members" \
  -X POST \
  -H "Authorization: Basic API_USERNAME:API_PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{
    "memberId": 5,
    "isViewerOnly": "yes"
  }'
1
2
3
4
5
6
7
8

# Example Response

{
  "message": "Member added successfully",
  "member": {
    "ID": 5,
    "user_login": "janesmith",
    "user_nicename": "jane-smith",
    "user_email": "[email protected]",
    "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"
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# Remove User from Project

Remove a user from a project.

HTTP Request

POST /wp-json/fluent-boards/v2/projects/{board_id}/user/{user_id}/remove
1

# Example Request

curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/user/{user_id}/remove" \
  -X POST \
  -H "Authorization: Basic API_USERNAME:API_PASSWORD"
1
2
3

# Example Response

{
  "message": "Member removed successfully"
}
1
2
3

# Make User Manager

Promote a user to manager role in a project. This gives the user administrative privileges for the specific board. Note: The user must already be a member of the board before they can be promoted to manager.

Pro

HTTP Request

POST /wp-json/fluent-boards/v2/projects/{board_id}/user/{user_id}/make-manager
1

# Example Request

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"
1
2
3

# Example Response

{
  "message": "Role updated successfully",
  "member": {
    "ID": 5,
    "user_login": "janesmith",
    "user_nicename": "jane-smith",
    "user_email": "[email protected]",
    "user_url": "",
    "user_registered": "2024-02-01 09:15:00",
    "user_status": "0",
    "display_name": "Jane Smith",
    "is_admin": true,
    "is_board_admin": true,
    "photo": "https://secure.gravatar.com/avatar/example5?s=128&d=mm&r=g"
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# Remove Manager Role

Remove manager role from a user.

Pro

HTTP Request

POST /wp-json/fluent-boards/v2/projects/{board_id}/user/{user_id}/remove-manager
1

# Example Request

curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/user/{user_id}/remove-manager" \
  -X POST \
  -H "Authorization: Basic API_USERNAME:API_PASSWORD"
1
2
3

# Example Response

{
  "message": "Role updated successfully",
  "member": {
    "ID": 5,
    "user_login": "janesmith",
    "user_nicename": "jane-smith",
    "user_email": "[email protected]",
    "user_url": "",
    "user_registered": "2024-02-01 09:15:00",
    "user_status": "0",
    "display_name": "Jane Smith",
    "is_admin": false,
    "is_board_admin": false,
    "photo": "https://secure.gravatar.com/avatar/example5?s=128&d=mm&r=g"
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# Make User Member

Set a user's role to member in a project. This endpoint can convert admins to regular members (removing admin privileges) or upgrade viewers to members (increasing permissions). Members have full access to tasks and boards. Note: The user must already be a board viewer or manager before they can be converted to a member.

Pro

HTTP Request

POST /wp-json/fluent-boards/v2/projects/{board_id}/user/{user_id}/make-member
1

# Example Request

curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/user/{user_id}/make-member" \
  -X POST \
  -H "Authorization: Basic API_USERNAME:API_PASSWORD"
1
2
3

# Example Response

{
  "message": "Role updated successfully",
  "member": {
    "ID": 5,
    "user_login": "janesmith",
    "user_nicename": "jane-smith",
    "user_email": "[email protected]",
    "user_url": "",
    "user_registered": "2024-02-01 09:15:00",
    "user_status": "0",
    "display_name": "Jane Smith",
    "is_admin": false,
    "is_board_admin": false,
    "photo": "https://secure.gravatar.com/avatar/example5?s=128&d=mm&r=g"
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# Make User Viewer

Set a user's role to viewer in a project. This endpoint can convert admins or members to viewers (reducing permissions). Viewers have read-only access to tasks and boards. Note: The user must already be a board member or manager before they can be converted to a viewer.

Pro

HTTP Request

POST /wp-json/fluent-boards/v2/projects/{board_id}/user/{user_id}/make-viewer
1

# Example Request

curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/user/{user_id}/make-viewer" \
  -X POST \
  -H "Authorization: Basic API_USERNAME:API_PASSWORD"
1
2
3

# Example Response

{
  "message": "Role updated successfully",
  "member": {
    "ID": 5,
    "user_login": "janesmith",
    "user_nicename": "jane-smith",
    "user_email": "[email protected]",
    "user_url": "",
    "user_registered": "2024-02-01 09:15:00",
    "user_status": "0",
    "display_name": "Jane Smith",
    "is_admin": false,
    "is_board_admin": false,
    "photo": "https://secure.gravatar.com/avatar/example5?s=128&d=mm&r=g"
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# Remove User from Board

Remove a user from a specific board.

HTTP Request

DELETE /wp-json/fluent-boards/v2/remove-user-from-board
1

# Request Body

Parameter Type Required Description
boardId integer Yes The ID of the board
userId integer Yes The ID of the user

# Example Request

curl "https://yourdomain.com/wp-json/fluent-boards/v2/remove-user-from-board" \
  -X DELETE \
  -H "Authorization: Basic API_USERNAME:API_PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{
    "boardId": 3,
    "userId": 5
  }'
1
2
3
4
5
6
7
8

# Example Response

{
  "message": "User Removed from Board successfully!"
}
1
2
3

# Sync Board Roles

Synchronize user roles across multiple boards. This endpoint allows you to update or remove user roles from multiple boards in a single request. Note: Super admin users cannot have their roles synced.

Pro

HTTP Request

POST /wp-json/fluent-boards/v2/managers/roles/{user_id}
1

# Request Body

Parameter Type Required Description
roles object Yes Object with board_id as key and role as value. Valid roles: admin, member, viewer. Empty values will remove the user from that board.

# Example Request

curl "https://yourdomain.com/wp-json/fluent-boards/v2/managers/roles/{user_id}" \
  -X POST \
  -H "Authorization: Basic API_USERNAME:API_PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{
    "roles": {
      "1": "admin",
      "2": "member",
      "3": "viewer"
    }
  }'
1
2
3
4
5
6
7
8
9
10
11

# Example Response

{
  "message": "User roles has been synced successfully."
}
1
2
3

# Get Project Assignees

Get all users who can be assigned to tasks in a project.

HTTP Request

GET /wp-json/fluent-boards/v2/projects/{board_id}/assignees
1

# Example Request

curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/{board_id}/assignees" \
  -H "Authorization: Basic API_USERNAME:API_PASSWORD"
1
2

# Example Response

{
  "data": [
    {
      "ID": 1,
      "user_login": "john_doe",
      "user_nicename": "john-doe",
      "user_email": "[email protected]",
      "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": "[email protected]",
      "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"
      }
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

# Error Responses

See Common Error Responses for standard error formats.

# Common User-Specific Errors

  • 404 Not Found - User not found
  • 403 Forbidden - You don't have permission to manage users
  • 400 Bad Request - Invalid user data or missing required fields