Skip to main content
The Subscription Metrics endpoint returns the SaaS metrics App Store Connect doesn’t show out of the box: monthly recurring revenue (MRR), ARR, ARPU, churn rate, trial conversion rate, and the daily event counts (new, canceled, refunded, reactivated, expired) behind them. We compute these from Apple’s SUBSCRIPTION and SUBSCRIPTION_EVENT reports, normalize all proceeds to a monthly basis, and convert every currency to USD using historical exchange rates — so a yearly subscription priced in EUR contributes the right MRR amount on the day it was sold.
Requires connected ASC account. Connect your App Store Connect API key and Vendor Number in appeeky.com → Settings → Integrations. Subscription reports refresh daily and right after you connect.
Pro feature — requires Indie plan or higher.

Get Subscription Metrics

Returns headline totals, per-app breakdown, and a daily time series for the requested window.

Query parameters

Response (200 OK):

Field reference

totals

Headline numbers across the requested window.

apps

One row per app, sorted by mrr_usd descending. Each row is the latest day’s snapshot for that app, with 30-day rolling event counts. Includes the app’s name and icon so dashboards don’t need a second round-trip per app.

series

Daily time series ready for charting. When appId is omitted, MRR and event counts are summed across apps, and churn is paying-subscriber-weighted (not a simple mean — same logic as totals.avg_churn_rate).

How the numbers are computed

We download Apple’s daily SUBSCRIPTION report. For each row, we:
  1. Skip rows with Active Standard Price Subscriptions = 0 (the user is in a free trial or intro offer).
  2. Normalize Developer Proceeds to a monthly basis using the subscription duration:
    • 1 week× 4.345
    • 1 month× 1
    • 2 months÷ 2
    • 3 months÷ 3
    • 6 months÷ 6
    • 1 year÷ 12
  3. Convert the result from the customer’s currency to USD using the historical exchange rate for that day (Frankfurter, ECB-sourced). A subscription sold in EUR on April 1st is converted at April 1st’s rate, not today’s.
  4. Sum across all active subs for that app and date.
This means a yearly 59.99subscriptioncontributes 59.99 subscription contributes ~5/mo to MRR, not $59.99 — exactly how RevenueCat and ChartMogul model it.
For each (app, date) we compute:
When you query without appId, churn across apps is weighted by paying subscribers, not averaged:
A 10-user app with 100% churn next to a 10,000-user app with 5% churn produces a weighted churn near 5%, which reflects business reality.
Note: a trial that started in March and converted in April will appear as trial_starts in March and trial_conversions in April. Over a long enough window the ratio converges to the true conversion rate; over a short window it can read above 100% if a backlog of older trials converts (this is normal).
We map Apple’s free-text event strings to consistent categories:Unknown event strings are logged and ignored — they won’t break aggregation.

MCP Tool

This endpoint is exposed as an MCP tool so AI assistants can analyze revenue health on your behalf: Example prompt:

Common Workflows

Daily revenue dashboard

JavaScript

Identify your highest-churn app

JavaScript

Error Codes


Limits & Caveats

  • Data is computed from Apple’s daily reports, which are typically available 1–2 days after the day they cover. Today’s date will usually have no data; yesterday’s may be partial.
  • MRR uses developer proceeds (post-Apple-cut), not list price. This matches what hits your bank account.
  • Churn is computed from cancellation events, not from comparing subscriber counts day-over-day. This avoids skew from new subscribers added the same day.
  • Refunds reduce revenue but are reported separately; they do not subtract from mrr_usd directly. For “net MRR after refunds”, subtract refunded_subscriptions × ARPU from mrr_usd.
  • Backfill on first connect covers the last 30 days.