When to use this workflow
Use contact email unlock after you already know which people are worth enriching. Typical inputs come from:1. Collect personnel IDs
Most personnel responses includeid, name, title, company context, and contactUnlockStatus.
2. Start the unlock task
100 personnel IDs per request.
task_id. It is the stable identifier you need for polling.
3. Poll the task
4. Handle task states
Your integration should account for these outcomes:acceptedor in-progress state: continue polling.- completed state: inspect item-level results. Count a contact as delivered only when its item status is unlocked and an email is present.
- failed state: show the task error and decide whether the user should retry.
404 Not Found: the task ID is invalid or not visible to the API key owner.
Credit behavior
Contact email unlock currently costs15 credits per chargeable contact.
- Already unlocked contacts are not charged again.
- Batches larger than
100personnel IDs are rejected. - Insufficient balance returns
402 Payment Required. - The response and your commercial agreement are the source of truth for billing.
Recommended integration behavior
- Show the estimated number of locked contacts before creating the task.
- Check
GET /external/credits/balancebefore large batches. - Store the task ID and make polling resumable.
- Back off on
429 Too Many Requests. - Re-fetch
GET /external/credits/balanceafter terminal task states when you need final credit reconciliation. - Re-fetch personnel or contact records after completion if your UI needs the latest unlock status or email visibility.
Related endpoints
Search contacts
Find people by name, company, event, or LinkedIn context.
Unlock contact emails
Start an asynchronous email unlock task.
Get unlock task
Poll task status and retrieve task results.
Credits and access
Understand credit costs, balances, and access semantics.