Skip to content

Project#

pyticktick.models.v1.responses.project #

Response models for project related endpoints in TickTick API v1.

Classes:

Name Description
ColumnV1

Model for a response with column information in the V1 API.

ProjectDataRespV1

Model for a response with more detailed project information in the V1 API.

ProjectRespV1

Model for a response from the GET /project/{project_id} endpoint in the V1 API.

ProjectV1

Model for a response with high-level project information in the V1 API.

ProjectsRespV1

Model for a response from the GET /project endpoint in the V1 API.

ColumnV1 pydantic-model #

Bases: BaseModel

Model for a response with column information in the V1 API.

This model is used to represent a column in the V1 API. It is used in the ProjectDataRespV1 model to represent columns under a project. It maps directly to the column definition in the V1 API docs.

It is useful for Kanban views of tasks.

Show JSON schema:
{
  "description": "Model for a response with column information in the V1 API.\n\nThis model is used to represent a column in the V1 API. It is used in the\n`ProjectDataRespV1` model to represent columns under a project. It maps directly to\nthe [column](https://developer.ticktick.com/docs#/openapi?id=column) definition in\nthe V1 API docs.\n\nIt is useful for Kanban views of tasks.",
  "properties": {
    "id": {
      "description": "Column identifier",
      "title": "Id",
      "type": "string"
    },
    "projectId": {
      "description": "Project identifier",
      "title": "Projectid",
      "type": "string"
    },
    "name": {
      "description": "Column name",
      "title": "Name",
      "type": "string"
    },
    "sortOrder": {
      "description": "Order value",
      "title": "Sortorder",
      "type": "integer"
    }
  },
  "required": [
    "id",
    "projectId",
    "name",
    "sortOrder"
  ],
  "title": "ColumnV1",
  "type": "object"
}

Config:

  • extra: ignore

Fields:

id pydantic-field #

id: str

Column identifier

name pydantic-field #

name: str

Column name

project_id pydantic-field #

project_id: str

Project identifier

sort_order pydantic-field #

sort_order: int

Order value

ProjectDataRespV1 pydantic-model #

Bases: BaseModel

Model for a response with more detailed project information in the V1 API.

This model is used to represent a project in the V1 API with more detailed information. It includes the project itself, the tasks under the project, and the columns, if any. It is used in the GET /project/{project_id}/data endpoint. It maps directly to the project data definition in the V1 API docs.

