Contacts APIs
The Contacts APIs provide a centralized way to manage users, their contact information, and communication history across multiple channels. These APIs are essential for building a unified customer or user communication system. They allow you to
Overview
The following APIs help you manage contact data and active conversations for your teams and channels.
1. Get Contact
Endpoint for Product:
GET https://app-gateway.imbrace.co/v1/backend/contacts?limit=10&skip=0&sort=-created_atEndpoint for Demo:
GET https://app-gateway.demo.imbrace.co/v1/backend/contacts?limit=10&skip=0&sort=-created_atEndpoint for Dev:
GET https://app-gateway.dev.imbrace.co/v1/backend/contacts?limit=10&skip=0&sort=-created_atHeaders:
Content-Type:application/jsonx-access-token: Your Access TokenYour Access Token
Body:
Result:
Status code: 200 OK
{ "object_name": "list", "data": [ { "object_name": "contact", "id": "con_66d67483-8982-43d6-acbe-139568688add", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "channel_id": "ch_2592e13f-c43f-48a2-a416-a7bb12a5caec", "channel_type": "web", "display_name": "UNK#DO1695", "avatar_url": "", "first_name": "", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "email": "", "remark": "", "time_zone": "Asia/Saigon", "last_seen": "2025-10-15T10:07:59.066Z", "created_at": "2025-10-15T10:06:26.630Z", "updated_at": null, "odooContactID": "", "title": "", "birthday": "", "location": "", "company_name": "", "position": "", "whatsapp_id": "", "facebook_id": "", "messenger_id": "", "wechat_id": "", "line_id": "", "instagram_id": "", "additional_params": {} }, { "object_name": "contact", "id": "con_56e4e804-30f7-497a-905d-dade09b561cc", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "channel_id": "ch_2592e13f-c43f-48a2-a416-a7bb12a5caec", "channel_type": "web", "display_name": "UNK#DX2694", "avatar_url": "", "first_name": "", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "email": "", "remark": "", "time_zone": "Asia/Saigon", "last_seen": "2025-10-15T05:09:29.391Z", "created_at": "2025-10-15T03:35:27.277Z", "updated_at": null, "odooContactID": "", "title": "", "birthday": "", "location": "", "company_name": "", "position": "", "whatsapp_id": "", "facebook_id": "", "messenger_id": "", "wechat_id": "", "line_id": "", "instagram_id": "", "additional_params": {} }, { "object_name": "contact", "id": "con_1ae4ac42-173c-4549-b2ab-dff386bbe886", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "channel_id": "ch_2592e13f-c43f-48a2-a416-a7bb12a5caec", "channel_type": "web", "display_name": "UNK#LO8002", "avatar_url": "", "first_name": "", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "email": "", "remark": "", "time_zone": "Asia/Saigon", "last_seen": "2025-10-14T12:09:45.151Z", "created_at": "2025-10-14T08:38:49.111Z", "updated_at": null, "odooContactID": "", "title": "", "birthday": "", "location": "", "company_name": "", "position": "", "whatsapp_id": "", "facebook_id": "", "messenger_id": "", "wechat_id": "", "line_id": "", "instagram_id": "", "additional_params": {} }, { "object_name": "contact", "id": "con_be4c69d0-bf0b-44e0-95e4-c0e5f66e446a", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "channel_id": "ch_2592e13f-c43f-48a2-a416-a7bb12a5caec", "channel_type": "web", "display_name": "UNK#GV7261", "avatar_url": "", "first_name": "", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "email": "", "remark": "", "time_zone": "Asia/Saigon", "last_seen": "2025-10-14T05:27:38.324Z", "created_at": "2025-10-14T04:01:52.524Z", "updated_at": null, "odooContactID": "", "title": "", "birthday": "", "location": "", "company_name": "", "position": "", "whatsapp_id": "", "facebook_id": "", "messenger_id": "", "wechat_id": "", "line_id": "", "instagram_id": "", "additional_params": {} }, { "object_name": "contact", "id": "con_21f02e1d-ddcb-4e52-b95b-db94ef9a5e62", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "channel_id": "ch_2592e13f-c43f-48a2-a416-a7bb12a5caec", "channel_type": "web", "display_name": "UNK#UC5549", "avatar_url": "", "first_name": "", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "email": "", "remark": "", "time_zone": "Asia/Saigon", "last_seen": "2025-10-14T03:30:29.594Z", "created_at": "2025-10-14T03:27:35.939Z", "updated_at": null, "odooContactID": "", "title": "", "birthday": "", "location": "", "company_name": "", "position": "", "whatsapp_id": "", "facebook_id": "", "messenger_id": "", "wechat_id": "", "line_id": "", "instagram_id": "", "additional_params": {} }, { "object_name": "contact", "id": "con_d33dfa92-2979-4621-9fd7-eb6731169abf", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "channel_id": "ch_7eddc925-f8c0-409f-96b7-b88c0c013f6a", "channel_type": "web", "display_name": "VNM#HJ9208", "avatar_url": "", "first_name": "", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "email": "", "remark": "", "time_zone": "Asia/Bangkok", "last_seen": "2025-10-14T11:13:22.833Z", "created_at": "2025-10-13T23:11:50.187Z", "updated_at": null, "odooContactID": "", "title": "", "birthday": "", "location": "", "company_name": "", "position": "", "whatsapp_id": "", "facebook_id": "", "messenger_id": "", "wechat_id": "", "line_id": "", "instagram_id": "", "additional_params": {} }, { "object_name": "contact", "id": "con_bb32705f-b799-4989-b64a-a30131c9d835", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "channel_id": "ch_3c172ef8-d417-4467-8c2c-4d98aeff9eed", "channel_type": "web", "display_name": "UNK#OZ2092", "avatar_url": "", "first_name": "", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "email": "", "remark": "", "time_zone": "Asia/Saigon", "last_seen": "2025-10-13T00:53:16.542Z", "created_at": "2025-10-13T00:50:08.140Z", "updated_at": null, "odooContactID": "", "title": "", "birthday": "", "location": "", "company_name": "", "position": "", "whatsapp_id": "", "facebook_id": "", "messenger_id": "", "wechat_id": "", "line_id": "", "instagram_id": "", "additional_params": {} }, { "object_name": "contact", "id": "con_a119565f-6c84-49ba-8c64-6da7772175e8", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "channel_id": "ch_06d9eb49-acde-4d3e-b457-d7cb73b277b4", "channel_type": "web", "display_name": "UNK#EU0957", "avatar_url": "", "first_name": "", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "email": "", "remark": "", "time_zone": "Asia/Saigon", "last_seen": "2025-10-13T08:48:08.659Z", "created_at": "2025-10-11T00:19:38.698Z", "updated_at": null, "odooContactID": "", "title": "", "birthday": "", "location": "", "company_name": "", "position": "", "whatsapp_id": "", "facebook_id": "", "messenger_id": "", "wechat_id": "", "line_id": "", "instagram_id": "", "additional_params": {} }, { "object_name": "contact", "id": "con_3a99e79d-4d5d-44cf-b44f-50848e19a4ed", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "channel_id": "ch_06d9eb49-acde-4d3e-b457-d7cb73b277b4", "channel_type": "web", "display_name": "UNK#WB7192", "avatar_url": "", "first_name": "", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "email": "", "remark": "", "time_zone": "Asia/Saigon", "last_seen": "2025-10-10T08:05:17.772Z", "created_at": "2025-10-10T08:01:18.366Z", "updated_at": null, "odooContactID": "", "title": "", "birthday": "", "location": "", "company_name": "", "position": "", "whatsapp_id": "", "facebook_id": "", "messenger_id": "", "wechat_id": "", "line_id": "", "instagram_id": "", "additional_params": {} }, { "object_name": "contact", "id": "con_a0c05c8e-d75e-4347-8bb0-bd9cd6ef26ba", "organization_id": "org_imbrace", "business_unit_id": "bu_imbrace_testing", "channel_id": "ch_06d9eb49-acde-4d3e-b457-d7cb73b277b4", "channel_type": "web", "display_name": "UNK#TL3680", "avatar_url": "", "first_name": "", "last_name": "", "gender": "", "area_code": "", "phone_number": "", "language": "en", "email": "", "remark": "", "time_zone": "Asia/Saigon", "last_seen": "2025-10-10T11:43:30.834Z", "created_at": "2025-10-10T07:47:44.199Z", "updated_at": null, "odooContactID": "", "title": "", "birthday": "", "location": "", "company_name": "", "position": "", "whatsapp_id": "", "facebook_id": "", "messenger_id": "", "wechat_id": "", "line_id": "", "instagram_id": "", "additional_params": {} } ], "nested": {}, "has_more": true, "count": 65681, "total": 10 }Example:
curl --location 'https://app-gateway.dev.imbrace.co/v1/backend/contacts?limit=10&skip=0&sort=-created_at' \ --header 'X-Access-Token: acc_f7124766-e633-429c-b24a-ab0421a202e3' \ --data ''
2. Get Contact by contact_id
Retrieve detailed contact information, including conversation history, associated teams, and the latest messages.
Endpoint for Product:
GET https://app-gateway.imbrace.co/v1/backend/contacts/:contact_id/conversations?channel_types=web&channel_types=whatsapp&channel_types=facebook&channel_types=email&channel_types=wechat&channel_types=instagram&channel_types=lineEndpoint for Demo:
GET https://app-gateway.demo.imbrace.co/v1/backend/contacts/:contact_id/conversations?channel_types=web&channel_types=whatsapp&channel_types=facebook&channel_types=email&channel_types=wechat&channel_types=instagram&channel_types=lineEndpoint for Dev:
GET https://app-gateway.dev.imbrace.co/v1/backend/contacts/:contact_id/conversations?channel_types=web&channel_types=whatsapp&channel_types=facebook&channel_types=email&channel_types=wechat&channel_types=instagram&channel_types=lineHeaders:
Content-Type:application/jsonx-access-token: Your Access TokenYour Access Token
Params Path Variables
contact_id:con_32a507dd-dc57-49a9-8456-7fb9c48d2a41
Body:
Result:
Status code: 200 OK
Status code: 400 Not Found
Example:
3. Search Contact
Endpoint for Product:
GET https://app-gateway.imbrace.co/v1/backend/contacts/_search?limit=10&skip=0&q=&type=textEndpoint for Demo:
GET https://app-gateway.demo.imbrace.co/v1/backend/contacts/_search?limit=10&skip=0&q=&type=textEndpoint for Dev:
GET https://app-gateway.dev.imbrace.co/v1/backend/contacts/_search?limit=10&skip=0&q=&type=textHeaders:
Content-Type:application/jsonx-access-token: Your Access TokenYour Access Token
Params Path Variables
contact_id:con_32a507dd-dc57-49a9-8456-7fb9c48d2a41
Body:
Result:
Status code: 200 OK
Example:
4. Update Contact
Endpoint for Product:
PUT https://app-gateway.imbrace.co/v1/backend/contacts/:contact_idEndpoint for Demo:
PUT https://app-gateway.demo.imbrace.co/v1/backend/contacts/:contact_idEndpoint for Dev:
PUT https://app-gateway.dev.imbrace.co/v1/backend/contacts/:contact_idHeaders:
Content-Type:application/jsonx-access-token: Your Access TokenYour Access Token
Params Path Variables
contact_id:con_32a507dd-dc57-49a9-8456-7fb9c48d2a41
Body:
Result:
Status code: 200 OK
Example:
5. Get notification
Fetches a paginated list of notifications for the authenticated user, including unread/read state and a summary count. Use to render the notification center/badge, infinite-scroll lists, or to check how many items are unread.
Endpoint for Product:
GET https://app-gateway.imbrace.co/v1/backend/notifications?limit=10&skip=0Endpoint for Demo:
GET https://app-gateway.demo.imbrace.co/v1/backend/notifications?limit=10&skip=0Endpoint for Dev:
GET https://app-gateway.dev.imbrace.co/v1/backend/notifications?limit=10&skip=0Headers:
Content-Type:application/jsonx-access-token: Your Access TokenYour Access Token
Body:
Result:
Status code: 200 OK
Example:
--header 'X-Access-Token: acc_87681c72-6dd9-4057-adce-f01c3bc6cfd8'
Result:
Status code: 200 OK
Example:
5. Deleted notification dismiss
Dismisses (removes) specific notifications from the user’s list. This is typically a soft delete from the client’s perspective. Use when the user explicitly dismisses one or multiple notifications (e.g., “Clear” button on an item).
Endpoint for Product:
DELETE https://app-gateway.imbrace.co/v1/backend/notifications/dismissEndpoint for Demo:
DELETE https://app-gateway.demo.imbrace.co/v1/backend/notifications/dismissEndpoint for Dev:
DELETE https://app-gateway.dev.imbrace.co/v1/backend/notifications/dismissHeaders:
Content-Type:application/jsonx-access-token: Your Access TokenYour Access Token
Body:
Result:
Status code: 200 OK
Example:
6. Deleted notification all dismiss
Bulk-dismisses all notifications for a given category/type (or all, depending on server rules). Useful for “Clear all” actions. Use for one-click “Clear all notifications” in a specific section (e.g., conversations) or globally if supported.
Endpoint for Product:
DELETE https://app-gateway.imbrace.co/v1/backend/notifications/dismiss/allEndpoint for Demo:
DELETE https://app-gateway.demo.imbrace.co/v1/backend/notifications/dismiss/allEndpoint for Dev:
DELETE https://app-gateway.dev.imbrace.co/v1/backend/notifications/dismiss/allHeaders:
Content-Type:application/jsonx-access-token: Your Access TokenYour Access Token
Query Params
type:conversations
Body:
Result:
Status code: 200 OK
Example:
7. Get Contact Conversations by Channel Type
Retrieve contact conversations filtered by specific channel types.
Endpoint for Product:
GET https://app-gateway.imbrace.co/v1/backend/contacts/{contact_id}/conversations?channel_types=webEndpoint for Demo:
GET https://app-gateway.demo.imbrace.co/v1/backend/contacts/{contact_id}/conversations?channel_types=webEndpoint for Dev:
GET https://app-gateway.dev.imbrace.co/v1/backend/contacts/{contact_id}/conversations?channel_types=webHeaders:
Content-Type:application/jsonx-access-token: Your Access TokenYour Access Token
Path Parameters:
contact_id(string, required): The unique identifier of the contact
Query Parameters:
channel_types(string, required): The type of channel to filter conversations (e.g., "web", "whatsapp", "facebook", etc.)
Result:
Status code: 200 OK
Example:
8. Get Contact Comments
Retrieve comments associated with a specific contact and comment ID.
Endpoint for Product:
GET https://app-gateway.imbrace.co/v1/backend/contacts/{contact_id}/comment/{comment_id}Endpoint for Demo:
GET https://app-gateway.demo.imbrace.co/v1/backend/contacts/{contact_id}/comment/{comment_id}Endpoint for Dev:
GET https://app-gateway.dev.imbrace.co/v1/backend/contacts/{contact_id}/comment/{comment_id}Headers:
Content-Type:application/jsonx-access-token: Your Access TokenYour Access Token
Path Parameters:
contact_id(string, required): The unique identifier of the contactcomment_id(string, required): The unique identifier of the comment
Result:
Status code: 200 OK
Example:
9. Upload Contact File
Upload a file associated with contacts. This API supports file uploads and returns a URL to the uploaded file.
Endpoint for Product:
POST https://app-gateway.imbrace.co/v1/backend/contacts/_fileuploadEndpoint for Demo:
POST https://app-gateway.demo.imbrace.co/v1/backend/contacts/_fileuploadEndpoint for Dev:
POST https://app-gateway.dev.imbrace.co/v1/backend/contacts/_fileuploadHeaders:
Content-Type:multipart/form-datax-access-token: Your Access TokenYour Access Token
Body Parameters:
file(file, required): The file to upload
Result:
Status code: 200 OK
Example:
10. Get Contact Files
Retrieve all files associated with a specific contact.
Endpoint for Product:
GET https://app-gateway.imbrace.co/v1/backend/contact/{contact_id}/filesEndpoint for Demo:
GET https://app-gateway.demo.imbrace.co/v1/backend/contact/{contact_id}/filesEndpoint for Dev:
GET https://app-gateway.dev.imbrace.co/v1/backend/contact/{contact_id}/filesHeaders:
Content-Type:application/jsonx-access-token: Your Access TokenYour Access Token
Path Parameters:
contact_id(string, required): The unique identifier of the contact
Result:
Status code: 200 OK
Example:
Last updated