App Analytics
App Analytics
App Analytics
Per-app analytics: installs over time, active stores, function invocations, webhook delivery success.
GET
App Analytics
App analytics surface the operational health of a published app — distinct from the store-level analytics atDocumentation Index
Fetch the complete documentation index at: https://docs.launchmystore.io/llms.txt
Use this file to discover all available pages before exploring further.
/api/v1/analytics/* (which
report a merchant’s sales / orders / customers, not the app developer’s
own metrics).
These endpoints are read by the developer dashboard in TeamInfra and are
scoped to the calling developer account. They cover four areas:
- Installations — installs/uninstalls over time, active store count.
- Function executions — invocation counts, success/error/timeout rates, p50 / p95 latency, per-function breakdown.
- Webhook deliveries — success rate, retry rate, per-topic counts.
- Revenue — gross / commission / net, ARR, churn.
@Auth(MERCHANT) — developers and merchants share
the same auth surface; ownership of the app is checked against appId).
Per-app analytics are exposed under the developer-scoped namespace
/apps/developer/:appId/analytics/*. The merchant-facing /api/v1/analytics/*
endpoints documented in Analytics overview
report a different metric set (sales, orders, conversion) and require the
read_analytics OAuth scope.Installations overview
GET /apps/developer/:appId/analytics/installs
Returns install/uninstall counts bucketed by day, plus a running total of
active installations.
App UUID.
One of
7d, 30d, 90d, 12m. Default 30d.ISO date — overrides
range lower bound.ISO date — overrides
range upper bound.Current count of
AppInstallation rows with status: active.All-time install count (incl. churned).
installsInRange − uninstallsInRange.Active stores
GET /apps/developer/:appId/analytics/active-stores
An installation is “active” if it received at least one successful function
invocation or webhook delivery in the trailing 30 days. Use this to
distinguish parked installs from real users.
Distinct stores that exercised the app today.
7-day distinct stores.
30-day distinct stores.
dau / mau ratio.Function invocations
GET /apps/developer/:appId/analytics/functions
Aggregates rows from the AppFunctionRuns table (see
function runs) over the range.
Filter to one function.
Filter to one type (e.g.
discount, shipping_rate).Per-function rollup. Each entry:
{ functionHandle, functionType, invocations, success, error, timeout, p50Ms, p95Ms }.Daily bucket:
{ date, invocations, success, error, timeout }.Webhook delivery success rate
GET /apps/developer/:appId/analytics/webhooks
Aggregates rows from WebhookDeliveryLogs. Webhook delivery uses 3-retry
exponential backoff (1m / 5m / 15m); a delivery is failed only after the
final retry returns non-2xx.
success / deliveries.Average attempts before success —
1.0 means most deliveries succeed first try.Per-topic rollup. Each entry:
{ topic, deliveries, success, failed, successRate, p50LatencyMs }.Revenue
GET /apps/developer/:appId/analytics/revenue
Pulls from AppBillingTransactions and joins with the app’s pricing
configuration.
Total amount charged to merchants in range, before commission.
Platform fee withheld (typically 20%).
Developer-net revenue =
gross − commission.Monthly Recurring Revenue at end of range — sum of active subscription
developerAmount.Annual Recurring Revenue =
mrr × 12.% of MRR lost to cancellations in range, 0-1.
ISO-4217 currency code.
Error codes
| Code | Description |
|---|---|
401 | Missing or invalid developer JWT. |
403 | The calling developer does not own this app. |
404 | App not found. |
400 | Invalid range (not one of 7d, 30d, 90d, 12m) or malformed start / end. |