Version
ANALYTICS

get_earnings_report

Full earnings report — totals plus a day, week, or month timeseries. Accepts explicit from/to dates or period presets.

Return a full earnings report for the creator — totals (gross, fees, net, transactions) plus a timeseries bucketed by day, week, or month. Accepts period presets or explicit from / to ISO dates; if both are supplied, the explicit dates win.

Requires ability

The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.

Runs the same action as

The REST endpoint and this tool share one action, so validation, permissions and events are identical.

Annotations

Read-only

It reads and never changes anything.

Arguments

project_idstringoptional

Optional project UUID to scope the report. Leave blank for all projects in the current team.

periodstringoptional

Period preset — 7d, 14d, 30d, 60d, 90d, mtd, qtd, ytd, 1y, all. Defaults to 30d. Ignored when both from and to are supplied.

fromstringoptional

Explicit start date (ISO YYYY-MM-DD). Overrides period when paired with "to".

tostringoptional

Explicit end date (ISO YYYY-MM-DD). Overrides period when paired with "from".

granularitystringoptional

Timeseries bucket size — day, week, month. Defaults to day.

plan_idsarrayoptional

Optional plan-UUID allow-list.

statusesarrayoptional

Optional SubscriptionStatus allow-list applied to parent subscriptions.

payment_method_idsarrayoptional

Optional payment-method UUID allow-list applied to parent subscriptions.

What it returns

{  "data": {    "totals": {      "gross": "4821.50",      "fees": "193.27",      "net": "4628.23",      "transactions": 184    },    "timeseries": [      {        "bucket": "2026-03-22",        "gross": "145.00",        "net": "139.20",        "transactions": 6      }    ]  },  "meta": {    "period": "30d",    "granularity": "day"  }}

How it fails

VALIDATION_FAILED

granularity is not one of day, week, month.

AUTHENTICATION_REQUIRED

no authenticated user on the request.

TOKEN_MISSING_ABILITY

token lacks dashboard:read.

How is this guide?

Last updated on