post
https://api.marketcircle.net/v1/contacts/_search
Search for contacts
Recent Requests
Log in to see full request history
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Loading…
See the search filtering documentation for details about the query syntax. The searchable attributes and the operators each one accepts are listed in the request body below.
Contact-specific notes
- Email addresses are searched with the key
email_addresses, notemails:
{ "email_addresses": { "any": { "address": { "ends_with": "@example.com" } } } } - Phone numbers compare digits only, so
"416-555-0123"and"4165550123"match the same number:
{ "phone_numbers": { "any": { "number": { "ends_with": "5550123" } } } } - Companies, opportunities and projects take a search filter for that record type, so you can match by reference or by any of its attributes:
{ "companies": { "any": { "company": { "equal": "/v1/companies/1000" } } } }
{ "companies": { "any": { "name": { "contains": "Acme" } } } } - Linked records (
appointments,notes,tasks,groups,forms,email_messages) work the same way, using the linked record's reference:
{ "tasks": { "any": { "task": { "equal": "/v1/tasks/1000" } } } } rolematches the name of a role the contact has on a company, opportunity or project, e.g.{ "role": { "equal": "Employee" } }.birthdayandanniversarytake dates asYYYY-MM-DD.imagecan only be searched withblankandnot_blank. As with all attributes, the value given toblankandnot_blankis ignored.contactandcontact_idmatch the contact itself, by reference or by numeric ID.- Numbers must be sent as JSON numbers, e.g.
{ "contact_id": { "greater_than": 1000 } }, not"1000".
Paging
Results are sorted by ID, lowest first, and come back 50 at a time (10 with full-records=true). Use the limit parameter for up to 250; larger values are capped at 250, and 0 or less returns 400 with {"error":"invalid_limit"}.
When there are more results, the response includes a next URL. Send the same request body to that URL to get the next page. The next URL only carries start, so add your limit and full-records parameters again.
The last page has no next. When nothing matches, the response is an empty object: {}.