Todoist is consistently one of our favorite to-do apps. The company is pretty good about releasing useful updates, and today it's adding a Boards feature that should make it even easier to organize and visualize your tasks and projects. The Boards format makes Todoist look a. Todoist is an excellent option for managing the Projects, Next Actions, and Waiting For lists in your system. Your next action or waiting for description. That way, you can rely on the powerful Todoist search function in the top middle of Todoist, use the shortcut keys ( / ) or ( f ) or (ctrl f in Windows 10) to pull together related. Todoist understands natural language when it comes to days, months, etc. For adding a specific date, type in the date in your preferred format or use the calendar to select a date. The really neat thing is that you can type in all of this in the task field, without having to use your mouse. Ranked as “the best to-do list right now” by The Verge, Todoist is used by 25 million people to organize work and life and to keep tabs on all those incoming work items. If you don’t already have an account, sign up for free at The Todoist app makes it.
Thanks for your interest in developing apps with Todoist! In this guides section we'll provide an overview of the APIs we offer and cover some common topics for application development using our APIs.
If you are looking for reference documentation for our APIs please proceed to either the REST API Reference or Sync API Reference.
Our APIs
We offer two APIs for external developers, providing different models for sending and receiving data.
Rest API
The Todoist REST API offers the simplest approach to read and write data on the Todoist web service.
For most common application requirements this is our recommended API for external developers and uses an approach that should be familiar for anyone with experience calling RESTful APIs.
We've provided a Getting Started tutorial section within our REST API documentation to introduce you to the API and some common flows you'll encounter when developing Todoist applications. If you are totally new to our APIs or even unfamiliar with Todoist this is a great place to start.
Sync API
The Todoist Sync API is used by our web and mobile applications and is recommended for clients that will maintain alocal representation of a user's full account data. It allows for incrementally sending and receiving account data by identifying positions in an account's state history using a sync token.
This API also contains additional endpoints for areas like account management and less common features that may not yet be implementedon the newer REST API.
Within the documentation for the Sync API you'll also find a Getting Started tutorial that will introduce you to using the Sync endpoint to send and receive data.
In order to make authorized calls to the Todoist REST or Sync APIs, your application must firstobtain an access token.
The following section describes the process for using the OAuth protocol to obtain an access token from the user.
OAuth
External applications can obtain a user authorized API token via the OAuth2protocol. Before getting started, developers need to create their applicationsin the App Management Console and configure a valid OAuthredirect URL. A registered Todoist application is assigned a unique Client ID
and Client Secret
which are needed for the OAuth2 flow.
This procedure is comprised of 3 steps.
Step 1: Authorization request
An example of the URL to the authorization endpoint:
Redirect users to the authorization URL at the endpointhttps://todoist.com/oauth/authorize
, with the specified request parameters.
Required parameters
Name | Description |
---|---|
client_id String | The unique Client ID of the Todoist application that you registered. |
scope String | A comma separated list of permissions that you would like the users to grant to your application. See the below table for detail on the available scopes. |
state String | A unique and unguessable string. It is used to protect you against cross-site request forgery attacks. |
Permission scopes
Name | Description |
---|---|
task:add | Grants permission to add new tasks (the application cannot read or modify any existing data). |
data:read | Grants read-only access to application data, including tasks, projects, labels, and filters. |
data:read_write | Grants read and write access to application data, including tasks, projects, labels, and filters. This scope includes task:add and data:read scopes. |
data:delete | Grants permission to delete application data, including tasks, labels, and filters. |
project:delete | Grants permission to delete projects. |
Potential errors
Error | Description |
---|---|
User Rejected Authorization Request | When the user denies your authorization request, Todoist will redirect the user to the configured redirect URI with the error parameter: http://example.com?error=access_denied . |
Redirect URI Not Configured | This JSON error will be returned to the requester (your user's browser) if redirect URI is not configured in the App Management Console. |
Invalid Application Status | When your application exceeds the maximum token limit or when your application is being suspended due to abuse, Todoist will redirect the user to the configured redirect URI with the error parameter: http://example.com?error=invalid_application_status . |
Invalid Scope | When the scope parameter is invalid, Todoist will redirect the user to the configured redirect URI with error parameter: http://example.com?error=invalid_scope . |
Step 2: Redirection to your application site
When the user grants your authorization request, the user will be redirected tothe redirect URL configured for your application. The redirect requestwill come with two query parameters attached: code
and state
.
The code
parameter contains the authorization code that you will use toexchange for an access token. The state
parameter should match the state
parameter that you supplied in the previous step. If the state
is unmatched,your request has been compromised by other parties, and the process should beaborted.
Step 3: Token exchange
An example of exchanging the token:
On success, Todoist returns HTTP 200 with token in JSON object format:
Once you have the authorization code
, you can exchange it for the access tokenby sending a POST
request to the following endpoint:
https://todoist.com/oauth/access_token
.
Required parameters
Name | Description |
---|---|
client_id String | The Client ID of the Todoist application that you registered. |
client_secret String | The Client Secret of the Todoist application that you registered. |
code String | The code that was sent in the query string to the redirect URL in the previous step. |
Potential errors
Error | Description |
---|---|
Bad Authorization Code Error | Occurs when the code parameter does not match the code that is given in the redirect request: {'error': 'bad_authorization_code'} |
Incorrect Client Credentials Error | Occurs when the client_id or client_secret parameters are incorrect: {'error': 'incorrect_application_credentials'} |
Some objects (like projects, labels, and filters) returned by our APIs may have colors defined by anid or name. The table below shows all information you may need for any of these colors.
ID | Name | Hexadecimal | ID | Name | Hexadecimal |
---|---|---|---|---|---|
30 | berry_red | #b8256f | 40 | light_blue | #96c3eb |
31 | red | #db4035 | 41 | blue | #4073ff |
32 | orange | #ff9933 | 42 | grape | #884dff |
33 | yellow | #fad000 | 43 | violet | #af38eb |
34 | olive_green | #afb83b | 44 | lavender | #eb96eb |
35 | lime_green | #7ecc49 | 45 | magenta | #e05194 |
36 | green | #299438 | 46 | salmon | #ff8d85 |
37 | mint_green | #6accbc | 47 | charcoal | #808080 |
38 | teal | #158fad | 48 | grey | #b8b8b8 |
39 | sky_blue | #14aaf5 | 49 | taupe | #ccac93 |
Our applications for Android and iOS support custom URL schemes for launching to specific views and initiating some common actions.
Views
The following schemes are available to open a specific view:
Scheme | Description |
---|---|
todoist:// | Opens Todoist to the user's default view. |
todoist://today | Opens the today view. |
todoist://upcoming | Opens the Upcoming view. |
todoist://profile | Opens the profile view. |
todoist://inbox | Opens the inbox view. |
todoist://teaminbox | Opens the team inbox view. If the user doesn't have a business account it will show an alert and redirect automatically to the inbox view. |
todoist://notifications | Opens notifications view. |
Tasks
Example of adding a task:
Here's an example of a content value:
And how it should be supplied using Percent-encoding:
Here's an example of a date value:
And how it should be supplied using Percent-encoding:
The following schemes are available for tasks:
Scheme | Description |
---|---|
todoist://task?id={id} | Opens a task by ID. |
todoist://addtask | Opens the add task view to add a new task to Todoist. |
The todoist://addtask
scheme accepts the following optional values:
Value | Description |
---|---|
content URL encoding | The content of the task, which should be a string that is in Percent-encoding (also known as URL encoding). |
date URL encoding | The due date of the task, which should be a string that is in Percent-encoding (also known as URL encoding). Look at our reference to see which formats are supported. |
priority Integer | The priority of the task (a number between 1 and 4 , 4 for very urgent and 1 for natural). Note: Keep in mind that very urgent is the priority 1 on clients. So, p1 will return 4 in the API. |
Todoist Descriptions
This URL scheme will not automatically submit the task to Todoist, it will just open and pre-fill the add task view. If no values are passed, the add task view will just be opened.
Projects
The following schemes are available for tasks:
Scheme | Description |
---|---|
todoist://projects | Opens the projects view (shows all projects). |
todoist://project?id={id} | Opens a specific project by ID. |
Example of opening a specific project:
The todoist://project
scheme accepts the following required value:
Value | Description |
---|---|
id Integer | The ID of the project to view. If the ID doesn't exist, you don't have access to the project, or the value is empty, an alert will be showed and the user will be redirected to the projects view. |
Labels
The following schemes are available for labels:
Scheme | Description |
---|---|
todoist://labels | Opens the labels view (shows all labels) |
todoist://label?name={name} | Opens a specific label by name. |
Example of opening a specific label:
The todoist://label
scheme accepts the following required value:
Value | Description |
---|---|
name String | The name of the label to view. If the label doesn't exist, you don't have access to the label, or the value is empty, an alert will be shown. |
Filters
The following schemes are available for filters:
Scheme | Description |
---|---|
todoist://filters | Opens the filters view (shows all filters) |
todoist://filter?id={id} | Opens a specific filter by ID. |
Example of opening a specific filter:
The todoist://filter
scheme accepts the following required value:
Value | Description |
---|---|
id Integer | The ID of the filter to view. If the ID doesn't exist, you don’t have access to the filter, or the value is empty, an alert will be showed and the user will be redirected to the filters view. |
Search
The following scheme is available for searching (Android only):
Scheme | Description |
---|---|
todoist://search?query={query} | Used to search in the Todoist application. |
Example of searching for 'Test & Today':
The todoist://search
scheme accepts the following required value:
Value | Description |
---|---|
query URL encoding | The query to search in the Todoist application, which should be a string that is in Percent-encoding (also known as URL encoding). |
Market your app to millions of Todoist users with a custom integration page. Our searchable directory lets our audience easily find, install, and use your app — making it an effortless yet effective way to promote your work!
Get started today.
Submissions
To begin, fill out the app submissions form. Just add a marketing description, installation instructions, and links to your website and privacy policy.
We'll also ask you for some images, in the following format:
- Your app icon, in JPG format on a white background. The size of the image should be 250x250px.
- One or more screenshots in JPG format at 1600x1000px. If your screenshot includes images of Todoist it should use the default theme (Red).
Review
After you've submitted your app, we'll email you a confirmation. We aim to review submissions and respond with any feedback within 10 business days.
During the review, we'll make sure:
- All the fields in the submission form are filled out in English.
- Your app complements or enhances the functionality of Todoist. It should not replicate functionality already included.
- Your app is free of any functional errors during our testing.
- Users can easily set up the integration using the instructions you've provided.
- All links provided are HTTPS enabled to ensure the security of our users.
- Any use of the Todoist name or logo follow our brand guidelines.
- Your privacy policy ensures you will not sell or share our user's data to any third parties without their consent.
- The marketing descriptions and images you've provided are clear and follow our style.
If we find any issues along the way, we'll be in touch via email and work with you to resolve them.If you have any questions or updates at any time, you can reply to any of the emails you've received during the submissions process. We'll aim to get back to you within 2 business days.
Publishing
Once your submission has passed our review, we'll publish your listing and provide you with a public link that youcan share! We'll also translate your listing to expand the reach of your marketing.
If you have any further questions or updates to provide after we've published your integration page,you can always reach out to our integrations team at integrations@doist.com.We're happy to help!
Thanks for using Todoist's APIs to build an application!
If you plan to utilize Todoist's logo or branding in the visual designof your application or website, please adhere toTodoist's brand guidelines.
In addition, please take note of the following:
- 'Todoist' should not be the first word in your application's name. Itmay be used elsewhere in the name, though. For instance 'x forTodoist' or 'x with Todoist', etc. This makes it clear that yourapplication is created by you and not by Doist.
- You must clearly state that your application is 'not created by,affiliated with, or supported by Doist' in your applicationdescription.
By using the Todoist marks you agree to properly follow the abovebrand guidelines as well asour Terms of Service. For furtherinformation about the use of the Todoist brand, please contactpress@doist.com.
Interested in developing an integration for Todoist but unsure where to start? Get in touch with us atintegrations@doist.com,and we'll be happy to help.
There are surprisingly many (19!) ways to add tasks in Todoist. Here you will get a detailed overview of all of them.
The ability to quickly add a task to your task manager is vital for ensuring what David Allen refers to as “one trusted system.” The fact that you quickly can add a task or idea in almost any situation is one of the reasons why I like Todoist.
You can add tasks in Todoist using the keyboard on your phone or computer. With the help of Google Assistant, Alexa, or Siri you can use your voice to add tasks. You can also add tasks by email or automate the process using IFTTT.
Typing in tasks in Todoist
Whether you are using the web version, the Windows 10 app, or the Mac version, you can start by clicking on the Add Task link. Then you can type in whatever you want in the task window. By clicking on the different icons in the bottom right corner, you can add or select project, label, reminder, priority, and comment.
Using the keyboard shortcut
In Todoist, hitting the Q button on your keyboard will automatically bring up the Quick Add Task window. This is a free-floating window with the same design as the Add Task window.
How to add tasks in Todoist using only the keyboard
In either one of these windows, it is possible to add a task, with a project, label, priority, and date – all without using the mouse. Here is how:
- Hit Q on your keyboard to bring up the window.
- Type in the task.
- Hit the space-key, after that #. This brings up your project list.
- Start typing the project name until the project you want shows up.
- If needed, use the arrow keys to set the focus on the correct project.
- Hit Enter to select a project.
- If you are using a shared project, and want to assign the task to a project member, hit the + sign.
- Select the person, and hit Enter.
- Hit the space-key, after that @. This brings up a list of your labels.
- Select in the same manner as with projects.
- If you want to add a priority, hit the space-key, after that P.
- Type in priority between 1 and 3.
- To add a date, hit the space-key, after that type the date or day. See below, for details on dates.
Adding dates
Todoist understands natural language when it comes to days, months, etc. For adding a specific date, type in the date in your preferred format or use the calendar to select a date.
TYPE | TO GET |
Mon | Next Monday |
Tue | Next Tuesday |
Wed | Next Wednesday |
Thu | Next Thursday |
Fri | Next Friday |
Sat | Next Saturday |
Sun | Next Sunday |
Tod | Today |
Tom | Tomorrow |
Every Monday | Every Monday |
Every other Monday | Every other Monday |
Every third Monday | Every third Monday |
Every Month | Every Month |
The really neat thing is that you can type in all of this in the task field, without having to use your mouse.
Adding comments
A thing I find a bit annoying is that if you want to add more than one comment, or if you want to add attachments or emails, you will not get the functionality needed for this by using the comment function from Add Task windows.
The workaround here is to set the date to today’s date (Today.) Then you add the comments, files, or emails, and then change the date to the date that you want this task to be done.
38 keyboard shortcuts that will improve productivity in Todoist and Evernote
Read More
Emailing tasks to a project in Todoist
You can email a task to any project in Todoist, including your inbox. This is done using the unique email address associated with each project. You can find this address by clicking on the Project Actions icon and then selecting Email tasks to this project.
Adding emails from Outlook
Using the Todoist Outlook add-in, you can easily add emails as an attachment or as a task. What is outstanding with this add-in is that the email keeps the connection to Outlook, making it possible to open the email directly from the Todoist Outlook add-in.
Add the email itself as a task
- Click on the email in Outlook.
- With the email in focus, click on the + in the Todoist Outlook add-in.
- Click on the Add email as task link at the bottom of the Quick Add Task window.
- Add project, label, priority, and date as needed.
- Click the Add Task button.
Add the email as an attachment to a task
- Click on the email in Outlook.
- Click on the grey comment icon to the right of the task.
- Hit the + button under Add comment.
- Click the Add Comment button.
- Close the task using the X in the upper right corner.
To download the Outlook add-in, go to https://en.todoist.com/downloads.
Adding emails from Gmail
With the Todoist Gmail add-in, it’s very easy to create tasks based on your email.
- Click on the Todoist icon in Gmail. This brings up the Quick Add Task window.
- Follow instructions as for Typing in tasks in Todoist.
Adding tasks from your browser
Todoist have add-ins for Chrome, Firefox, and Safari. The instructions should be identical for all browsers.
Add tasks in Todoist from Chrome
- Click on the Todoist icon in your browser. This will open a small window similar to the web version of Todoist.
- Either click on the + icon, click on Add Task or use the Q key on your keyboard.
- Follow the instructions for Typing in tasks in Todoist.
You can find all the add-ins by visiting https://en.todoist.com/downloads
How to use Chrome productively: Extensions and keyboard shortcuts
Read More
Add tasks in Todoist from your Android phone or tab
This can be done by tapping on the + icon in the lower right corner. You can also use a dedicated widget. When tapped, this will bring up the Add Task window. See the instructions for Typing in tasks in Todoist. Be aware that the keyboard shortcut does not work here.
Adding tasks from a Samsung phone with a Bixby button
If you have a Samsung Galaxy S8, S9, Note8, or Note9, you have a dedicated button for Bixby, Samsung’s smart assistant. If you do not use Bixby, there are several apps that let you deactivate or reassign this button for other purposes.
I have used the bxActions app to make this button bring up the Add Task window on my Samsung Galaxy Note8.
Add a task using Braintoss
Braintoss is a great app that let you add a task to your Todoist inbox in the form of a text, image or audio recording. See the below blog post for details.
How to set up Braintoss for Todoist to capture ideas on the move
Read More
Add tasks in Todoist using Google Assistant
Using Google Assistant, you can add tasks by following these steps:
- a. Say “OK Google, let me talk to Todoist.” or
b. Long press the Home button on your phone and say “Let me talk to Todoist.” - Say “Add a task Buy cat food.”
- After adding the task, the Todoist assistant will inform you that “The task has been added. Any changes?” At this point, you can move it to a project, add a label or set the task’s priority.
- You can move it to a project such as “Shopping” by saying:
- “Move it to shopping.“
- “Move to shopping.“
- “Project shopping.”
- You can add a label to the task, such as “Important”:
- “Add label important.”
- “Add important label.”
- “Label important.”
- You can set the priority of the task as well:
- “Set priority 4.”
- “Priority 3.”
- “Set priority to 1.”
Add an email as a task from Nine Email
Nine Email is the best Android-based email app I have found as an alternative for Newton.
The app lets you share the email text as a task or comment in Todoist.
Adding a task from your Android Wear wearable
I haven’t tried this myself, but it’s supposed to work like this:
- Say “OK Google, start to do list. Add task. Buy cat food.”
- The task Buy cat food is then added to your Todoist Inbox.
Add tasks in Todoist from your iPhone or iPad
You can add a task to Todoist from the widget on your iOS device. See the instructions for Typing in tasks in Todoist. Be aware that the keyboard shortcut does not work here.
Add tasks using Siri
To add tasks using Siri, call up Siri and use one of the following sentences:
- “Add [task name] in Todoist.”
- “Add a task named [task name] in Todoist.”
- “Remind me to [task name] in Todoist.”
To add a due date and time and/or a project to any task, use the following format:
- “Add [task name] [due date and time] in Todoist.”
- “Add [task name] to my [project name] list in Todoist.”
Add task via voice command on Apple Watch
- Open the Todoist app by tapping the Todoist logo on your Apple Watch.
- Force touch anywhere inside the app, and you will see the option to Add Task.
- Once you see the voice recognition waves, say the task details and tap Done.
- On the next screen, you can select the task’s project.
- When you are finished, tap Save.
Add tasks in Todoist using Google Home
The Google Home is powered by Google Assistant. To add a task to Todoist, start with saying
“OK Google, let me talk to Todoist.” Then, follow the instructions for Google Assistant.
What Is Todoist
Using Amazon Echo and Alexa to add tasks in Todoist
Todoist can be enabled as a skill in Alexa. When this is done, you will be able to use your voice to add tasks in Todoist. I have not tried this myself and will, therefore, recommend Todoists article on how to do this, as well as Toms Guide also on how to set up Todoist with Alexa.
Add multiple tasks by using copy and paste
What is the easiest way to add multiple tasks to Todoist? Use a text editor.
- Start by making a list in your favorite text editor. It can be Word, TextPad, Evernote, or any other application.
- Make a list with each task on a separate line. Use a hard return (Enter).
- Copy the text.
- Click + Add Task in Todoist. You then get a question, “Do you want to add X tasks?”
- Answer “Yes.” (If you answer “No” the text will be pasted as a continuous text in a single task.)
If you want to sign up for Todoist Premium, I would appreciate if you use this link. This will not cost you any extra but will give me two months Todoist Premium. Thank you!
Add tasks in Todoist using automation
Todoist Description Meaning
Add tasks in Todoist using the free IFTTT service
IFTTT is short for IF That, Then This. With the help of IFTTT, you can create a two-step automation that automatically creates tasks in your Todoist inbox based on a trigger. I use IFTTT for the following:
- Every time I get a text message, a copy of the text is created as a task in my Todoist inbox.
- If I have an unanswered phone call, the task of calling back the given number is created in the Todoist inbox.
- When I get a new Twitter follower, I get a task in my Todoist inbox so that I can follow up if needed.
Add tasks in Todoist Zapier
Zapier is a more advanced alternative to IFTTT. In Zapier you can create a multi-step automation that creates tasks in Todoist. Zapier has a lot more possibilities than IFTTT, but you will have to pay for multi-step automations or extensive use.
Todoist Description Generator
Puh! That was 19 different ways to make you remember. Whats your favorite way?