BetaThe V4 API is in beta — endpoints and functionality may change.
Contactsv2

List contacts

GET/contacts

List all contacts for the organization with optional search and pagination.

Headers

AuthorizationRequiredstring

Your API key, sent as a bearer token: Authorization: Bearer <api_key>. Editing this stays in sync with the API key box on the right.

Bearer

Query parameters

limitoptionalinteger

Maximum number of items to return in a single response. Must be between 1 and 200; defaults to 50. Use together with offset to page through large result sets.

offsetoptionalinteger

Number of items to skip before returning results. Combine with limit for page-based pagination (e.g. offset=50&limit=50 returns the second page). Defaults to 0.

qoptionalstring

Search query (matches identifier or name)

sortoptionalstring

Sort order

"recent""oldest""name_asc""name_desc"

Returns

contactsoptionalContact[]

Array of Contact

idoptionalstring

Contact identifier (phone or email)

contact_idoptionalstring

Internal contact ID

identifieroptionalstring

Phone number (E.164) or email

nameoptionalstring | null
typeoptionalstring
"phone""email"
created_atoptionalinteger
last_message_timeoptionalinteger | null
tagsoptionalstring[]
paginationoptionalPagination
limitoptionalinteger
offsetoptionalinteger
totaloptionalinteger

Response codes

200List of contacts
401Authentication required or invalid

Sends a live request with your values and shows the real response below. Your key is stored only in this browser.

Request
curl -X GET https://api.blooio.com/v2/api/contacts?limit=50&offset=0&q=string&sort=recent \  -H "Authorization: Bearer bl_live_..."
Response objectexample
{  "contacts": [    {      "id": "ct_a1b2c3d4",      "contact_id": "ct_a1b2c3d4",      "identifier": "+15551234567",      "name": "Jane Doe",      "type": "phone",      "created_at": 0,      "last_message_time": 0,      "tags": [        "string"      ]    }  ],  "pagination": {    "limit": 50,    "offset": 1,    "total": 3  }}