| name | todoist-api-1-projects-management |
| description | Sub-skill of todoist-api: 1. Projects Management. |
| version | 1.0.0 |
| category | business |
| type | reference |
| scripts_exempt | true |
1. Projects Management
1. Projects Management
REST API - Projects:
curl -s -X GET "https://api.todoist.com/rest/v2/projects" \
-H "Authorization: Bearer $TODOIST_API_KEY" | jq
curl -s -X GET "https://api.todoist.com/rest/v2/projects/PROJECT_ID" \
-H "Authorization: Bearer $TODOIST_API_KEY" | jq
curl -s -X POST "https://api.todoist.com/rest/v2/projects" \
-H "Authorization: Bearer $TODOIST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Work Tasks",
"color": "blue",
"is_favorite": true,
"view_style": "list"
}' | jq
curl -s -X POST "https://api.todoist.com/rest/v2/projects" \
-H "Authorization: Bearer $TODOIST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Q1 Goals",
"parent_id": "PARENT_PROJECT_ID",
"color": "green"
}' | jq
curl -s -X POST "https://api.todoist.com/rest/v2/projects/PROJECT_ID" \
-H "Authorization: Bearer $TODOIST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Work Tasks - Updated",
"color": "red"
}' | jq
curl -s -X DELETE "https://api.todoist.com/rest/v2/projects/PROJECT_ID" \
-H "Authorization: Bearer $TODOIST_API_KEY"
curl -s -X GET "https://api.todoist.com/rest/v2/projects/PROJECT_ID/collaborators" \
-H "Authorization: Bearer $TODOIST_API_KEY" | jq
Python SDK - Projects:
from todoist_api_python import TodoistAPI
import os
api = TodoistAPI(os.environ["TODOIST_API_KEY"])
projects = api.get_projects()
for project in projects:
print(f"{project.name} (ID: {project.id})")
project = api.get_project(project_id="2345678901")
print(f"Project: {project.name}, Color: {project.color}")
new_project = api.add_project(
name="New Project",
color="blue",
is_favorite=True,
view_style="board"
)
print(f"Created: {new_project.name} (ID: {new_project.id})")
sub_project = api.add_project(
name="Sub Project",
parent_id="2345678901",
color="green"
)
updated = api.update_project(
project_id="2345678901",
name="Updated Name",
color="red"
)
api.delete_project(project_id="2345678901")
sections = api.get_sections(project_id="2345678901")
for section in sections:
print(f" Section: {section.name}")