Show JSON schema:
{
  "$defs": {
    "ColumnV1": {
      "description": "Model for a response with column information in the V1 API.\n\nThis model is used to represent a column in the V1 API. It is used in the\n`ProjectDataRespV1` model to represent columns under a project. It maps directly to\nthe [column](https://developer.ticktick.com/docs#/openapi?id=column) definition in\nthe V1 API docs.\n\nIt is useful for Kanban views of tasks.",
      "properties": {
        "id": {
          "description": "Column identifier",
          "title": "Id",
          "type": "string"
        },
        "projectId": {
          "description": "Project identifier",
          "title": "Projectid",
          "type": "string"
        },
        "name": {
          "description": "Column name",
          "title": "Name",
          "type": "string"
        },
        "sortOrder": {
          "description": "Order value",
          "title": "Sortorder",
          "type": "integer"
        }
      },
      "required": [
        "id",
        "projectId",
        "name",
        "sortOrder"
      ],
      "title": "ColumnV1",
      "type": "object"
    },
    "ItemV1": {
      "description": "Model for a response with checklist item information in the V1 API.\n\nThis model is used to represent a checklist item in the V1 API. It is used in the\n`TaskRespV1` model to represent checklist items of a task. It maps directly to the [checklistitem](https://developer.ticktick.com/docs#/openapi?id=checklistitem)\ndefinition in the V1 API docs.",
      "properties": {
        "id": {
          "description": "Subtask identifier",
          "title": "Id",
          "type": "string"
        },
        "title": {
          "description": "Subtask title",
          "title": "Title",
          "type": "string"
        },
        "status": {
          "description": "The completion status of checklist item. Normal: 0, Completed: 1",
          "title": "Status",
          "type": "boolean"
        },
        "completedTime": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Subtask completed time in `yyyy-MM-dd'T'HH:mm:ssZ`",
          "title": "Completedtime"
        },
        "isAllDay": {
          "description": "All day",
          "title": "Isallday",
          "type": "boolean"
        },
        "sortOrder": {
          "description": "Subtask sort order",
          "title": "Sortorder",
          "type": "integer"
        },
        "startDate": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Subtask start date time in `yyyy-MM-dd'T'HH:mm:ssZ`",
          "title": "Startdate"
        },
        "timeZone": {
          "description": "Subtask timezone. Example: 'America/Los_Angeles'",
          "title": "Timezone",
          "type": "string"
        }
      },
      "required": [
        "id",
        "title",
        "status",
        "isAllDay",
        "sortOrder",
        "timeZone"
      ],
      "title": "ItemV1",
      "type": "object"
    },
    "ProjectV1": {
      "description": "Model for a response with high-level project information in the V1 API.\n\nThis model is used to represent a project in the V1 API. It is used in a few\ndifferent endpoints, including `GET /project`, `GET /project/{project_id}`,\n`POST /project`, and `POST /project/{project_id}`. It maps directly to the [project](https://developer.ticktick.com/docs#/openapi?id=project-1)\ndefinition in the V1 API docs.",
      "properties": {
        "id": {
          "description": "Project identifier",
          "title": "Id",
          "type": "string"
        },
        "name": {
          "description": "Project name",
          "title": "Name",
          "type": "string"
        },
        "color": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Project color, eg. #F18181",
          "title": "Color"
        },
        "sortOrder": {
          "description": "Order value",
          "title": "Sortorder",
          "type": "integer"
        },
        "closed": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Project closed",
          "title": "Closed"
        },
        "groupId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Project group identifier",
          "title": "Groupid"
        },
        "viewMode": {
          "anyOf": [
            {
              "enum": [
                "list",
                "kanban",
                "timeline"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "view mode, \"list\", \"kanban\", \"timeline\"",
          "title": "Viewmode"
        },
        "permission": {
          "anyOf": [
            {
              "enum": [
                "read",
                "write",
                "comment"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "\"read\", \"write\" or \"comment\"",
          "title": "Permission"
        },
        "kind": {
          "anyOf": [
            {
              "enum": [
                "TASK",
                "NOTE"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "\"TASK\" or \"NOTE\"",
          "title": "Kind"
        }
      },
      "required": [
        "id",
        "name",
        "sortOrder"
      ],
      "title": "ProjectV1",
      "type": "object"
    },
    "TaskRespV1": {
      "description": "Model for a response with task information in the V1 API.\n\nThis model is used to represent a task in the V1 API. It is used in a few different\nendpoints, including `GET /project/{project_id}/task/{task_id}`, `POST /task`, and\n`POST /task/{task_id}`. It maps directly to the [task](https://developer.ticktick.com/docs#/openapi?id=task-1)\ndefinition in the V1 API docs.",
      "properties": {
        "id": {
          "description": "Project identifier",
          "title": "Id",
          "type": "string"
        },
        "projectId": {
          "description": "Task project id",
          "title": "Projectid",
          "type": "string"
        },
        "title": {
          "description": "Task title",
          "title": "Title",
          "type": "string"
        },
        "isAllDay": {
          "description": "All day",
          "title": "Isallday",
          "type": "boolean"
        },
        "completedTime": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Task completed time in `yyyy-MM-dd'T'HH:mm:ssZ`",
          "title": "Completedtime"
        },
        "content": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Task content",
          "title": "Content"
        },
        "desc": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Task description of checklist",
          "title": "Desc"
        },
        "dueDate": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Task due date time in `yyyy-MM-dd'T'HH:mm:ssZ`",
          "title": "Duedate"
        },
        "items": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/ItemV1"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Subtasks of Task",
          "title": "Items"
        },
        "priority": {
          "description": "Task priority. None:0, Low:1, Medium:3, High:5",
          "enum": [
            0,
            1,
            3,
            5
          ],
          "title": "Priority",
          "type": "integer"
        },
        "reminders": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "List of reminder triggers. Example: ['TRIGGER:P0DT9H0M0S', 'TRIGGER:PT0S']",
          "title": "Reminders"
        },
        "repeatFlag": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Recurring rules of task. Example: 'RRULE:FREQ=DAILY;INTERVAL=1'",
          "title": "Repeatflag"
        },
        "sortOrder": {
          "description": "Task sort order",
          "title": "Sortorder",
          "type": "integer"
        },
        "startDate": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Start date time in `yyyy-MM-dd'T'HH:mm:ssZ`",
          "title": "Startdate"
        },
        "status": {
          "description": "Task completion status. Normal: 0, Completed: 2",
          "title": "Status",
          "type": "boolean"
        },
        "timeZone": {
          "description": "Task timezone. Example: 'America/Los_Angeles'",
          "title": "Timezone",
          "type": "string"
        }
      },
      "required": [
        "id",
        "projectId",
        "title",
        "isAllDay",
        "priority",
        "sortOrder",
        "status",
        "timeZone"
      ],
      "title": "TaskRespV1",
      "type": "object"
    }
  },
  "description": "Model for a response with more detailed project information in the V1 API.\n\nThis model is used to represent a project in the V1 API with more detailed\ninformation. It includes the project itself, the tasks under the project, and the\ncolumns, if any. It is used in the `GET /project/{project_id}/data` endpoint. It\nmaps directly to the [project data](https://developer.ticktick.com/docs#/openapi?id=projectdata)\ndefinition in the V1 API docs.",
  "properties": {
    "project": {
      "$ref": "#/$defs/ProjectV1",
      "description": "Project info"
    },
    "tasks": {
      "description": "Undone tasks under project",
      "items": {
        "$ref": "#/$defs/TaskRespV1"
      },
      "title": "Tasks",
      "type": "array"
    },
    "columns": {
      "description": "Columns under project",
      "items": {
        "$ref": "#/$defs/ColumnV1"
      },
      "title": "Columns",
      "type": "array"
    }
  },
  "required": [
    "project",
    "tasks",
    "columns"
  ],
  "title": "ProjectDataRespV1",
  "type": "object"
}

