Skip to content

Instantly share code, notes, and snippets.

@Maxr1998
Last active December 8, 2024 19:31
Show Gist options
  • Save Maxr1998/82cebde74a4845cb485ac0d5a6dbefa6 to your computer and use it in GitHub Desktop.
Save Maxr1998/82cebde74a4845cb485ac0d5a6dbefa6 to your computer and use it in GitHub Desktop.
Python script to delete completed tasks from your Todoist Inbox
import todoist
api = todoist.TodoistAPI(token='<your_token_here')
# Initial sync of your account
api.sync()
# Find Inbox in project - can be adapted to delete completed tasks for other projects as well
projects = api.projects.all()
inbox = next(p for p in projects if 'inbox_project' in p)
# Process tasks until explicitly aborted
while True:
# Get completed tasks for project, a maximum of 100 tasks is supported per batch
completed = api.items.get_completed(project_id=inbox['id'], limit=100)
if not completed:
break # No completed tasks left, abort
# Delete the completed tasks
for c in completed:
api.items.delete(c['id'])
# Commit deletion requests
api.commit()
@taurit
Copy link

taurit commented Jan 26, 2023

You can use the python requests library to make a request to the sync api and then delete them like before (...)

Thanks for sharing the code, @dmbeta!

I played with it for a while but eventually gave up for the following reasons:

  • Todoist API throttles requests. It does it to the degree, where use of batch commands of Sync API is required. I tried that too, but it was still hindering cleanup of thousands of items.
  • Deleting a task doesn't really remove it from the database. It might disappear from the archive, but the delete operation with details is added to the Activity Log and stays there forever. So the operation brings no protection against e.g. leak of historical data from the company, which was my main motivator :(

Thanks again.

@dmbeta
Copy link

dmbeta commented Jan 26, 2023

Maybe we can change the content before deleting, but I imagine that is also stored in the activity log. At this point then, we need a different more private to-do app, perhaps one with end-to-end encryption on the content of tasks. Only end-to-end encrypted to-do app I know of is Lunatask https://lunatask.app/ and note-taking apps like Joplin, but Lunatask isn't fully supported on mobile yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment