ToDo Task and Project Manager

ToDo Task and Project Manager · Actions GPT

Todoist API

API for managing tasks and projects in Todoist.

  • GET /projectsList projects

    Retrieve a list of all projects.

  • POST /projectsCreate a project

    Create a new project.

  • GET /projects/{project_id}Get project details

    Retrieve details for a specific project.

  • PUT /projects/{project_id}Update project

    Update the details of a specific project.

  • DELETE /projects/{project_id}Delete project

    Delete a specific project.

  • GET /tasksList tasks

    Retrieve a list of all tasks.

  • POST /tasksCreate a task

    Create a new task.

  • GET /tasks/{task_id}Get task details

    Retrieve details for a specific task.

  • PUT /tasks/{task_id}Update task

    Update the details of a specific task.

  • DELETE /tasks/{task_id}Delete task

    Delete a specific task.

  • GET /labelsList labels

    Retrieve a list of all labels.

  • POST /labelsCreate a label

    Create a new label.

  • GET /labels/{label_id}Get label details

    Retrieve details for a specific label.

  • PUT /labels/{label_id}Update label

    Update the details of a specific label.

  • DELETE /labels/{label_id}Delete label

    Delete a specific label.

  • GET /userGet user details

    Retrieve details for the authenticated user.

Schéma original API
{
  "openapi": "3.1.0",
  "info": {
    "title": "Todoist API",
    "description": "API for managing tasks and projects in Todoist.",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.todoist.com/rest/v2"
    }
  ],
  "security": [
    {
      "apiKeyAuth": []
    }
  ],
  "paths": {
    "/projects": {
      "get": {
        "summary": "List projects",
        "description": "Retrieve a list of all projects.",
        "operationId": "listProjects",
        "x-openai-isConsequential": false,
        "responses": {
          "200": {
            "description": "A list of projects.",
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 1,
                    "name": "Personal"
                  },
                  {
                    "id": 2,
                    "name": "Work"
                  }
                ]
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create a project",
        "description": "Create a new project.",
        "operationId": "createProject",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "example": {
                "name": "New Project"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The created project.",
            "content": {
              "application/json": {
                "example": {
                  "id": 3,
                  "name": "New Project"
                }
              }
            }
          }
        }
      }
    },
    "/projects/{project_id}": {
      "get": {
        "summary": "Get project details",
        "description": "Retrieve details for a specific project.",
        "operationId": "getProjectDetails",
        "x-openai-isConsequential": false,
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The project details.",
            "content": {
              "application/json": {
                "example": {
                  "id": 1,
                  "name": "Personal"
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Update project",
        "description": "Update the details of a specific project.",
        "operationId": "updateProject",
        "x-openai-isConsequential": true,
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "example": {
                "name": "Updated Project Name"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated project details.",
            "content": {
              "application/json": {
                "example": {
                  "id": 1,
                  "name": "Updated Project Name"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete project",
        "description": "Delete a specific project.",
        "operationId": "deleteProject",
        "x-openai-isConsequential": true,
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Project successfully deleted."
          }
        }
      }
    },
    "/tasks": {
      "get": {
        "summary": "List tasks",
        "description": "Retrieve a list of all tasks.",
        "operationId": "listTasks",
        "x-openai-isConsequential": false,
        "responses": {
          "200": {
            "description": "A list of tasks.",
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 1,
                    "content": "Buy groceries",
                    "project_id": 1
                  },
                  {
                    "id": 2,
                    "content": "Finish report",
                    "project_id": 2
                  }
                ]
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create a task",
        "description": "Create a new task.",
        "operationId": "createTask",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "example": {
                "content": "New Task",
                "project_id": 1
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The created task.",
            "content": {
              "application/json": {
                "example": {
                  "id": 3,
                  "content": "New Task",
                  "project_id": 1
                }
              }
            }
          }
        }
      }
    },
    "/tasks/{task_id}": {
      "get": {
        "summary": "Get task details",
        "description": "Retrieve details for a specific task.",
        "operationId": "getTaskDetails",
        "x-openai-isConsequential": false,
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The task details.",
            "content": {
              "application/json": {
                "example": {
                  "id": 1,
                  "content": "Buy groceries",
                  "project_id": 1
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Update task",
        "description": "Update the details of a specific task.",
        "operationId": "updateTask",
        "x-openai-isConsequential": true,
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "example": {
                "content": "Updated Task"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated task details.",
            "content": {
              "application/json": {
                "example": {
                  "id": 1,
                  "content": "Updated Task",
                  "project_id": 1
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete task",
        "description": "Delete a specific task.",
        "operationId": "deleteTask",
        "x-openai-isConsequential": true,
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Task successfully deleted."
          }
        }
      }
    },
    "/labels": {
      "get": {
        "summary": "List labels",
        "description": "Retrieve a list of all labels.",
        "operationId": "listLabels",
        "x-openai-isConsequential": false,
        "responses": {
          "200": {
            "description": "A list of labels.",
            "content": {
              "application/json": {
                "example": [
                  {
                    "id": 1,
                    "name": "Home"
                  },
                  {
                    "id": 2,
                    "name": "Work"
                  }
                ]
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create a label",
        "description": "Create a new label.",
        "operationId": "createLabel",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "example": {
                "name": "New Label"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The created label.",
            "content": {
              "application/json": {
                "example": {
                  "id": 3,
                  "name": "New Label"
                }
              }
            }
          }
        }
      }
    },
    "/labels/{label_id}": {
      "get": {
        "summary": "Get label details",
        "description": "Retrieve details for a specific label.",
        "operationId": "getLabelDetails",
        "x-openai-isConsequential": false,
        "parameters": [
          {
            "name": "label_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The label details.",
            "content": {
              "application/json": {
                "example": {
                  "id": 1,
                  "name": "Home"
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Update label",
        "description": "Update the details of a specific label.",
        "operationId": "updateLabel",
        "x-openai-isConsequential": true,
        "parameters": [
          {
            "name": "label_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "example": {
                "name": "Updated Label Name"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated label details.",
            "content": {
              "application/json": {
                "example": {
                  "id": 1,
                  "name": "Updated Label Name"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete label",
        "description": "Delete a specific label.",
        "operationId": "deleteLabel",
        "x-openai-isConsequential": true,
        "parameters": [
          {
            "name": "label_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Label successfully deleted."
          }
        }
      }
    },
    "/user": {
      "get": {
        "summary": "Get user details",
        "description": "Retrieve details for the authenticated user.",
        "operationId": "getUserDetails",
        "x-openai-isConsequential": false,
        "responses": {
          "200": {
            "description": "The user details.",
            "content": {
              "application/json": {
                "example": {
                  "id": 12345,
                  "name": "John Doe",
                  "email": "john@example.com"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "apiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization"
      }
    },
    "schemas": {
      "Project": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The unique identifier for the project."
          },
          "name": {
            "type": "string",
            "description": "The name of the project."
          }
        }
      },
      "Task": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The unique identifier for the task."
          },
          "content": {
            "type": "string",
            "description": "The content or description of the task."
          },
          "project_id": {
            "type": "integer",
            "description": "The ID of the project to which the task belongs."
          }
        }
      },
      "Label": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The unique identifier for the label."
          },
          "name": {
            "type": "string",
            "description": "The name of the label."
          }
        }
      },
      "User": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The unique identifier for the user."
          },
          "name": {
            "type": "string",
            "description": "The name of the user."
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "The email address of the user."
          }
        }
      }
    }
  }
}

TickTick

Access and manage a user's tasks, lists, and other related resources in TickTick

  • GET /open/v1/projectGetProjects

    Get all projects for the user

  • POST /open/v1/projectCreateProject

    Create a project

  • GET /open/v1/project/{projectId}GetProject

    Get info about a specific project

  • GET /open/v1/project/{projectId}/dataGetProjectData

    Get info, tasks, and columns for a specific project

  • POST /open/v1/taskCreateTask

    Create a new task

  • GET /open/v1/project/{projectId}/task/{taskId}GetTask

    Get Task By Project ID And Task ID

Schéma original API
{
  "openapi": "3.1.0",
  "info": {
    "title": "TickTick",
    "description": "Access and manage a user's tasks, lists, and other related resources in TickTick",
    "version": "v0.2.0"
  },
  "servers": [
    {
      "url": "https://api.ticktick.com"
    }
  ],
  "paths": {
    "/open/v1/project": {
      "get": {
        "description": "Get all projects for the user",
        "operationId": "GetProjects",
        "responses": {
          "200": {
            "description": "An array of projects",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Project"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "tasks:read"
            ]
          }
        ]
      },
      "post": {
        "description": "Create a project",
        "operationId": "CreateProject",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "color": {
                    "type": "string"
                  },
                  "sortOrder": {
                    "type": "integer"
                  },
                  "viewMode": {
                    "type": "string"
                  },
                  "kind": {
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Project created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "tasks:write"
            ]
          }
        ]
      }
    },
    "/open/v1/project/{projectId}": {
      "get": {
        "description": "Get info about a specific project",
        "operationId": "GetProject",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Details of a specific project",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "tasks:read"
            ]
          }
        ]
      }
    },
    "/open/v1/project/{projectId}/data": {
      "get": {
        "description": "Get info, tasks, and columns for a specific project",
        "operationId": "GetProjectData",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Project data including tasks and columns",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectData"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "tasks:read"
            ]
          }
        ]
      }
    },
    "/open/v1/task": {
      "post": {
        "description": "Create a new task",
        "operationId": "CreateTask",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string"
                  }
                },
                "required": [
                  "title"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Task created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Task"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "tasks:write"
            ]
          }
        ]
      }
    },
    "/open/v1/project/{projectId}/task/{taskId}": {
      "get": {
        "description": "Get Task By Project ID And Task ID",
        "operationId": "GetTask",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taskId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Details of the specified task",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Task"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "tasks:read"
            ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "Project": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "sortOrder": {
            "type": "integer"
          },
          "viewMode": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          }
        }
      },
      "Task": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "desc": {
            "type": "string"
          },
          "isAllDay": {
            "type": "boolean"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "timeZone": {
            "type": "string"
          },
          "reminders": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "repeatFlag": {
            "type": "string"
          },
          "priority": {
            "type": "integer"
          },
          "status": {
            "type": "integer"
          },
          "completedTime": {
            "type": "string",
            "format": "date-time"
          },
          "sortOrder": {
            "type": "integer"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChecklistItem"
            }
          }
        }
      },
      "ProjectData": {
        "type": "object",
        "properties": {
          "project": {
            "$ref": "#/components/schemas/Project"
          },
          "tasks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Task"
            }
          },
          "columns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Column"
            }
          }
        }
      },
      "ChecklistItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "integer"
          },
          "completedTime": {
            "type": "string",
            "format": "date-time"
          },
          "isAllDay": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "integer"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "timeZone": {
            "type": "string"
          }
        }
      },
      "Column": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "sortOrder": {
            "type": "integer"
          }
        }
      }
    },
    "securitySchemes": {
      "OAuth2": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://ticktick.com/oauth/authorize",
            "tokenUrl": "https://ticktick.com/oauth/token",
            "scopes": {
              "tasks:read": "Read tasks",
              "tasks:write": "Write tasks"
            }
          }
        }
      }
    }
  }
}