# Todoist API Common Issues

> Sub-skill of todoist-api: Common Issues.

- Skill: `vamseeachanta/todoist-api-common-issues` (Agent Skill)
- Install (CLI): `npx skillmds@latest add vamseeachanta/todoist-api-common-issues`
- Raw SKILL.md: https://api.skillmd.com/api/skills/vamseeachanta/todoist-api-common-issues/raw
- Safety review: PASS (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: vamseeachanta (https://skillmd.com/u/vamseeachanta)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/vamseeachanta/todoist-api-common-issues

---


# Common Issues

## Common Issues


**Issue: 401 Unauthorized**
```python
# Verify your API token
curl -s -X GET "https://api.todoist.com/rest/v2/projects" \
    -H "Authorization: Bearer $TODOIST_API_KEY"

# Check if token is set correctly
echo $TODOIST_API_KEY

# Regenerate token at:
# https://todoist.com/app/settings/integrations/developer
```

**Issue: 429 Too Many Requests**
```python
# Implement exponential backoff
import time

def retry_with_backoff(func, max_retries=5):
    for i in range(max_retries):
        try:
            return func()
        except Exception as e:
            if "429" in str(e):
                wait = 2 ** i
                print(f"Rate limited, waiting {wait}s")
                time.sleep(wait)
            else:
                raise
```

**Issue: Task not appearing**
```python
# Check if task was created in different project
all_tasks = api.get_tasks()
for task in all_tasks:
    if "keyword" in task.content.lower():
        print(f"Found: {task.content} in project {task.project_id}")
```

**Issue: Due dates not parsing**
```python
# Use explicit date format
api.add_task(
    content="Test task",
    due_date="2025-01-20"  # ISO format
)

# Or use due_datetime for specific time
api.add_task(
    content="Test task",
    due_datetime="2025-01-20T14:00:00Z"  # ISO with time
)
```

