Version
GET

Transaction breakdown

/v1/analytics/transactions/breakdown in the Analytics API.

USD-normalised successful-payment totals grouped by one dimension: plan, payment_provider, currency or project. dimension is required.

curl "https://api.subscriby.net/v1/analytics/transactions/breakdown?dimension=payment_provider&period=90d" \  -H "Authorization: Bearer $SUBSCRIBY_TOKEN"
GET
/v1/analytics/transactions/breakdown

Requires ability

The token must hold this ability, or the call is refused with 403.

Runs the same action from an agent, behind the same ability.

Authorization

bearerToken
AuthorizationBearer <token>

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

dimension*string

What to group the settled revenue by: plan, payment_provider, currency or project. Required.

project_id?string

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.

Formatuuid
period?string

The 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.

Default"30d"
from?string

The first day of an explicit window, YYYY-MM-DD. Both from and to are needed to override period.

Formatdate
to?string

The last day of an explicit window, YYYY-MM-DD. Both from and to are needed to override period.

Formatdate
plan_ids[]?array<string>

Count only these plans. Send it as plan_ids[]=a&plan_ids[]=b or as one comma-separated string.

statuses[]?array<string>

Count only payments in these states: successful, failed, pending, refunded. Send them as statuses[]=a&statuses[]=b or as one comma-separated string.

payment_method_ids[]?array<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

200OK

Gross revenue grouped by the dimension.

401Unauthorized

The request carries no bearer token, or one that is revoked, malformed, or minted for another environment (an sbt_test_ token on production).

403Forbidden

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.

422Validation failed

When dimension is missing or not one of the four, or project_id is not a UUID.

429Too many requests

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