List people showing intent on a topic

The person-grain TAM direction: given a topic_id, return the people who show intent on it, ordered by perc_score, strongest first, with cursor pagination. Each row is one person, however many addresses we hold for them, and carries a person_id. Each hem is a deterministic match key (sha256 of a normalized email) you can intersect against your own contacts; it is the address that carried the person's strongest signal on the topic. Raw emails are never returned. count (the topic's total people) is returned only on the first page. Billed rows are persons.

Filtering by one of your audiences

Pass audience_id to restrict results to people in that audience, so one call returns the people matching your persona and showing intent on the topic, instead of the whole topic. A typical flow is to page these HEMs, deduplicate against HEMs you have already resolved, and call GET /api/v1/lookup only for the ones that are new to you.

Which audiences can be used. Filtering works on your persona and account audiences, once each is enabled for intent filtering. Ask your account team to enable one. It is usually available within about an hour of being enabled; until then, and for any audience that is not enabled, the request returns 404. An audience matching more than about 50 million people cannot be enabled.

Audience results are built ahead of time from your audience's members, so they behave like the unfiltered endpoint:

  • Pages are full. Every page except the last holds page_size people, strongest intent first. The one exception: someone who opts out after that day's build is removed when the page is read, so a page can occasionally come back one short. Page until next_cursor is absent.
  • count is exact as of that day's build: the number of people in your audience with intent on the topic, honoring min_score and min_perc_score. An audience with no overlap returns count: 0.
  • Every member counts, however they rank. A member with intent on the topic is included even if many people outside your audience rank above them.

resolve is not supported with audience_id and returns 400; resolve the returned HEMs with GET /api/v1/lookup. resolve_linkedin works as usual.

Filtered responses also carry audience_as_of, the date of the audience membership snapshot. It is reported separately from as_of (the intent date) because the two are rebuilt on different schedules, so a filtered result is the intersection of two snapshots taken at different times.

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

The topic to list people for.

string

Optional. Restrict results to people who are members of one of your audiences, so a single call returns only the people in that audience who show intent on the topic.
The audience must belong to your organization and must be enabled for intent filtering. An id that does not exist, does not belong to you, or has not been enabled returns 404 in every case; contact your account team to enable one.
Pages are full and count is exact as of the day's build, honoring min_score and min_perc_score; a later privacy opt-out can still shorten a page. Not combinable with resolve.

string
enum

Minimum intent tier. high returns only high, medium returns high+medium, and omitting it or low returns all.

Allowed:
integer
0 to 99

Drop people below this intent strength rating. 0 or omitted keeps all.

integer
1 to 500

People per page (default 50, max 500). An upper bound, not a guarantee: people who have exercised a privacy opt-out are removed after the page is read, so a page can come back with fewer results than requested, or occasionally empty. Do not treat a short or empty page as the end of the results; page until next_cursor is absent.

string

Opaque pagination cursor from a prior response's next_cursor. Omit for the first page.

boolean

When true, include seen_email (the unhashed email whose sha256 equals the hem) on each result where we have it. Off by default. Billed at the same intent rate. Not supported with audience_id (returns 400); use GET /api/v1/lookup for those HEMs.

boolean

When true, include linkedin_url on each result where we have it. Off by default. Additive: hem is still returned for everyone, and a person with no profile in our index is still returned, just without the field. Roughly 40% of people with intent carry a LinkedIn profile, so do not treat a missing linkedin_url as an unmatched person. Billed at the same intent rate.

boolean

Cost preview. When true, the request is fully resolved and the billable quantity is returned as records_to_charge, but nothing is billed and no results are returned. Default false.

Responses

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