Skip to main content
Every todoist.api.* operation is listed below with parameter shapes and return types from the plugin Zod schemas.
New to Corsair? See API access, authentication, and error handling.

Comments

create

comments.create Create a Todoist comment Risk: write
await corsair.todoist.api.comments.create({});
Input
NameTypeRequiredDescription
contentstringYes
task_idstringNo
project_idstringNo
Output
NameTypeRequiredDescription
idstringYes
task_idstringNo
project_idstringNo
contentstringYes
posted_atstringNo

delete

comments.delete Delete a Todoist comment Risk: destructive
await corsair.todoist.api.comments.delete({});
Input
NameTypeRequiredDescription
idstringYes
Output: empty object

get

comments.get Get a Todoist comment by ID Risk: read
await corsair.todoist.api.comments.get({});
Input
NameTypeRequiredDescription
idstringYes
Output
NameTypeRequiredDescription
idstringYes
task_idstringNo
project_idstringNo
contentstringYes
posted_atstringNo

getMany

comments.getMany List Todoist comments for a task or project Risk: read
await corsair.todoist.api.comments.getMany({});
Input
NameTypeRequiredDescription
task_idstringNo
project_idstringNo
Output: object[]
{
  id: string,
  task_id?: string,
  project_id?: string,
  content: string,
  posted_at?: string
}[]

update

comments.update Update a Todoist comment Risk: write
await corsair.todoist.api.comments.update({});
Input
NameTypeRequiredDescription
idstringYes
contentstringYes
Output
NameTypeRequiredDescription
idstringYes
task_idstringNo
project_idstringNo
contentstringYes
posted_atstringNo

Labels

create

labels.create Create a Todoist label Risk: write
await corsair.todoist.api.labels.create({});
Input
NameTypeRequiredDescription
namestringYes
colorstringNo
ordernumberNo
favoritebooleanNo
Output
NameTypeRequiredDescription
idstringYes
namestringYes
colorstringNo
ordernumberNo
favoritebooleanNo

delete

labels.delete Delete a Todoist label Risk: destructive
await corsair.todoist.api.labels.delete({});
Input
NameTypeRequiredDescription
idstringYes
Output: empty object

get

labels.get Get a Todoist label by ID Risk: read
await corsair.todoist.api.labels.get({});
Input
NameTypeRequiredDescription
idstringYes
Output
NameTypeRequiredDescription
idstringYes
namestringYes
colorstringNo
ordernumberNo
favoritebooleanNo

getMany

labels.getMany List Todoist labels Risk: read
await corsair.todoist.api.labels.getMany({});
Input: empty object Output: object[]
{
  id: string,
  name: string,
  color?: string,
  order?: number,
  favorite?: boolean
}[]

update

labels.update Update a Todoist label Risk: write
await corsair.todoist.api.labels.update({});
Input
NameTypeRequiredDescription
idstringYes
namestringNo
colorstringNo
ordernumberNo
favoritebooleanNo
Output
NameTypeRequiredDescription
idstringYes
namestringYes
colorstringNo
ordernumberNo
favoritebooleanNo

Projects

archive

projects.archive Archive a Todoist project Risk: write
await corsair.todoist.api.projects.archive({});
Input
NameTypeRequiredDescription
idstringYes
Output: empty object

create

projects.create Create a Todoist project Risk: write
await corsair.todoist.api.projects.create({});
Input
NameTypeRequiredDescription
namestringYes
colorstringNo
favoritebooleanNo
parent_idstringNo
ordernumberNo
Output
NameTypeRequiredDescription
idstringYes
namestringYes
colorstringNo
parent_idstringNo
ordernumberNo
favoritebooleanNo
comment_countnumberNo
is_sharedbooleanNo
is_archivedbooleanNo
is_favoritebooleanNo
view_stylestringNo

delete

projects.delete Delete a Todoist project Risk: destructive
await corsair.todoist.api.projects.delete({});
Input
NameTypeRequiredDescription
idstringYes
Output: empty object

get

projects.get Get a Todoist project by ID Risk: read
await corsair.todoist.api.projects.get({});
Input
NameTypeRequiredDescription
idstringYes
Output
NameTypeRequiredDescription
idstringYes
namestringYes
colorstringNo
parent_idstringNo
ordernumberNo
favoritebooleanNo
comment_countnumberNo
is_sharedbooleanNo
is_archivedbooleanNo
is_favoritebooleanNo
view_stylestringNo

getCollaborators

projects.getCollaborators List collaborators for a Todoist project Risk: read
await corsair.todoist.api.projects.getCollaborators({});
Input
NameTypeRequiredDescription
idstringYes
Output: object[]
{
  id: string,
  name?: string,
  email?: string
}[]

getMany