Config:

  • extra: ignore

Fields:

columns pydantic-field #

columns: list[ColumnV1]

Columns under project

project pydantic-field #

project: ProjectV1

Project info

tasks pydantic-field #

tasks: list[TaskRespV1]

Undone tasks under project

ProjectRespV1 #

Bases: RootModel[ProjectV1]

Model for a response from the GET /project/{project_id} endpoint in the V1 API.

This model is used to represent a single project in the V1 API. It corresponds to the the GET /project/{project_id} V1 endpoint.

ProjectV1 pydantic-model #

Bases: BaseModel

Model for a response with high-level project information in the V1 API.

This model is used to represent a project in the V1 API. It is used in a few different endpoints, including GET /project, GET /project/{project_id}, POST /project, and POST /project/{project_id}. It maps directly to the project definition in the V1 API docs.

Show JSON schema:
{
  "description": "Model for a response with high-level project information in the V1 API.\n\nThis model is used to represent a project in the V1 API. It is used in a few\ndifferent endpoints, including `GET /project`, `GET /project/{project_id}`,\n`POST /project`, and `POST /project/{project_id}`. It maps directly to the [project](https://developer.ticktick.com/docs#/openapi?id=project-1)\ndefinition in the V1 API docs.",
  "properties": {
    "id": {
      "description": "Project identifier",
      "title": "Id",
      "type": "string"
    },
    "name": {
      "description": "Project name",
      "title": "Name",
      "type": "string"
    },
    "color": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Project color, eg. #F18181",
      "title": "Color"
    },
    "sortOrder": {
      "description": "Order value",
      "title": "Sortorder",
      "type": "integer"
    },
    "closed": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Project closed",
      "title": "Closed"
    },
    "groupId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Project group identifier",
      "title": "Groupid"
    },
    "viewMode": {
      "anyOf": [
        {
          "enum": [
            "list",
            "kanban",
            "timeline"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "view mode, \"list\", \"kanban\", \"timeline\"",
      "title": "Viewmode"
    },
    "permission": {
      "anyOf": [
        {
          "enum": [
            "read",
            "write",
            "comment"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "\"read\", \"write\" or \"comment\"",
      "title": "Permission"
    },
    "kind": {
      "anyOf": [
        {
          "enum": [
            "TASK",
            "NOTE"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "\"TASK\" or \"NOTE\"",
      "title": "Kind"
    }
  },
  "required": [
    "id",
    "name",
    "sortOrder"
  ],
  "title": "ProjectV1",
  "type": "object"
}

Config:

  • extra: ignore

Fields:

closed pydantic-field #

closed: bool | None = None

Project closed

color pydantic-field #

color: str | None = None

Project color, eg. #F18181

group_id pydantic-field #

group_id: str | None = None

Project group identifier

id pydantic-field #

id: str

Project identifier

kind pydantic-field #

kind: Literal['TASK', 'NOTE'] | None = None

"TASK" or "NOTE"

name pydantic-field #

name: str

Project name

permission pydantic-field #

permission: Literal["read", "write", "comment"] | None = (
    None
)

"read", "write" or "comment"

sort_order pydantic-field #

sort_order: int

Order value

view_mode pydantic-field #

view_mode: Literal["list", "kanban", "timeline"] | None = (
    None
)

view mode, "list", "kanban", "timeline"

ProjectsRespV1 #

Bases: RootModel[list[ProjectV1]]

Model for a response from the GET /project endpoint in the V1 API.

This model is used to represent a list of projects in the V1 API. It corresponds to the GET /project V1 endpoint.