Skip to content

Devices and analytics API ​

All routes require a dashboard session with at least the viewer role in the organization. API tokens are not accepted. Requests for an app outside the organization return 404.

Devices ​

Method and pathSuccessResponse
GET /api/v1/orgs/:orgId/devices200 JSONOrganization totals and per-app device summaries
GET /api/v1/orgs/:orgId/devices/apps/:appId200 JSON{ "items": [...] } of up to 100 recent devices

The overview reports total devices, active installs in the last 7 and 30 days, new devices in 30 days, country breakdown, daily new-device counts, and per-app platform/version/country breakdowns. The app list shows only a 12-character prefix of each device hash; it does not expose the device ID. Device data comes from clients that send X-Device-Id to an update feed. Without that header, feed requests do not contribute device check-ins.

Download and adoption statistics ​

Method and path suffix under /api/v1/orgs/:orgIdSuccessResponse
GET /stats/overview200 JSONOrganization app totals and totalDownloads30d
GET /apps/:appId/stats/overview200 JSONApp downloads, active installs, latest version and adoption
GET /apps/:appId/stats/downloads200 JSON{ "points": [{ "bucket": "…", "count": 0 }] }
GET /apps/:appId/stats/versions200 JSONVersion download breakdown
GET /apps/:appId/stats/platforms200 JSONPlatform download breakdown
GET /apps/:appId/stats/channels200 JSONChannel download breakdown
GET /apps/:appId/stats/countries200 JSONCountry download breakdown
GET /apps/:appId/stats/adoption200 JSONActive installs by version
GET /apps/:appId/stats/releases/:releaseId/adoption200 JSON{ "activeInstalls": 0 }
GET /apps/:appId/stats/downloads.csv200 CSVDownload points as an attachment

The downloads, CSV, and breakdown routes accept range=7d|30d|90d|all (default 30d). Downloads and CSV also accept granularity=day|week|month (default day). Breakdown items contain key, label, count, and percent. Invalid query values return a route-validation 400 response.

sh
curl --cookie "$RD_SESSION_COOKIE" \
  "$RD_URL/api/v1/orgs/$ORG_ID/apps/$APP_ID/stats/downloads?range=30d&granularity=week"

The app overview and release adoption routes do not accept those range parameters. CSV returns text/csv; charset=utf-8 and a filename based on the app slug.