POST /external/contacts/unlock returns task_id.
When to use this endpoint
UseGET /external/contacts/unlock-tasks/:taskId to make email unlock workflows resumable. The task ID can be stored in your database, background worker, or frontend state and polled until the job completes or fails.
Do not assume the unlock result is ready immediately after creating the task.
Endpoint
GET /external/contacts/unlock-tasks/:taskId
Authentication
See AuthenticationSuccess status code
200 OK
Path parameters
| Name | Required | Type | Notes |
|---|---|---|---|
taskId | Yes | string | The task_id returned by contact unlock. |
Request example
Response example
Response fields
| Field | Description |
|---|---|
taskId | Contact unlock task identifier. |
taskStatus | Overall task state. |
items | Per-person unlock results. |
items[].personnelId | Personnel identifier submitted in the unlock request. |
items[].status | Item-level unlock state. |
items[].email | Email address when the item is unlocked successfully. |
items[].errorCode | Error code when an individual item fails, if provided. |
Status values
Task status:pendingprocessingcompletedfailed
pendingprocessingunlockedfailed
Result interpretation
Treat eachitems[] entry independently:
- Count a contact as delivered only when item
statusisunlockedandemailis present. - Surface
faileditems separately witherrorCodewhen provided. - A task can reach a terminal state while individual items have different outcomes.
- Refresh credit balance and contact/personnel records after terminal states when your UI needs billing or access-state reconciliation.
Polling guidance
Use a backoff schedule instead of polling aggressively:taskStatus is completed or failed. If some items remain failed while the task is completed, handle those item statuses individually.
Error responses
401 Unauthorized404 Not Found429 Too Many Requests
Notes
emailis present only when the individual item has been unlocked successfully.- Failed items can include
errorCode.