Skip to main content
GET
/
contacts
List Contacts
curl --request GET \
  --url https://app.wachat.net/api/v1/contacts \
  --header 'Authorization: Bearer <token>'
{
  "success": true,
  "count": 1,
  "total": 1,
  "page": 1,
  "limit": 50,
  "hasMore": false,
  "instance": {
    "id": 29,
    "instanceName": "jakarta_store",
    "displayName": "jakarta_store",
    "apiInstanceName": "t1_mq9r2jov_jakarta_store",
    "internalName": "t1_mq9r2jov_jakarta_store"
  },
  "contacts": [
    {
      "id": 101,
      "name": "John Customer",
      "phone": "628123456789",
      "remoteJid": "628123456789@s.whatsapp.net",
      "isGroup": false,
      "profilePicUrl": "https://pps.whatsapp.net/v/t61.24694-24/example.jpg",
      "profilePictureUrl": "https://pps.whatsapp.net/v/t61.24694-24/example.jpg",
      "chat": {
        "id": 501,
        "name": "John Customer",
        "pushName": "John",
        "lastMessageText": "Hello",
        "lastMessageTimestamp": "2026-06-13T08:00:00.000Z",
        "unreadCount": 0
      },
      "assignedUserId": null,
      "assignedDepartmentId": null,
      "funnelStageId": null,
      "notes": null,
      "customData": {},
      "showTimeInStage": false,
      "createdAt": "2026-06-13T08:00:00.000Z",
      "updatedAt": "2026-06-13T08:00:00.000Z"
    }
  ]
}
Return saved CRM contacts for a specific WhatsApp instance. Every contact is filtered by instanceName, so contacts from other instances will not be mixed into the response.
GET https://app.wachat.net/api/v1/contacts?instanceName=t1_mq9r2jov_jakarta_store
Authorization: Bearer YOUR_API_KEY
{
  "success": true,
  "count": 1,
  "total": 1,
  "page": 1,
  "limit": 50,
  "hasMore": false,
  "instance": {
    "id": 29,
    "instanceName": "jakarta_store",
    "displayName": "jakarta_store",
    "apiInstanceName": "t1_mq9r2jov_jakarta_store",
    "internalName": "t1_mq9r2jov_jakarta_store"
  },
  "contacts": [
    {
      "id": 101,
      "name": "John Customer",
      "phone": "628123456789",
      "remoteJid": "628123456789@s.whatsapp.net",
      "isGroup": false,
      "profilePicUrl": "https://...",
      "profilePictureUrl": "https://...",
      "chat": {
        "id": 501,
        "name": "John Customer",
        "pushName": "John",
        "lastMessageText": "Hello",
        "lastMessageTimestamp": "2026-06-13T08:00:00.000Z",
        "unreadCount": 0
      },
      "assignedUserId": null,
      "assignedDepartmentId": null,
      "funnelStageId": null,
      "notes": null,
      "customData": {},
      "showTimeInStage": false,
      "createdAt": "2026-06-13T08:00:00.000Z",
      "updatedAt": "2026-06-13T08:00:00.000Z"
    }
  ]
}
Use apiInstanceName, for example t1_mq9r2jov_jakarta_store, as the instanceName query value.
This endpoint returns saved CRM contacts. If a chat has not been saved as a contact yet, it will not appear here.

Authorizations

Authorization
string
header
required

Authenticate your integration payloads by injecting your premium secure Wachat Account API Private Secret Key inside standard Authorization Bearer header vectors.

Query Parameters

instanceName
string
required

Unique API instance name returned by Wachat.

q
string

Optional search text. Matches contact name, phone/JID, chat name, or push name.

page
integer
default:1

Page number.

Required range: x >= 1
limit
integer
default:50

Number of contacts per page. Maximum 100.

Required range: 1 <= x <= 100
includeGroups
boolean
default:false

Include group chats saved as contacts.

Response

Contacts returned successfully.

success
boolean
Example:

true

count
integer
Example:

1

total
integer
Example:

1

page
integer
Example:

1

limit
integer
Example:

50

hasMore
boolean
Example:

false

instance
object
contacts
object[]