WakaTime

Overview

Pre-built tooling

✅ Authorization
ToolsStatus
Pre-built authorization (OAuth)✅
Credentials auto-refresh✅
Pre-built authorization UI✅
Custom authorization UI✅
Expired credentials detection✅
✅ Read & write data
ToolsStatus
Pre-built integrations✅
API unification✅
2-way sync✅
Webhooks from Tenklo on data modifications✅
Real-time webhooks from 3rd-party API🚫 (time to contribute: <48h)
Proxy requests✅
✅ Observability & data quality
ToolsStatus
HTTP request logging✅
End-to-end type safety✅
Data runtime validation✅
OpenTelemetry export✅
Slack alerts on errors✅
Integration status API✅
✅ Customization
ToolsStatus
Create or customize use-cases✅
Pre-configured pagination🚫 (time to contribute: <48h)
Pre-configured rate-limit handling🚫 (time to contribute: <48h)
Per-customer configurations✅

Others

Function nameDescriptionTypeSource code
create-heartbeats-bulkSend one or more coding-activity heartbeats in a single call (up to 25 per request, per WakaTime's documented limit).Action🔗 Github
delete-heartbeats-bulkPermanently delete one or more heartbeats on a given day by their IDs.Action🔗 Github
delete-projectPermanently delete a project record by its ID.Action🔗 Github
get-all-time-since-todayGet the total coding time logged since the account was created, up through today.Action🔗 Github
get-coding-activity-digestGet a consolidated view of the user's coding activity: profile, recent stats, today's heartbeats, goals, and lifetime total, flagging any component still being calculated.Action🔗 Github
get-current-userGet the authenticated WakaTime user's profile.Action🔗 Github
get-leaderboard-standingCOMPOSITE: find out where this user ranks - checks their private (team) leaderboard first (the first one, or the one given by leaderboard_id), and falls back to the public global leaderboard if they are not part of one.Action🔗 Github
get-metaGet WakaTime infrastructure metadata, including the public IP ranges of its API, website, and worker servers.Action🔗 Github
get-statsGet aggregate coding-activity stats (languages, editors, OSes, projects, categories) for a given range.Action🔗 Github
get-summariesGet per-day coding-activity summaries over a date range.Action🔗 Github
list-durationsList individual coding-activity duration blocks for a single given day.Action🔗 Github
list-external-durationsList externally-reported duration blocks for a single day.Action🔗 Github
list-goalsList the user's coding goals (e.g. daily/weekly time targets per project or language).Action🔗 Github
list-heartbeatsList all heartbeats (individual coding-activity pings) recorded for a single given day.Action🔗 Github
list-orgsList the WakaTime for Teams organizations this user belongs to.Action🔗 Github
list-private-leaderboardsList the private leaderboards (team/custom leaderboards) this user belongs to.Action🔗 Github
list-projectsList all projects WakaTime has recorded activity for (auto-created from heartbeats).Action🔗 Github
list-public-leaderboardList WakaTime's public global coding leaderboard, optionally filtered by language, country, or hireable status.Action🔗 Github
log-heartbeat-and-confirmCOMPOSITE: Create one or more heartbeats, poll until they are confirmed visible (or a timeout is reached), and optionally delete the heartbeats and any project they created.Action🔗 Github
daily-summariesSyncs per-day coding-activity summaries (grand totals plus language, project, and category breakdowns) over a rolling date window.Sync🔗 Github
goalsSync the user's configured coding goals.Sync🔗 Github
heartbeatsSync individual coding-activity heartbeats, windowed one day at a time.Sync🔗 Github
projectsSync all projects WakaTime has derived from the user's heartbeat history.Sync🔗 Github

Access requirements

Pre-RequisitesStatusComment
Paid dev account❓
Paid test account❓
Partnership❓
App review❓
Security audit❓

Setup guide

No setup guide yet.

Need help getting started? Get help in the community.
Contribute improvements to the setup guide by editing this page
Contribute useful links by editing this page

API gotchas

  • Access tokens expire after 60 days but can be refreshed with the refresh_token.
Contribute API gotchas by editing this page

On this page