TickTick Assistant

TickTick Assistant · Acciones GPT

TickTick OpenAPI

OpenAPI that allows the user to create and manage a TODO list using ChatGPT.

  • GET /open/v1/projectGet the list of projects
  • POST /open/v1/projectCreate Project
  • GET /open/v1/project/{projectId}Get a project by ID
  • POST /open/v1/project/{projectId}Update Project
  • DELETE /open/v1/project/{projectId}Delete Project
  • GET /open/v1/project/{projectId}/dataGet project with data by ID
  • POST /open/v1/taskCreate a task to TickTick
  • POST /open/v1/task/{taskId}Update a task to TickTick
  • POST /open/v1/project/{projectId}/task/{taskId}/completeComplete a task by project ID and task ID
  • DELETE /open/v1/project/{projectId}/task/{taskId}Delete a task by project ID and task ID
  • GET /open/v1/project/{projectId}/task/{taskId}Get Task By Project ID And Task ID
Esquema original API
{
  "openapi": "3.0.1",
  "info": {
    "title": "TickTick OpenAPI",
    "description": "OpenAPI that allows the user to create and manage a TODO list using ChatGPT.",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://ticktick.com"
    }
  ],
  "paths": {
    "/open/v1/project": {
      "get": {
        "operationId": "getAllProjects",
        "summary": "Get the list of projects",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Project"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "createProject",
        "summary": "Create Project",
        "requestBody": {
          "description": "New project info",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Project"
              },
              "examples": {
                "newtask": {
                  "summary": "Create a new project",
                  "value": {
                    "title": "new project title"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                }
              }
            }
          }
        }
      }
    },
    "/open/v1/project/{projectId}": {
      "get": {
        "operationId": "getProjectById",
        "summary": "Get a project by ID",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "description": "The ID of project.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "updateProject",
        "summary": "Update Project",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "description": "The ID of project.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Updated project info",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Project"
              },
              "examples": {
                "newtask": {
                  "summary": "Update an existing project",
                  "value": {
                    "title": "updated project title"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                }
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "deleteProject",
        "summary": "Delete Project",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "description": "The ID of project.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/open/v1/project/{projectId}/data": {
      "get": {
        "operationId": "getProjectWithDataById",
        "summary": "Get project with data by ID",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "description": "The ID of project.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectData"
                }
              }
            }
          }
        }
      }
    },
    "/open/v1/task": {
      "post": {
        "operationId": "createSingleTask",
        "summary": "Create a task to TickTick",
        "requestBody": {
          "description": "New task info",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Task"
              },
              "examples": {
                "newtask": {
                  "summary": "Create a new task example",
                  "value": {
                    "title": "new task title"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Task"
                }
              }
            }
          }
        }
      }
    },
    "/open/v1/task/{taskId}": {
      "post": {
        "operationId": "updateSingleTask",
        "summary": "Update a task to TickTick",
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "required": true,
            "description": "The identifier of task.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Updated task info",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Task"
              },
              "examples": {
                "newtask": {
                  "summary": "Update a new task example",
                  "value": {
                    "title": "updated task title"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Task"
                }
              }
            }
          }
        }
      }
    },
    "/open/v1/project/{projectId}/task/{taskId}/complete": {
      "post": {
        "operationId": "completeSpecifyTask",
        "summary": "Complete a task by project ID and task ID",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "description": "The ID of project which task in",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taskId",
            "in": "path",
            "required": true,
            "description": "The ID of task",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/open/v1/project/{projectId}/task/{taskId}": {
      "delete": {
        "operationId": "deleteSpecifyTask",
        "summary": "Delete a task by project ID and task ID",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "description": "The ID of project which task in",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taskId",
            "in": "path",
            "required": true,
            "description": "The ID of task",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "operationId": "getTaskByProjectIdAndTaskId",
        "summary": "Get Task By Project ID And Task ID",
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "description": "The ID of project which task in",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taskId",
            "in": "path",
            "required": true,
            "description": "The ID of task",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK,",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Task"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ChecklistItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Subtask identifier"
          },
          "title": {
            "type": "string",
            "description": "Subtask title"
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "description": "The completion status of subtask, 0 for normal, 1 for completed"
          },
          "completedTime": {
            "type": "string",
            "description": "Subtask completed time in \"yyyy-MM-dd'T'HH:mm:ssZ\""
          },
          "isAllDay": {
            "type": "boolean",
            "description": "All day"
          },
          "sortOrder": {
            "type": "integer",
            "format": "int64",
            "description": "Subtask sort order"
          },
          "startDate": {
            "type": "string",
            "description": "Subtask start date time in \"yyyy-MM-dd'T'HH:mm:ssZ\""
          },
          "timeZone": {
            "type": "string",
            "description": "Subtask timezone, Example \"America/Los_Angeles\""
          }
        }
      },
      "Task": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Task identifier"
          },
          "projectId": {
            "type": "string",
            "description": "Task project id"
          },
          "title": {
            "type": "string",
            "description": "Task title"
          },
          "isAllDay": {
            "type": "boolean",
            "description": "All day, true or false"
          },
          "completedTime": {
            "type": "string",
            "description": "Task completed time in \"yyyy-MM-dd'T'HH:mm:ssZ\", Example \"2019-11-13T03:00:00+0000"
          },
          "content": {
            "type": "string",
            "description": "Task content"
          },
          "desc": {
            "type": "string",
            "description": "Task description of checklist"
          },
          "dueDate": {
            "type": "string",
            "description": "Task due date time in \"yyyy-MM-dd'T'HH:mm:ssZ\", Example \"2019-11-13T03:00:00+0000\""
          },
          "items": {
            "type": "array",
            "description": "Subtasks of Task",
            "items": {
              "$ref": "#/components/schemas/ChecklistItem"
            }
          },
          "priority": {
            "type": "integer",
            "format": "int32",
            "description": "Task priority, None is 0, Low is 1, Medium is 3, High is 5"
          },
          "reminders": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of reminder triggers, Example [\"TRIGGER:P0DT9H0M0S\",\"TRIGGER:PT0S\"]"
          },
          "repeatFlag": {
            "type": "string",
            "description": "Recurring rules of task, Example \"RRULE:FREQ=DAILY;INTERVAL=1\""
          },
          "sortOrder": {
            "type": "integer",
            "format": "int64",
            "description": "Task sort order, Example 12345"
          },
          "startDate": {
            "type": "string",
            "description": "Start date time in \"yyyy-MM-dd'T'HH:mm:ssZ\", Example \"2023-04-23T12:00:00+0000\""
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "description": "Task completion status, Normal is 0, Completed is 2"
          },
          "timeZone": {
            "type": "string",
            "description": "Task timezone, Example \"America/Los_Angeles\""
          }
        }
      },
      "Project": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Project identifier"
          },
          "name": {
            "type": "string",
            "description": "Project name"
          },
          "color": {
            "type": "string",
            "description": "Project color"
          },
          "sortOrder": {
            "type": "integer",
            "format": "int64",
            "description": "Order value"
          },
          "closed": {
            "type": "boolean",
            "description": "Project closed, true or false"
          },
          "groupId": {
            "type": "string",
            "description": "Project group identifier"
          },
          "viewMode": {
            "type": "string",
            "description": "View mode of project, \"list\" or \"kanban\" or \"timeline\""
          },
          "permission": {
            "type": "string",
            "description": "Permission of project, \"read\" or \"write\" or \"comment\""
          },
          "kind": {
            "type": "string",
            "description": "Kind of project, \"TASK\" or \"NOTE\""
          }
        }
      },
      "Column": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Column identifier"
          },
          "projectId": {
            "type": "string",
            "description": "Project identifier"
          },
          "name": {
            "type": "string",
            "description": "Column name"
          },
          "sortOrder": {
            "type": "integer",
            "format": "int64",
            "description": "Order value"
          }
        }
      },
      "ProjectData": {
        "type": "object",
        "properties": {
          "project": {
            "description": "Project info",
            "$ref": "#/components/schemas/Project"
          },
          "tasks": {
            "type": "array",
            "description": "Undone tasks under project",
            "items": {
              "$ref": "#/components/schemas/Task"
            }
          },
          "columns": {
            "type": "array",
            "description": "Columns under project",
            "items": {
              "$ref": "#/components/schemas/Column"
            }
          }
        }
      }
    }
  }
}