Analytics
GET /analytics requires emails:read. It returns workspace aggregates separated by product; it is not a sample of the email list and has no pagination.
curl "$SENDIRO_API_BASE/v1/workspaces/$SENDIRO_WORKSPACE_ID/analytics?period=last_7_days&mode=provider" \
-H "Authorization: Bearer $SENDIRO_API_KEY"
Select a period
period accepts all_time (default), last_7_days, last_30_days, current_month and custom. With custom, provide from and to as YYYY-MM-DD; both days are included in UTC. Do not send these dates with other periods.
Last 7 or 30 days includes today UTC and the preceding 6 or 29 days. Current month starts on day 1 UTC and ends after the current UTC day.
Selection uses acceptedAt. A later open still counts when its email was accepted within the period. The response provides scope, dateBasis: "acceptedAt", timezone: "UTC", effective filters and range with an inclusive start and exclusive end.
Filter mode and context
mode accepts all (default), provider or simulation. Add at most one context: broadcastId, automationId or emailId. Multiple contexts, repeated parameters or unknown filters return an error.
The emails:read permission covers both workspace products. A Marketing context does not change Transactional quota or the original reservation month.
Read metrics
Sendiro acceptance, transport acceptance, delivery and interaction observations are separate stages. Delivery does not guarantee inbox placement; opens and clicks can be affected by mail client privacy and preloading. An uncertain result is distinct from a known failure.
An empty selection returns zeros; a failed query means unavailability and should be displayed that way. Investigate a message through its details and events.
Reception health and event recovery require a human session; keys cannot access /analytics/health or /provider-events. See Marketing analytics.