A Todoist Sync API client for .NET.
The library is available as a Nuget package.
Install-Package Todoist.Net
With token (preferred way).
ITodoistClient client = new TodoistClient("API token");
With email and password.
ITodoistTokenlessClient tokenlessClient = new TodoistTokenlessClient();
ITodoistClient client = await tokenlessClient.LoginAsync("email", "password");
Implementation of the Quick Add Task available in the official clients.
var quickAddItem = new QuickAddItem("Task title @Label1 #Project1 +ExampleUser");
var task = await client.Items.QuickAddAsync(quickAddItem);
// Get all resources (labels, projects, tasks, notes etc.).
var resources = await client.GetResourcesAsync();
// Get only projects and labels.
var projectsAndLabels = await client.GetResourcesAsync(ResourceType.Projects, ResourceType.Labels);
// Get only projects.
var projectsOnly = await client.GetResourcesAsync(ResourceType.Projects);
// Alternatively you can use this API to get projects.
var projects = await client.Projects.GetAsync();
// Add a task with a note.
var taskId = await client.Items.AddAsync(new Item("New task"));
await client.Notes.AddToItemAsync(new Note("Task description"), taskId);
Batching: reading and writing of multiple resources can be done in a single HTTP request.
Add a new project, task and note in one request.
// Create a new transaction.
var transaction = client.CreateTransaction();
// These requests are queued and will be executed later.
var projectId = await transaction.Project.AddAsync(new Project("New project"));
var taskId = await transaction.Items.AddAsync(new Item("New task", projectId));
await transaction.Notes.AddToItemAsync(new Note("Task description"), taskId);
// Execute all the requests in the transaction in a single HTTP request.
await transaction.CommitAsync();