projects.getMany List Todoist projects Risk: read
await corsair.todoist.api.projects.getMany({});
Input: empty object Output: object
{
  id: string,
  name: string,
  color?: string,
  parent_id?: string,
  order?: number,
  favorite?: boolean,
  comment_count?: number,
  is_shared?: boolean,
  is_archived?: boolean,
  is_favorite?: boolean,
  view_style?: string
}[] | {
  projects?: {
    id: string,
    name: string,
    color?: string,
    parent_id?: string,
    order?: number,
    favorite?: boolean,
    comment_count?: number,
    is_shared?: boolean,
    is_archived?: boolean,
    is_favorite?: boolean,
    view_style?: string
  }[]
}

unarchive

projects.unarchive Unarchive a Todoist project Risk: write
await corsair.todoist.api.projects.unarchive({});
Input
NameTypeRequiredDescription
idstringYes
Output: empty object

update

projects.update Update a Todoist project Risk: write
await corsair.todoist.api.projects.update({});
Input
NameTypeRequiredDescription
idstringYes
namestringNo
colorstringNo
favoritebooleanNo
ordernumberNo
parent_idstringNo
Output
NameTypeRequiredDescription
idstringYes
namestringYes
colorstringNo
parent_idstringNo
ordernumberNo
favoritebooleanNo
comment_countnumberNo
is_sharedbooleanNo
is_archivedbooleanNo
is_favoritebooleanNo
view_stylestringNo

Reminders

create

reminders.create Create a Todoist reminder Risk: write
await corsair.todoist.api.reminders.create({});
Input
NameTypeRequiredDescription
task_idstringYes
due_datetimestringNo
due_datestringNo
due_stringstringNo
relative_durationnumberNo
notification_typestringNo
notify_uidstringNo
descriptionstringNo
Output
NameTypeRequiredDescription
idstringYes
task_idstringNo
notify_uidstringNo
dueobjectNo
{
}

delete

reminders.delete Delete a Todoist reminder Risk: destructive
await corsair.todoist.api.reminders.delete({});
Input
NameTypeRequiredDescription
idstringYes
Output: empty object

getMany

reminders.getMany List Todoist reminders Risk: read
await corsair.todoist.api.reminders.getMany({});
Input: empty object Output: object[]
{
  id: string,
  task_id?: string,
  notify_uid?: string,
  due?: {
  }
}[]

update

reminders.update Update a Todoist reminder Risk: write
await corsair.todoist.api.reminders.update({});
Input
NameTypeRequiredDescription
idstringYes
task_idstringNo
due_datetimestringNo
due_datestringNo
due_stringstringNo
relative_durationnumberNo
notification_typestringNo
notify_uidstringNo
descriptionstringNo
Output
NameTypeRequiredDescription
idstringYes
task_idstringNo
notify_uidstringNo
dueobjectNo
{
}

Sections

create

sections.create Create a Todoist section Risk: write
await corsair.todoist.api.sections.create({});
Input
NameTypeRequiredDescription
namestringYes
project_idstringYes
ordernumberNo
Output
NameTypeRequiredDescription
idstringYes
project_idstringYes
namestringYes
ordernumberNo

delete

sections.delete Delete a Todoist section Risk: destructive
await corsair.todoist.api.sections.delete({});
Input
NameTypeRequiredDescription
idstringYes
Output: empty object

get

sections.get Get a Todoist section by ID Risk: read
await corsair.todoist.api.sections.get({});
Input
NameTypeRequiredDescription
idstringYes
Output
NameTypeRequiredDescription
idstringYes
project_idstringYes
namestringYes
ordernumberNo

getMany

sections.getMany List Todoist sections for a project Risk: read
await corsair.todoist.api.sections.getMany({});
Input
NameTypeRequiredDescription
project_idstringNo
Output: object[]
{
  id: string,
  project_id: string,
  name: string,
  order?: number
}[]

update

sections.update Update a Todoist section Risk: write
await corsair.todoist.api.sections.update({});
Input
NameTypeRequiredDescription
idstringYes
namestringNo
ordernumberNo
project_idstringNo
Output
NameTypeRequiredDescription
idstringYes
project_idstringYes
namestringYes
ordernumberNo

Tasks

close

tasks.close Close a Todoist task Risk: write
await corsair.todoist.api.tasks.close({});
Input
NameTypeRequiredDescription
idstringYes
Output: object
undefined | {
}

create

