Retrieve the performance overview
GET/v1/reports/overview
Requires an API key with the reports:read scope. About keys and scopes
Works with integration, agent and partner keys.
Returns how the workspace did in a window: marketing email in email and marketing push in push, never added together, each against the period before. Email counts are send cohorts (by the day it was sent), push by the day it was queued, and later feedback revises them. Bounce and complaint counts are durable first-occurrence facts, not current statuses. conversions are the goal conversions a message drove, with their credited revenue, gross; refunds sums every refund in the window beside it. deliverabilityHealth is an advisory band from the workspace's own bounce and complaint rates against Kirora's warning and pause lines, not the sending provider's reputation. Rates are fractions; null means no denominator. Days are calendar days in the workspace timezone (timezone, set in workspace settings); the first and last may be partial. Without from and to, the window is the last 30 days ending today.
Query parameters
fromstringoptionalStart of the window, inclusive: a date-time, or a date meaning the start of that day in the workspace timezone. Give with
to; omit both for the last 30 days.tostringoptionalEnd of the window, exclusive, in the same forms. To include a whole last day, pass the day after it:
from=2026-10-01&to=2026-10-08covers 1 to 7 October. No later than the end of today; a window touches at most 366 days. Give withfrom.tagstringoptionalOnly email, push and conversions from campaigns and journeys carrying this tag, its name matched without case: "how did everything tagged Black Friday do". Refunds are not filtered: no message is linked to them.
1–64 characters
Header parameters
Kirora-WorkspacestringoptionalPartner keys only: the child workspace to act in, by the external id the partner gave it. Without it, a partner key acts in its own workspace. Any other key that sends it is refused with 403, and an unknown workspace is 404.
pattern
^[A-Za-z0-9._:-]{1,128}$
Returns
Returns 200 OK with an Overview in data. Otherwise returns an error; Errors lists every code and which to retry.
generatedAtstringrequireddate-time
timezonestringrequiredThe workspace timezone that date bounds and series days are in.
fromstringrequiredStart of the window, inclusive.
date-time
tostringrequiredEnd of the window, exclusive.
date-time
previousPeriodobjectrequiredThe equal-length period just before the window.
2 child attributes
fromstringrequiredStart of the window, inclusive.
date-time
tostringrequiredEnd of the window, exclusive.
date-time
emailobjectrequiredMarketing email from campaigns and journeys, by the day it was sent;
failedandskippedemail that never reached the provider counts on the day it was queued.sentcovers only email the provider accepted.4 child attributes
currentOverviewCountsrequiredCounts in the window.
13 child attributes
sentintegerrequireddeliveredintegerrequiredopenedintegerrequiredOpened at least once, including
openedByMachine: the open rate counts those too.openedByMachineintegerrequiredOf
opened, those only a machine opened: a mail app fetched its images with no reader (Apple Mail Privacy Protection, Gmail's prefetch on delivery) or a mail security scanner checked it.clickedintegerrequiredWith a link clicked by a person.
simulatedintegerrequiredOf
sent, test sends whose outcome was acted out: those todelivered@,bounce@or[email protected](the transactional guide's "Test addresses"). Counted insentanddelivered; never inbounced,complained,feedbackObserved, the bounce and complaint rates ordeliverabilityHealth.min 0
feedbackObservedintegerrequiredOf the real sends in
sent, those whose delivery, bounce or complaint is known.failedintegerrequiredNot delivered, with no bounce or complaint: refused before sending (counted on the day it was queued) or failed after it (on the day it was sent, and also in
sent).failure.reasonon each message says why.failedBeforeSendingintegerrequiredOf
failed, those refused before reaching the provider, on the day they were queued. Not insent, likeskipped, sosent + failedBeforeSending + skippedcounts each message once.skippedintegerrequiredStopped before sending by a guard (no consent, suppressed, no address), on the day it was queued. Not in
sent.bouncedintegerrequiredcomplainedintegerrequiredunsubscribedintegerrequiredRecipients who opted out through the email's own link.
previousOverviewCountsrequiredCounts in the previous period.
13 child attributes
sentintegerrequireddeliveredintegerrequiredopenedintegerrequiredOpened at least once, including
openedByMachine: the open rate counts those too.openedByMachineintegerrequiredOf
opened, those only a machine opened: a mail app fetched its images with no reader (Apple Mail Privacy Protection, Gmail's prefetch on delivery) or a mail security scanner checked it.clickedintegerrequiredWith a link clicked by a person.
simulatedintegerrequiredOf
sent, test sends whose outcome was acted out: those todelivered@,bounce@or[email protected](the transactional guide's "Test addresses"). Counted insentanddelivered; never inbounced,complained,feedbackObserved, the bounce and complaint rates ordeliverabilityHealth.min 0
feedbackObservedintegerrequiredOf the real sends in
sent, those whose delivery, bounce or complaint is known.failedintegerrequiredNot delivered, with no bounce or complaint: refused before sending (counted on the day it was queued) or failed after it (on the day it was sent, and also in
sent).failure.reasonon each message says why.failedBeforeSendingintegerrequiredOf
failed, those refused before reaching the provider, on the day they were queued. Not insent, likeskipped, sosent + failedBeforeSending + skippedcounts each message once.skippedintegerrequiredStopped before sending by a guard (no consent, suppressed, no address), on the day it was queued. Not in
sent.bouncedintegerrequiredcomplainedintegerrequiredunsubscribedintegerrequiredRecipients who opted out through the email's own link.
deltaOverviewCountsrequiredcurrentminusprevious.13 child attributes
sentintegerrequireddeliveredintegerrequiredopenedintegerrequiredOpened at least once, including
openedByMachine: the open rate counts those too.openedByMachineintegerrequiredOf
opened, those only a machine opened: a mail app fetched its images with no reader (Apple Mail Privacy Protection, Gmail's prefetch on delivery) or a mail security scanner checked it.clickedintegerrequiredWith a link clicked by a person.
simulatedintegerrequiredOf
sent, test sends whose outcome was acted out: those todelivered@,bounce@or[email protected](the transactional guide's "Test addresses"). Counted insentanddelivered; never inbounced,complained,feedbackObserved, the bounce and complaint rates ordeliverabilityHealth.min 0
feedbackObservedintegerrequiredOf the real sends in
sent, those whose delivery, bounce or complaint is known.failedintegerrequiredNot delivered, with no bounce or complaint: refused before sending (counted on the day it was queued) or failed after it (on the day it was sent, and also in
sent).failure.reasonon each message says why.failedBeforeSendingintegerrequiredOf
failed, those refused before reaching the provider, on the day they were queued. Not insent, likeskipped, sosent + failedBeforeSending + skippedcounts each message once.skippedintegerrequiredStopped before sending by a guard (no consent, suppressed, no address), on the day it was queued. Not in
sent.bouncedintegerrequiredcomplainedintegerrequiredunsubscribedintegerrequiredRecipients who opted out through the email's own link.
ratesEmailRatesrequiredEmail rates as fractions: delivery over sent; bounce and complaint over real sends (
sentlesssimulatedwhere the counts give it), asdeliverabilityHealthjudges them; open, click and unsubscribe over delivered.nullwhen there is no denominator.6 child attributes
deliverynumber | nullrequiredmin 0
opennumber | nullrequiredmin 0
clicknumber | nullrequiredmin 0
bouncenumber | nullrequiredmin 0
complaintnumber | nullrequiredmin 0
unsubscribenumber | nullrequiredmin 0
pushobjectrequiredMarketing push, by the day it was queued.
3 child attributes
currentOverviewPushCountsrequired4 child attributes
sentintegerrequiredfailedintegerrequiredopenedintegerrequiredclickedintegerrequired
previousOverviewPushCountsrequired4 child attributes
sentintegerrequiredfailedintegerrequiredopenedintegerrequiredclickedintegerrequired
deltaOverviewPushCountsrequired4 child attributes
sentintegerrequiredfailedintegerrequiredopenedintegerrequiredclickedintegerrequired
conversionsobjectrequiredGoal conversions a message drove, by when they happened, from email and push alike: a conversion is one order, whichever message gets the credit. An event credited to several campaigns' or journeys' goals counts once here, though each goal's own report counts it. Revenue is summed per goal currency and never converted; goals without a currency share the null row.
4 child attributes
currentintegerrequiredmin 0
previousintegerrequiredmin 0
revenueobject[]requiredCredited revenue per goal currency, gross: before refunds.
3 child attributes
currencystring | nullrequiredThe goal currency; null when none.
currentnumberrequiredpreviousnumberrequired
revenueWithheldbooleanrequiredTrue when
revenueleaves out the value of goals whose value property is a masked attribute this viewer may not see: their conversions are counted, their values are not, here and in each day'srevenue.
refundsMoney[]requiredAll refunds in the window, whether or not a message drove the order: the
totalof eachOrder Refundedevent (or the workspace's own refund event, set in its key events), per itscurrency, never converted. Not subtracted fromconversions.revenue. Empty whenrefundsWithheld.2 child attributes
currencystring | nullrequiredThe currency, an ISO 4217 code; null when none was named.
valuenumberrequiredThe amount in that currency.
refundsWithheldbooleanrequiredTrue when
refundsis left out becausetotalorcurrencyis a masked attribute this viewer may not see.deliverabilityHealthDeliverabilityHealthrequiredAdvisory bounce and complaint health on the workspace's lines (
limits): judged oncesampleSizeandfeedbackCoveragereach their minimums. Bounces and complaints are recorded ones, so a simulated test bounce never counts.8 child attributes
bandstringrequiredinsufficient_datauntil the sample and feedback coverage minimums are met; then the highest line the bounce or complaint ratio reaches.one of
insufficient_data,healthy,watch,criticallimitsDeliverabilityLimitsrequiredWhere the bands start, the workspace's own lines:
watchwhere its admins are warned,criticalwhere its marketing email pauses. The pause is judged on all of the workspace's marketing email over the last 24 hours (or week, for a small sender), not on one report.2 child attributes
watchobjectrequired2 child attributes
bounceRationumberrequiredA ratio from 0 to 1: 0.05 is 5%.
min 0 · max 1
complaintRationumberrequiredA ratio from 0 to 1: 0.05 is 5%.
min 0 · max 1
criticalobjectrequired2 child attributes
bounceRationumberrequiredA ratio from 0 to 1: 0.05 is 5%.
min 0 · max 1
complaintRationumberrequiredA ratio from 0 to 1: 0.05 is 5%.
min 0 · max 1
bounceRationumber | nullrequiredRecorded bounces per sent email, the figure the band compares with
limits;nullwhilesampleSizeis 0.min 0 · max 1
complaintRationumber | nullrequiredRecorded complaints per sent email, the figure the band compares with
limits;nullwhilesampleSizeis 0.min 0 · max 1
sampleSizeintegerrequiredSent emails the band is judged on: real sends only, with test sends that act an outcome out (
delivered@,bounce@,[email protected]) left out.min 0
minimumSampleSizeintegerrequiredThe fewest emails (
sampleSize) the band is judged on, currently 100: below it the band isinsufficient_data.min 1
feedbackCoveragenumber | nullrequiredShare of the sample whose outcome (delivered, bounced or complained) is known;
nullbefore any email is sent.min 0 · max 1
minimumFeedbackCoveragenumberrequiredThe least
feedbackCoveragethe band is judged on, currently 0.95: below it the band isinsufficient_data, as bounce and complaint reports are still arriving.min 0 · max 1
seriesobject[]requiredOne point per calendar day in the window: email and push by the day they were sent, conversions and revenue by the day they happened.
at most 366 items
5 child attributes
startsAtstringrequiredWhen this day starts in
timezone, given as an instant.date-time
emailOverviewCountsrequiredEmail by the day it was sent; email never sent by the day it was queued.
13 child attributes
sentintegerrequireddeliveredintegerrequiredopenedintegerrequiredOpened at least once, including
openedByMachine: the open rate counts those too.openedByMachineintegerrequiredOf
opened, those only a machine opened: a mail app fetched its images with no reader (Apple Mail Privacy Protection, Gmail's prefetch on delivery) or a mail security scanner checked it.clickedintegerrequiredWith a link clicked by a person.
simulatedintegerrequiredOf
sent, test sends whose outcome was acted out: those todelivered@,bounce@or[email protected](the transactional guide's "Test addresses"). Counted insentanddelivered; never inbounced,complained,feedbackObserved, the bounce and complaint rates ordeliverabilityHealth.min 0
feedbackObservedintegerrequiredOf the real sends in
sent, those whose delivery, bounce or complaint is known.failedintegerrequiredNot delivered, with no bounce or complaint: refused before sending (counted on the day it was queued) or failed after it (on the day it was sent, and also in
sent).failure.reasonon each message says why.failedBeforeSendingintegerrequiredOf
failed, those refused before reaching the provider, on the day they were queued. Not insent, likeskipped, sosent + failedBeforeSending + skippedcounts each message once.skippedintegerrequiredStopped before sending by a guard (no consent, suppressed, no address), on the day it was queued. Not in
sent.bouncedintegerrequiredcomplainedintegerrequiredunsubscribedintegerrequiredRecipients who opted out through the email's own link.
pushOverviewPushCountsrequiredPush by the day it was queued.
4 child attributes
sentintegerrequiredfailedintegerrequiredopenedintegerrequiredclickedintegerrequired
conversionsintegerrequiredGoal conversions that happened that day, as in
conversions.min 0
revenueMoney[]requiredCredited revenue that day per goal currency, never converted; empty when none.
2 child attributes
currencystring | nullrequiredThe currency, an ISO 4217 code; null when none was named.
valuenumberrequiredThe amount in that currency.