Documentation Index Fetch the complete documentation index at: https://lava.so/docs/llms.txt
Use this file to discover all available pages before exploring further.
Todoist task management API for creating, reading, updating, and completing tasks, projects, sections, labels, and comments. Best for syncing task state, automating task creation from other tools, or building productivity workflows on top of a personal or team task list.
15 example endpoints available through Lava’s AI Gateway. See the Todoist API docs for full documentation.
This provider requires your own credentials — connect your API key or OAuth account before use.
Endpoints
List active tasks. Supports filters: project_id, section_id, label, filter (Todoist filter syntax), ids.
GET https://api.todoist.com/api/v1/tasks — Free
const data = await lava . gateway ( 'https://api.todoist.com/api/v1/tasks' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.todoist.com%2Fapi%2Fv1%2Ftasks" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
Create a new task. Requires content (title). Optional: description, project_id, section_id, labels, priority (1-4), due_string, due_date.
POST https://api.todoist.com/api/v1/tasks — Free
const data = await lava . gateway ( 'https://api.todoist.com/api/v1/tasks' , {
body: {
"content" : "New task from Lava" ,
"description" : "Created via the gateway" ,
"priority" : 2
},
});
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.todoist.com%2Fapi%2Fv1%2Ftasks" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"content":"New task from Lava","description":"Created via the gateway","priority":2}'
Get a single task by ID.
GET https://api.todoist.com/api/v1/tasks/{task_id} — Free
const data = await lava . gateway ( 'https://api.todoist.com/api/v1/tasks/{task_id}' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.todoist.com%2Fapi%2Fv1%2Ftasks%2F%7Btask_id%7D" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
Update a task. Only fields in the body are modified: content, description, labels, priority, due_string, due_date, assignee_id.
POST https://api.todoist.com/api/v1/tasks/{task_id} — Free
const data = await lava . gateway ( 'https://api.todoist.com/api/v1/tasks/{task_id}' , { body: { "content" : "Updated task title" , "priority" : 3 } });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.todoist.com%2Fapi%2Fv1%2Ftasks%2F%7Btask_id%7D" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"content":"Updated task title","priority":3}'
Mark a task as complete.
POST https://api.todoist.com/api/v1/tasks/{task_id}/close — Free
const data = await lava . gateway ( 'https://api.todoist.com/api/v1/tasks/{task_id}/close' , { method: 'POST' });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.todoist.com%2Fapi%2Fv1%2Ftasks%2F%7Btask_id%7D%2Fclose" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json"
Reopen a completed task.
POST https://api.todoist.com/api/v1/tasks/{task_id}/reopen — Free
const data = await lava . gateway ( 'https://api.todoist.com/api/v1/tasks/{task_id}/reopen' , { method: 'POST' });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.todoist.com%2Fapi%2Fv1%2Ftasks%2F%7Btask_id%7D%2Freopen" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json"
Delete a task.
DELETE https://api.todoist.com/api/v1/tasks/{task_id} — Free
const data = await lava . gateway ( 'https://api.todoist.com/api/v1/tasks/{task_id}' , { method: 'DELETE' });
curl -X DELETE "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.todoist.com%2Fapi%2Fv1%2Ftasks%2F%7Btask_id%7D" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json"
List all projects.
GET https://api.todoist.com/api/v1/projects — Free
const data = await lava . gateway ( 'https://api.todoist.com/api/v1/projects' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.todoist.com%2Fapi%2Fv1%2Fprojects" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
Create a new project. Requires name. Optional: parent_id, color, is_favorite, view_style.
POST https://api.todoist.com/api/v1/projects — Free
const data = await lava . gateway ( 'https://api.todoist.com/api/v1/projects' , { body: { "name" : "New project from Lava" } });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.todoist.com%2Fapi%2Fv1%2Fprojects" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"name":"New project from Lava"}'
Get a single project by ID.
GET https://api.todoist.com/api/v1/projects/{project_id} — Free
const data = await lava . gateway ( 'https://api.todoist.com/api/v1/projects/{project_id}' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.todoist.com%2Fapi%2Fv1%2Fprojects%2F%7Bproject_id%7D" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
List sections. Optional project_id filter to scope to a single project.
GET https://api.todoist.com/api/v1/sections?project_id={project_id} — Free
const data = await lava . gateway ( 'https://api.todoist.com/api/v1/sections?project_id={project_id}' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.todoist.com%2Fapi%2Fv1%2Fsections%3Fproject_id%3D%7Bproject_id%7D" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
Create a section in a project. Requires name and project_id.
POST https://api.todoist.com/api/v1/sections — Free
const data = await lava . gateway ( 'https://api.todoist.com/api/v1/sections' , { body: { "name" : "New section" , "project_id" : "{project_id}" } });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.todoist.com%2Fapi%2Fv1%2Fsections" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"name":"New section","project_id":"{project_id}"}'
GET https://api.todoist.com/api/v1/comments?task_id={task_id} — Free
const data = await lava . gateway ( 'https://api.todoist.com/api/v1/comments?task_id={task_id}' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.todoist.com%2Fapi%2Fv1%2Fcomments%3Ftask_id%3D%7Btask_id%7D" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
Add a comment to a task or project. Requires content and either task_id or project_id.
POST https://api.todoist.com/api/v1/comments — Free
const data = await lava . gateway ( 'https://api.todoist.com/api/v1/comments' , {
body: {
"task_id" : "{task_id}" ,
"content" : "Comment from Lava gateway."
},
});
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.todoist.com%2Fapi%2Fv1%2Fcomments" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"task_id":"{task_id}","content":"Comment from Lava gateway."}'
List all personal labels.
GET https://api.todoist.com/api/v1/labels — Free
const data = await lava . gateway ( 'https://api.todoist.com/api/v1/labels' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.todoist.com%2Fapi%2Fv1%2Flabels" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
Next Steps
All Providers Browse all supported AI providers
Forward Proxy Learn how to construct proxy URLs and authenticate requests