Voice Call Report API

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

ParameterTypeRequiredDescription
request_idstringYesThe 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

FieldTypeDescription
successbooleanWhether the request was processed successfully
request_idstringThe campaign/request ID that was queried
dataobjectContains the summary, counts, and detailed records

data.summary

FieldTypeDescription
requestidstringCampaign/request ID
usernamestringAccount username that ran the campaign
deductionstringCredits deducted per contact/unit
total_credits_usedstringTotal credits consumed by this campaign
contactsstringTotal number of contacts targeted in the campaign
broadcast_namestringName given to the campaign/broadcast
DatestringDate the campaign was run (YYYY-MM-DD)
TimestringTime the campaign was run (HH:MM:SS)

data.total_rows

Total number of call records returned in data.records.

data.status_counts

An 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[]

Each record represents the outcome for one recipient. Same structure as the webhook payload:

FieldTypeDescription
eventstringAlways voice.status.update
providerMessageIdstringCampaign/request ID this record belongs to
receiverstringRecipient phone number
statusstringCall status (ANSWERED, FAILED, NO_ANSWER, BUSY, etc.)
status_codeintegerNumeric status code (0 = normal)
error_codeinteger | nullError code if applicable, otherwise null
errorMessagestringHuman-readable outcome description
durationintegerCall 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_id from this API corresponds to the providerMessageId field sent in the voice call status webhook.