Contact views
Create a contact view
Save a contact filter as a view. A view is the audience of a campaign.
POST
Every plan can use this endpoint. A view is the same saved filter the Contacts page uses, so it shows up in the dashboard too.
A view made with an API key shows the account owner as its creator. If the account has no owner, creating a view returns a
409.
Body
Up to 50 filters. See Filters.
How the view sorts contacts:
{ "key", "direction" }, where direction is asc or desc. Send null or leave it out for the default order.Filters
Each filter is{ "id", "fieldKey", "operator", "value" }, the same shape the Contacts page saves. Every filter is checked when you save the view: an unknown fieldKey, an operator the field doesn’t support, or a missing or badly formatted value gets a 400 that lists each problem. That matters because a view is a campaign’s audience, and a filter that doesn’t apply would match every contact.
Values by type:
- Yes/no (
dndand yes/no custom fields):YesorNo.trueandfalsealso work, in any case. The view storesYesorNo, the same as the dashboard, so reading a view back showsYesorNo.{ "fieldKey": "dnd", "operator": "equals", "value": "Yes" }matches contacts on Do Not Disturb. - Date: a day as
YYYY-MM-DD, for example2026-01-31.is_betweentakes two days joined by.., start first:2026-01-01..2026-01-31. Both days count.in_past_daystakes a whole number of days, for example30. - Number: a number, for example
10or-2.5. is_emptyandis_not_emptyneed no value.
FieldName is its name with the spaces removed, for example custom:{{LeadSource}} for Lead Source. value is at most 1,000 characters and id at most 64.
creatorName is null here. List contact views shows the creator’s name.