contacts

List contacts

Cursor-paginated contact list with tag, group and free-text filters.

Filter with ?tag=, ?group_id= and ?q= (e.g. ?tag=vip&q=sam). Repeat tag= for AND semantics: ?tag=vip&tag=launch returns contacts carrying both.

group_id filters to one contact group's members; combine freely with tag= and q=.

q= is a best-effort substring match over first/last name, email and phone, not a ranked search.

Filter by ?business_id= when syncing one managed business at a time.

Page with ?limit= (max 200, default 50) and ?cursor= (the previous page's next_cursor).

Always page with next_cursor: the compound (created_at, id) cursor never skips rows that share a timestamp.

get/api/v1/contacts

Request

  • Base URL: https://app.blueticked.com
  • URL: https://app.blueticked.com/api/v1/contacts
  • Auth: HTTP bearer

Query parameters

tagstring

Filter by tag.

group_idstring

Filter by group_id.

qstring

Free-text search query.

limitinteger

Maximum number of items to return.

cursorstring

Opaque pagination cursor. Pass the next_cursor from a previous response; do not construct it yourself.

Response

Success

next_cursorstring required
has_moreboolean required
request_idstring required

Example response

{
  "data": [
    {
      "id": "ff506e53-e2f0-4d92-884a-dab77d628bad",
      "business_id": "22222222-2222-4222-9222-222222222222",
      "first_name": "Sam",
      "last_name": "Mokoena",
      "phone": "+27800000001",
      "channels": {
        "has_whatsapp": true,
        "whatsapp_opted_in_at": "2026-05-22T10:30:00.000Z",
        "has_sms": true,
        "sms_opted_in_at": "2026-05-22T10:30:00.000Z"
      },
      "created_at": "2026-05-22T10:30:00.000Z",
      "updated_at": "2026-05-22T10:30:00.000Z"
    }
  ],
  "next_cursor": "MjAyNi0wNS0yMlQxMDozMDowMHxjb25fMTIz",
  "has_more": true,
  "request_id": "req_b2e3d610e10f1b07468721ee98f0e1d2"
}

Changes

No recorded changes to this operation across all 1 revision of this API.