List tasks

get/v1/tasks

Paginated list of tasks for the authenticated workspace. Filter by status (comma list), executor_type, source, priority, assigned_to (UUID), action_type (comma list); plus sort and pagination. Assignees/creators sideloaded under included. ## Filtering & sorting Filter via `POST /v1/records/query` (root `tasks`) or the `filters` model; operators are gated by each field's data type. See [Filtering & sorting](../filtering-and-sorting). **Filterable fields** | Field | Type | Allowed operators | |---|---|---| | `company_ref_id` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `composite_subtasks_list` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `confidence_score` | number | `eq` `neq` `gt` `gte` `lt` `lte` `is_null` `is_not_null` | | `conversation_thread_id` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `created_at` | date | `eq` `lt` `gt` `is_null` `is_not_null` | | `deleted_at` | date | `eq` `lt` `gt` `is_null` `is_not_null` | | `description` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `done_at` | date | `eq` `lt` `gt` `is_null` `is_not_null` | | `due_date` | date | `eq` `lt` `gt` `is_null` `is_not_null` | | `executor_type` | enum | `eq` `neq` `in` `is_null` `is_not_null` | | `pk` | number | `eq` `neq` `gt` `gte` `lt` `lte` `is_null` `is_not_null` | | `priority` | enum | `eq` `neq` `in` `is_null` `is_not_null` | | `provider_ref_id` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `score` | number | `eq` `neq` `gt` `gte` `lt` `lte` `is_null` `is_not_null` | | `source` | enum | `eq` `neq` `in` `is_null` `is_not_null` | | `status` | enum | `eq` `neq` `in` `is_null` `is_not_null` | | `task_id` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `title` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `token_reward` | number | `eq` `neq` `gt` `gte` `lt` `lte` `is_null` `is_not_null` | | `updated_at` | date | `eq` `lt` `gt` `is_null` `is_not_null` | | `visible_date` | date | `eq` `lt` `gt` `is_null` `is_not_null` | **Sortable fields:** `company_ref_id`, `composite_subtasks_list`, `confidence_score`, `conversation_thread_id`, `created_at`, `deleted_at`, `description`, `done_at`, `due_date`, `executor_type`, `pk`, `priority`, `provider_ref_id`, `score`, `source`, `status`, `task_id`, `title`, `token_reward`, `updated_at`, `visible_date` (via `orderBy` / `sort`, `asc`|`desc`).

Requires a bearer token: Authorization: Bearer <token>.

Query parameters

NameTypeRequiredDescription
pagestringNo1-based page number.e.g. Page
limitstringNoPage size (1-1000).e.g. Limit
sortstringNoComma-separated sort fields (created_at, updated_at, due_date, title, status, source, priority); prefix - for desc.e.g. Sort
include_childrenstringNoInclude children.e.g. true
filter[status]stringNoComma list of: ice_log, open, in_progress, done, blocked, cancelled, archived.e.g. Filter[status]
filter[executor_type]stringNoExecutor type.e.g. human
filter[source]stringNoSource.e.g. user
filter[priority]stringNoPriority.e.g. low
filter[assigned_to]string <uuid>NoAssigned to.e.g. 00000000-0000-4000-8000-000000000000
filter[action_type]stringNoComma list; unknown values dropped.e.g. Filter[action type]

Request

cURL
curl -X GET https://api.wellapp.ai/v1/tasks \
  -H "Authorization: Bearer $WELL_API_TOKEN"

Responses

200Paginated task list (data, included people, meta.pagination).

{
  "data": {}
}

400Invalid query parameters.

{
  "code": "BAD_REQUEST",
  "status": 400,
  "title": "Bad Request",
  "message": "See title.",
  "meta": {
    "trace_id": "a1b2c3",
    "log_id": "a1b2c3"
  }
}

401Missing or invalid Bearer token.

{
  "code": "UNAUTHORIZED",
  "status": 401,
  "title": "Unauthorized",
  "message": "See title.",
  "meta": {
    "trace_id": "a1b2c3",
    "log_id": "a1b2c3"
  }
}

This resource's related objects (the ones you can include) and how to filter or sort on each:

RelationshipCardinalityFilter on a fieldSort by a field
workspaceto-one (workspace){ "workspace": { "name": { "_eq": … } } }"field": "workspace.name"
templateto-one (task_template){ "template": { "field_name": { "_eq": … } } }"field": "template.field_name"
parent_taskto-one (task){ "parent_task": { "field_name": { "_eq": … } } }"field": "parent_task.field_name"
subtasksto-many (task){ "subtasks": { "_some": { "field_name": { "_eq": … } } } }aggregate proxy only ⚠️
assigned_toto-one (people){ "assigned_to": { "full_name": { "_eq": … } } }"field": "assigned_to.full_name"
created_byto-one (people){ "created_by": { "full_name": { "_eq": … } } }"field": "created_by.full_name"

Replace field_name with any field of the related object. See its object-reference page for the full field list.

Filter by a to-one relation (and sort by it):

{
  "root": "tasks",
  "whereClause": { "workspace": { "name": { "_ilike": "%acme%" } } },
  "orderBy": { "field": "workspace.name", "direction": "asc" }
}

Filter by a to-many relation (quantified — bare nesting is invalid):

{
  "root": "tasks",
  "whereClause": { "subtasks": { "_some": { "field_name": { "_gt": 0 } } } }
}