GET /v1/triggers/new-campaign-sent
Most recent completed broadcasts (campaigns) with delivery and engagement counts.
Returns up to 100 most-recent completed broadcasts with their delivery counters. Use it to push campaign results into BI dashboards or trigger post-campaign workflows.
GET /api/v1/triggers/new-campaign-sent
Only broadcasts with status = completed are returned. In-flight or scheduled broadcasts are excluded — they show up as soon as the queue drains.
Request
curl https://www.qyvo.io/api/v1/triggers/new-campaign-sent \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
const broadcasts = await fetch(
'https://www.qyvo.io/api/v1/triggers/new-campaign-sent',
{ headers: { Authorization: `Bearer ${process.env.QYVO_TOKEN}` } },
).then((r) => r.json());
$broadcasts = Http::withToken(env('QYVO_TOKEN'))
->get('https://www.qyvo.io/api/v1/triggers/new-campaign-sent')
->json();
import os, httpx
broadcasts = httpx.get(
'https://www.qyvo.io/api/v1/triggers/new-campaign-sent',
headers={'Authorization': f"Bearer {os.environ['QYVO_TOKEN']}"},
).json()
Response — 200 OK
[
{
"id": "01J0CD...",
"name": "Black Friday teaser",
"status": "completed",
"template_id": "01J0AB...",
"template_name": "bf_teaser",
"total_recipients": 4218,
"sent_count": 4205,
"delivered_count": 4189,
"read_count": 3812,
"failed_count": 13,
"revenue": 8742.00,
"scheduled_at": "2026-05-07T08:00:00+00:00",
"created_at": "2026-05-06T14:32:00+00:00"
}
]
| Field | Type | Notes |
|---|---|---|
total_recipients |
int | Audience size at dispatch time |
sent_count |
int | Accepted by Meta |
delivered_count |
int | Delivered to device |
read_count |
int | Opened (only counted if read receipts are enabled on the recipient) |
failed_count |
int | Rejected by Meta — see the dashboard for per-recipient reasons |
revenue |
float | null | Attributed revenue when the broadcast carries a tracking pixel and links convert |
Errors
| Status | Cause |
|---|---|
401 |
Token missing or revoked |
200 with [] |
No tenant attached to the user (silent empty) |
