Skip to main content
POST

Quick Answer

How do I run a large person search asynchronously? Submit the audience description here, poll the returned segment_id until the job is completed, then unlock and page its PIDs through the results endpoint.What you get back: A segment_id that identifies both the async job and its materialized segment.

Overview

Async Person Search builds a complete, reusable segment from a natural-language audience description. The submission returns immediately with 202 Accepted; parsing and full result materialization continue in the background. The complete workflow is:
  1. POST /person-search/v0/search-jobs to submit the query.
  2. Poll Async Person Search Status until status is completed.
  3. Inspect total_count and estimated_billable_count before unlocking.
  4. POST .../{segment_id}/results once to unlock the entire segment and return the first requested PID page.
  5. Use GET .../{segment_id}/results for subsequent pages without re-billing.
Unlike synchronous Person Search, the submit response does not contain PIDs. Async search fully materializes the segment first, then returns PIDs only after the explicit results unlock.

Authentication requirement

The API key must be associated with a Minerva user. Organization-only API keys without a user association cannot create or access async person-search jobs and receive 401 Unauthorized.

Request

Headers

x-api-key
string
required
A user-associated API key.
Content-Type
string
required
application/json

Request Body

query
string
required
Natural-language audience description. Must contain between 1 and 500 characters.

Response

Success Response (202 Accepted)

segment_id
string
UUID identifying both the async search job and its materialized segment.
status
string
Initial job status. Normally created.
created_at
string
ISO-8601 submission timestamp.
202

Errors