Overview
This API lets you fetch (pull) the status report of a voice call campaign at any time using its request_id. Use this endpoint if you missed a webhook event, want to poll for status manually, or need to reconcile campaign results.
Endpoint
GET https://wa20.nuke.co.in/v6/api/voice/report
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
request_id | string | Yes | The unique campaign/request ID returned when the voice campaign was created (also seen as providerMessageId in webhook events) |
Example Request
GET https://wa20.nuke.co.in/v6/api/voice/report?request_id=VCAMP_20260728_987B57D2
Example Response
{
"success": true,
"request_id": "VCAMP_20260728_987B57D2",
"data": {
"summary": {
"requestid": "VCAMP_20260728_987B57D2",
"username": "harshit07",
"deduction": "6",
"total_credits_used": "12",
"contacts": "2",
"broadcast_name": "test",
"Date": "2026-07-28",
"Time": "15:38:26"
},
"total_rows": 2,
"status_counts": {
"ANSWERED": 2
},
"records": [
{
"event": "voice.status.update",
"providerMessageId": "VCAMP_20260728_987B57D2",
"receiver": "917987701494",
"status": "ANSWERED",
"status_code": 0,
"error_code": null,
"errorMessage": "NORMAL HANG UP",
"duration": 35
},
{
"event": "voice.status.update",
"providerMessageId": "VCAMP_20260728_987B57D2",
"receiver": "919340886343",
"status": "ANSWERED",
"status_code": 0,
"error_code": null,
"errorMessage": "NORMAL HANG UP",
"duration": 91
}
]
}
}
Response Fields
Top level
| Field | Type | Description |
|---|---|---|
success | boolean | Whether the request was processed successfully |
request_id | string | The campaign/request ID that was queried |
data | object | Contains the summary, counts, and detailed records |
data.summary
data.summary| Field | Type | Description |
|---|---|---|
requestid | string | Campaign/request ID |
username | string | Account username that ran the campaign |
deduction | string | Credits deducted per contact/unit |
total_credits_used | string | Total credits consumed by this campaign |
contacts | string | Total number of contacts targeted in the campaign |
broadcast_name | string | Name given to the campaign/broadcast |
Date | string | Date the campaign was run (YYYY-MM-DD) |
Time | string | Time the campaign was run (HH:MM:SS) |
data.total_rows
data.total_rowsTotal number of call records returned in data.records.
data.status_counts
data.status_countsAn object summarizing how many calls fall under each status. Keys are dynamic based on statuses present in the campaign, e.g.:
{
"ANSWERED": 2,
"FAILED": 1,
"NO_ANSWER": 3
}
data.records[]
data.records[]Each record represents the outcome for one recipient. Same structure as the webhook payload:
| Field | Type | Description |
|---|---|---|
event | string | Always voice.status.update |
providerMessageId | string | Campaign/request ID this record belongs to |
receiver | string | Recipient phone number |
status | string | Call status (ANSWERED, FAILED, NO_ANSWER, BUSY, etc.) |
status_code | integer | Numeric status code (0 = normal) |
error_code | integer | null | Error code if applicable, otherwise null |
errorMessage | string | Human-readable outcome description |
duration | integer | Call duration in seconds |
Error Responses
Note: Add actual error response examples (e.g. invalid/missing
request_id, campaign not found) here once confirmed, for example:
{
"success": false,
"message": "request_id not found"
}
Notes
- Use this endpoint any time you need to re-check a campaign's status, independent of the webhook.
- The
request_idfrom this API corresponds to theproviderMessageIdfield sent in the voice call status webhook.
