Skip to content

Program performance summary

GET /analytics/summary
Scopeanalytics:read
Customer session tokenNot accepted: call from your server with an API key
Rate limit classread (limits)
Idempotency keyNot used
MCP toolcharm_get_analytics_summary

The dashboard’s aggregations in one response: members, points, attributed revenue, rewards, tier distribution, plus monthly revenue and enrollment series for trend questions. Defaults to the last 30 days; period_days=0 means all time, and an inclusive from/to date range (YYYY-MM-DD) wins over the preset. points.outstanding_liability is null — never 0 — when the shop has no reward with a fixed cash value, because gifts and percentage discounts cost whatever the cart costs and a point cannot be priced; points.outstanding_liability_unit is then points, and the real exposure is points.outstanding_points.

NameInTypeDescription
period_days (optional)queryintegerWindow length in days, 0–365. 0 = all time. Default 30.
from (optional)querystringWindow start (YYYY-MM-DD, inclusive). Requires to.
to (optional)querystringWindow end (YYYY-MM-DD, inclusive). Requires from.

Returns AnalyticsSummary.

FieldTypeDescription
windowobject
currency_codestring or null(nullable)
membersobject
pointsobject
revenueobject
rewardsobject
tier_distributionobject
revenue_series_granularitystring: day, month
revenue_seriesarray of object
enrollment_seriesobject
{
"window": {
"start": "2026-09-01T00:00:00.000Z",
"end": "2026-10-01T00:00:00.000Z",
"days": 1
},
"currency_code": "EUR",
"members": {
"total": 1,
"active_in_period": 1,
"active_rate_percent": 1,
"new_in_period": 1,
"pending": 1
},
"points": {
"earned_in_period": 120,
"redeemed_in_period": 1,
"redemption_rate_percent": 1,
"outstanding_points": 120,
"outstanding_liability": 1,
"outstanding_liability_unit": "money"
},
"revenue": {
"attributed_revenue": 1,
"attributed_order_count": 1,
"average_order_value": 1,
"discounts_given": 1,
"perk_savings": 1,
"cashback_issued": 1,
"roi_ratio": 1
},
"rewards": {
"redeemed_in_period": 1
},
"tier_distribution": {},
"revenue_series_granularity": "day",
"revenue_series": [
{
"month": "2026-09",
"attributed_revenue": 1,
"discounts_given": 1
}
],
"enrollment_series": {
"granularity": "month",
"buckets": [
{
"period": "lifetime",
"enrollments": 1
}
]
}
}
Terminal window
curl -X GET "https://charm.appfleece.app/api/v1/analytics/summary" \
-H "Authorization: Bearer chrm_live_..."

unauthorized · invalid_token · insufficient_scope · access_required · validation_error · rate_limited

Every error body carries code, message, request_id and a doc_url pointing at the matching entry in the error catalog.