WA.cr APP - API v2
  1. Contacts
WA.cr APP - API v2
  • API v2 Documentation
    • Account
      • Get Account Info
      • Get Usage Statistics
      • Get Plan Limits
    • Authentication (OTP Verification)
      • Send OTP/Verification Code
      • Resend OTP
      • Verify OTP
      • Check OTP Status
      • List Authentication Templates
    • Comments
      • Get Comments
      • Add Comment
    • Contacts
      • List Contacts
        GET
      • Create Contact
        POST
      • Get Contact
        GET
      • Update Contact
        PATCH
      • Delete Contact
        DELETE
      • Batch Create Contacts
        POST
      • Batch Delete Contacts
        DELETE
    • Groups
      • List Groups
      • Create Group
      • Get Group
      • Update Group
      • Delete Group
      • Add Contacts to Group
      • Remove Contacts from Group
    • Messages
      • Send Text Message
      • Send Template Message
      • Send Media Message
      • Send Interactive Message
      • List Messages
      • Get Message
    • Sources
      • List Sources
      • Create Source
      • Get Source
      • Update Source
      • Delete Source
    • Statuses
      • List Statuses
      • Create Status
      • Get Status
      • Update Status
      • Delete Status
    • Templates
      • List Templates
      • Sync Templates from WhatsApp
      • Get Template
  1. Contacts

List Contacts

GET
/contacts
Retrieve a paginated list of contacts with advanced filtering, sorting, searching, field selection, and relationship inclusion.

Authentication#

Required Scope: contacts:read

Query Parameters#

Pagination#

ParameterTypeDefaultDescription
pageinteger1Page number
per_pageinteger15Items per page (max: 100)

Sorting#

ParameterTypeDescription
sortstringComma-separated sort fields. Prefix with - for descending order
Allowed sort fields: id, firstname, lastname, created_at, updated_at
Examples:
sort=firstname — ascending by first name
sort=-created_at — descending by creation date
sort=firstname,-created_at — multiple sort fields

Searching#

ParameterTypeDescription
searchstringSearch across firstname, lastname, email, phone, company (partial match)
qstringAlias for search

Filtering#

Use filter[field] for exact match or filter[field][operator] for complex filters.
Allowed filter fields:
FilterTypeDescription
filter[type]stringContact type: lead, customer, guest
filter[status_id]integerStatus ID
filter[source_id]integerSource ID
filter[assigned_id]integerAssigned user ID
filter[created_at]date/datetimeCreation date (supports operators)
filter[group_id]integerGroup ID (JSON contains match)
Complex filter operators:
OperatorAliasExampleDescription
gte>=filter[created_at][gte]=2025-01-01Greater than or equal
lte<=filter[created_at][lte]=2025-12-31Less than or equal
gt>filter[created_at][gt]=2025-01-01Greater than
lt<filter[created_at][lt]=2025-12-31Less than
ne!=filter[status_id][ne]=3Not equal
like—filter[type][like]=leaPartial match (wraps with %)
in—filter[status_id][in]=1,2,3Match any value in list
not_in—filter[status_id][not_in]=4,5Exclude values in list
between—filter[created_at][between]=2025-01-01,2025-12-31Between two values
null—filter[assigned_id][null]=trueCheck if field is null (true/false)

Relationships#

ParameterTypeDescription
includestringComma-separated list of relationships to include
Allowed includes: groups, source, status

Field Selection#

ParameterTypeDescription
fieldsstringComma-separated list of fields to return
Note: Critical fields (id, tenant_id, created_at, updated_at, type, status_id, source_id, email, phone, description, city, state, zip, address, country_id, assigned_id, group_id, is_opted_out, firstname, lastname, company) are always included regardless of selection.

Response Fields#

FieldTypeDescription
idintegerContact ID
firstnamestringFirst name
lastnamestringLast name
companystring|nullCompany name
typestringContact type: lead, customer, guest
emailstring|nullEmail address
phonestring|nullPhone number
status_idintegerStatus ID
source_idintegerSource ID
descriptionstring|nullDescription
citystring|nullCity
statestring|nullState
zipstring|nullZIP/postal code
addressstring|nullStreet address
country_idinteger|nullCountry ID
assigned_idinteger|nullAssigned user ID
group_idarrayArray of group IDs
is_opted_outbooleanOpt-out status (default: false)
created_atstringISO 8601 datetime
updated_atstringISO 8601 datetime
groupsarrayGroups data (when include=groups)
sourceobjectSource data (when include=source)
statusobjectStatus data (when include=status)

Pagination Meta#

The meta.pagination object contains:
FieldTypeDescription
totalintegerTotal contacts matching filters
countintegerNumber of contacts on current page
per_pageintegerItems per page
current_pageintegerCurrent page number
total_pagesintegerTotal number of pages
has_morebooleanWhether more pages exist

Example Requests#

GET /v2/contacts?per_page=20&sort=-created_at
GET /v2/contacts?filter[type]=customer&search=john
GET /v2/contacts?filter[created_at][gte]=2025-01-01&filter[created_at][lte]=2025-12-31
GET /v2/contacts?filter[group_id]=5&include=groups,source
GET /v2/contacts?fields=id,firstname,phone&sort=firstname&per_page=50&page=2

Request

Authorization
Bearer Token
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
or
Query Params

Responses

🟢200
application/json
Successful response
Body

Request Request Example
Shell
JavaScript
Java
Swift
curl --location -g --request GET '/contacts?page=1&per_page=20&sort=-created_at&search=john&q=john&filter[type]=lead&filter[status_id]=2&filter[source_id]=1&filter[assigned_id]=5&filter[group_id]=3&filter[created_at][gte]=2025-01-01&filter[created_at][lte]=2025-12-31&filter[status_id][in]=1,2,3&include=groups,source,status&fields=id,firstname,phone,email' \
--header 'Authorization: Bearer <token>'
Response Response Example
{}
Modified at 2026-02-25 01:06:20
Previous
Add Comment
Next
Create Contact
Built with