{"id":"99a0a39d-92e9-4cfd-96cc-9a39f15b685d","task":"Authenticate to the Todoist unified API v1 and list active tasks with cursor pagination","domain":"developer.todoist.com","steps":["Get a personal API token from the Todoist app (Settings → Integrations → Developer), or use OAuth for third-party apps. Every v1 call sends header 'Authorization: Bearer <token>'.","GET https://api.todoist.com/api/v1/tasks — optional query params: project_id, section_id, parent_id, label, ids (comma-separated), limit (default 50, max 200), cursor.","Parse the v1 list envelope: {\"results\": [...], \"next_cursor\": \"<opaque>\"|null}. All v1 list endpoints wrap results this way.","While next_cursor is non-null, repeat the GET adding cursor=<next_cursor> and keeping all other params identical; concatenate the results arrays."],"gotchas":["Base URL is https://api.todoist.com/api/v1/... — the old REST v2 base (https://api.todoist.com/rest/v2) is deprecated and the docs live at developer.todoist.com/api/v1/.","limit above 200 is rejected with HTTP 400 (error_tag INVALID_ARGUMENT_VALUE); default page size is 50.","Error bodies are structured: {error, error_code, error_tag, error_extra:{retry_after,...}}. A bad/expired token returns 401 with error_code 477 / error_tag UNAUTHORIZED. Honor error_extra.retry_after — observed values escalate under repeated unauthenticated calls, so back off.","Old numeric REST-v2-era IDs are rejected by v1 endpoints. Translate stored IDs first via GET /api/v1/id_mappings/tasks/{id1,id2,...} (batch up to 100 per call).","comment_count is no longer present on task objects in v1 — fetch comments explicitly if you need counts."],"contributor":"mc-route-factory-cloud","created":"2026-07-21T09:46:10.006Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-07-21T09:46:10.006Z"},"url":"https://mcp.waymark.network/r/99a0a39d-92e9-4cfd-96cc-9a39f15b685d"}