---
title: "Get Productivity Stats"
method: GET
path: "/api/v1/tasks/completed/stats"
tags: ["User"]
---

# Get Productivity Stats

`GET /api/v1/tasks/completed/stats`

Get comprehensive productivity statistics for the authenticated user.
This endpoint is used to display information about the
[Karma system](https://www.todoist.com/help/articles/introduction-to-karma-OgWkWy).

Returns detailed completion statistics including:

- Daily completion counts with per-project breakdowns for the last 7 days
- Weekly completion counts with per-project breakdowns for the last 4 weeks
- Total completed task count
- Karma score, trend, graph data, and update history
- Goal settings (daily/weekly goals, ignore days, vacation mode)
- Streak information (current, last, and maximum daily and weekly streaks)
- Project color mappings for visualization

## Response `200`

Successful Response

- ProductivityStatsResponse — Comprehensive productivity statistics response. Includes completion counts, karma information, goals, and streaks.
  - `days_items` DailyCompletionItem[], required — Daily completion statistics for the last 7 days, ordered chronologically
    - `date` string, date, required — Date for this daily completion data (ISO 8601 format: YYYY-MM-DD)
    - `items` ProjectCompletedItem[], required — Per-project completion breakdown for this day
      - `id` string, required — Project ID (v1 or v2 format depending on API version)
      - `completed` integer, required — Number of tasks completed in this project during the time period
    - `total_completed` integer, required — Total number of tasks completed across all projects on this day
  - `week_items` WeeklyCompletionItem[], required — Weekly completion statistics for the last 4 weeks, ordered chronologically. Only available for Pro and Business plan users
    - `from` string, date, required — Start date of the week (Monday, ISO 8601 format: YYYY-MM-DD)
    - `to` string, date, required — End date of the week (Sunday, ISO 8601 format: YYYY-MM-DD)
    - `items` ProjectCompletedItem[], required — Per-project completion breakdown for this week
      - `id` string, required — Project ID (v1 or v2 format depending on API version)
      - `completed` integer, required — Number of tasks completed in this project during the time period
    - `total_completed` integer, required — Total number of tasks completed across all projects during this week
  - `project_colors` object, required — Mapping of project IDs to their color names (e.g., {'2aB3cD4eF5gH6iJ7': 'blue', '8kL9mN0oP1qR2sT3': 'red'})
  - `completed_count` integer, required — Total number of tasks completed by the user (all time)
  - `karma` number, required — Current karma score
  - `karma_trend` string, required — Karma trend indicator ('up' or 'down')
  - `karma_graph_data` GraphPoint[], required — Historical karma data points for graphing, each containing date and karma_avg
    - `date` string, required — Date for the karma data point in YYYY-MM-DD format.
    - `karma_avg` integer, required — Average karma score for this date.
  - `karma_last_update` number, required — Net karma change from the most recent update (positive_karma + negative_karma)
  - `karma_update_reasons` KarmaUpdateReasonEntry[], required — Recent karma update events with reasons and amounts
    - `time` string, nullable — Timestamp when this karma update occurred (ISO 8601 datetime)
    - `new_karma` number, required — New total karma score after this update
    - `positive_karma` number, required — Amount of karma gained in this update
    - `negative_karma` number, required — Amount of karma lost in this update (negative value)
    - `positive_karma_reasons` PositiveKarmaReason[], required — List of reason codes for karma gains. Values: 1=Tasks added, 2=Tasks completed, 3=Advanced features, 4=Signup, 5=Beta upgrade, 6=Support activity, 7=Premium upgrade, 8=Getting started, 9=Daily goal reached, 10=Weekly goal reached
    - `negative_karma_reasons` NegativeKarmaReason[], required — List of reason codes for karma losses. Values: 50=Tasks overdue, 51=Tasks postponed, 52=Is inactive
  - `goals` GoalsSettings, required — User goals and settings.
    - `user` string, required — User ID (legacy field, same as user_id)
    - `user_id` string, required — User ID
    - `daily_goal` integer, required — Daily task completion goal set by the user
    - `weekly_goal` integer, required — Weekly task completion goal set by the user
    - `ignore_days` integer[], required — List of weekday numbers (0=Sunday, 1=Monday, ..., 6=Saturday) excluded from daily goals
    - `vacation_mode` integer, required — Vacation mode status (0=disabled, 1=enabled)
    - `karma_disabled` integer, required — Karma tracking status (0=enabled, 1=disabled)
    - `current_daily_streak` StreakInfo, required — Streak information (count and dates).
      - `count` integer, required — Number of consecutive days/weeks in the streak
      - `start` string, date, nullable — Start date of the streak (ISO 8601 format: YYYY-MM-DD), or null if no streak
      - `end` string, date, nullable — End date of the streak (ISO 8601 format: YYYY-MM-DD), or null if no streak
    - `current_weekly_streak` StreakInfo, required — Streak information (count and dates).
      - `count` integer, required — Number of consecutive days/weeks in the streak
      - `start` string, date, nullable — Start date of the streak (ISO 8601 format: YYYY-MM-DD), or null if no streak
      - `end` string, date, nullable — End date of the streak (ISO 8601 format: YYYY-MM-DD), or null if no streak
    - `last_daily_streak` StreakInfo, required — Streak information (count and dates).
      - `count` integer, required — Number of consecutive days/weeks in the streak
      - `start` string, date, nullable — Start date of the streak (ISO 8601 format: YYYY-MM-DD), or null if no streak
      - `end` string, date, nullable — End date of the streak (ISO 8601 format: YYYY-MM-DD), or null if no streak
    - `last_weekly_streak` StreakInfo, required — Streak information (count and dates).
      - `count` integer, required — Number of consecutive days/weeks in the streak
      - `start` string, date, nullable — Start date of the streak (ISO 8601 format: YYYY-MM-DD), or null if no streak
      - `end` string, date, nullable — End date of the streak (ISO 8601 format: YYYY-MM-DD), or null if no streak
    - `max_daily_streak` StreakInfo, required — Streak information (count and dates).
      - `count` integer, required — Number of consecutive days/weeks in the streak
      - `start` string, date, nullable — Start date of the streak (ISO 8601 format: YYYY-MM-DD), or null if no streak
      - `end` string, date, nullable — End date of the streak (ISO 8601 format: YYYY-MM-DD), or null if no streak
    - `max_weekly_streak` StreakInfo, required — Streak information (count and dates).
      - `count` integer, required — Number of consecutive days/weeks in the streak
      - `start` string, date, nullable — Start date of the streak (ISO 8601 format: YYYY-MM-DD), or null if no streak
      - `end` string, date, nullable — End date of the streak (ISO 8601 format: YYYY-MM-DD), or null if no streak

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found

---

[API](https://skmtc.net/todoist/apis/todoist-api.md) · [All operations](https://skmtc.net/todoist/apis/todoist-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/todoist/todoist-api/revisions/69a962f1578f/schema)
