User

Get information about the currently authenticated user.

This is the OIDC userinfo endpoint. OAuth tokens of any product audience are accepted as long as they carry the user:read scope (implied by data:read).

get/api/v1/user

Request

  • Base URL
    https://api.todoist.com
  • URL
    https://api.todoist.com/api/v1/user
  • Auth
    none declared

Response

Successful Response

idstring required

User ID

emailstring required

User's email address

full_namestring required

The user's real name formatted as Firstname Lastname

has_passwordboolean required

Whether the user has a password set on the account. It will be false if they have only authenticated without a password (e.g. using Google, Facebook, etc.)

verification_status'unverified' | 'verified' | 'blocked' | 'legacy' required

User's email verification status. unverified (just signed up), verified (verified email or social login), blocked (failed to verify in 7 days), legacy (signed up before August 2022)

mfa_enabledboolean required

Whether multi-factor authentication is enabled

tokenstring nullable

The user's token that should be used to call the other API methods

is_premiumboolean required

Whether the user has a Todoist Pro subscription (a true or false value)

premium_status'not_premium' | 'current_personal_plan' | 'legacy_personal_plan' | 'teams_business_member' nullable

Outlines why a user is premium, possible values are: not_premium, current_personal_plan, legacy_personal_plan or teams_business_member

premium_untilstring nullable

The date when the user's Todoist Pro subscription ends (null if not a Todoist Pro user). This should be used for informational purposes only as this does not include the grace period upon expiration

free_trial_expiresstring nullable

Date when free trial expires (ISO 8601 format)

has_started_a_trialboolean required

Whether the user has ever started a free trial

joined_atstring nullable

Date when user joined Todoist (ISO 8601 format)

is_deletedboolean

Whether the user is deleted

deleted_atstring nullable

Date when user was deleted (ISO 8601 format)

business_account_idinteger nullable

The ID of the user's business account

date_format0 | 1 required

Whether to use the DD-MM-YYYY date format (if set to 0), or the MM-DD-YYYY format (if set to 1)

time_format0 | 1 nullable

Whether to use a 24h format such as 13:00 (if set to 0) when displaying time, or a 12h format such as 1:00pm (if set to 1)

sort_order0 | 1 required

Whether to show projects in an oldest dates first order (if set to 0), or a oldest dates last order (if set to 1)

theme_idstring required

The currently selected Todoist theme (a number between 0 and 13)

theme_appearance'light' | 'dark' | 'system' required
start_dayinteger required

The first day of the week (between 1 and 7, where 1 is Monday and 7 is Sunday)

weekend_start_dayinteger required

The day used when a user chooses to schedule a task for the 'Weekend' (between 1 and 7, where 1 is Monday and 7 is Sunday)

next_weekinteger required

The day of the next week, that tasks will be postponed to (between 1 and 7, where 1 is Monday and 7 is Sunday)

auto_reminderinteger required

The default time in minutes for the automatic reminders set, whenever a due date has been specified for a task

start_pagestring required

The user's default view on Todoist. The start page can be one of the following: inbox, teaminbox, today, next7days, upcoming, assigned_to_me, project?id=1234 to open a project, label?name=abc to open a label, filter?id=1234 to open a filter, or workspace_filter?id=1234 to open a workspace filter

inbox_project_idstring nullable

The ID of the user's Inbox project

lang'cs' | 'da' | 'de' | 'en' | 'es' | 'fi' | 'fr' | 'it' | 'ja' | 'ko' | 'nl' | 'pl' | 'pt_BR' | 'ru' | 'sv' | 'tr' | 'zh_CN' | 'zh_TW' required

The user's language

tz_infoobject required

The user's timezone (a dictionary structure), which includes the following elements: the timezone as a string value, the hours and minutes difference from GMT, whether daylight saving time applies denoted by is_dst, and a string value of the time difference from GMT that is gmt_string

karmanumber required

The user's karma score

karma_trend'up' | 'down' | '-' nullable

The user's karma trend. Can be 'up', 'down', or '-' (no change)

daily_goalinteger required

The daily goal number of completed tasks for karma

weekly_goalinteger required

The target number of tasks to complete per week

days_offinteger[] required

Array of integers representing user's days off (between 1 and 7, where 1 is Monday and 7 is Sunday)

is_celebrations_enabledboolean required

Whether celebration animations are enabled

completed_countinteger required

Total number of tasks completed by user

completed_todayinteger required

Number of tasks completed today by the user

share_limitinteger required

Maximum number of collaborators allowed in shared projects

featuresobject required

Feature flags and settings for the user

feature_identifierstring required

Feature identifier for feature flag evaluations

joinable_workspaceobject nullable required

Information about workspaces the user can join

onboarding_completedboolean required

