WhatsApp Analytics REST API
WhatsApp Analytics REST API for SMSGatewayCenter APIs
WhatsApp Analytics REST API
Use the Analytics REST API to fetch WhatsApp message metrics over HTTP, including submitted, delivered, read, failed, pending, and rejected totals, a daily or monthly trend, and a grouped delivery breakdown. This endpoint accepts GET requests and returns JSON.
API Endpoint
https://unify.smsgateway.center/rest/wa/v1/analytics
Authentication
Send your account userid and password as request parameters, or send your account API key in the apikey request header. WhatsApp product access must be enabled on your account. Do not publish live usernames or passwords.
Actions
| Action | Description | Default date range |
|---|---|---|
summary | Returns submitted, delivered, read, failed, pending, and rejected totals for the selected date range. | Today |
trend | Returns time-series points per day or month for submitted, delivered, read, and failed messages. | Today |
delivery | Returns grouped delivery rows with requested, delivered, read, failed, not sent, and amount values. | Today |
| Parameter | Required | Description | Example/Value |
|---|---|---|---|
| Authentication | |||
| userid | Yes | Your SMSGatewayCenter account username. Required even when the apikey header is used. | YourUsername |
| password | Yes* | Your account password. Not required when the apikey header is used. | ********** |
| output | Yes | Response format. Must be json. | json |
| Optional Parameters | |||
| action | Optional | Defaults to summary. Allowed: summary, trend, delivery. | summary |
| start | Optional | Start date. Format YYYY-MM-DD. Defaults to today when omitted with end. | 2026-06-01 |
| end | Optional | End date. Format YYYY-MM-DD. Defaults to today when omitted with start. Maximum range is 365 days. | 2026-06-01 |
| wabaNumber | Optional | Restrict metrics to one WhatsApp Business Account number. Omit to include all WABA numbers on the account. Digits only, 5 to 15 characters. | 9170396xxxxx |
| reptype | Optional | Used with action=trend. Allowed: day or month. Default day. | day |
| groupBy | Optional | Used with action=delivery. Allowed: billable, date, waNumber, country. Default billable. | billable |
curl --location 'https://unify.smsgateway.center/rest/wa/v1/analytics?userid=YourUsername&password=xxxxx&output=json&action=summary&start=2026-06-01&end=2026-06-01'
curl --location 'https://unify.smsgateway.center/rest/wa/v1/analytics?userid=YourUsername&password=xxxxx&output=json&action=trend&start=2026-05-25&end=2026-06-01&reptype=day&wabaNumber=9170396xxxxx'
curl --location --get 'https://unify.smsgateway.center/rest/wa/v1/analytics' \
--header 'apikey: YourApiKey' \
--data-urlencode 'userid=YourUsername' \
--data-urlencode 'output=json' \
--data-urlencode 'action=delivery' \
--data-urlencode 'start=2026-06-01' \
--data-urlencode 'end=2026-06-01' \
--data-urlencode 'groupBy=billable' \
--data-urlencode 'wabaNumber=9170396xxxxx'
{
"status": "success",
"analyticsList": {
"action": "summary",
"start": "2026-06-01",
"end": "2026-06-01",
"wabaNumber": "9170396xxxxx",
"metrics": [
{ "label": "Submitted", "value": 1250 },
{ "label": "Delivered", "value": 980 },
{ "label": "Read", "value": 640 },
{ "label": "Failed", "value": 45 },
{ "label": "Pending", "value": 120 },
{ "label": "Rejected", "value": 15 }
]
},
"statusCode": "200",
"reason": "success"
}
{
"status": "success",
"analyticsList": {
"action": "trend",
"start": "2026-05-25",
"end": "2026-06-01",
"reptype": "day",
"wabaNumber": "9170396xxxxx",
"points": [
{
"date": "2026-05-25",
"dateLabel": "May 25",
"submitted": 180,
"delivered": 150,
"read": 95,
"failed": 8
},
{
"date": "2026-05-26",
"dateLabel": "May 26",
"submitted": 210,
"delivered": 175,
"read": 110,
"failed": 6
}
]
},
"statusCode": "200",
"reason": "success"
}
{
"status": "success",
"analyticsList": {
"action": "delivery",
"start": "2026-06-01",
"end": "2026-06-01",
"groupBy": "billable",
"wabaNumber": "9170396xxxxx",
"rows": [
{
"label": "MARKETING",
"billingModel": "MARKETING",
"country": "India",
"countryId": 91,
"waNumber": "9170396xxxxx",
"date": "2026-06-01",
"requested": 500,
"delivered": 420,
"read": 280,
"failed": 12,
"notSent": 3,
"amount": 45.5
},
{
"label": "UTILITY",
"billingModel": "UTILITY",
"country": "India",
"countryId": 91,
"waNumber": "9170396xxxxx",
"date": "2026-06-01",
"requested": 750,
"delivered": 700,
"read": 360,
"failed": 8,
"notSent": 2,
"amount": 32.25
}
]
},
"statusCode": "200",
"reason": "success"
}
{
"status": "error",
"analyticsList": [],
"statusCode": "400",
"reason": "Date range cannot exceed 365 days."
}
Notes
- When both
startandendare omitted, the API uses today's date. - Date ranges cannot exceed 365 days. Start date cannot be after end date.
- When
wabaNumberis sent, it must belong to the authenticated account. analyticsListis an object. Its shape depends on the selected action.- Only GET is supported. Other HTTP methods return 405.

