← Back to docs

Mobile usage statistics

Mobile usage statistics

Tools can receive anonymous aggregate usage counters from the Android app when the user explicitly enables Share anonymous usage statistics in app Preferences.

The Android option is disabled by default. Disabling it stops new statistics requests immediately.

Privacy contract

The endpoint stores daily aggregate counters only. It does not store raw event rows or user/device identity dimensions.

The Android statistics payload is deliberately separate from SocialGPT, screenshot, accessibility, clipboard, and account requests. It can contain only:

  • platform: currently android;
  • event: one fixed allowlisted event name;
  • value: an optional fixed categorical value, currently used for themes such as light, dark, and jessica.

The statistics payload must not contain screen text, screenshots, screenshot paths, prompts, generated replies, verification results, URLs, clipboard contents, bearer tokens, account identifiers, IP addresses, user agents, installation identifiers, device identifiers, contacts, or arbitrary free-form metadata.

API

POST /api/mobile/usage

The endpoint is intentionally anonymous. The Android client does not attach its Tools bearer token. The normal API middleware provides request throttling, while the application validates both the accepted request keys and the categorical allowlist before incrementing an aggregate counter.

Example request:

{
  "platform": "android",
  "event": "theme_active",
  "value": "jessica"
}

Successful ingestion returns HTTP 202 with an aggregate-only acknowledgement.

Administrator view

Administrators can open /admin/mobile-usage to see aggregate counts for the recent period, including app opens, active-theme ranking, coarse feature usage, and daily accepted event totals.

The administrator route requires authenticated admin access independently of the API endpoint. No per-user or per-device drill-down exists because that information is not stored.