Todoist REST Port
This is the Harbor reference integration for the Todoist REST API.
Todoist REST Port
Purpose
This is the Harbor reference integration for the Todoist REST API.
Use it when:
- building Todoist actions in Harbor
- extending the Dock / Hub Todoist entry
- teaching Codex or OpenClaw how to map a task-management REST API into Harbor Ports and Harbor Actions without turning Harbor into a generic Todoist query proxy
Harbor Port worksheet
Product
- Product: Todoist REST API
- Publisher slug:
todoist - Publisher name:
Todoist - Category:
Work Management - Tags:
todoist,tasks,projects,productivity,planning
Safe Harbor Port metadata
- Kind:
http_api - Label:
Todoist REST API - Description:
Todoist REST API connection managed locally through Harbor. - Base URL:
https://api.todoist.com/rest/v1/ - Auth mode:
header_token - Auth header name:
Authorization - Auth token prefix:
Bearer
Hidden local config
authToken
Harbor stores the token locally only. Dock / Hub manifests must never contain it.
Harbor action design notes
Todoist fits Harbor well because:
- every starter action stays on one fixed origin
- project and task endpoints are stable and explicit
- Harbor can model the safe filters as typed query inputs
- task creation maps cleanly to a bounded JSON request body
- Harbor never needs to expose raw auth or arbitrary sync/query transport
Good Harbor Todoist starter actions:
- fixed
GETreads for projects and active tasks - explicit
POSTwrites for task creation requestBodyMode: "none"for readsrequestBodyMode: "json"for writesresultMode: "json_summary"for all starter actions
Avoid for now:
- the broader Sync API surface
- freeform Todoist filter grammar as a first-wave Harbor action input
- large task mutation coverage before operator review
- generic forwarding across every Todoist endpoint
Starter Todoist actions
Automatic read actions
list-projects->GET /projectslist-tasks->GET /tasks
Approval-friendly write actions
create-task->POST /tasks
Why these actions
These routes fit Harbor's current safe model well because they:
- cover the common operator loop of discovering projects, reviewing active tasks, and creating a new task
- keep the route surface small and explicit
- use Harbor's Action Model for typed query values
- map cleanly to Todoist's bearer-token auth model
- give Harbor an immediately useful work-management integration without taking on Todoist's more flexible query and sync surfaces
Action Model notes
At execution time, callers should supply values by location:
input.queryforlist-tasksinput.bodyforcreate-task
Example task listing request:
{
"query": {
"project_id": 2203306141,
"section_id": 7025
}
}
Example task creation request:
{
"body": {
"content": "Review Harbor workflow draft",
"description": "Check the Todoist port after import",
"project_id": 2203306141,
"priority": 4,
"due_string": "tomorrow at 10:00"
}
}
For create-task, keep the JSON body bounded to the fields you actually intend to use, such as:
contentdescriptionproject_idsection_idparent_idprioritydue_stringdue_lang
Suggested operator workflow
- Import the Todoist Dock entry from Dock / Hub.
- Configure the local Todoist bearer token in Harbor Node.
- Use
list-projectsto discover project IDs first. - Use
list-taskswith explicit project or section filters to inspect current work. - Keep
create-taskonrequire_approvalunless there is a clear local policy reason not to.
Suggested agent workflow
- Inspect the existing Todoist Harbor Port.
- Inspect live actions and drafts.
- Propose additional fixed Todoist routes only when they remain bounded and reviewable.
- Validate and test drafts.
- Request publish instead of self-publishing unless Harbor explicitly allows it.
Agents should never:
- ask Harbor for the stored Todoist token
- widen Todoist into a generic filter or sync proxy
- hide route names behind vague labels
- add broad mutation coverage without review
Current update strategy
For now, Todoist updates are manual:
- update the Dock / Hub Todoist integration document in
apps/hub/catalog/integrations/todoist/todoist-rest-api.json - bump the manifest version when the action set changes materially
- re-import into Harbor or create new drafts from the updated Dock entry
Scope notes
This starter set is intentionally REST-only and avoids Todoist's broader freeform filtering and Sync API surface in the first pass.
That means:
list-taskscurrently exposes only explicit ID-based filters- task creation is the only seeded write action
- additional task mutation or comment flows should be added later only when they remain fixed and reviewable
Official reference starting points
- Todoist REST API authorization:
https://developer.todoist.com/rest/v1/ - Get all projects:
https://developer.todoist.com/rest/v1/#get-all-projects - Get active tasks:
https://developer.todoist.com/rest/v1/#get-active-tasks - Create a new task:
https://developer.todoist.com/rest/v1/#create-a-new-task