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

List contacts

GET/contacts

Lists contacts. Filter by identifier (phone in E.164 or email) to find the contact owning an address.

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

identifieroptionalstring

Filter to the contact owning this phone/email.

limitoptionalinteger

Maximum number of items to return per page. Must be between 1 and 200; defaults to 50. Combine with cursor to paginate.

cursoroptionalstring

Opaque pagination cursor. Pass the next_cursor value from a previous response to fetch the next page; omit it on the first request.

Returns

dataoptionalContact[]

Array of Contact

idoptionalstring

Contact id (ct_...).

nameoptionalstring | null
created_atoptionalinteger
identitiesoptionalobject[]

Array of object

idoptionalstring
channel_typeoptionalstring
"blooio""twilio""whatsapp""whatsapp_business""rcs_business""amb"
identifieroptionalstring
channel_idoptionalstring | null
created_atoptionalinteger
has_moreoptionalboolean
next_cursoroptionalstring | null

Response codes

200A page of contacts
400The request was malformed — check the path, query parameters, and body.
401Your API key is missing or invalid. Pass it as a bearer token.

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/v4/contacts?identifier=%2B15551234567&limit=50&cursor=string \  -H "Authorization: Bearer bl_live_..."
Response objectexample
{  "data": [    {      "id": "ct_a1b2c3d4",      "name": "Jane Doe",      "created_at": 0,      "identities": [        {          "id": "obj_a1b2c3d4",          "channel_type": "blooio",          "identifier": "+15551234567",          "channel_id": "ch_a1b2c3d4",          "created_at": 0        }      ]    }  ],  "has_more": true,  "next_cursor": "string"}