Skip to main content

Statistics and dashboard data

Dashboard stats

import * as AnalogWakaTime from '@analog-code-monitor/analog-wakatime-ts-sdk';

const configuration = new AnalogWakaTime.Configuration({
accessToken: process.env.ANALOG_WAKATIME_API_TOKEN,
});

const statisticsApi = new AnalogWakaTime.StatisticsApi(configuration);

const { data } = await statisticsApi.mainApiV1GetMyDashboardStatsGet();
console.log(data);

Language stats

const { data } = await statisticsApi.mainApiV1GetMyLanguageStatsGet();

for (const entry of data.languages ?? []) {
console.log(`${entry.name}: ${entry.total_seconds}s`);
}

Project stats

const { data } = await statisticsApi.mainApiV1GetMyProjectStatsGet();
console.log(data);

Activity heatmap

const { data } = await statisticsApi.mainApiV1GetMyProfileActivityHeatmapGet();
console.log(data);

Run independent reads concurrently

Statistics endpoints do not depend on each other, so Promise.all is safe:

const [dashboard, languages, projects] = await Promise.all([
statisticsApi.mainApiV1GetMyDashboardStatsGet(),
statisticsApi.mainApiV1GetMyLanguageStatsGet(),
statisticsApi.mainApiV1GetMyProjectStatsGet(),
]);