Version
GET

List transactions

/v1/analytics/transactions in the Analytics API.

A keyset-paginated list of payments for one project. project_id is required.

curl "https://api.subscriby.net/v1/analytics/transactions?project_id=$PROJECT_ID&limit=100" \  -H "Authorization: Bearer $SUBSCRIBY_TOKEN"

Every row carries its owning project, plan and subscriber, so a payment can be attributed without a follow-up lookup. Follow meta.next_cursor on the next call to paginate. A null or missing cursor means the end of the range has been reached.

GET
/v1/analytics/transactions

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

project_id*string

The project whose payments to list. Required: transactions are always read for one project.

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

Only payments in these states: successful, failed, pending, refunded. Send them as statuses[]=a&statuses[]=b or as one comma-separated string; an unknown state is ignored.

provider_ids[]?array<string>

Only payments taken through these payment methods. Send them as provider_ids[]=a&provider_ids[]=b or as one comma-separated string.

plan_ids[]?array<string>

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

currency_ids[]?array<string>

Only payments in these currencies, by currency id. Send them as currency_ids[]=a&currency_ids[]=b or as one comma-separated string.

cursor?string

The opaque keyset cursor a previous page returned as meta.next_cursor. Omit for the first page.

limit?integer

Rows per page, 1 to 200; a value outside the range clamps. Defaults to 50.

Default50

Responses

200OK

One keyset page of transactions.

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 project_id is missing or 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