{"title":"Tasks API","slug":"tasks","category":"api","summary":"Task management for LLM agents — create, list, update, complete, delete tasks with priorities.","audience":["human","llm"],"tags":["api","tasks","todo","management"],"difficulty":"beginner","updated":"2026-06-27","word_count":145,"read_minutes":1,"llm_context":"Auth: Mind Key\nList: GET /mind/tasks?status=pending|in_progress|done|cancelled|all\nCreate: POST /mind/task { title, description?, priority?, due_at? }\nUpdate: PUT /mind/task/:id { title?, description?, priority?, status?, due_at? }\nComplete: GET /mind/task/:id/complete\nDelete: GET /mind/task/:id/delete\nPriorities: low, normal, high, critical\nStatuses: pending, in_progress, done, cancelled\nPattern: create tasks for multi-step work, update status as you progress\n","lang":"en","translated":true,"requested_lang":"en","content_markdown":"\n# Tasks API\n\nThe Tasks API gives LLM agents a structured way to track multi-step work.\nTasks are scoped to the current mind and persist across sessions, so the agent\ncan resume work where it left off.\n\n## Endpoints\n\n### GET /mind/tasks\n\nList all tasks for the current mind.\n\n```bash\n# All tasks\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     https://synapse.schaefer.zone/mind/tasks\n\n# Filter by status\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     \"https://synapse.schaefer.zone/mind/tasks?status=pending\"\n```\n\nResponse:\n\n```json\n{\n  \"tasks\": [\n    {\n      \"id\": \"task_001\",\n      \"title\": \"Deploy v1.5.0\",\n      \"description\": \"Push to production after CI green\",\n      \"priority\": \"high\",\n      \"status\": \"in_progress\",\n      \"due_at\": \"2026-06-28T...\",\n      \"created_at\": \"2026-06-27T...\"\n    }\n  ]\n}\n```\n\n### POST /mind/task\n\nCreate a new task.\n\n```bash\ncurl -X POST https://synapse.schaefer.zone/mind/task \\\n  -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"title\": \"Update documentation\",\n    \"description\": \"Add v1.5.0 changelog entries\",\n    \"priority\": \"normal\",\n    \"due_at\": \"2026-06-30T00:00:00Z\"\n  }'\n```\n\n### GET /mind/task (query params)\n\nCreate a task via GET (for URL-only tools).\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     \"https://synapse.schaefer.zone/mind/task?title=Test+task&priority=high\"\n```\n\n### PUT /mind/task/:id\n\nUpdate an existing task.\n\n```bash\ncurl -X PUT https://synapse.schaefer.zone/mind/task/task_001 \\\n  -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"status\": \"in_progress\",\n    \"description\": \"Currently deploying, CI is green\"\n  }'\n```\n\n### GET /mind/task/:id/complete\n\nMark a task as done.\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     https://synapse.schaefer.zone/mind/task/task_001/complete\n```\n\n### GET /mind/task/:id/delete\n\nDelete a task permanently.\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     https://synapse.schaefer.zone/mind/task/task_001/delete\n```\n\n## Priorities\n\n- `low` — non-urgent\n- `normal` — default\n- `high` — important\n- `critical` — must do immediately\n\n## Statuses\n\n- `pending` — created, not started\n- `in_progress` — currently being worked on\n- `done` — completed\n- `cancelled` — abandoned\n\n## Pattern: Task-Driven Workflow\n\n```python\n# At session start\ntasks = list_tasks(status=\"in_progress\")\nif tasks:\n    print(f\"Resuming: {tasks[0].title}\")\n\n# Plan multi-step work\nfor step in plan:\n    task = create_task(title=step)\n\n# Update as you progress\nupdate_task(task.id, status=\"in_progress\")\n# ... do work ...\nupdate_task(task.id, status=\"done\")\n```\n\n## Next Steps\n\n- [Task-Driven Workflow](/docs/llm-cookbook/task-driven-workflow)\n- [Cron & Scheduler](/docs/api/cron)\n","content_html":"<h1>Tasks API</h1>\n<p>The Tasks API gives LLM agents a structured way to track multi-step work.\nTasks are scoped to the current mind and persist across sessions, so the agent\ncan resume work where it left off.</p>\n<h2>Endpoints</h2>\n<h3>GET /mind/tasks</h3>\n<p>List all tasks for the current mind.</p>\n<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># All tasks</span>\ncurl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/mind/tasks\n\n<span class=\"hljs-comment\"># Filter by status</span>\ncurl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/mind/tasks?status=pending&quot;</span></code></pre><p>Response:</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span>\n  <span class=\"hljs-attr\">&quot;tasks&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">[</span>\n    <span class=\"hljs-punctuation\">{</span>\n      <span class=\"hljs-attr\">&quot;id&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;task_001&quot;</span><span class=\"hljs-punctuation\">,</span>\n      <span class=\"hljs-attr\">&quot;title&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;Deploy v1.5.0&quot;</span><span class=\"hljs-punctuation\">,</span>\n      <span class=\"hljs-attr\">&quot;description&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;Push to production after CI green&quot;</span><span class=\"hljs-punctuation\">,</span>\n      <span class=\"hljs-attr\">&quot;priority&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;high&quot;</span><span class=\"hljs-punctuation\">,</span>\n      <span class=\"hljs-attr\">&quot;status&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;in_progress&quot;</span><span class=\"hljs-punctuation\">,</span>\n      <span class=\"hljs-attr\">&quot;due_at&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;2026-06-28T...&quot;</span><span class=\"hljs-punctuation\">,</span>\n      <span class=\"hljs-attr\">&quot;created_at&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;2026-06-27T...&quot;</span>\n    <span class=\"hljs-punctuation\">}</span>\n  <span class=\"hljs-punctuation\">]</span>\n<span class=\"hljs-punctuation\">}</span></code></pre><h3>POST /mind/task</h3>\n<p>Create a new task.</p>\n<pre><code class=\"hljs language-bash\">curl -X POST https://synapse.schaefer.zone/mind/task \\\n  -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n  -H <span class=\"hljs-string\">&quot;Content-Type: application/json&quot;</span> \\\n  -d <span class=\"hljs-string\">&#x27;{\n    &quot;title&quot;: &quot;Update documentation&quot;,\n    &quot;description&quot;: &quot;Add v1.5.0 changelog entries&quot;,\n    &quot;priority&quot;: &quot;normal&quot;,\n    &quot;due_at&quot;: &quot;2026-06-30T00:00:00Z&quot;\n  }&#x27;</span></code></pre><h3>GET /mind/task (query params)</h3>\n<p>Create a task via GET (for URL-only tools).</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/mind/task?title=Test+task&amp;priority=high&quot;</span></code></pre><h3>PUT /mind/task/:id</h3>\n<p>Update an existing task.</p>\n<pre><code class=\"hljs language-bash\">curl -X PUT https://synapse.schaefer.zone/mind/task/task_001 \\\n  -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n  -H <span class=\"hljs-string\">&quot;Content-Type: application/json&quot;</span> \\\n  -d <span class=\"hljs-string\">&#x27;{\n    &quot;status&quot;: &quot;in_progress&quot;,\n    &quot;description&quot;: &quot;Currently deploying, CI is green&quot;\n  }&#x27;</span></code></pre><h3>GET /mind/task/:id/complete</h3>\n<p>Mark a task as done.</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/mind/task/task_001/complete</code></pre><h3>GET /mind/task/:id/delete</h3>\n<p>Delete a task permanently.</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/mind/task/task_001/delete</code></pre><h2>Priorities</h2>\n<ul>\n<li><code>low</code> — non-urgent</li>\n<li><code>normal</code> — default</li>\n<li><code>high</code> — important</li>\n<li><code>critical</code> — must do immediately</li>\n</ul>\n<h2>Statuses</h2>\n<ul>\n<li><code>pending</code> — created, not started</li>\n<li><code>in_progress</code> — currently being worked on</li>\n<li><code>done</code> — completed</li>\n<li><code>cancelled</code> — abandoned</li>\n</ul>\n<h2>Pattern: Task-Driven Workflow</h2>\n<pre><code class=\"hljs language-python\"><span class=\"hljs-comment\"># At session start</span>\ntasks = list_tasks(status=<span class=\"hljs-string\">&quot;in_progress&quot;</span>)\n<span class=\"hljs-keyword\">if</span> tasks:\n    <span class=\"hljs-built_in\">print</span>(<span class=\"hljs-string\">f&quot;Resuming: <span class=\"hljs-subst\">{tasks[<span class=\"hljs-number\">0</span>].title}</span>&quot;</span>)\n\n<span class=\"hljs-comment\"># Plan multi-step work</span>\n<span class=\"hljs-keyword\">for</span> step <span class=\"hljs-keyword\">in</span> plan:\n    task = create_task(title=step)\n\n<span class=\"hljs-comment\"># Update as you progress</span>\nupdate_task(task.<span class=\"hljs-built_in\">id</span>, status=<span class=\"hljs-string\">&quot;in_progress&quot;</span>)\n<span class=\"hljs-comment\"># ... do work ...</span>\nupdate_task(task.<span class=\"hljs-built_in\">id</span>, status=<span class=\"hljs-string\">&quot;done&quot;</span>)</code></pre><h2>Next Steps</h2>\n<ul>\n<li><a href=\"/docs/llm-cookbook/task-driven-workflow\">Task-Driven Workflow</a></li>\n<li><a href=\"/docs/api/cron\">Cron &amp; Scheduler</a></li>\n</ul>\n","urls":{"html":"/docs/api/tasks","text":"/docs/api/tasks?format=text","json":"/docs/api/tasks?format=json","llm":"/docs/api/tasks?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}