Analytics
Curated, read-only performance reports for your account, campaigns, automations, flows and transactional traffic. One consistent request grammar, one consistent response shape, across every report family.
The Analytics endpoints expose Instasent's performance data as a small set of curated, read-only reports. You ask for named statistics over a timeframe and get back a clean, predictable JSON document — the same response shape whether you are reporting on the whole account, a single campaign, an automation, or your transactional traffic.
There is no query language to learn and no raw data to post-process. You pick the statistics you want, optionally a timeframe and a breakdown, and the engine returns aggregated values (or a zero-filled time series) already computed for you.
Report families
Analytics is organised into families. Each family answers a different question and lives under /project/{project}/analytics/…. Most families offer a values report (aggregate totals) and a series report (the same statistics bucketed over time); two of them also offer a compare report, and flows offer the series report only.
Aggregate account performance across everything you sent — the dashboard summary as one report.
Campaign reportStatistics for a single campaign, plus a compare report to rank several campaigns side by side.
Automation reportStatistics for a single automation, with a built-in current-vs-previous comparison and a compare report.
Flow reportStatistics for a single flow — the whole flow, or one version of it.
Transactional rollupHow your transactional (API / direct) traffic is performing across the project.
Account overview
The whole-account view: terminal-state delivery, engagement, conversion, cost and suppression across all the traffic Instasent sent for you. It is the only report that accepts the full breakdown catalog — group_by over channel, country, language, gender, segment or communication_type — while its filter is country only. It also accepts a previous-period comparison. The default timeframe is the last 3 months. See the support matrix for what every report supports.
Account overview — aggregate totals.
Account overview — time series.
Campaign report
Statistics for one campaign. The default report is the campaign's lifetime, served fast from its stored statistics; any other timeframe (or a per-channel breakdown) is computed on demand. Use the compare endpoint to rank a set of campaigns over a shared timeframe in a single call.
Campaign report — aggregate totals.
Campaign report — time series.
Compare a set of campaigns over one timeframe.
Automation report
Statistics for one automation. The default report is the last 30 days with a previous-period comparison already attached, so you can see the trend without a second call. Use the compare endpoint to rank several automations together.
Automation report — aggregate totals.
Automation report — time series.
Compare a set of automations over one timeframe.
Flow report
Statistics for one flow, bucketed over time. A flow is built in the dashboard and read through the API, so the family comes with its own discovery endpoints — the flow listing and, under it, the version listing that hands you the ids. It is the only family with a version filter: left out, the report is the flow total across every version; passed, every statistic is scoped to the one version, which is how an A/B version is measured against the live one. Its window is clamped to the flow's lifetime and the report is always computed on demand.
Flow report — time series.
Full detail, discovery endpoints and the version model: Flow reports.
Transactional rollup
A project-level rollup of all your direct / transactional (API-sent) traffic over a timeframe — the "how is my transactional traffic performing?" view. It is always computed on demand and accepts a previous-period comparison. The default timeframe is the last 30 days with a comparison.
Transactional rollup — aggregate totals.
Transactional rollup — time series.
How the reports work
A few principles hold across every family:
- You choose the statistics. The required
statisticsparameter is a comma-separated list of names from a fixed catalog. Each family exposes the subset that makes sense for it. See Statistics catalog. - One request grammar. Timeframe, timezone, currency, breakdowns and comparison are expressed the same way everywhere. See Building queries.
- One response shape. Every response wraps the report under a top-level
entitykey (the Product API convention). Inside it, values reports return astatisticsobject; series reports return a shareddate_timesaxis with index-aligned arrays. Every report echoes the resolvedtimeframe,currencyand afreshnessblock. See Reading results. - Read scopes only. A report covers the families your token is allowed to read. The overview, for example, reports the campaign / automation / transactional families your token has read access to.
These reports measure the performance of what Instasent sent for you. That framing matters for the suppression statistics in particular: unsubscribes counts only opt-outs your Instasent messaging drove, not your audience's total current unsubscribe state. See the suppression statistics for exactly what is counted and what is excluded.
Limitations
The account overview reflects what has reached a final state — delivered, failed or expired — not everything that was just dispatched. It does not report messages still in transit.
Because of that, the most recent window (up to ~48 hours) is intrinsically partial and under-reports: recent volumes and cost are approximate until the traffic finishes settling, then converge to their true totals. This is why overview cost is reported as the cost_approx flavour — see the approximate statistics explanation.
Where to go next
Every statistic you can request, what it means, and which families expose it.
Building queriesTimeframes, timezone, currency, breakdowns and comparisons.
Conversions & revenueHow revenue statistics are computed and scoped.
Reading resultsThe response shapes, freshness, warnings and errors.
Flow reportsDiscovering flows and their versions, and scoping a report to one version.