Headline figures
/v1/analytics/dashboard in the Analytics API.
Total revenue, total transactions, total users and MRR, each with a trend relative to the compare_period window and a sparkline. The Recurring Monthly Income tile counts only active subscriptions on recurring plans, normalised to a monthly figure; one-time and lifetime plans are excluded.
curl "https://api.subscriby.net/v1/analytics/dashboard?period=30d&compare_period=previous" \ -H "Authorization: Bearer $SUBSCRIBY_TOKEN"Requires ability
The token must hold this ability, or the call is refused with 403.
MCP tool
Runs the same action from an agent, behind the same ability.
Authorization
bearerToken A personal access token minted on the dashboard under Settings, then Tokens, sent as Authorization: Bearer sbt_live_…. The token carries the abilities each endpoint lists under Requires ability and is frozen to one team.
In: header
Query Parameters
Scope the figures to one project the token may see; omit for every project visible to it. A project outside the token's scope:project: allow-list is 404 TENANT_MISMATCH, an unknown one 404 RESOURCE_NOT_FOUND.
uuidThe preset window: 7d, 14d, 30d (the default), 60d, 90d, mtd, qtd, ytd, 1y or all. Ignored when both from and to are given; an unknown value falls back to the default rather than failing.
"30d"The first day of an explicit window, YYYY-MM-DD. Both from and to are needed to override period.
dateThe last day of an explicit window, YYYY-MM-DD. Both from and to are needed to override period.
dateprevious (the default) compares each tile with the window just before it and fills trend; none leaves the trend out.
"previous"Count only these plans. Send it as plan_ids[]=a&plan_ids[]=b or as one comma-separated string.
Count only payments in these states: successful, failed, pending, refunded. Send them as statuses[]=a&statuses[]=b or as one comma-separated string.
Count only payments taken through these payment methods. Send them as payment_method_ids[]=a&payment_method_ids[]=b or as one comma-separated string.
Responses
200OKapplication/json
The headline tiles.
401UnauthorizedAUTHENTICATION_REQUIREDapplication/json
The request carries no bearer token, or one that is revoked, malformed, or minted for another environment (an sbt_test_ token on production).
403ForbiddenTOKEN_MISSING_ABILITYapplication/json
The token is valid but does not carry the ability this endpoint requires; error.context.required_ability names the one to grant. An endpoint that also checks who owns a row or which tier the account is on answers FORBIDDEN, TEAM_TIER_REQUIRED or CONNECTOR_TIER_REQUIRED with the same status, and says so in its own description.
429Too many requestsRATE_LIMITEDapplication/json
The token has spent its 300 requests a minute or 10,000 an hour; Retry-After says when the next one is accepted.
How is this guide?
Last updated on