-
Notifications
You must be signed in to change notification settings - Fork 16
Description
On January 7, the Todoist Dev team took the first steps towards shutting down the Sync v9 API as discussed in this announcement.
We have until February 10 to migrate to the new unified API, so I started working on the migration with the help of Claude Opus 4.5 AI Agent.
Proper context has been provided by scraping the entire Todoist API v1 documentation and turning it into a set of markdown files that Claude Opus can easily read and refer to.
I have tried to follow the best practices of writing prompts and spent some time planning before taking the first steps to start code modifications.
I have also instructed the Agent to split the work required into multiple PRs so that they become easy to review.
Starting from this line, most of the content below and the upcoming PR descriptions are generated by AI.
Overview
This issue tracks the migration of Todoist.Net from the Todoist Sync API v9 to the new unified Todoist API v1. This is a major breaking release that will be versioned as v11.0.0.
The Todoist API v1 combines the previous REST and Sync APIs into a single unified API with improved consistency, cursor-based pagination, and updated error handling.
Migration Phases
- PR 1: Core Renames
- PR 2: Foundation and new REST Endpoints and Services
- PR 3: Documentation and Final Release Prep
PR 1: Core Renames
- Rename
Item->DetailedTask,AddItem->AddTask,UpdateItem->UpdateTask - Rename
Note->Comment - Rename
ItemsService->TasksService,NotesService->CommentsService - Update client properties:
Items->Tasks,Notes->Comments - Update test files to use new naming
PR 2: Foundation and new REST Endpoints and Services
- Update REST client base URL from
sync/v9toapi/v1 - Add new HTTP methods (
DeleteAsync,PutAsync,PostJsonAsync) - Add
PaginatedResponse<T>model for cursor-based pagination - Update error handling for v1 API format (
error_tag,http_code,error_extra) - Remove deprecated properties (
UserInfo.IsBizAdmin,CompletedTask.CommentCount) - Implement new v1 REST endpoints for Tasks
- Implement new v1 REST endpoints for Comments
- Implement new v1 REST endpoints for Projects
- Implement new v1 REST endpoints for Sections
- Implement new v1 REST endpoints for Labels
- Add pagination support to list methods
- Update service implementations for v1 endpoint patterns
PR 3: Documentation and Final Release Prep
- Update README with new API usage examples
- Update inline XML documentation
- Add migration guide for users upgrading from v10.x
- Final integration testing
Breaking Changes Summary
| Category | Old | New |
|---|---|---|
| Model | Item |
DetailedTask |
| Model | AddItem |
AddTask |
| Model | UpdateItem |
UpdateTask |
| Model | Note |
Comment |
| Service | ItemsService |
TasksService |
| Service | NotesService |
CommentsService |
| Client Property | ITodoistClient.Items |
ITodoistClient.Tasks |
| Client Property | ITodoistClient.Notes |
ITodoistClient.Comments |
Compatibility Notes
- JSON property names remain unchanged (
items,notes,item_id) for sync API response compatibility - Sync command type strings remain unchanged (
item_add,note_add) for API compatibility - Target frameworks unchanged:
netstandard2.0,net462