Team APIs
Team APIs provide comprehensive team management capabilities including creating, updating, and managing teams within your organization. These APIs enable you to organize users into teams, assign roles, and control access permissions across your iMBRACE workspace.
1. Create Team
Create a new team within your organization.
This API allows you to create a new team with specified name, description, mode, and other team properties. Teams are used to organize users and control access to various features and data within your workspace.
Endpoint for Product:
POST https://app-gateway.imbrace.co/v1/backend/teamsEndpoint for Demo:
POST https://app-gateway.demo.imbrace.co/v1/backend/teamsEndpoint for Dev:
POST https://app-gateway.dev.imbrace.co/v1/backend/teamsHeaders:
Content-Type:application/jsonX-Access-Token: Your Access TokenYour Access Token
Request Body (JSON)
{ "business_unit_id": "{{business_unit_id}}", "name": "Sales", "mode": "grab", "icon_url": "", "description": "Sales team" }Request Parameters:
business_unit_id(string, required): The unique identifier of the business unitname(string, required): The name of the teammode(string, required): The team mode (e.g., "grab", "assign", "round_robin")icon_url(string, optional): URL of the team icondescription(string, optional): Description of the team
Result:
Status code: 200 OK
{ "object_name": "team", "id": "t_35d4663e-ace7-4698-9348-dc30d5638c99", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "name": "Sales", "icon_url": "", "description": "Sales team", "created_at": "2022-04-01T08:28:13.541Z", "updated_at": "2022-04-01T08:28:13.541Z", "team_user_ids": [ "tu_974ef6cd-863d-418c-90c3-2b8ab1c3a7a8" ], "team_users": [ { "object_name": "team_user", "id": "tu_974ef6cd-863d-418c-90c3-2b8ab1c3a7a8", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "user_id": "u_imbrace_admin", "role": "admin", "created_at": "2022-04-01T08:28:13.545Z", "updated_at": "2022-04-01T08:28:13.545Z" } ] }Error Responses:
Status code: 400 Bad Request
{ "code": 40000, "message": "Team already exist" }Status code: 403 Forbidden
{ "code": 40003, "message": "Forbidden, insufficient permission" }Example:
curl --location 'https://app-gateway.dev.imbrace.co/v1/backend/teams' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9' \ --header 'Content-Type: application/json' \ --data '{ "business_unit_id": "bu_imbrace_testing", "name": "Sales", "mode": "grab", "icon_url": "", "description": "Sales team" }'
2. Add Multiple Users to Team
Add multiple users to an existing team in a single operation.
This API allows you to add multiple users to a team with their respective roles in one request. This is more efficient than adding users one by one and supports bulk operations.
Endpoint for Product:
POST https://app-gateway.imbrace.co/v2/backend/teams/_add_usersEndpoint for Demo:
POST https://app-gateway.demo.imbrace.co/v2/backend/teams/_add_usersEndpoint for Dev:
POST https://app-gateway.dev.imbrace.co/v2/backend/teams/_add_usersHeaders:
Content-Type:application/jsonX-Access-Token: Your Access TokenYour Access Token
Request Body (JSON)
{ "team_id": "t_imbrace_default_team", "reserve_leave": true, "users": [ { "user_id": "u_imbrace_agent1", "role": "member" }, { "user_id": "u_imbrace_agent2", "role": "admin" }, { "user_id": "u_imbrace_bot", "role": "test" } ] }Request Parameters:
team_id(string, required): The unique identifier of the teamreserve_leave(boolean, required): Whether to reserve leave for existing team membersusers(array, required): Array of user objects to add to the teamuser_id(string, required): The unique identifier of the userrole(string, required): The role to assign to the user
Result:
Status code: 200 OK
{ "object_name": "team", "id": "t_imbrace_default_team", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "name": "General", "mode": "public", "icon_url": "", "description": "Default iMBRACE team, auto create by system for testing purpose", "is_default": true, "user_state": "", "created_at": "2022-06-22T09:19:58.929Z", "updated_at": "2023-09-22T05:59:18.581Z", "is_disabled": false, "team_user_ids": [ "tu_2c2f8943-01c4-41fc-90ff-5a427ae416fb", "tu_21b9c7b0-a7c0-4e4d-8d75-899229d199b0", "tu_fc2b83f7-c053-498e-9642-da178bda13d7", "tu_b7719e49-6135-44ff-a0f8-1230cd7d7e36", "tu_b6d12f57-8e49-4372-84c0-1dcb735929c9", "tu_ad0c8cd9-c344-4c7d-941c-6c7e96248c5e", "tu_imbrace_admin", "tu_89003b21-c723-4a0f-96c2-83d358044f85", "tu_e3d43e3f-852d-47f4-b810-27ca00f6ca85", "tu_4fdc4974-01cc-4645-9d70-48036233da1b", "tu_imbrace_agent1", "tu_imbraec_agent2", "tu_deaf5d87-8e49-4f8c-8193-ad6013fc7b80", "tu_159f11b2-b117-41b1-b797-44f83a76e503", "tu_a765a251-d3bf-4598-82b1-f2337b97a44e", "tu_4cfee84f-8752-462f-9caf-92a658b447ff", "tu_a267a4ea-4109-4c52-8245-0edbd6100a1b", "tu_1b0e7d71-0b81-4dce-9f68-404ed61d6d8b", "tu_a296029c-1096-46ff-98b4-23cebae70c14", "tu_40864d3b-0550-4760-a27f-8d153c4f3540" ], "team_users": [ { "object_name": "team_user", "id": "tu_2c2f8943-01c4-41fc-90ff-5a427ae416fb", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_09173225-d34e-4f1b-8b80-9e97a608db07", "role": "admin", "state": "join" }, { "object_name": "team_user", "id": "tu_21b9c7b0-a7c0-4e4d-8d75-899229d199b0", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_f7dfc4b2-96bb-4c38-a74a-608bbb22bf9c", "role": "member", "state": "join" }, { "object_name": "team_user", "id": "tu_imbrace_agent1", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_imbrace_agent1", "role": "member", "state": "join" }, { "object_name": "team_user", "id": "tu_imbraec_agent2", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_imbrace_agent2", "role": "member", "state": "join" } ] }Error Responses:
Status code: 400 Bad Request
{ "code": 40000, "message": "Invalid team_id" }Status code: 401 Unauthorized
{ "code": 40001, "message": "Unauthorized" }Status code: 403 Forbidden
{ "code": 40003, "message": "Forbidden, insufficient permission" }Example:
curl --location 'https://app-gateway.dev.imbrace.co/v2/backend/teams/_add_users' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9' \ --header 'Content-Type: application/json' \ --data '{ "team_id": "t_imbrace_default_team", "reserve_leave": true, "users": [ { "user_id": "u_imbrace_agent1", "role": "member" }, { "user_id": "u_imbrace_agent2", "role": "admin" }, { "user_id": "u_imbrace_bot", "role": "test" } ] }'
3. Join Team (for administrators)
Join an existing team as the current user.
This API allows the authenticated user to join a specific team. The user will be added to the team with appropriate permissions based on the team's configuration.
Endpoint for Product:
POST https://app-gateway.imbrace.co/v2/backend/teams/_join_teamEndpoint for Demo:
POST https://app-gateway.demo.imbrace.co/v2/backend/teams/_join_teamEndpoint for Dev:
POST https://app-gateway.dev.imbrace.co/v2/backend/teams/_join_teamHeaders:
Content-Type:application/jsonX-Access-Token: Your Access TokenYour Access Token
Request Body (JSON)
{ "team_id": "t_17f35e4f-7fb1-4096-a5cc-e90f9ece4be9" }Request Parameters:
team_id(string, required): The unique identifier of the team to join
Result:
Status code: 200 OK
{ "object_name": "team", "id": "t_17f35e4f-7fb1-4096-a5cc-e90f9ece4be9", "organization_id": "org_e7e8fdb5-39a9-4599-80db-79ae6ff619fd", "business_unit_id": "bu_be188361-fbec-4505-9a05-d9d34a5d5961", "name": "Admin", "mode": "public", "icon_url": "", "description": "", "is_default": true, "user_state": "", "created_at": "2025-06-19T01:39:42.765Z", "updated_at": "2025-06-19T01:39:42.765Z", "is_disabled": false, "is_delete": false, "team_user_ids": [ "tu_c31be420-ba40-4ab0-ac1e-e1164357f2fa" ], "team_users": [ { "object_name": "team_user", "id": "tu_c31be420-ba40-4ab0-ac1e-e1164357f2fa", "organization_id": "org_e7e8fdb5-39a9-4599-80db-79ae6ff619fd", "business_unit_id": "bu_be188361-fbec-4505-9a05-d9d34a5d5961", "team_id": "t_17f35e4f-7fb1-4096-a5cc-e90f9ece4be9", "user_id": "u_09173225-d34e-4f1b-8b80-9e97a608db07", "role": "admin", "state": "join" } ] }Error Responses:
Status code: 400 Bad Request
{ "code": 40000, "message": "Invalid team_id" }Status code: 401 Unauthorized
{ "code": 40001, "message": "Unauthorized" }Status code: 403 Forbidden
{ "code": 40003, "message": "Forbidden, insufficient permission" }Example:
curl --location 'https://app-gateway.dev.imbrace.co/v2/backend/teams/_join_team' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9' \ --header 'Content-Type: application/json' \ --data '{ "team_id": "t_17f35e4f-7fb1-4096-a5cc-e90f9ece4be9" }'
4. Request to Join Team
Request to join a specific team (requires team approval).
This API allows users to send a join request to a team. The request will need to be approved by team administrators before the user is added to the team.
Endpoint for Product:
POST https://app-gateway.imbrace.co/v2/backend/teams/{team_id}/join_requestEndpoint for Demo:
POST https://app-gateway.demo.imbrace.co/v2/backend/teams/{team_id}/join_requestEndpoint for Dev:
POST https://app-gateway.dev.imbrace.co/v2/backend/teams/{team_id}/join_requestHeaders:
X-Access-Token: Your Access TokenYour Access Token
Path Parameters:
team_id(string, required): The unique identifier of the team to request joining
Request Body:
No request body required
Result:
Status code: 200 OK
{ "message": "Join request submitted successfully"}Error Responses:
Status code: 400 Bad Request
{ "code": 4, "message": "team user existed" }Status code: 403 Forbidden
{ "code": 40003, "message": "super admin no need to join request" }Status code: 404 Not Found
{ "code": 40004, "message": "not found team" }Example:
curl --location --request POST 'https://app-gateway.dev.imbrace.co/v2/backend/teams/t_17f35e4f-7fb1-4096-a5cc-e90f9ece4be9/join_request' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9'
5. Get My Teams
Retrieve all teams that the current user is a member of.
This API allows users to fetch all teams they belong to, including their role within each team. This is useful for displaying team memberships in user interfaces and determining access permissions.
Endpoint for Product:
GET https://app-gateway.imbrace.co/v2/backend/teams/myEndpoint for Demo:
GET https://app-gateway.demo.imbrace.co/v2/backend/teams/myEndpoint for Dev:
GET https://app-gateway.dev.imbrace.co/v2/backend/teams/myHeaders:
X-Access-Token: Your Access TokenYour Access Token
Query Parameters:
None
Result:
Status code: 200 OK
[ { "_id": "t_17f35e4f-7fb1-4096-a5cc-e90f9ece4be9", "doc_name": "team", "public_id": "t_17f35e4f-7fb1-4096-a5cc-e90f9ece4be9", "organization_id": "org_e7e8fdb5-39a9-4599-80db-79ae6ff619fd", "business_unit_id": "bu_be188361-fbec-4505-9a05-d9d34a5d5961", "icon_url": "", "name": "Admin", "mode": "public", "description": "", "is_default": true, "is_disabled": false, "created_at": "2025-06-19T01:39:42.765Z", "updated_at": "2025-06-19T01:39:42.765Z", "is_delete": false, "deleted_by": "", "deleted_at": "", "role": "admin" }, { "_id": "t_imbrace_default_team", "doc_name": "team", "public_id": "t_imbrace_default_team", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "icon_url": "", "name": "General", "mode": "public", "description": "Default iMBRACE team, auto create by system for testing purpose", "is_default": true, "created_at": "2022-06-22T09:19:58.929Z", "updated_at": "2023-09-22T05:59:18.581Z", "is_disabled": false, "role": "admin" } ]Empty Result:
Status code: 200 OK (when user is not a member of any teams)
[]Example:
curl --location 'https://app-gateway.dev.imbrace.co/v2/backend/teams/my' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9'
6. Get All Teams
Retrieve all teams within the organization that the user has access to.
This API allows users to fetch all teams in their organization, regardless of whether they are members or not. This is useful for administrative purposes, team discovery, and management interfaces.
Endpoint for Product:
GET https://app-gateway.imbrace.co/v1/backend/teams/allEndpoint for Demo:
GET https://app-gateway.demo.imbrace.co/v1/backend/teams/allEndpoint for Dev:
GET https://app-gateway.dev.imbrace.co/v1/backend/teams/allHeaders:
X-Access-Token: Your Access TokenYour Access Token
Query Parameters:
None
Result:
Status code: 200 OK
[ { "_id": "t_17f35e4f-7fb1-4096-a5cc-e90f9ece4be9", "doc_name": "team", "public_id": "t_17f35e4f-7fb1-4096-a5cc-e90f9ece4be9", "organization_id": "org_e7e8fdb5-39a9-4599-80db-79ae6ff619fd", "business_unit_id": "bu_be188361-fbec-4505-9a05-d9d34a5d5961", "icon_url": "", "name": "Admin", "mode": "public", "description": "", "is_default": true, "is_disabled": false, "created_at": "2025-06-19T01:39:42.765Z", "updated_at": "2025-06-19T01:39:42.765Z", "is_delete": false, "deleted_by": "", "deleted_at": "" } ]Example:
curl --location 'https://app-gateway.dev.imbrace.co/v1/backend/teams/all' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9'
7. Get Teams with Filtering and Pagination
Retrieve teams with advanced filtering, pagination, and sorting options.
This API allows you to fetch teams with specific filters, pagination controls, and sorting. It's useful for building team management interfaces with search, filtering, and pagination capabilities.
Endpoint for Product:
GET https://app-gateway.imbrace.co/v2/backend/teams?type=business_unit_id&limit=20&skip=0&sort=-created_at&q=bu_6cc91e00-d704-47e6-a21e-169bc96fe416Endpoint for Demo:
GET https://app-gateway.demo.imbrace.co/v2/backend/teams?type=business_unit_id&limit=20&skip=0&sort=-created_at&q=bu_6cc91e00-d704-47e6-a21e-169bc96fe416Endpoint for Dev:
GET https://app-gateway.dev.imbrace.co/v2/backend/teams?type=business_unit_id&limit=20&skip=0&sort=-created_at&q=bu_6cc91e00-d704-47e6-a21e-169bc96fe416Headers:
X-Access-Token: Your Access TokenYour Access Token
Query Parameters:
type(string, optional): Filter type (e.g., "business_unit_id")limit(number, optional): Number of results per page (default: 20)skip(number, optional): Number of results to skip for pagination (default: 0)sort(string, optional): Sort field and direction (e.g., "-created_at" for descending)q(string, optional): Filter value (e.g., business unit ID)
Result:
Status code: 200 OK
{ "object_name": "list", "data": [ { "object_name": "team", "id": "t_4f81b80b-2c05-4656-a789-a823c109ede2", "organization_id": "org_ee097eef-0792-4dcc-867b-99fe653b27ec", "business_unit_id": "bu_6cc91e00-d704-47e6-a21e-169bc96fe416", "name": "Admin", "mode": "public", "icon_url": "", "description": "", "is_default": true, "is_joined": false, "user_state": "", "created_at": "2025-02-20T09:13:26.285Z", "updated_at": "2025-02-20T09:13:26.285Z", "is_disabled": false, "is_delete": false, "members_count": 0, "admin_count": 0 } ], "nested": {}, "has_more": false, "count": 1, "total": 1 }Example:
curl --location 'https://app-gateway.dev.imbrace.co/v2/backend/teams?type=business_unit_id&limit=20&skip=0&sort=-created_at&q=bu_6cc91e00-d704-47e6-a21e-169bc96fe416' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9'
8. Get Team Users with Filtering and Pagination
Retrieve team members with advanced filtering, pagination, and detailed user information.
This API allows you to fetch team members with specific filters, pagination controls, and complete user details. It's useful for building team member management interfaces with search, filtering, and detailed user profiles.
Endpoint for Product:
GET https://app-gateway.imbrace.co/v2/backend/team_users?type=team_id&q=t_imbrace_default_team&limit=20&skip=0Endpoint for Demo:
GET https://app-gateway.demo.imbrace.co/v2/backend/team_users?type=team_id&q=t_imbrace_default_team&limit=20&skip=0Endpoint for Dev:
GET https://app-gateway.dev.imbrace.co/v2/backend/team_users?type=team_id&q=t_imbrace_default_team&limit=20&skip=0Headers:
X-Access-Token: Your Access TokenYour Access Token
Query Parameters:
type(string, required): Filter type (e.g., "team_id")q(string, required): Filter value (e.g., team ID)limit(number, optional): Number of results per page (default: 20)skip(number, optional): Number of results to skip for pagination (default: 0)
Result:
Status code: 200 OK
{ "object_name": "list", "data": [ { "object_name": "team_user", "id": "tu_2c2f8943-01c4-41fc-90ff-5a427ae416fb", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_09173225-d34e-4f1b-8b80-9e97a608db07", "role": "admin", "state": "join", "user": { "object_name": "user", "id": "u_09173225-d34e-4f1b-8b80-9e97a608db07", "display_name": "TUAN ORG owner", "avatar_url": "", "first_name": "agent01@imbrace.co", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "status": "active", "email": "agent01@imbrace.co", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2025-06-19T01:39:42.685Z", "updated_at": "2025-06-19T02:18:44.807Z", "organization_id": "org_e7e8fdb5-39a9-4599-80db-79ae6ff619fd", "role": "owner" } }, { "object_name": "team_user", "id": "tu_21b9c7b0-a7c0-4e4d-8d75-899229d199b0", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_f7dfc4b2-96bb-4c38-a74a-608bbb22bf9c", "role": "member", "state": "join", "user": { "object_name": "user", "id": "u_f7dfc4b2-96bb-4c38-a74a-608bbb22bf9c", "display_name": "Brendan Lum", "avatar_url": "", "first_name": "Brendan", "last_name": "Lum", "gender": "", "area_code": "", "phone_number": "60125089136", "language": "en", "status": "active", "email": "brendan.lum@imbrace.co", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2025-03-27T03:51:26.419Z", "updated_at": "2025-07-28T04:59:13.258Z", "organization_id": "org_imbrace", "role": "admin" } }, { "object_name": "team_user", "id": "tu_fc2b83f7-c053-498e-9642-da178bda13d7", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_5dee09c7-2b28-466c-a85d-e692b5d88285", "role": "member", "state": "join", "user": { "object_name": "user", "id": "u_5dee09c7-2b28-466c-a85d-e692b5d88285", "display_name": "minh@imbrace.co", "avatar_url": "", "first_name": "minh@imbrace.co", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "status": "active", "email": "minh@imbrace.co", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2024-11-08T03:15:10.034Z", "updated_at": "2024-11-08T03:16:29.499Z", "organization_id": "org_imbrace", "role": "user" } }, { "object_name": "team_user", "id": "tu_b7719e49-6135-44ff-a0f8-1230cd7d7e36", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_60af0ad2-e5e2-49c7-8f73-931c6f2e84a4", "role": "member", "state": "join", "user": { "object_name": "user", "id": "u_60af0ad2-e5e2-49c7-8f73-931c6f2e84a4", "display_name": "chiennguyen040396@gmail.com", "avatar_url": "", "first_name": "chiennguyen040396@gmail.com", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "status": "active", "email": "chiennguyen040396@gmail.com", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2024-12-15T10:20:46.301Z", "updated_at": "2025-01-09T08:34:39.907Z", "organization_id": "org_imbrace", "role": "user" } }, { "object_name": "team_user", "id": "tu_b6d12f57-8e49-4372-84c0-1dcb735929c9", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_3415ef91-4b10-402f-bdcf-df2b3f69ad2d", "role": "member", "state": "join", "user": { "object_name": "user", "id": "u_3415ef91-4b10-402f-bdcf-df2b3f69ad2d", "display_name": "cuong.nguyen@imbrace.co", "avatar_url": "", "first_name": "cuong.nguyen@imbrace.co", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "status": "active", "email": "cuong.nguyen@imbrace.co", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2023-07-20T02:36:19.144Z", "updated_at": "2024-11-01T09:12:18.011Z", "organization_id": "org_imbrace", "role": "owner" } }, { "object_name": "team_user", "id": "tu_ad0c8cd9-c344-4c7d-941c-6c7e96248c5e", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_1443bf82-2a62-477f-acb2-0bb7ede3c028", "role": "admin", "state": "join", "user": { "object_name": "user", "id": "u_1443bf82-2a62-477f-acb2-0bb7ede3c028", "display_name": "07franco.solis@gmail.com", "avatar_url": "", "first_name": "07franco.solis@gmail.com", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "status": "active", "email": "07franco.solis@gmail.com", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2024-09-02T04:05:03.308Z", "updated_at": "2024-09-02T23:09:24.469Z", "organization_id": "org_imbrace", "role": "admin" } }, { "object_name": "team_user", "id": "tu_imbrace_admin", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_imbrace_admin", "role": "admin", "state": "join", "user": { "object_name": "user", "id": "u_imbrace_admin", "display_name": "imbrace owner", "avatar_url": "https://imbrace-data.s3.ap-east-1.amazonaws.com/user/org_imbrace/file_QLYwjovSEDrHqlBSRQP1R3aM96.png", "first_name": "Super", "last_name": "Man", "gender": "", "area_code": "", "phone_number": "", "language": "en", "status": "active", "email": "superadmin@imbrace.co", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2022-01-04T03:26:24.738Z", "updated_at": "2024-07-14T08:56:20.323Z", "organization_id": "org_imbrace", "role": "owner" } }, { "object_name": "team_user", "id": "tu_89003b21-c723-4a0f-96c2-83d358044f85", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_7e39d84d-6c36-415d-9b67-8047503578aa", "role": "admin", "state": "join", "user": { "object_name": "user", "id": "u_7e39d84d-6c36-415d-9b67-8047503578aa", "display_name": "michael.wong@imbrace.co", "avatar_url": "", "first_name": "michael.wong@imbrace.co", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "status": "active", "email": "michael.wong@imbrace.co", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2024-07-25T08:22:30.889Z", "updated_at": "2025-01-08T08:23:02.505Z", "organization_id": "org_imbrace", "role": "admin" } }, { "object_name": "team_user", "id": "tu_e3d43e3f-852d-47f4-b810-27ca00f6ca85", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_71585462-0af0-4581-a72b-e82141dcb1c2", "role": "member", "state": "join", "user": { "object_name": "user", "id": "u_71585462-0af0-4581-a72b-e82141dcb1c2", "display_name": "khong.ng@imbrace.co", "avatar_url": "", "first_name": "khong.ng@imbrace.co", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "status": "active", "email": "khong.ng@imbrace.co", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2023-11-21T02:34:48.195Z", "updated_at": "2024-03-25T09:45:34.703Z", "organization_id": "org_imbrace", "role": "admin" } }, { "object_name": "team_user", "id": "tu_4fdc4974-01cc-4645-9d70-48036233da1b", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_3749c4a9-e538-45f1-b457-be100d0b8637", "role": "member", "state": "join", "user": { "object_name": "user", "id": "u_3749c4a9-e538-45f1-b457-be100d0b8637", "display_name": "sherry.gui@imbrace.co", "avatar_url": "", "first_name": "sherry.gui@imbrace.co", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "status": "active", "email": "sherry.gui@imbrace.co", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2023-11-01T07:01:34.654Z", "updated_at": "2024-03-28T09:27:23.335Z", "organization_id": "org_imbrace", "role": "admin" } }, { "object_name": "team_user", "id": "tu_imbrace_agent1", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_imbrace_agent1", "role": "member", "state": "join", "user": { "object_name": "user", "id": "u_imbrace_agent1", "display_name": "imbrace agent 1", "avatar_url": "", "first_name": "", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "status": "active", "email": "agent1@imbrace.co", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2022-01-04T03:26:24.740Z", "updated_at": "2022-01-04T03:26:24.740Z", "organization_id": "org_imbrace", "role": "user" } }, { "object_name": "team_user", "id": "tu_imbraec_agent2", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_imbrace_agent2", "role": "member", "state": "join", "user": { "object_name": "user", "id": "u_imbrace_agent2", "display_name": "imbrace agent 2", "avatar_url": "https://imbrace-data.s3.ap-east-1.amazonaws.com/user/org_imbrace/file_5ACJq6DJlwqYwZbDWpx4OudugQ.jpeg", "first_name": "", "last_name": "", "gender": "m", "area_code": "", "phone_number": "", "language": "en", "status": "active", "email": "agent2@imbrace.co", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2022-01-04T03:26:24.741Z", "updated_at": "2024-01-05T08:33:39.114Z", "organization_id": "org_imbrace", "role": "user" } }, { "object_name": "team_user", "id": "tu_deaf5d87-8e49-4f8c-8193-ad6013fc7b80", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_000ed63e-e9c1-4d38-be2e-a5b29ef3be18", "role": "member", "state": "join", "user": { "object_name": "user", "id": "u_000ed63e-e9c1-4d38-be2e-a5b29ef3be18", "display_name": "aiman.rahman@imbrace.co", "avatar_url": "", "first_name": "aiman.rahman@imbrace.co", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "status": "active", "email": "aiman.rahman@imbrace.co", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2023-04-03T08:08:49.560Z", "updated_at": "2023-04-03T08:08:49.560Z", "organization_id": "org_imbrace", "role": "admin" } }, { "object_name": "team_user", "id": "tu_159f11b2-b117-41b1-b797-44f83a76e503", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_a93ece5a-0515-4fd4-8592-3b92497eb538", "role": "admin", "state": "join", "user": { "object_name": "user", "id": "u_a93ece5a-0515-4fd4-8592-3b92497eb538", "display_name": "queenie.dinh@imbrace.co", "avatar_url": "", "first_name": "queenie.dinh@imbrace.co", "last_name": "Tran", "gender": "", "area_code": "", "phone_number": "", "language": "en", "status": "active", "email": "queenie.dinh@imbrace.co", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2023-06-05T03:52:05.740Z", "updated_at": "2024-05-02T07:26:30.955Z", "organization_id": "org_imbrace", "role": "owner" } }, { "object_name": "team_user", "id": "tu_a765a251-d3bf-4598-82b1-f2337b97a44e", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_a756160b-c83c-48d0-9da3-b09fd4897381", "role": "admin", "state": "join", "user": { "object_name": "user", "id": "u_a756160b-c83c-48d0-9da3-b09fd4897381", "display_name": "sam.tang@imbrace.co", "avatar_url": "", "first_name": "sam.tang@imbrace.co", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "status": "active", "email": "sam.tang@imbrace.co", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2023-01-05T15:48:09.504Z", "updated_at": "2023-01-05T15:48:09.504Z", "organization_id": "org_imbrace", "role": "owner" } }, { "object_name": "team_user", "id": "tu_4cfee84f-8752-462f-9caf-92a658b447ff", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_8c62e71f-1b5c-49d9-9985-ab1728a461fe", "role": "member", "state": "join", "user": { "object_name": "user", "id": "u_8c62e71f-1b5c-49d9-9985-ab1728a461fe", "display_name": "Kennedy", "avatar_url": "", "first_name": "Kennedy", "last_name": "Yu", "gender": "", "area_code": "852", "phone_number": "98765432", "language": "en", "status": "active", "email": "kennedy.yu@imbrace.co", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2022-06-07T03:38:06.159Z", "updated_at": "2024-03-27T03:32:46.360Z", "organization_id": "org_imbrace", "role": "admin" } }, { "object_name": "team_user", "id": "tu_a267a4ea-4109-4c52-8245-0edbd6100a1b", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_5e336d97-e26d-4c6b-9452-36c90bd0769f", "role": "member", "state": "join", "user": { "object_name": "user", "id": "u_5e336d97-e26d-4c6b-9452-36c90bd0769f", "display_name": "Agent02", "avatar_url": "", "first_name": "iMBRACE", "last_name": "Agent02", "gender": "", "area_code": "852", "phone_number": "99999999", "language": "en", "status": "active", "email": "agent02@imbrace.co", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2022-06-06T05:08:31.168Z", "updated_at": "2024-05-07T10:00:39.535Z", "organization_id": "org_imbrace", "role": "user" } }, { "object_name": "team_user", "id": "tu_1b0e7d71-0b81-4dce-9f68-404ed61d6d8b", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_ed1ffffc-73ca-4dc3-85fc-2c7da6c87b7a", "role": "admin", "state": "join", "user": { "object_name": "user", "id": "u_ed1ffffc-73ca-4dc3-85fc-2c7da6c87b7a", "display_name": "Austina", "avatar_url": "https://imbrace-data.s3.ap-east-1.amazonaws.com/user/org_imbrace/file_rNB7yin5UFxIUEiBb9cwJwF42S.jpeg", "first_name": "Austina", "last_name": "Engelhardt", "gender": "", "area_code": "852", "phone_number": "31198920", "language": "en", "status": "active", "email": "agent01@imbrace.co", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2022-06-06T05:08:21.761Z", "updated_at": "2025-01-15T02:38:26.063Z", "organization_id": "org_imbrace", "role": "owner" } }, { "object_name": "team_user", "id": "tu_a296029c-1096-46ff-98b4-23cebae70c14", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_2a508e6e-09d3-4d65-9825-5e71940d0bcb", "role": "admin", "state": "join", "user": { "object_name": "user", "id": "u_2a508e6e-09d3-4d65-9825-5e71940d0bcb", "display_name": "shin.tu@imbrace.co", "avatar_url": "", "first_name": "shin.tu@imbrace.co", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "status": "active", "email": "shin.tu@imbrace.co", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2022-07-20T03:24:29.396Z", "updated_at": "2023-08-10T02:40:19.831Z", "organization_id": "org_imbrace", "role": "admin" } }, { "object_name": "team_user", "id": "tu_40864d3b-0550-4760-a27f-8d153c4f3540", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_imbrace_admin", "role": "admin", "state": "join", "user": { "object_name": "user", "id": "u_imbrace_admin", "display_name": "imbrace owner", "avatar_url": "https://imbrace-data.s3.ap-east-1.amazonaws.com/user/org_imbrace/file_QLYwjovSEDrHqlBSRQP1R3aM96.png", "first_name": "Super", "last_name": "Man", "gender": "", "area_code": "", "phone_number": "", "language": "en", "status": "active", "email": "superadmin@imbrace.co", "is_bot": false, "is_active": true, "is_archived": false, "is_deleted": false, "created_at": "2022-01-04T03:26:24.738Z", "updated_at": "2024-07-14T08:56:20.323Z", "organization_id": "org_imbrace", "role": "owner" } } ], "nested": { "team": { "object_name": "team", "id": "t_imbrace_default_team", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "name": "General", "mode": "public", "icon_url": "", "description": "Default iMBRACE team, auto create by system for testing purpose", "is_default": true, "user_state": "", "created_at": "2022-06-22T09:19:58.929Z", "updated_at": "2023-09-22T05:59:18.581Z", "is_disabled": false } }, "has_more": true, "count": 20, "total": 20 }Error Responses:
Status code: 403 Forbidden
{ "code": 40003, "message": "Forbidden, insufficient permission" }Example:
curl --location 'https://app-gateway.dev.imbrace.co/v2/backend/team_users?type=team_id&q=t_imbrace_default_team&limit=20&skip=0' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9' \ --data ''
9. Get Team Invite List
Retrieve users who can be invited to join a specific team.
This API allows you to fetch a list of users who are eligible to be invited to join a team. This is useful for team management interfaces where you need to show available users for team invitations.
Endpoint for Product:
GET https://app-gateway.imbrace.co/v2/backend/team_users/_invite_list?type=team_id&team_id=t_imbrace_default_teamEndpoint for Demo:
GET https://app-gateway.demo.imbrace.co/v2/backend/team_users/_invite_list?type=team_id&team_id=t_imbrace_default_teamEndpoint for Dev:
GET https://app-gateway.dev.imbrace.co/v2/backend/team_users/_invite_list?type=team_id&team_id=t_imbrace_default_teamHeaders:
X-Access-Token: Your Access TokenYour Access Token
Query Parameters:
type(string, required): Filter type (e.g., "team_id")team_id(string, required): The team ID to get invite list for
Result:
Status code: 200 OK
{ "object_name": "list", "data": [ { "object_name": "user", "id": "u_myau", "display_name": "imbrace owner", "avatar_url": "", "first_name": "", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "status": "active", "is_bot": false, "is_active": true, "is_archived": false, "created_at": "2022-05-30T06:20:18.115Z", "updated_at": "2022-05-30T06:20:18.115Z" } ], "nested": {}, "has_more": false, "count": 1, "total": 1 }Example:
curl --location 'https://app-gateway.dev.imbrace.co/v2/backend/team_users/_invite_list?type=team_id&team_id=t_imbrace_default_team' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9'
10. Get Team Users by Team ID
Retrieve all users belonging to a specific team with detailed user information.
This API allows you to fetch all team members for a specific team with complete user profiles. It's useful for displaying team member lists, user directories, and team management interfaces.
Endpoint for Product:
GET https://app-gateway.imbrace.co/v1/backend/team/{team_id}/usersEndpoint for Demo:
GET https://app-gateway.demo.imbrace.co/v1/backend/team/{team_id}/usersEndpoint for Dev:
GET https://app-gateway.dev.imbrace.co/v1/backend/team/{team_id}/usersHeaders:
X-Access-Token: Your Access TokenYour Access Token
Path Parameters:
team_id(string, required): The unique identifier of the team
Result:
Status code: 200 OK
[ { "_id": "tu_deaf5d87-8e49-4f8c-8193-ad6013fc7b80", "role": "member", "user": { "_id": "u_000ed63e-e9c1-4d38-be2e-a5b29ef3be18", "doc_name": "user", "public_id": "u_000ed63e-e9c1-4d38-be2e-a5b29ef3be18", "organization_id": "org_imbrace", "email": "aiman.rahman@imbrace.co", "role": "admin", "display_name": "aiman.rahman@imbrace.co", "avatar_url": "", "gender": "", "first_name": "aiman.rahman@imbrace.co", "last_name": "", "address_line1": "", "address_line2": "", "area_code": "", "phone_number": "", "language": "en", "status": "active", "is_active": true, "is_archived": false, "is_bot": false, "is_admin": false, "created_at": "2023-04-03T08:08:49.560Z", "updated_at": "2023-04-03T08:08:49.560Z", "_language": "en", "is_deleted": false } } ]Example:
curl --location 'https://app-gateway.dev.imbrace.co/v1/backend/team/t_imbrace_default_team/users' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9'
11. Update Team
Update an existing team's information including name, icon, and status.
This API allows you to modify team properties such as name, icon URL, and disabled status. It's useful for team management interfaces where administrators need to update team settings and configurations.
Endpoint for Product:
PUT https://app-gateway.imbrace.co/v2/backend/teams/{team_id}Endpoint for Demo:
PUT https://app-gateway.demo.imbrace.co/v2/backend/teams/{team_id}Endpoint for Dev:
PUT https://app-gateway.dev.imbrace.co/v2/backend/teams/{team_id}Headers:
Content-Type:application/jsonX-Access-Token: Your Access TokenYour Access Token
Path Parameters:
team_id(string, required): The unique identifier of the team to update
Request Body (JSON)
{ "name": "Grab mode team yoooo", "icon_url": "123123", "is_disabled": true }Request Parameters:
name(string, optional): The new name of the teamicon_url(string, optional): URL of the team iconis_disabled(boolean, optional): Whether to disable the team
Result:
Status code: 200 OK (when successful)
{ "object_name": "team", "id": "t_17f35e4f-7fb1-4096-a5cc-e90f9ece4be9", "organization_id": "org_e7e8fdb5-39a9-4599-80db-79ae6ff619fd", "business_unit_id": "bu_be188361-fbec-4505-9a05-d9d34a5d5961", "name": "Grab mode team yoooo", "mode": "public", "icon_url": "123123", "description": "", "is_default": true, "user_state": "", "created_at": "2025-06-19T01:39:42.765Z", "updated_at": "2025-06-19T01:39:42.765Z", "is_disabled": true, "is_delete": false }Error Responses:
Status code: 400 Bad Request
{ "code": 8, "message": "is default team, refuse to disabled" }Status code: 401 Unauthorized
{ "code": 40001, "message": "Unauthorized" }Status code: 403 Forbidden
{ "code": 40003, "message": "Forbidden, insufficient permission" }Status code: 404 Not Found
{ "code": 40004, "message": "Team not found" }Example:
curl --location --request PUT 'https://app-gateway.dev.imbrace.co/v2/backend/teams/t_17f35e4f-7fb1-4096-a5cc-e90f9ece4be9' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9' \ --header 'Content-Type: application/json' \ --data '{ "name": "Grab mode team yoooo", "icon_url": "123123", "is_disabled": true }'
12. Update User Role in Team
Update a specific user's role within a team.
This API allows you to change a user's role (e.g., from member to admin) within a specific team. It's useful for team management interfaces where administrators need to promote or demote team members.
Endpoint for Product:
PUT https://app-gateway.imbrace.co/v2/backend/teams/{team_id}/user/{user_id}/roleEndpoint for Demo:
PUT https://app-gateway.demo.imbrace.co/v2/backend/teams/{team_id}/user/{user_id}/roleEndpoint for Dev:
PUT https://app-gateway.dev.imbrace.co/v2/backend/teams/{team_id}/user/{user_id}/roleHeaders:
Content-Type:application/jsonX-Access-Token: Your Access TokenYour Access Token
Path Parameters:
team_id(string, required): The unique identifier of the teamuser_id(string, required): The unique identifier of the user
Request Body (JSON)
{ "role": "admin" }Request Parameters:
role(string, required): The new role for the user (e.g., "admin", "member")
Result:
Status code: 200 OK
{ "object_name": "team_user", "id": "tu_66e112e0-9811-4896-9cd9-828aa9a8b216", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_team2", "user_id": "u_imbrace_admin", "role": "admin", "state": "join", "user": { "object_name": "user", "id": "u_imbrace_admin", "display_name": "imbrace owner", "avatar_url": "https://imbrace-data.s3.ap-east-1.amazonaws.com/user/org_imbrace/file_QLYwjovSEDrHqlBSRQP1R3aM96.png", "first_name": "Super", "last_name": "Man", "gender": "", "area_code": "", "phone_number": "", "language": "en", "status": "active", "is_bot": false, "is_active": true, "is_archived": false, "created_at": "2022-01-04T03:26:24.738Z", "updated_at": "2022-06-20T03:51:08.328Z", "organization_id": "org_imbrace", "email": "superadmin@imbrace.co", "role": "owner" }, "team": { "object_name": "team", "id": "t_imbrace_team2", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "name": "team2", "mode": "public", "icon_url": "", "description": "iMBRACE team 2, auto create by system for testing purpose", "is_default": false, "is_pending": false, "created_at": "2022-05-05T08:28:57.398Z", "updated_at": "2022-05-05T08:28:57.398Z", "is_disabled": false } }Error Responses:
Status code: 400 Bad Request
{ "code": 11, "message": "is last admin, forbidden" }{ "code": 3, "field": "role", "message": "role format error" }Status code: 401 Unauthorized
{ "code": 40001, "message": "Unauthorized" }Status code: 403 Forbidden
{ "code": 40003, "message": "Forbidden, insufficient permission" }Status code: 404 Not Found
{ "code": 40004, "message": "not found team user" }Example:
curl --location --request PUT 'https://app-gateway.dev.imbrace.co/v2/backend/teams/t_17f35e4f-7fb1-4096-a5cc-e90f9ece4be9/user/u_09173225-d34e-4f1b-8b80-9e97a608db07/role' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9' \ --header 'Content-Type: application/json' \ --data '{ "role": "admin" }'
13. Accept Team Join Request
Accept a user's request to join a team.
This API allows team administrators to approve pending join requests from users who have requested to join the team. It's useful for team management workflows where join requests require approval.
Endpoint for Product:
POST https://app-gateway.imbrace.co/v2/backend/teams/{team_id}/user/{user_id}/acceptEndpoint for Demo:
POST https://app-gateway.demo.imbrace.co/v2/backend/teams/{team_id}/user/{user_id}/acceptEndpoint for Dev:
POST https://app-gateway.dev.imbrace.co/v2/backend/teams/{team_id}/user/{user_id}/acceptHeaders:
X-Access-Token: Your Access TokenYour Access Token
Request Body:
No request body required
Result:
Status code: 200 OK
{ "object_name": "team_user", "id": "tu_14b0304a-b895-4702-8e61-5d49e32c3503", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_imbrace_default_team", "user_id": "u_5e336d97-e26d-4c6b-9452-36c90bd0769f", "role": "member", "state": "join", "user": { "object_name": "user", "id": "u_5e336d97-e26d-4c6b-9452-36c90bd0769f", "display_name": "Agent02", "avatar_url": "", "first_name": "iMBRACE", "last_name": "Agent02", "gender": "", "area_code": "852", "phone_number": "99999999", "language": "en", "status": "active", "is_bot": false, "is_active": true, "is_archived": false, "created_at": "2022-06-06T05:08:31.168Z", "updated_at": "2023-06-08T09:40:10.730Z", "organization_id": "org_imbrace", "email": "agent02@imbrace.co", "role": "user" }, "team": { "object_name": "team", "id": "t_imbrace_default_team", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "name": "general", "mode": "public", "icon_url": "", "description": "Default iMBRACE team, auto create by system for testing purpose", "is_default": true, "created_at": "2022-06-22T09:19:58.929Z", "updated_at": "2023-06-19T09:47:06.218Z", "is_disabled": false } }Error Responses:
Status code: 400 Bad Request
{ "code": 10, "message": "team user accept" }Status code: 401 Unauthorized
{ "code": 40001, "message": "Unauthorized" }Status code: 403 Forbidden
{ "code": 40003, "message": "Forbidden, insufficient permission" }Status code: 404 Not Found
{ "code": 40004, "message": "not found team user" }Example:
curl --location --request POST 'https://app-gateway.dev.imbrace.co/v2/backend/teams/t_17f35e4f-7fb1-4096-a5cc-e90f9ece4be9/user/u_09173225-d34e-4f1b-8b80-9e97a608db07/accept' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9'
14. Delete Team
Delete an existing team from the organization.
This API allows you to permanently delete a team and all its associated data. It's useful for team management interfaces where administrators need to remove teams that are no longer needed.
Endpoint for Product:
DELETE https://app-gateway.imbrace.co/v2/backend/teams/{team_id}Endpoint for Demo:
DELETE https://app-gateway.demo.imbrace.co/v2/backend/teams/{team_id}Endpoint for Dev:
DELETE https://app-gateway.dev.imbrace.co/v2/backend/teams/{team_id}Headers:
X-Access-Token: Your Access TokenYour Access Token
Path Parameters:
team_id(string, required): The unique identifier of the team to delete
Request Body:
No request body required
Result:
Status code: 200 OK (when successful)
{ "message": "Team deleted successfully" }Error Responses:
Status code: 400 Bad Request
{ "code": 8, "field": "team", "message": "is default team, refuse to delete" }Status code: 401 Unauthorized
{ "code": 40001, "message": "Unauthorized" }Status code: 403 Forbidden
{ "code": 40003, "message": "Forbidden, insufficient permission" }Status code: 404 Not Found
{ "code": 40004, "field": "team", "message": "team not found" }Example:
curl --location --request DELETE 'https://app-gateway.dev.imbrace.co/v2/backend/teams/t_35d4663e-ace7-4698-9348-dc30d5638c99' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9'
15. Remove Multiple Users from Team
Remove multiple users from a team in a single operation.
This API allows you to remove multiple users from a team simultaneously. It's useful for team management interfaces where administrators need to perform bulk user removal operations.
Endpoint for Product:
POST https://app-gateway.imbrace.co/v2/backend/teams/_remove_usersEndpoint for Demo:
POST https://app-gateway.demo.imbrace.co/v2/backend/teams/_remove_usersEndpoint for Dev:
POST https://app-gateway.dev.imbrace.co/v2/backend/teams/_remove_usersHeaders:
Content-Type:application/jsonX-Access-Token: Your Access TokenYour Access Token
Request Body (JSON)
{ "team_id": "t_imbrace_team2", "user_ids": [ "u_imbrace_agent1", "u_imbrace_agent2", "u_imbrace_admin" ] }Request Parameters:
team_id(string, required): The unique identifier of the teamuser_ids(array, required): Array of user IDs to remove from the team
Result:
Status code: 200 OK (when successful)
{ "object_name": "team", "id": "t_imbrace_team2", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "name": "team2", "icon_url": "", "description": "iMBRACE team 2, auto create by system for testing purpose", "is_default": false, "created_at": "2022-04-04T07:04:50.821Z", "updated_at": "2022-04-04T07:04:50.821Z", "team_user_ids": [ "tu_imbrace_admin_team2" ], "team_users": [ { "object_name": "team_user", "id": "tu_imbrace_admin_team2", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "user_id": "u_imbrace_admin", "role": "admin", "created_at": "2022-04-04T07:04:50.828Z", "updated_at": "2022-04-04T07:04:50.828Z", "user": { "object_name": "user", "id": "u_imbrace_admin", "display_name": "imbrace owner", "avatar_url": "", "first_name": "", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "is_bot": false, "is_active": true, "is_archived": false, "is_email_verified": false, "created_at": "2022-04-04T07:04:50.797Z", "updated_at": "2022-04-04T07:04:50.797Z", "organization_id": "org_imbrace", "email": "admin@imbrace.co", "role": "owner" } } ] }Error Responses:
Status code: 400 Bad Request
{ "code": 11, "message": "is last admin, forbidden" }{ "code": 40000, "message": "Invalid team_id" }{ "code": 12, "message": "is own, forbidden" }Status code: 401 Unauthorized
{ "code": 40001, "message": "Unauthorized" }Status code: 403 Forbidden
{ "code": 40003, "message": "Forbidden, insufficient permission" }Example:
curl --location 'https://app-gateway.dev.imbrace.co/v2/backend/teams/_remove_users' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9' \ --header 'Content-Type: application/json' \ --data '{ "team_id": "t_imbrace_team2", "user_ids": [ "u_imbrace_agent1", "u_imbrace_agent2", "u_imbrace_admin" ] }'
16. Leave Team
Allow the current user to leave a team.
This API allows authenticated users to voluntarily leave a team they are currently a member of. It's useful for team management interfaces where users need to remove themselves from teams.
Endpoint for Product:
POST https://app-gateway.imbrace.co/v2/backend/teams/_leaveEndpoint for Demo:
POST https://app-gateway.demo.imbrace.co/v2/backend/teams/_leaveEndpoint for Dev:
POST https://app-gateway.dev.imbrace.co/v2/backend/teams/_leaveHeaders:
Content-Type:application/jsonX-Access-Token: Your Access TokenYour Access Token
Request Body (JSON)
{ "team_id": "t_imbrace_team3" }Request Parameters:
team_id(string, required): The unique identifier of the team to leave
Result:
Status code: 200 OK (when successful)
{ "message": "Successfully left the team" }Error Responses:
Status code: 400 Bad Request
{ "code": 11, "message": "is last admin, forbidden" }{ "code": 40000, "message": "You are not in the team" }Status code: 401 Unauthorized
{ "code": 40001, "message": "Unauthorized" }Status code: 403 Forbidden
{ "code": 40003, "message": "Forbidden, insufficient permission" }Example:
curl --location 'https://app-gateway.dev.imbrace.co/v2/backend/teams/_leave' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9' \ --header 'Content-Type: application/json' \ --data '{ "team_id": "t_imbrace_team3" }'
17. Approve Team User with Role
Approve a team user request and assign a specific role.
This API allows team administrators to approve pending team user requests and assign a specific role to the user. It's useful for team management workflows where join requests require approval and role assignment.
Endpoint for Product:
POST https://app-gateway.imbrace.co/v2/backend/teams/{team_id}/user/{team_user_id}/approveEndpoint for Demo:
POST https://app-gateway.demo.imbrace.co/v2/backend/teams/{team_id}/user/{team_user_id}/approveEndpoint for Dev:
POST https://app-gateway.dev.imbrace.co/v2/backend/teams/{team_id}/user/{team_user_id}/approveHeaders:
X-Access-Token: Your Access TokenYour Access Token
Path Parameters:
team_id(string, required): The unique identifier of the teamteam_user_id(string, required): The unique identifier of the team user relationship
Request Body (JSON)
{ "role": "admin" }Request Parameters:
role(string, required): The role to assign to the user (e.g., "admin", "member")
Result:
Status code: 200 OK
{ "object_name": "team_user", "id": "tu_6071c67b-a3de-4e20-8856-e51a1e63d43f", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "team_id": "t_af167c32-ea4f-4c15-bb38-15b97b4223cd", "user_id": "u_5e336d97-e26d-4c6b-9452-36c90bd0769f", "role": "admin", "state": "join", "user": { "object_name": "user", "id": "u_5e336d97-e26d-4c6b-9452-36c90bd0769f", "display_name": "Agent02", "avatar_url": "", "first_name": "iMBRACE", "last_name": "Agent02", "gender": "", "area_code": "852", "phone_number": "99999999", "language": "en", "status": "active", "is_bot": false, "is_active": true, "is_archived": false, "created_at": "2022-06-06T05:08:31.168Z", "updated_at": "2023-06-08T09:40:10.730Z", "organization_id": "org_imbrace", "email": "agent02@imbrace.co", "role": "user" }, "team": { "object_name": "team", "id": "t_af167c32-ea4f-4c15-bb38-15b97b4223cd", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "name": "Grab3", "mode": "grab", "icon_url": "", "description": "", "is_default": false, "created_at": "2023-06-16T03:10:52.591Z", "updated_at": "2023-07-03T01:15:38.942Z", "is_disabled": false } }Error Responses:
Status code: 400 Bad Request
{ "code": 40000, "message": "Invalid team_user_id" }{ "code": 3, "field": "role", "message": "role format error" }Status code: 401 Unauthorized
{ "code": 40001, "message": "Unauthorized" }Status code: 403 Forbidden
{ "code": 40003, "message": "Forbidden, insufficient permission" }Status code: 404 Not Found
{ "code": 40004, "message": "Team user not found" }Example:
curl --location 'https://app-gateway.dev.imbrace.co/v2/backend/teams/t_af167c32-ea4f-4c15-bb38-15b97b4223cd/user/tu_6071c67b-a3de-4e20-8856-e51a1e63d43f/approve' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9' \ --data '{ "role": "admin" }'
18. Get All Teams for Assignment
Retrieve all teams available for assignment to a specific conversation.
This API allows you to fetch all teams that can be assigned to a conversation, including their assignment status. It's useful for conversation management interfaces where you need to show available teams for assignment.
Endpoint for Product:
GET https://app-gateway.imbrace.co/v1/backend/assign/teams/all?conversation_id=conv_d9337f16-b206-4e9a-be6e-accced8e8eccEndpoint for Demo:
GET https://app-gateway.demo.imbrace.co/v1/backend/assign/teams/all?conversation_id=conv_d9337f16-b206-4e9a-be6e-accced8e8eccEndpoint for Dev:
GET https://app-gateway.dev.imbrace.co/v1/backend/assign/teams/all?conversation_id=conv_d9337f16-b206-4e9a-be6e-accced8e8eccHeaders:
X-Access-Token: Your Access TokenYour Access Token
Query Parameters:
conversation_id(string, required): The unique identifier of the conversation
Result:
Status code: 200 OK
[ { "_id": "t_17f35e4f-7fb1-4096-a5cc-e90f9ece4be9", "doc_name": "team", "public_id": "t_17f35e4f-7fb1-4096-a5cc-e90f9ece4be9", "organization_id": "org_e7e8fdb5-39a9-4599-80db-79ae6ff619fd", "business_unit_id": "bu_be188361-fbec-4505-9a05-d9d34a5d5961", "icon_url": "", "name": "Admin", "mode": "public", "description": "", "is_default": true, "is_disabled": false, "created_at": "2025-06-19T01:39:42.765Z", "updated_at": "2025-06-19T01:39:42.765Z", "is_delete": false, "deleted_by": "", "deleted_at": "", "isAssign": false } ]Example:
curl --location 'https://app-gateway.dev.imbrace.co/v1/backend/assign/teams/all?conversation_id=conv_d9337f16-b206-4e9a-be6e-accced8e8ecc' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9'
19. Get Team Observers for Conversation
Retrieve all team members who can observe a specific conversation.
This API allows you to fetch all team members who have observer access to a specific conversation. It's useful for conversation management interfaces where you need to show which team members can observe the conversation.
Endpoint for Product:
GET https://app-gateway.imbrace.co/v1/backend/assign/team/{team_id}/observers?conversation_id=conv_d9337f16-b206-4e9a-be6e-accced8e8eccEndpoint for Demo:
GET https://app-gateway.demo.imbrace.co/v1/backend/assign/team/{team_id}/observers?conversation_id=conv_d9337f16-b206-4e9a-be6e-accced8e8eccEndpoint for Dev:
GET https://app-gateway.dev.imbrace.co/v1/backend/assign/team/{team_id}/observers?conversation_id=conv_d9337f16-b206-4e9a-be6e-accced8e8eccHeaders:
X-Access-Token: Your Access TokenYour Access Token
Path Parameters:
team_id(string, required): The unique identifier of the team
Query Parameters:
conversation_id(string, required): The unique identifier of the conversation
Result:
Status code: 200 OK
[ { "_id": "tu_69886bbd-4004-4d46-9cf6-0f7e61442dbe", "role": "member", "user": { "_id": "u_5e336d97-e26d-4c6b-9452-36c90bd0769f", "doc_name": "user", "public_id": "u_5e336d97-e26d-4c6b-9452-36c90bd0769f", "organization_id": "org_imbrace", "email": "agent02@imbrace.co", "role": "user", "display_name": "Agent02", "avatar_url": "", "gender": "", "first_name": "iMBRACE", "last_name": "Agent02", "address_line1": "", "address_line2": "", "area_code": "852", "phone_number": "99999999", "language": "en", "status": "active", "is_active": true, "is_archived": false, "is_bot": false, "is_admin": false, "created_at": "2022-06-06T05:08:31.168Z", "updated_at": "2024-05-07T10:00:39.535Z", "_language": "en", "on_boarded": true, "is_deleted": false } } ]Example:
curl --request GET \ --url 'https://app-gateway.dev.imbrace.co/v1/backend/assign/team/t_32c57386-a5fe-40e2-b9c5-b236adbfe1eb/observers?conversation_id=conv_d9337f16-b206-4e9a-be6e-accced8e8ecc' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9'
20. Get Team Workflows
Retrieve all workflows associated with a specific team.
This API allows you to fetch all workflows that are associated with a team, including their active status. It's useful for team management interfaces where you need to show which workflows are available for the team.
Endpoint for Product:
GET https://app-gateway.imbrace.co/v1/backend/teams/{team_id}/workflowsEndpoint for Demo:
GET https://app-gateway.demo.imbrace.co/v1/backend/teams/{team_id}/workflowsEndpoint for Dev:
GET https://app-gateway.dev.imbrace.co/v1/backend/teams/{team_id}/workflowsHeaders:
X-Access-Token: Your Access TokenYour Access Token
Path Parameters:
team_id(string, required): The unique identifier of the team
Result:
Status code: 200 OK
[ { "id": "755", "name": "My workflow 45", "active": false }, { "id": "1019", "name": "WhatsApp 852 5372 0898 - Default workflow", "active": true }, { "id": "972", "name": "Sam", "active": true } ]Example:
curl --location 'https://app-gateway.dev.imbrace.co/v1/backend/teams/t_imbrace_team3/workflows' \ --header 'X-Access-Token: acc_7c769464-4577-49da-abc4-b27b3866fcb9'
Last updated