Appearance
Reports
This guide explains how to use the reporting features of the WhatsGate API to monitor message delivery and device usage.
Prerequisites
Before you can access reports, you need to:
- Create an API token for authentication
- Link a WhatsApp device to your account
- Send some messages using the API
Available Reports
The WhatsGate API provides the following reporting endpoints:
- Device Balance: Get information about message counts and remaining balance
- Failed Numbers: Get a list of phone numbers where message sending failed
Device Balance
To get the message balance information for a device, make a GET request to the /reports/balance/{device}
endpoint:
bash
curl -X GET \
https://{subdomain}.whatsgate.net/api/reports/balance/123456789 \
-H 'Access-Token: your_api_token_here'
Parameters
device
: The mobile number of the device you want to check
Response
If successful, you'll receive a response with the device's message statistics:
json
{
"success": true,
"remaining": 1000,
"successful_count": 500,
"pending": 50,
"failed": 10
}
The response includes the following information:
remaining
: The number of messages remaining in your balancesuccessful_count
: The number of messages successfully sentpending
: The number of messages pending deliveryfailed
: The number of messages that failed to send
Error Handling
If the device is not found, you'll receive an error response:
json
{
"success": false,
"message": "Device not found"
}
Failed Numbers
To get a list of phone numbers where message sending failed, make a GET request to the /reports/failed_numbers
endpoint:
bash
curl -X GET \
'https://{subdomain}.whatsgate.net/api/reports/failed_numbers?device=123456789&from=2023-01-01&to=2023-01-31' \
-H 'Access-Token: your_api_token_here'
Parameters
device
(optional): Filter by device mobile numberfrom
(optional): Filter by start date (format: YYYY-MM-DD)to
(optional): Filter by end date (format: YYYY-MM-DD)
Response
If successful, you'll receive a response with a list of failed numbers:
json
{
"success": true,
"data": [
{
"number": "987654321",
"date": "2023-01-01T12:00:00Z"
},
{
"number": "987654322",
"date": "2023-01-02T14:30:00Z"
}
]
}
The response includes an array of objects, each containing:
number
: The phone number where message sending faileddate
: The date and time when the failure occurred
Error Handling
If there's an error with your request, you'll receive an error response:
json
{
"success": false,
"message": "The selected device is invalid."
}
Using Reports
Monitoring Message Delivery
- Regularly check the device balance to monitor your message delivery statistics
- If you notice a high number of failed messages, investigate the failed numbers report
- Use the date filters to narrow down when failures occurred
Troubleshooting
If you're experiencing message delivery issues:
- Check the device status to ensure it's connected
- Review the failed numbers report to identify patterns
- Verify that the phone numbers are in the correct format
- Check if the device has sufficient balance remaining