| Endpoint | SDK method | Returns |
|---|---|---|
GET /v1/analytics/summary | analyticsSummary() | Program-wide totals and redemption status breakdown. |
GET /v1/analytics/offers | analyticsOffers() | One row per offer. |
GET /v1/analytics/timeseries | analyticsTimeseries({ from, to, interval }) | Buckets over a window. |
Summary
analyticsSummary() calls GET /v1/analytics/summary and returns
program-wide totals plus a redemption status-count breakdown.
curl
Total members in the program.
Total points ever minted across the program.
Total points ever spent across the program.
Share of redemptions that reached completion.
A breakdown of redemptions by status (see below).
Redemption status counts
redemptions counts every redemption by its lifecycle status, plus a total:
| Key | Meaning |
|---|---|
submitted | Redemptions submitted. |
open | Redemptions in the open state. |
awaiting_vendor | Waiting on the vendor. |
awaiting_customer | Waiting on the customer. |
purchased | Purchased (sometimes called confirmed). |
completed | Completed experiences. |
canceled | Canceled redemptions. |
total | Sum across all statuses. |
Offers
analyticsOffers() calls GET /v1/analytics/offers and returns one
OfferAnalytics row per offer.
curl
Per-offer performance rows.
OfferAnalytics row:
| Field | Type | Description |
|---|---|---|
offerId | string | The offer this row describes. |
signups | number | Members who signed up for the offer. |
completions | number | Redemptions of the offer that completed. |
cancellations | number | Redemptions of the offer that were canceled. |
pointsSpent | number | Points spent on this offer. |
Timeseries
analyticsTimeseries({ from, to, interval }) calls
GET /v1/analytics/timeseries and returns buckets over a window. All three query
parameters are required.
Start timestamp of the window (inclusive). The first bucket begins here.
End timestamp of the window. The last bucket ends here.
The bucket granularity - how the window between
from and to is divided into
buckets (for example by day or by hour).curl
One entry per interval bucket across the window.
TimeseriesBucket:
| Field | Type | Description |
|---|---|---|
startTime | number | Start of the bucket. |
endTime | number | End of the bucket. |
signups | number | Signups in the bucket. |
pointsMinted | number | Points minted in the bucket. |
pointsSpent | number | Points spent in the bucket. |
from and to are timestamps bounding the window; interval is the bucket
granularity that divides it. Omitting any of the three is an error - all are
required.In code
The server client is constructed with the Org-API-Key.analyticsSummary,
analyticsOffers, and analyticsTimeseries are all called on it.
Next steps
Members and tiers
The per-member counterpart: profiles, wallet, and redemption counts.
Points and wallet
How
pointsMinted and pointsSpent are generated.