---
title: "List tasks"
method: GET
path: "/api/tasks"
---

# List tasks

`GET /api/tasks`

## Request

- Base URL: `https://taskhold.com`
- URL: `https://taskhold.com/api/tasks`
- Auth: HTTP bearer

Tasks for the key's account, newest first, with optional filters.

## Query parameters

- `status` 'todo' | 'in_progress' | 'blocked' | 'done'
- `priority` 'low' | 'medium' | 'high' | 'urgent'
- `project_id` string, uuid
- `created_by` 'human' | 'agent'
- `limit` integer
- `offset` integer

## Response `200`

OK

- object
  - `tasks` Task[]
    - `id` string, uuid
    - `title` string
    - `description` string, nullable
    - `status` 'todo' | 'in_progress' | 'blocked' | 'done'
    - `priority` 'low' | 'medium' | 'high' | 'urgent'
    - `project_id` string, uuid, nullable
    - `blocked_reason` string, nullable
    - `completed_summary` string, nullable
    - `created_by` 'human' | 'agent'
    - `code_file_path` string, nullable
    - `code_line_number` integer, nullable
    - `labels` Label[]
      - `id` string, uuid
      - `name` string
      - `color` string
    - `notes` Note[]
      - `id` string, uuid
      - `task_id` string, uuid
      - `content` string
      - `created_by` 'human' | 'agent'
      - `created_at` string, date-time
    - `completed_at` string, date-time, nullable
    - `created_at` string, date-time
    - `updated_at` string, date-time
  - `source` 'api_key' | 'session'

## Other responses

- `401`: Missing, malformed or unknown API key. `reason` is one of missing_key, bad_header, not_a_taskhold_key, unknown_key; `message` says what to do and `url` links to Settings.
- `402`: The key is valid but the account has no active subscription. `url` links to Billing.
- `500`: Server error

---

[API](https://skmtc.dev/taskhold/apis/taskhold-api.md) · [All operations](https://skmtc.dev/taskhold/apis/taskhold-api/llms.txt) · [OpenAPI document](https://skmtc.dev/taskhold/apis/taskhold-api/revisions/496ae75d7cdd?raw)
