/api/v2/projects and require an authenticated session (cookie-based).
All Projects API endpoints require an active authenticated session. Requests without a valid session cookie receive a
401 Unauthorized response.GET /api/v2/projects
Retrieve all projects accessible to the authenticated user. Example requestGET /api/v2/projects/inbox
Fetch the authenticated user’s default inbox project. The inbox is the catch-all project where tasks land when no other project is specified.The inbox project always has
isDefault: true. It cannot be deleted.GET /api/v2/projects/personal
List the personal projects belonging to the authenticated user. You can optionally filter by name.A search string to filter personal projects by name (case-insensitive substring match). Pass an empty string to return all personal projects.
POST /api/v2/projects
Create a new project. You must supply aname and declare whether the project is personal or belongs to a workspace.
The display name of the project.
Set to
true to create a personal project visible only to you. Mutually exclusive with workspaceId.The ID of the workspace this project belongs to. Mutually exclusive with
personal: true.GET /api/v2/projects/:id
Fetch a single project by its ID.The ID of the project to retrieve.
PUT /api/v2/projects/:id
Update the name, task display preferences, or both for a project. Send at least one field — an empty body returns a400 Bad Request.
The ID of the project to update.
The new display name for the project.
Controls how tasks are displayed inside the project.
DELETE /api/v2/projects/:id
Permanently delete a project by its ID.The ID of the project to delete.
Sections
Sections let you subdivide a project into logical groups — for example, pipeline stages on a board or phases on a timeline. Each section belongs to exactly one project.GET /api/v2/projects/:id/sections
List all sections within a project.The ID of the parent project.
POST /api/v2/projects/:id/sections
Create a new section inside a project.The ID of the parent project.
The display name for the new section.
PATCH /api/v2/projects/:id/sections/:sectionId
Partially update a section — rename it, reorder it, or move it to another project.The ID of the parent project.
The ID of the section to update.
The new display name for the section.
The ordering key of the section that should appear immediately before this one. Used together with
nextIndex to compute the new position. Pass null to move the section to the beginning.The ordering key of the section that should appear immediately after this one. Pass
null to move the section to the end.Move this section to a different project.
DELETE /api/v2/projects/:id/sections/:sectionId
Delete a section from a project.The ID of the parent project.
The ID of the section to delete.
Tasks that belong to the deleted section are moved to the project root (their
projectSectionId is set to null). They are not deleted.