API REST
Endpoint Campagne
GET /api/v1/campaigns/:id per recuperare statistiche e dettaglio singola campagna.
Endpoint read-only per recuperare il dettaglio di una singola campagna del tenant.
GET /api/v1/campaigns/:id
Scope richiesto: campaigns:read
Esempio cURL
curl -s -H "Authorization: Bearer $SMARTCQ_KEY" \
"https://app.smartcq.it/api/v1/campaigns/00000000-0000-0000-0000-000000000c01"
Risposta 200
{
"id": "00000000-0000-0000-0000-000000000c01",
"name": "Campagna ottobre 2026",
"kind": "broadcast",
"subject": "Novità per te",
"status": "sent",
"audienceFilter": { "mode": "tags", "includeTags": ["cliente-storico"] },
"stats": {
"total": 1234,
"sent": 1230,
"failed": 4,
"excluded": 0,
"delivered": 1180,
"opened": 542,
"clicked": 89,
"bounced": 50
},
"scheduledAt": null,
"sentAt": "2026-10-15T08:00:00.000Z",
"archivedAt": null,
"createdAt": "2026-10-14T15:00:00.000Z",
"updatedAt": "2026-10-15T08:00:30.000Z"
}
Nota sulle stats — I campi
sent/failed/excludedsono valorizzati al momento del dispatch e non cambiano.delivered/opened/clicked/bouncedsi aggiornano nel tempo via webhook Resend, quindi possono essere0o sotto-conteggiati subito dopo l'invio. Per uno snapshot definitivo, attendi 24-48h o consuma gli eventisends.
Risposta 404
Campagna non trovata o non appartenente al tenant della chiave.
{
"error": {
"code": "not_found",
"message": "Campaign non trovata"
}
}
Lista campagne
In v1 non c'è ancora GET /api/v1/campaigns (lista). Per ora si parte da un id noto (preso dalla UI o da un evento campaign.completed ricevuto via webhook).