Generated Computers
Locals: an Apple Silicon engine that runs local LLMs up to 3x faster. A product of Generated Computers.
Translation pending
A python wrapper for the Todoist REST API.
Developer toolsPythonGitHub @DoistOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗This is the official Python SDK for the Todoist API.
pip install todoist-api-python
Or add the project as a dependency in pyproject.toml:
dependencies = [
"todoist-api-python>=3.1.0,<4",
]
Python version 3.10 and above.
Here's an example of initializing the API client, fetching a task, and paginating through its comments:
from todoist_api_python.api import TodoistAPI
api = TodoistAPI("YOUR_API_TOKEN")
task = api.get_task("6X4Vw2Hfmg73Q2XR")
print(f"Task: {task.content}")
comments_iter = api.get_comments(task_id=task.id)
for comments in comments_iter:
for comment in comments:
print(f"Comment: {comment.content}")
Always close TodoistAPIAsync explicitly, either via async with (recommended) or by calling await api.close().
from todoist_api_python.api_async import TodoistAPIAsync
async with TodoistAPIAsync("YOUR_API_TOKEN") as api:
task = await api.get_task("6X4Vw2Hfmg73Q2XR")
print(task.content)
For more detailed reference documentation, have a look at the SDK documentation and the API documentation.
Version 4.x introduces a breaking HTTP stack migration from requests to httpx2.
TodoistAPI(..., session=...) is now TodoistAPI(..., client=...) with httpx2.Client.TodoistAPIAsync(..., session=...) is now TodoistAPIAsync(..., client=...) with httpx2.AsyncClient.httpx2.HTTPStatusError instead of requests.exceptions.HTTPError.To install Python dependencies:
$ uv sync
To install pre-commit:
$ uv run pre-commit install
You can try your changes via REPL by running:
$ uv run python
You can then import the library as described in Usage without having to create a file.
If you decide to use TodoistAPIAsync, please keep in mind that you have to import asyncio
and run asyncio.run(yourmethod()) to make your async methods run as expected.
This API client is public, and available in a PyPI repository.
A new update is automatically released by GitHub Actions, by creating a release with a tag in the format vX.Y.Z (v<Major>.<Minor>.<Patch>).
Users of the API client can then update to the new version in their pyproject.toml file.
Any feedback, bugs, questions, comments, etc., can be reported as Issues in this repository.
We would love contributions! Pull requests are welcome.