Search contacts (entity-aggregated)

Discover distinct contacts that have one or more signals matching the filter, sorted by most-recent signal. Each result is a single contact with its top-N signals attached.

Credit cost: 2 per contact returned.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Filters for entity-aggregated contact search. At least one signal_types value is required.

signal_types
array of objects
required
length ≥ 1
signal_types*
string
date-time

ISO-8601 lower bound. Defaults to 30 days ago when omitted (bounds the GROUP BY scan; pass an older value to query further back).

date-time
integer
1 to 100
Defaults to 20
integer
0 to 10000
Defaults to 0
integer
1 to 100
Defaults to 25
company_domains
array of strings
length ≤ 100

Restrict results to signals about these company domains (e.g. ["snowflake.com"]). Also the fastest lever to speed up a broad keywords content_filters search: scoping to domains shrinks the candidate set so the query stays sub-second.

company_domains
string
length ≤ 253

Singular alias for company_domains.

industries
array of strings
length ≤ 50

Filter by company industry. NOTE: supplying any entity filter (industries, employee_count_min/max, seniority, department, job_title) clamps the scanned window to the most recent 14 days as a safeguard against statement timeouts on high-volume types; the response carries a notice when this happens. Type-only and content-filter-only searches are not capped.

industries
integer
≥ 0

Minimum company employee count. Triggers the 14-day entity-filter window cap (see industries).

integer
≥ 0

Maximum company employee count. Triggers the 14-day entity-filter window cap (see industries).

seniority
array of strings
length ≤ 10

Filter by contact seniority (e.g. ["VP","Cxo","Director"]). Triggers the 14-day entity-filter window cap (see industries).

seniority
department
array of strings
length ≤ 20

Filter by contact department (e.g. ["Sales","Engineering"]). Triggers the 14-day entity-filter window cap (see industries).

department
string
length ≤ 200

Filter by job title keyword (partial match). Triggers the 14-day entity-filter window cap (see industries).

content_filters
object

Search inside the enriched content of social signals.

Only supported for social signal types: linkedin-post-company, linkedin-post-contact, linkedin-comments-contact, twitter-company-posts, twitter-contact-posts, youtube-company, youtube-contact. Including any non-social signal_type with content_filters returns 400 invalid_request (the body lists allowed_signal_types and invalid_signal_types).

Each of the five fields below is an independent contains / not_contains clause. Within a clause's array, terms are OR'd; across the five fields, clauses are AND'd (every specified field must hold).

Matching per field:

  • keywords - substring (ILIKE) over the union of post/comment/video text + summaries (post_text, comment_text, video_description, summary, comment_summary).
  • tech_mentioned / competitors_mentioned - exact (case-insensitive) match on the extracted entity name; use canonical names ('Salesforce', not 'Sales').
  • pain_points / initiatives - substring on the extracted topic.

Performance. content_filters is served from a dedicated indexed search table, so the structured fields (tech_mentioned, competitors_mentioned, pain_points, initiatives) are sub-second at any window. The one slow path is a broad free-text keywords search: a very common term over a wide date window can scan too many posts and return 408 query_timeout. For fast, reliable keyword search, prefer specific multi-word phrases, pair keywords with a structured clause (tech_mentioned/competitors_mentioned) or company_domains, or keep the date window tight. A 408 returns details.suggestions + details.broad_terms you can retry against; an empty 200 may include a hint. Social data refreshes biweekly (LinkedIn posts) / monthly (other sources), so a tight recent window already captures the freshest batch.

Limits: max 20 terms per contains/not_contains array, each term 1-500 chars.

Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json