Skip to contentDevelopersPrezly website
Contacts

Search Contacts

Search CRM contacts with a JSON request body.

Personal token scopes: contacts:read. Your account must also have access to the requested data. Authentication

Read the guide

POST
/contacts/search

This endpoint works very similar to Contacts List API. Except it accepts all params within the request body and allows you to filter results using Prezly Query Language expressions.

Supported filters

FilterComparisonsTypeDescription
id$in, $ninintegerFilter by id
contact_type$eq, $nestringFilter by Contact type (person, organisation)
created_at$gt, $gte, $lt, $ltestringFilter by contact creation date
updated_at$gt, $gte, $lt, $ltestringFilter by contact modification date
last_contacted_at$gt, $gte, $lt, $ltestringFilter by latest sent email campaign/pitch date
created_by$in, $nininteger[]Filter by contact creator User ID
tag$all, $any, $noneinteger[]Filter by Contact Tag ID
tag.name$all, $any, $nonestring[]Filter by Contact Tag Name
media_type$all, $any, $nonestring[]Filter by Contact media type (wire, print, radio, photo, newspaper, magazine, tv, blog, vlog, social, web, analyst, expert, influencer, podcast, newsletter, news website)
periodicity$in, $ninstring[]Filter by Contact media periodicity (daily, weekdays, weekly, bi-weekly, monthly, bi-monthly, quarterly, annually, bi-annually, semi-annually)
name$eq, $ne, $like, $unlikestringFilter by Contact full name
first_name$eq, $ne, $like, $unlikestringFilter by Contact first name
last_name$eq, $ne, $like, $unlikestringFilter by Contact lastfirst name
organisation$all, $any, $noneinteger[]Filter by Organisation Contact ID
has_email$eq, $nebooleanFilter Contacts that have or have no email address attached
has_phone$eq, $nebooleanFilter Contacts that have or have no saved phone or mobile number
email$all, $any, $ninstring[]Filter by Contaat email addresses
language$all, $any, $nonestring[]Filter by Contact language codes
gender$eq, $nestringFilter by Contact gender (male, female, unspecified)
function$in, $ninstring[]Filter by Contact job title
city$in, $ninstring[]Filter by Address City
region$in, $ninstring[]Filter by Address Region/State
country$in, $ninstring[]Filter by Country code
is_bounced$eq, $nebooleanFilter by "Bounced" status
is_duplicate$eq, $nebooleanFilter by "Duplicate" status
is_subscribed$eq, $nebooleanFilter by "Subscribed" status
subscription.newsroom_id$eq, $neintegerFilter Contacts that have subscribed to the given Newsroom ID
is_unsubscribed$eq, $nebooleanFilter by "Unsubscribed" status
is_unsubscribed_from_all_communications$eq, $nebooleanFilter by "Unsubscribed from all communications" status
has_coverage$eq, $nebooleanFilter Contacts that have or have no Coverage tracked for
has_notes$eq, $nebooleanFilter Contacts that have or have no user notes posted
has_visited_newsrooms$eq, $nebooleanFilter Contacts that have or have no Newsroom activity tracked
is_teammate$eq, $nebooleanFilter Contacts that have at least one email address matching one of account member's email address
emails.count$eq, $ne, $gt, $gte, $lt, $lteintegerFilter by number of Contact email addresses
notes.count$eq, $ne, $gt, $gte, $lt, $lteintegerFilter by number of user notes
tags.count$eq, $ne, $gt, $gte, $lt, $lteintegerFilter by number of Contact Tags
employees.count$eq, $ne, $gt, $gte, $lt, $lteintegerFilter by number of Organisation linked employee Contacts
organisations.count$eq, $ne, $gt, $gte, $lt, $lteintegerFilter by number of Organisation Contacts linked
coverage.count$eq, $ne, $gt, $gte, $lt, $lteintegerFilter by number of Coverage records tracked
imported_by.import_id$eq, $nestringFilter by Import ID contact was created or updated with
created_by.import_id$eq, $nestringFilter by Import ID contact was created with
updated_by.import_id$eq, $nestringFilter by Import ID contact was updated with

Personal access tokens: contacts:read. Every listed scope is required; the token owner's permissions, feature availability and newsroom access still apply.

Authorization

API_key
headerAuthorizationBearer <token>

Bearer authentication using an integration API key, or a personal access token only where the operation explicitly supports it. Every listed personal-token scope is required; owner permissions and newsroom access still apply.

Response Body

OK

Example Request
curl -X POST 'https://api.prezly.com/v2/contacts/search'
Example Response200
Empty