When should I use Discover?
Use Discover when the input is incomplete or clue-based and you need candidate people before enrichment.
Keyword-based people discovery - finds and enriches people matching a keyword query, optionally narrowed by location. Returns names, bios, social profiles, photos, and contact data. keywords is required (3-500 chars); max_results defaults to 50 and is clamped to 1-100. The request is queued and returns a request_id; poll the status endpoint or supply a callback_url.
Manual credentials take precedence over your account key.
Discover helps resolve likely people when you have partial details rather than a clean identifier, making it useful for identity discovery and investigative workflows.
This endpoint is asynchronous. A successful submit returns a request_id while the job runs in the background. Poll the same path with a GET request - same authentication headers - passing the request_id as a
query parameter:
Each poll returns the job's current status; once it is completed the payload carries the result shown under Responses. Polling an
unknown or expired request_id returns 404 request_not_found.
| Status | Meaning |
|---|---|
| queued · processing · pending | The job is still running - keep polling. |
| completed | The job finished; the payload carries the result and completed: true. |
| failed | Terminal - the job could not complete; the error field explains why. |
Poll every few seconds at first, backing off for long-running jobs. Polling is free - status checks never burn credits.
callback_url parameter and the completed payload is POSTed to your endpoint
when the job finishes - no polling required. Delivery is retried up to 5 times with exponential backoff (1s,
5s, 15s, 1m, 5m) and a 30-second timeout per attempt; respond with a 2xx status to acknowledge receipt.Credits are charged based on the matched configuration. The listed cost is the per-result unit price.
| Feature | Credits | Notes |
|---|---|---|
| Discovery | - | Charged as profiles are discovered |
| Enrichment | - | Additional - only charged when contact details are actually found |
| No results | 0 | Empty results never burn credits |
A successful response wraps the payload in the { success, data, timestamp } envelope (also shown live in the panel on the right):
{
"success": true,
"data": {
"request_id": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4_1717000000_4271",
"status": "completed",
"completed": true,
"result": [
{
"displayname": "Jane Doe",
"bio": "Growth marketing lead in fintech, focused on B2B SaaS.",
"location": "New York, NY",
"altemails": [
"[email protected]"
],
"fullphone": [
"+1-555-123-4567"
],
"social_profiles": {
"linkedin": {
"url": "https://linkedin.com/in/janedoe",
"photo_url": "https://cdn.example.com/photo.jpg"
}
},
"company": "Acme",
"work_history": [
{
"title": "Growth Marketing Lead",
"company": "Acme",
"start_date": "2023-04"
}
]
}
],
"completed_on": "2026-01-15T10:35:00Z"
},
"timestamp": "2026-01-01T00:00:00"
}