Whether the user has completed onboarding

onboarding_initiatedboolean required

Whether the user has initiated onboarding

onboarding_startedboolean required

Whether the user has started onboarding

onboarding_level'beginner' | 'intermediate' | 'pro' nullable

User's self-reported skill level during onboarding

onboarding_persona'analog' | 'tasks' | 'calendar' | 'organic' nullable

User's onboarding persona selection

onboarding_role'leader' | 'founder' | 'ic' nullable

User's role selection during onboarding

onboarding_team_modestring nullable

Whether user selected team mode during onboarding

onboarding_use_casesstring[] nullable

Use cases the user selected during onboarding

getting_started_guide_projectsstring[] nullable

List of project IDs for getting started guide

onboarded_dated_tasks_createdboolean nullable

True once the user has created at least 1 task with a due date that includes a time component (excluding auto-seeded getting-started-guide tasks).

onboarded_tasks_completedboolean nullable

True once the user has completed at least 3 tasks.

onboarded_mobile_accessedboolean nullable

True once the user has synced from iOS or Android.

onboarded_desktop_accessedboolean nullable

True once the user has synced from Web, macOS, or Windows.

is_onboardedboolean nullable

Composite flag: true once all four onboarded_* criteria above are met.

activated_userboolean required

Whether the user is considered activated (completed key onboarding actions)

has_magic_numberboolean required

Whether the user has reached a magic number milestone

image_idstring nullable

The ID of the user's avatar

avatar_bigstring nullable

The link to a 195x195 pixels image of the user's avatar

avatar_mediumstring nullable

The link to a 60x60 pixels image of the user's avatar

avatar_s640string nullable

The link to a 640x640 pixels image of the user's avatar

avatar_smallstring nullable

The link to a 35x35 pixels image of the user's avatar

websocket_urlstring required

WebSocket URL for real-time updates

Example response

{
  "id": "1234567",
  "email": "user@example.com",
  "full_name": "Maria Garcia",
  "has_password": true,
  "verification_status": "verified",
  "token": "0123456789abcdef0123456789abcdef01234567",
  "is_premium": true,
  "premium_status": "current_personal_plan",
  "premium_until": "2025-12-31T23:59:59Z",
  "free_trial_expires": "2025-03-01T00:00:00Z",
  "has_started_a_trial": true,
  "joined_at": "2025-01-15T10:30:00Z",
  "date_format": 1,
  "theme_id": "todoist",
  "start_day": 1,
  "weekend_start_day": 6,
  "next_week": 1,
  "auto_reminder": 30,
  "urgent_reminder_device": {
    "device_platform": "ios",
    "device_id": "device-123",
    "device_token": "token-123",
    "device_name": "Maria's iPhone"
  },
  "status": {
    "message": "On holiday",
    "emoji": "⛱️",
    "active_until": "2026-09-08T15:00:00Z"
  },
  "start_page": "inbox",
  "inbox_project_id": "6XGgm6PHrGgMpCFX",
  "lang": "en",
  "tz_info": {
    "gmt_string": "+01:00",
    "is_dst": false,
    "timezone": "Europe/Madrid"
  },
  "karma": 1024,
  "karma_trend": "up",
  "daily_goal": 5,
  "weekly_goal": 25,
  "days_off": [
    6,
    7
  ],
  "is_celebrations_enabled": true,
  "completed_count": 42,
  "completed_today": 3,
  "share_limit": 5,
  "features": {
    "webhooks": true
  },
  "feature_identifier": "1234567",
  "onboarding_completed": true,
  "onboarding_initiated": true,
  "onboarding_started": true,
  "onboarding_level": "intermediate",
  "onboarding_persona": "tasks",
  "onboarding_role": "ic",
  "onboarding_team_mode": "solo",
  "onboarding_use_cases": [
    "work"
  ],
  "getting_started_guide_projects": [
    "6XGgm6PHrGgMpCFX"
  ],
  "onboarded_dated_tasks_created": true,
  "onboarded_tasks_completed": true,
  "onboarded_mobile_accessed": true,
  "onboarded_desktop_accessed": true,
  "is_onboarded": true,
  "activated_user": true,
  "image_id": "abc123",
  "avatar_big": "https://dcff1xvirvpfp.cloudfront.net/avatar_big.jpg",
  "avatar_medium": "https://dcff1xvirvpfp.cloudfront.net/avatar_medium.jpg",
  "avatar_s640": "https://dcff1xvirvpfp.cloudfront.net/avatar_s640.jpg",
  "avatar_small": "https://dcff1xvirvpfp.cloudfront.net/avatar_small.jpg",
  "websocket_url": "wss://ws.todoist.com/ws?token=0123456789abcdef"
}

Changes