tasks.create Create a Todoist task Risk: write
await corsair.todoist.api.tasks.create({});
Input
NameTypeRequiredDescription
contentstringYes
descriptionstringNo
project_idstringNo
section_idstringNo
parent_idstringNo
ordernumberNo
labelsstring[]No
prioritynumberNo
due_datetimestringNo
due_datestringNo
due_stringstringNo
assignee_idstringNo
Output
NameTypeRequiredDescription
idstringYes
project_idstringNo
section_idstringNo
contentstringYes
descriptionstringNo
is_completedbooleanNo
labelsstring[]No
parent_idstringNo
ordernumberNo
prioritynumberNo
dueobjectNo
urlstringNo
comment_countnumberNo
created_atstringNo
creator_idstringNo
assignee_idstringNo
assigner_idstringNo
{
}

delete

tasks.delete Delete a Todoist task Risk: destructive
await corsair.todoist.api.tasks.delete({});
Input
NameTypeRequiredDescription
idstringYes
Output: object
undefined | {
}

get

tasks.get Get a Todoist task by ID Risk: read
await corsair.todoist.api.tasks.get({});
Input
NameTypeRequiredDescription
idstringYes
Output
NameTypeRequiredDescription
idstringYes
project_idstringNo
section_idstringNo
contentstringYes
descriptionstringNo
is_completedbooleanNo
labelsstring[]No
parent_idstringNo
ordernumberNo
prioritynumberNo
dueobjectNo
urlstringNo
comment_countnumberNo
created_atstringNo
creator_idstringNo
assignee_idstringNo
assigner_idstringNo
{
}

getMany

tasks.getMany List Todoist tasks with filters Risk: read
await corsair.todoist.api.tasks.getMany({});
Input
NameTypeRequiredDescription
project_idstringNo
section_idstringNo
labelstringNo
filterstringNo
idsstring[]No
Output: object
{
  id: string,
  project_id?: string | null,
  section_id?: string | null,
  content: string,
  description?: string,
  is_completed?: boolean,
  labels?: string[],
  parent_id?: string | null,
  order?: number,
  priority?: number,
  due?: {
  } | null,
  url?: string,
  comment_count?: number,
  created_at?: string,
  creator_id?: string,
  assignee_id?: string,
  assigner_id?: string
}[] | {
  tasks?: {
    id: string,
    project_id?: string | null,
    section_id?: string | null,
    content: string,
    description?: string,
    is_completed?: boolean,
    labels?: string[],
    parent_id?: string | null,
    order?: number,
    priority?: number,
    due?: {
    } | null,
    url?: string,
    comment_count?: number,
    created_at?: string,
    creator_id?: string,
    assignee_id?: string,
    assigner_id?: string
  }[]
}

move

tasks.move Move a Todoist task between project or section Risk: write
await corsair.todoist.api.tasks.move({});
Input
NameTypeRequiredDescription
idstringYes
project_idstringNo
section_idstringNo
parent_idstringNo
ordernumberNo
Output
NameTypeRequiredDescription
idstringYes
project_idstringNo
section_idstringNo
contentstringYes
descriptionstringNo
is_completedbooleanNo
labelsstring[]No
parent_idstringNo
ordernumberNo
prioritynumberNo
dueobjectNo
urlstringNo
comment_countnumberNo
created_atstringNo
creator_idstringNo
assignee_idstringNo
assigner_idstringNo
{
}

quickAdd

tasks.quickAdd Quick add a Todoist task using natural language Risk: write
await corsair.todoist.api.tasks.quickAdd({});
Input
NameTypeRequiredDescription
textstringYes
reminderstringNo
notestringNo
langstringNo
Output
NameTypeRequiredDescription
idstringYes
project_idstringNo
section_idstringNo
contentstringYes
descriptionstringNo
is_completedbooleanNo
labelsstring[]No
parent_idstringNo
ordernumberNo
prioritynumberNo
dueobjectNo
urlstringNo
comment_countnumberNo
created_atstringNo
creator_idstringNo
assignee_idstringNo
assigner_idstringNo
{
}

reopen

tasks.reopen Reopen a completed Todoist task Risk: write
await corsair.todoist.api.tasks.reopen({});
Input
NameTypeRequiredDescription
idstringYes
Output: object
undefined | {
}

update

tasks.update Update a Todoist task Risk: write
await corsair.todoist.api.tasks.update({});
Input
NameTypeRequiredDescription
idstringYes
contentstringNo
descriptionstringNo
project_idstringNo
section_idstringNo
parent_idstringNo
ordernumberNo
labelsstring[]No
prioritynumberNo
due_datetimestringNo
due_datestringNo
due_stringstringNo
assignee_idstringNo
Output
NameTypeRequiredDescription
idstringYes
project_idstringNo
section_idstringNo
contentstringYes
descriptionstringNo
is_completedbooleanNo
labelsstring[]No
parent_idstringNo
ordernumberNo
prioritynumberNo
dueobjectNo
urlstringNo
comment_countnumberNo
created_atstringNo
creator_idstringNo
assignee_idstringNo
assigner_idstringNo
{
}