PilotFoxDocs

Get the subscriptions time series

GET
/api/v1/sites/{siteId}/revenue/subscriptions/timeseries

MRR, active subscribers and the MRR movements per time bucket, in one currency (currency, else the site's).

Requires revenue:read on the site (an API key, or a signed-in member's role). Share links: 401.

Authorization

headerx-api-key<token>

An organization API key (ak_…), with the permissions and the sites it was created with. For servers and scripts: no cookie and no Origin check. Also accepted as Authorization: Bearer ak_… (apiKeyBearer). A request carries one credential: a key sent with a share token or a live session cookie is 400 (details.reason: ambiguous_credentials).

Scope: revenue:read

Path Parameters

siteId*string

Query Parameters

start?string
end?string
last?string
all?"true"
Value in"true"
tz?string
bucket?string
Value in"minute""5m""15m""hour""day""week""month""year"
currency?string

ISO 4217 code: only amounts in this currency count, so every amount of the response is in it (no conversion); default: the site's currency

Match^[A-Za-z]{3}$

Response Body

OK

application/json
  1. response
data*array<>
meta*
Example Request
curl -X GET 'https://pilotfox.app/api/v1/sites/string/revenue/subscriptions/timeseries'
Example Response200
{  "data": [    {      "t": "string",      "mrr": 0,      "active_subscribers": 0,      "new_mrr": 0,      "expansion_mrr": 0,      "contraction_mrr": 0,      "churned_mrr": 0,      "reactivation_mrr": 0,      "net_new_mrr": 0    }  ],  "meta": {    "window": {      "from": "string",      "to": "string",      "tz": "string",      "bucket": "minute"    },    "compare": {      "from": "string",      "to": "string"    },    "totalCount": -9007199254740991,    "nextCursor": "string",    "truncated": true,    "cache": "hit"  }}