Stats & profile
Authenticated read APIs used by dashboards, account tools, and SDK integrations. All routes accept either a session JWT or a personal API token through Bearer authentication.
These summaries describe purpose, not every nested JSON field. Response shapes can gain additive properties over time.
Profile
GET /main/api/v1/get/my/profile/info
Returns the complete account response used by the application: identity and provider data, account state, subscription flags, account roles, team roles, active subscription records, and team dashboard memberships.
| Response field | Contents |
|---|---|
old_id, uuid | Legacy numeric ID and stable public UUID |
name, email, avatar | Public-facing account identity |
created_at, updated_at | Account timestamps |
provider, provider_id | Authentication provider metadata |
is_active | Account activity state |
stripe_customer_id | Customer identifier associated with billing |
has_solo_plus, has_solo_plus_plus | Product entitlement flags |
has_active_subscription | Combined active-subscription flag |
roles | Account roles with roleId and name |
team_roles | Team role, role name, and team UUID |
subscriptions | Active subscription and billing-period records |
team_dashboard | Team dashboard membership and ownership records |
Python SDK:
profile = await profile_api.main_api_v1_get_my_profile_info_get()
print(profile.to_json())
Go SDK:
profile, _, err := client.ProfileAPI.
MainApiV1GetMyProfileInfoGet(ctx).
Execute()
Profile edits (name, avatar upload) are available to the first-party web app. Integrators that only sync activity usually do not need write profile routes.
Coding statistics
Common reads:
| Method & path | Purpose |
|---|---|
GET /main/api/v1/get/my/language/stats | Time broken down by language |
GET /main/api/v1/get/my/activity/history | Historical activity slices |
GET /main/api/v1/get/my/dashboard/stats | Dashboard aggregate cards (IDE activity) |
GET /main/api/v1/get/my/dashboard/stats/desktop | Dashboard aggregates for desktop-agent activity |
GET /main/api/v1/get/my/project/stats | Per-project breakdown |
GET /main/api/v1/get/my/profile/activity/heatmap | Heatmap-oriented activity series |
Use these when building a custom dashboard client. Prefer the hosted UI at analogwakatime.com/dashboard for end users.
History access by plan
The period query accepts day, week, month, year, and all where documented.
| Account access | Available history |
|---|---|
| Free | most recent seven days (week) |
| Active paid personal plan | up to one year (month and year) |
| Unlimited-history plan | all history (all) |
Free accounts should request period=week. Requests for month, year, or all outside the account entitlement return 403 with code: subscription-required.
dashboard = await statistics_api.main_api_v1_get_my_dashboard_stats_get()
projects = await statistics_api.main_api_v1_get_my_project_stats_get(period="week")
The main dashboard aggregate has no period argument. The server automatically limits it to seven days for Free accounts, one year for eligible paid accounts, or all history for unlimited-history accounts.
See Python SDK statistics and Go SDK statistics for complete examples.
Exports
Users can download their own data:
| Path | Purpose |
|---|---|
GET /main/api/v1/export/my/profile-data | Profile-oriented export JSON |
GET /main/api/v1/export/my/activity-data | Activity history export JSON |
Treat export files as sensitive (they can include identifiers and tokens depending on export type). See the site Export Data Policy.
Teams & leaderboards (high level)
Authenticated team and personal leaderboard reads exist for product features (for example “my top” leaderboard entries and team role listing). Exact team-administration and invitation workflows are owned by the web app and are not fully enumerated here.
What is not covered
For safety and product integrity, this public docs set does not expand on:
- billing provider webhooks and subscription mutation internals
- two-factor setup/backup material beyond “2FA exists in the product”
- account deletion state machines
- operator / metrics / internal service routes
- privileged device-authorize helpers beyond the plugin poll flow
Contact support if you need a partner integration beyond the documented client surface.