results is filled in while the task runs, so partial results are available before COMPLETED.| status | meaning |
|---|---|
QUEUED | waiting for a worker |
RUNNING | verifying; results may be partial |
COMPLETED | all addresses have a result. message is Done, or says what cut the run short, e.g. credits ran out |
STOPPED | stopped with Stop email verification task; unreached addresses stay NOT_CHECKED |
FAILED | the task could not run; message has the reason |
status: VALID (deliverable), INVALID (undeliverable), RISKY (could not be confirmed), NOT_CHECKED (not processed yet, or a vendor error - not charged).credits_charged is what this task has consumed so far; credits_remaining is the organization's balance at the time of the call. Poll every few seconds, not in a tight loop.curl --location 'https://api.plusvibe.ai/api/v1/verify/emails?workspace_id=65099a0dd96fae8ab61130c0&task_id=6719f1a2b3c4d5e6f7a8b9c0' \
--header 'x-api-key: <api-key>'{
"status": "success",
"data": {
"task_id": "6719f1a2b3c4d5e6f7a8b9c0",
"label": "october-signups.csv",
"status": "COMPLETED",
"total_rows": 2,
"processed_rows": 2,
"message": "Done",
"created_at": "2026-10-23T09:12:44.000Z",
"modified_at": "2026-10-23T09:13:02.000Z",
"credits_remaining": 2479.5,
"credits_charged": 1,
"results": [
{
"email": "jane.doe@example.com",
"status": "VALID"
},
{
"email": "john@example.org",
"status": "RISKY"
}
]
}
}