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": "standard",
"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 statistiche — I campi
sent/failed/excludedsono valorizzati durante l'invio.delivered/opened/clicked/bouncedpossono aggiornarsi in seguito, quindi subito dopo l'invio possono risultare ancora incompleti. L'endpointsendsmostra lo stato corrente dei singoli invii; i webhook notificano le variazioni.
Il campo status può valere draft, tested, scheduled, paused_connection, sending, sent o failed. paused_connection indica che la campagna è ferma perché la connessione email dell'organizzazione non è disponibile.
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).