Skip to main content

Use case

Identify the person behind a phone number — name, employer, title, LinkedIn, and other contact details. Use it to enrich inbound calls, qualify form submissions, deduplicate CRM records, or investigate unknown numbers.

Endpoint

API Reference

See the full request/response schema and parameters in the API Reference.

Pricing

See Credits & Pricing Guide for credit costs.

Errors

For error responses (400, 403, 422, etc.), see Handling Errors.

Sync usage

Async pattern

For production workflows, use /reverse-phone-async to submit a job and poll for results. This avoids long-lived HTTP connections and lets you parallelize many lookups without blocking your client. The flow is:
  1. SubmitPOST /reverse-phone-async with the same body as the sync endpoint. Response includes a task_id.
  2. PollGET /job-status/{task_id} until status is completed, failed, or cancelled.
  3. Read result — When completed, the resolved person record is in the result field, in the same shape as the sync response.
The async start endpoint returns uppercase RUNNING. Subsequent /job-status/{task_id} calls return lowercase statuses. charge_amount is returned in cents, not credits.

Polling example

Webhook callback

Pass a webhook_url to receive the result via HTTP POST instead of polling. The signed payload, retry behavior, and verification steps are documented in Outgoing Webhooks.

Bulk processing

Use /reverse-phone-bulk (sync) or /reverse-phone-bulk-async (async) to resolve up to 100 phone numbers in a single call. Both accept a leads array and the same providers and webhook_url fields as the single-lead endpoints.

Bulk sync

Returns 200 OK with results once every lead is processed. Best for small batches where you want a single round-trip.

Bulk async

Submit a batch, get back a task_id, then poll /job-status/{task_id} (or set webhook_url to receive a callback). Recommended for batches of more than a handful of leads, or when you don’t want to hold a long-lived HTTP connection.