Person Search
Person Search
Find people using a natural-language audience description and return matching Minerva PIDs with contact-channel coverage stats
POST
Overview
The Person Search endpoint accepts a natural-language description of an audience and returns matching people from the Minerva dataset. Internally the service parses the prompt into structured filters, executes a search, and synchronously returns:- A stable
search_idyou can retrieve again later - Minerva PIDs for the returned page (up to
size) - The
total_countof everyone matching the search (may exceed the returned page) - Contact-channel coverage stats across the full match set (
total_contact_coverage) and across the returned page (results_contact_coverage)
Request
Headers
Your API key for authentication.
application/jsonRequest Body
Natural-language description of the people you want to find. Between 1 and 500 characters.The more specific the query, the better the results. Include details like role, seniority, geography, industry, skills, and any required contact channels. Examples:
"Software engineers in Denver with a professional email on file""CFOs at Series B fintech startups in New York""Computational fluid dynamics engineers in Austin"
Maximum number of Minerva PIDs to return in
results. Must be between 1 and 100. The total_count field still reflects the full match count even when size is smaller than the match set.Request Example
Response
Success Response
The API returns a JSON object with the newsearch_id, the list of matching PIDs for this page, and coverage statistics for contact channels.
UUID identifying this search. Store it if you plan to fetch the same results later with Get Person Search.
The normalized query associated with this search.
Array of Minerva PIDs for this page of results. Length is at most
size. Each PID has the format p-{hash} and can be used with /enrich, segments, and other person-level endpoints.Total number of people matching the search. Can be larger than
result_count if size is smaller than the match set.Number of PIDs actually returned in
results for this response.Availability of contact channels across the full match set of
total_count people. See Coverage stats below for object shape.Availability of contact channels across the
result_count PIDs returned on this page. See Coverage stats below for object shape.ISO 8601 timestamp (UTC) indicating when the search was created.
Coverage stats
Bothtotal_contact_coverage and results_contact_coverage share the same shape. Each channel entry reports how many people in the corresponding population have that channel on file, and what percentage that represents.
Count and percent of people with a personal email on file.
Count and percent of people with a professional email on file.
Count and percent of people with a phone number on file.
Count and percent of people with a LinkedIn profile on file.
Number of people in the population who have this contact channel on file.
count divided by the size of the population, expressed as a percentage (0.0–100.0).Error Responses
Common Errors
400- Bad Request: The natural-language query could not be turned into any usable search filters. Rephrase the query with more concrete criteria (role, location, industry, seniority, etc.).401- Unauthorized: Invalid or missing API key422- Unprocessable Entity: Request validation failed. Examples:querymissing or empty,querylonger than 500 characters,sizeoutside1-100, or body is not valid JSON.500- Internal Server Error: Unexpected server error
Error Examples
No usable filters extracted from the query:Related Endpoints
- Get Person Search - Retrieve a previously created search by
search_id - Person Search Usage - Daily delivery limits and consumption history
- Enrich v2 - Fetch full profile data for the Minerva PIDs returned here
- Add Members to Segment - Persist search results into a segment for tracking