WhatsApp · WhatsApp Phone Numbers
Fetches pricing analytics.
GET
https://api.pozy.ai/v1/whatsapp/pricing-analyticsgetWhatsAppPricingAnalytics
Guide: WhatsApp pricing
Request
Send your API key as Authorization: Bearer pz_live_.... Read-only keys can call it. Keys with the analytics resource group disabled get 403 resource_group_disabled. Authentication
Query parameters
| Name | Type | Notes |
|---|---|---|
accountIdrequired | string | |
startrequired | string (date-time) | |
endrequired | string (date-time) | |
granularityrequired | string | One of HALF_HOUR, DAILY, MONTHLY |
dimensions | string | |
metricTypes | string | |
pricingTypes | string | |
pricingCategories | string | |
countryCodes | string |
Example
curl -X GET "https://api.pozy.ai/v1/whatsapp/pricing-analytics?accountId=696e0b682d0a31188e7a2ba9&start=2026-10-02T09%3A00%3A00.000Z&end=2026-10-02T09%3A00%3A00.000Z&granularity=HALF_HOUR" \
-H "Authorization: Bearer $POZY_API_KEY"const res = await fetch("https://api.pozy.ai/v1/whatsapp/pricing-analytics?accountId=696e0b682d0a31188e7a2ba9&start=2026-10-02T09%3A00%3A00.000Z&end=2026-10-02T09%3A00%3A00.000Z&granularity=HALF_HOUR", {
headers: { Authorization: `Bearer ${process.env.POZY_API_KEY}` },
});
const data = await res.json();
if (!res.ok) throw new Error(data?.error ?? `Request failed with status ${res.status}`);
console.log(data);import os
import requests
resp = requests.get(
"https://api.pozy.ai/v1/whatsapp/pricing-analytics",
headers={"Authorization": f"Bearer {os.environ['POZY_API_KEY']}"},
params={
"accountId": "696e0b682d0a31188e7a2ba9",
"start": "2026-10-02T09:00:00.000Z",
"end": "2026-10-02T09:00:00.000Z",
"granularity": "HALF_HOUR",
},
timeout=30,
)
resp.raise_for_status()
print(resp.json())Response
200 on success
accountIdstringrequiredphoneNumberstringrequiredgranularitystringrequiredOne of
HALF_HOUR,DAILY,MONTHLY.startstring (date-time)requiredendstring (date-time)requireddataPointsarray of objectrequired9 child fields
startstring (date-time)requiredendstring (date-time)requiredphoneNumberstringrequiredCan be null.
countrystringrequiredCan be null.
tierstringrequiredCan be null.
pricingTypestringrequiredCan be null.
pricingCategorystringrequiredCan be null.
volumeintegerrequiredCan be null.
costnumberrequiredCan be null.
200 response
{
"accountId": "696e0b682d0a31188e7a2ba9",
"phoneNumber": "+14155550123",
"granularity": "HALF_HOUR",
"start": "2026-10-02T09:00:00.000Z",
"end": "2026-10-02T09:00:00.000Z",
"dataPoints": [
{
"start": "2026-10-02T09:00:00.000Z",
"end": "2026-10-02T09:00:00.000Z",
"phoneNumber": "+14155550123",
"country": "US",
"tier": "string",
"pricingType": "string",
"pricingCategory": "string",
"volume": 1,
"cost": 12.5
}
]
}Errors
Errors use one shape: { error, type, code, param?, details? }. The ones you are most likely to see here:
| 400 | invalid_request_error | A parameter or body field is missing or invalid. param names it. |
| 401 | authentication_error | The API key is missing, revoked or expired. |
| 403 | permission_error | The key is scoped to other profiles or has this resource group disabled. |
| 429 | rate_limit_error | Too many requests this minute. Wait for Retry-After seconds. |
Every code is listed in Errors.
More in WhatsApp Phone Numbers
GETGet number statusGETList phone numbersPOSTPurchase phone numberGETList offerable number countriesGETSearch available numbersGETCheck country availabilityGETGet KYC form specPOSTSubmit KYCPOSTUpload a KYC documentPOSTPre-validate KYC addressPOSTCreate a hosted KYC linkPATCHMove a number to another profileGETGet declined requirementsPOSTResubmit a declined numberGETGet phone numberDELRelease phone number