WhatsAble
API v1Analytics

List the broadcasts of a period and how each did

gethttps://api.whatsable.app/v1/analytics/broadcasts
Build a request to copy

This page never sends a request. Fill in the fields, then copy the request and run it from your server.

Request
curl -X GET 'https://api.whatsable.app/v1/analytics/broadcasts?from=string&to=string&time_zone=string'

Lists the broadcasts started from from to to, newest first and at most 200, with their recipients and their sent, failed and read counts. The table is the one the Analytics page of the dashboard shows.

A key on every number may leave out number_id and counts the whole organization. A key limited to some numbers must name one of them in number_id, otherwise 403 number_not_allowed_for_key.

Authorization

bearerAuth
headerAuthorizationBearer <nfy_live_<32 characters>>

An API key from Settings > API keys, sent as Authorization: Bearer <key>.

Query Parameters

from*string

The first day, YYYY-MM-DD, in time_zone.

Match^\d{4}-\d{2}-\d{2}$
to*string

The last day, YYYY-MM-DD, in time_zone. At most 90 days after from, counting both.

Match^\d{4}-\d{2}-\d{2}$
time_zone*string

The IANA time zone the days are read in, such as America/Argentina/Buenos_Aires.

Length1 <= length <= 64
number_id?string

Only this number. A key limited to some numbers must name one of them; a key on every number may leave it out for the whole organization.

Length1 <= length <= 64

Response Body

The broadcasts of the period.

application/json
  1. response

The broadcasts of a period and how each one did. The same table as the Broadcasts section of the dashboard's Analytics page.

object*string
from*string

The first day, as requested.

to*string

The last day, as requested.

time_zone*string
number_id*|

The number counted, or null for every number of the organization.

broadcasts*array<>

The broadcasts started in the period, newest first. Their counts are as of now, not as of to.

truncated*boolean

True when the period started more broadcasts than the 200 listed. GET /v1/broadcasts pages through all of them.

Example Request
curl -X GET 'https://api.whatsable.app/v1/analytics/broadcasts?from=string&to=string&time_zone=string'
Example Response
{  "object": "broadcast_analytics",  "from": "2026-10-01",  "to": "2026-10-02",  "time_zone": "America/Argentina/Buenos_Aires",  "number_id": null,  "broadcasts": [    {      "broadcast_id": "cm2v8b1a00001qz8h2b3c4d5e",      "name": "October promo",      "status": "completed",      "started_at": "2026-10-01T13:00:00Z",      "recipient_count": 1200,      "sent_count": 1180,      "failed_count": 20,      "read_count": 700,      "read_rate": 0.5932    }  ],  "truncated": false}