Skip to content

Reference

Todoist

Set up Todoist OAuth for task and project management

Connect your users to Todoist for task management, project organization, and productivity tracking.

PropertyValue
Provider IDtodoist
CategoryProductivity
PKCENot supported
Token refreshAutomatic (new apps); legacy apps use permanent tokens
Redirect URIShown in Developer Portal

Go to the Todoist App Console

Create a new app

Click Create a new app, enter the app name and description, and submit.

Configure the redirect URI

Add the Alter callback URL from the Developer Portal to the OAuth redirect URL field.

Get credentials

Copy the Client ID and Client Secret.

Open the Developer Portal

Go to portal.alterauth.com and navigate to the application.

Add Todoist provider

Go to OAuth Providers > Add Provider > Todoist.

Enter credentials

  • Client ID: Paste your Todoist Client ID
  • Client Secret: Paste your Todoist Client Secret

Select scopes

Choose the scopes the application needs.

Save

Click Save. The provider is now active.

ScopeDescription
task:addCreate new tasks in Todoist
data:readRead all Todoist data including tasks, projects, and labels
data:read_writeRead and modify all Todoist data — includes all read permissions, supersedes data:read
data:deleteDelete Todoist tasks, projects, and other data
project:deleteDelete Todoist projects
ScopeDescription
backups:readRead Todoist data backups
billing:readRead billing and subscription information
billing:read_writeRead and manage billing and subscription information
dev:app_consoleManage developer apps in the Todoist App Console
user:readRead user account information
user:writeModify user account settings
workspaces:readRead workspace information and members
workspaces:writeManage workspaces and their members
  • Newly-created Todoist apps issue refresh tokens by default; access tokens expire after one hour and Alter Vault renews them automatically. Apps created before refresh tokens were introduced continue to receive long-lived tokens that do not expire.
  • For most integrations, data:read or data:read_write is sufficient.
  • See the Todoist authorization documentation for more details.

Alter policy rules can target these attested operations and families for operation-level and parameter-aware controls.

Operation IDFamiliesMethodProvider path
create_task_api_v1_tasks_postwritePOST/api/v1/tasks
get_task_api_v1_tasks__task_id__getreadGET/api/v1/tasks/{task_id}
get_tasks_api_v1_tasks_getreadGET/api/v1/tasks
get_tasks_by_filter_api_v1_tasks_filter_getreadGET/api/v1/tasks/filter
update_task_api_v1_tasks__task_id__postwritePOST/api/v1/tasks/{task_id}
close_task_api_v1_tasks__task_id__close_postwritePOST/api/v1/tasks/{task_id}/close
reopen_task_api_v1_tasks__task_id__reopen_postwritePOST/api/v1/tasks/{task_id}/reopen
move_task_api_v1_tasks__task_id__move_postwritePOST/api/v1/tasks/{task_id}/move
delete_task_api_v1_tasks__task_id__deletedeleteDELETE/api/v1/tasks/{task_id}
create_project_api_v1_projects_postwritePOST/api/v1/projects
get_project_api_v1_projects__project_id__getreadGET/api/v1/projects/{project_id}
get_projects_api_v1_projects_getreadGET/api/v1/projects
update_project_api_v1_projects__project_id__postwritePOST/api/v1/projects/{project_id}
archive_project_api_v1_projects__project_id__archive_postwritePOST/api/v1/projects/{project_id}/archive
delete_project_api_v1_projects__project_id__deletedeleteDELETE/api/v1/projects/{project_id}
get_archived_api_v1_projects_archived_getreadGET/api/v1/projects/archived
permissions_api_v1_projects_permissions_getreadGET/api/v1/projects/permissions
get_project_collaborators_api_v1_projects__project_id__collaborators_getreadGET/api/v1/projects/{project_id}/collaborators
create_section_api_v1_sections_postwritePOST/api/v1/sections
get_sections_api_v1_sections_getreadGET/api/v1/sections
delete_section_api_v1_sections__section_id__deletedeleteDELETE/api/v1/sections/{section_id}
create_comment_api_v1_comments_postwritePOST/api/v1/comments
get_comments_api_v1_comments_getreadGET/api/v1/comments
delete_comment_api_v1_comments__comment_id__deletedeleteDELETE/api/v1/comments/{comment_id}
create_label_api_v1_labels_postwritePOST/api/v1/labels
get_labels_api_v1_labels_getreadGET/api/v1/labels
delete_label_api_v1_labels__label_id__deletedeleteDELETE/api/v1/labels/{label_id}

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.