List Contacts
Retrieve a list of all contacts in your workspace. Requires full permission.
/contactsQuery Parameters
pageintegerPage number for pagination (minimum: 1, default: 1).
limitintegerNumber of contacts to return (minimum: 1, maximum: 100, default: 10).
{
"data": [
{
"object": "contact",
"id": "con_2BxFg7KNqr5M...",
"email": "john@example.com",
"first_name": "John",
"last_name": "Doe",
"custom_fields": { "company": "Acme" },
"unsubscribed": false,
"audiences": [
{
"id": "aud_xxx",
"name": "Newsletter",
"subscribed": true
}
],
"created_at": "2026-02-10T10:00:00.000000+00:00",
"updated_at": "2026-02-10T10:00:00.000000+00:00"
}
],
"next_page_url": "/v2/contacts?page=2&limit=10",
"previous_page_url": null
} {
"error": {
"code": 401,
"message": "Unauthorized"
}
} Get Contact
Retrieve information about a specific contact. Requires full permission. Contacts can be identified by ID (con_xxx) or email address.
/contacts/{id}Path Parameters
idstringRequiredThe contact ID (con_xxx) or email address.
Note: The audiences array in the Get endpoint includes full subscriber details (with
subscribed_at,unsubscribed_at, etc.), while the List endpoint only includesid,name, andsubscribedper audience.
{
"object": "contact",
"id": "con_2BxFg7KNqr5M...",
"email": "john@example.com",
"first_name": "John",
"last_name": "Doe",
"custom_fields": { "company": "Acme" },
"unsubscribed": false,
"audiences": [
{
"id": "aud_xxx",
"name": "Newsletter",
"subscriber": {
"id": "sub_xxx",
"subscribed": true,
"subscribed_at": "2026-02-10T10:00:00.000000+00:00",
"unsubscribed_at": null,
"created_at": "2026-02-10T10:00:00.000000+00:00",
"updated_at": "2026-02-10T10:00:00.000000+00:00"
}
}
],
"created_at": "2026-02-10T10:00:00.000000+00:00",
"updated_at": "2026-02-10T10:00:00.000000+00:00"
} {
"error": "Contact not found"
} Create Contact
Create a new contact in your workspace. Requires full permission.
/contactsRequest Body
emailstringRequiredEmail address (must be valid).
first_namestringFirst name (default: null).
last_namestringLast name (default: null).
custom_fieldsobjectArbitrary key-value pairs (default: null).
audiencesstring[]Array of audience IDs to subscribe to (default: empty array).
unsubscribedbooleanGlobal unsubscribe status (default: false).
{
"object": "contact",
"id": "con_2BxFg7KNqr5M...",
"email": "john@example.com",
"first_name": "John",
"last_name": "Doe",
"custom_fields": { "company": "Acme" },
"unsubscribed": false,
"audiences": [
{
"id": "aud_xxx",
"name": "Newsletter",
"subscriber": {
"id": "sub_xxx",
"subscribed": true,
"subscribed_at": "2026-02-10T10:00:00.000000+00:00",
"unsubscribed_at": null,
"created_at": "2026-02-10T10:00:00.000000+00:00",
"updated_at": "2026-02-10T10:00:00.000000+00:00"
}
}
],
"created_at": "2026-02-10T10:00:00.000000+00:00",
"updated_at": "2026-02-10T10:00:00.000000+00:00"
} {
"error": "Contact with this email already exists",
"existing": {
"object": "contact",
"id": "con_...",
"email": "..."
}
} Update Contact
Update an existing contact in your workspace. Requires full permission. Contacts can be identified by ID (con_xxx) or email address.
/contacts/{id}Path Parameters
idstringRequiredThe contact ID (con_xxx) or email address.
Request Body
emailstringNew email address.
first_namestringNew first name.
last_namestringNew last name.
custom_fieldsobjectReplace custom fields.
unsubscribedbooleanGlobal unsubscribe status.
{
"object": "contact",
"id": "con_2BxFg7KNqr5M...",
"email": "john@example.com",
"first_name": "Jane",
"last_name": "Smith",
"custom_fields": { "company": "NewCorp" },
"unsubscribed": false,
"audiences": [
{
"id": "aud_xxx",
"name": "Newsletter",
"subscriber": {
"id": "sub_xxx",
"subscribed": true,
"subscribed_at": "2026-02-10T10:00:00.000000+00:00",
"unsubscribed_at": null,
"created_at": "2026-02-10T10:00:00.000000+00:00",
"updated_at": "2026-02-10T10:00:00.000000+00:00"
}
}
],
"created_at": "2026-02-10T10:00:00.000000+00:00",
"updated_at": "2026-02-12T09:00:00.000000+00:00"
} {
"error": "Contact not found"
} {
"error": "Contact with this email already exists",
"existing": {
"object": "contact",
"id": "con_...",
"email": "..."
}
} Delete Contact
Delete a contact from your workspace. Requires full permission. This deletes the contact and all associated subscriber records. Fires subscriber.deleted for each subscriber before deletion, then contact.deleted. Contacts can be identified by ID (con_xxx) or email address.
/contacts/{id}Path Parameters
idstringRequiredThe contact ID (con_xxx) or email address.
{
"object": "contact",
"id": "con_2BxFg7KNqr5M...",
"email": "john@example.com",
"deleted": true
} {
"error": "Contact not found"
}