---
title: "List tasks"
method: GET
path: "/api/tasks/"
tags: ["Tasks"]
---

# List tasks

`GET /api/tasks/`

Retrieve a paginated list of tasks. The response format varies based on the user's role in the organization:
- **Admin/Owner**: Full task details with all annotations, reviews, and metadata
- **Reviewer**: Task details optimized for review workflow
- **Annotator**: Task details filtered to show only user's own annotations and assignments

## Query parameters

- `fields` 'all' | 'task_only'
- `include` string
- `only_annotated` boolean
- `page` integer
- `page_size` integer
- `project` integer
- `query` string
- `resolve_uri` boolean
- `review` boolean
- `selectedItems` string
- `view` integer

## Response `200`

- PaginatedRoleBasedTaskList
  - `tasks` RoleBasedTask[], required
    - union
      - LseTask — Data Manager Task Serializer with FSM state support.
        - `agreement` number, double, required
        - `agreement_selected` number, double, required
        - `allow_skip` boolean, nullable — Whether this task can be skipped. Set to False to make task unskippable.
        - `annotation_time` integer, nullable, required
        - `annotations` object[], required — Return annotations for the task. If annotations_stub=True is in context (via feature flag fflag_fix_all_fit_720_lazy_load_annotations), returns lightweight annotation stubs without result data for improved performance.
        - `annotations_ids` string, required
        - `annotations_results` string, required
        - `annotators` object[], required — Who annotated this task; each item includes user_id plus minimal profile fields for Data Manager display.
        - `annotators_count` integer, required — The annotators_count is calculated as the number of users with annotations (can be repeated, so same as the number of annotations) + the number of assignees without annotations.
        - `avg_lead_time` number, double
        - `cancelled_annotations` integer
        - `comment_authors` object[], required
        - `comment_authors_count` integer, required
        - `comment_count` integer — Number of comments in the task including all annotations
        - `comments` string, required
        - `completed_at` string, date-time
        - `created_at` string, date-time, required — Time a task was created
        - `data` object, required — User imported or uploaded data for a task. Data is formatted according to the project label config. You can find examples of data for your project on the Import page in the Label Studio Data Manager UI.
        - `draft_exists` boolean
        - `drafts` object[], required — Drafts for this task
          - `created_at` string, date-time
          - `result` object[]
          - `updated_at` string, date-time
        - `file_upload` string, nullable, required
        - `ground_truth` boolean
        - `id` integer, required
        - `inner_id` integer
        - `is_labeled` boolean — True if the number of annotations for this task is greater than or equal to the number of maximum_completions for the project
        - `last_comment_updated_at` string, date-time, nullable — When the last comment was updated
        - `meta` unknown
        - `overlap` integer — Number of distinct annotators that processed the current task
        - `precomputed_agreement` number, double, nullable — Average agreement score for the task
        - `predictions` object[], required — Predictions for this task
          - `created_at` string, date-time
          - `model` object
          - `model_run` object
          - `model_version` string
          - `project` integer
          - `result` object[]
          - `score` number
          - `task` integer
          - `updated_at` string, date-time
        - `predictions_model_versions` string, required
        - `predictions_results` string, required
        - `predictions_score` number, double
        - `project` integer, nullable — Project ID for this task
        - `review_time` integer, nullable, required
        - `reviewed` boolean
        - `reviewers` object[], required
        - `reviewers_count` integer, required
        - `reviews_accepted` integer
        - `reviews_rejected` integer
        - `state` string, required
        - `storage_filename` string, nullable, required
        - `total_annotations` integer
        - `total_predictions` integer
        - `unresolved_comment_count` integer — Number of unresolved comments in the task including all annotations
        - `updated_at` string, date-time, required — Last time a task was updated
        - `updated_by` object[], required — User IDs who updated this task
      - LseTaskSerializerForReviewers — Data Manager Task Serializer with FSM state support.
        - `agreement` number, double, required
        - `agreement_selected` number, double, required
        - `allow_skip` boolean, nullable — Whether this task can be skipped. Set to False to make task unskippable.
        - `annotation_time` integer, nullable, required
        - `annotations` object[], required — Return annotations for the task. If annotations_stub=True is in context (via feature flag fflag_fix_all_fit_720_lazy_load_annotations), returns lightweight annotation stubs without result data for improved performance.
        - `annotations_ids` string, required
        - `annotations_results` string, required
        - `annotators` object[], required — Who annotated this task; each item includes user_id plus minimal profile fields for Data Manager display.
        - `annotators_count` integer, required — The annotators_count is calculated as the number of users with annotations (can be repeated, so same as the number of annotations) + the number of assignees without annotations.
        - `avg_lead_time` number, double
        - `cancelled_annotations` integer
        - `comment_authors` object[], required
        - `comment_authors_count` integer, required
        - `comment_count` integer — Number of comments in the task including all annotations
        - `comments` string, required
        - `completed_at` string, date-time
        - `created_at` string, date-time, required — Time a task was created
        - `data` object, required — User imported or uploaded data for a task. Data is formatted according to the project label config. You can find examples of data for your project on the Import page in the Label Studio Data Manager UI.
        - `draft_exists` boolean
        - `drafts` object[], required — Drafts for this task
          - `created_at` string, date-time
          - `result` object[]
          - `updated_at` string, date-time
        - `file_upload` string, nullable, required
        - `ground_truth` boolean
        - `id` integer, required
        - `inner_id` integer
        - `is_labeled` boolean — True if the number of annotations for this task is greater than or equal to the number of maximum_completions for the project
        - `last_comment_updated_at` string, date-time, nullable — When the last comment was updated
        - `meta` unknown
        - `overlap` integer — Number of distinct annotators that processed the current task
        - `precomputed_agreement` number, double, nullable — Average agreement score for the task
        - `predictions` object[], required — Predictions for this task
          - `created_at` string, date-time
          - `model` object
          - `model_run` object
          - `model_version` string
          - `project` integer
          - `result` object[]
          - `score` number
          - `task` integer
          - `updated_at` string, date-time
        - `predictions_model_versions` string, required
        - `predictions_results` string, required
        - `predictions_score` number, double
        - `project` integer, nullable — Project ID for this task
        - `review_time` integer, nullable, required
        - `reviewed` boolean
        - `reviewers` object[], required
        - `reviewers_count` integer, required
        - `reviews_accepted` integer
        - `reviews_rejected` integer
        - `state` string, required
        - `storage_filename` string, nullable, required
        - `total_annotations` integer
        - `total_predictions` integer
        - `unresolved_comment_count` integer — Number of unresolved comments in the task including all annotations
        - `updated_at` string, date-time, required — Last time a task was updated
        - `updated_by` object[], required — User IDs who updated this task
      - LseTaskSerializerForAnnotators — Data Manager Task Serializer with FSM state support.
        - `annotations` object[], required — Return annotations for the task. If annotations_stub=True is in context (via feature flag fflag_fix_all_fit_720_lazy_load_annotations), returns lightweight annotation stubs without result data for improved performance.
        - `annotations_results` string, required
        - `cancelled_annotations` integer
        - `comment_count` integer, required
        - `comments` string, required
        - `created_at` string, date-time, required — Time a task was created
        - `data` object, required — User imported or uploaded data for a task. Data is formatted according to the project label config. You can find examples of data for your project on the Import page in the Label Studio Data Manager UI.
        - `draft_exists` boolean
        - `drafts` object[], required — Drafts for this task
          - `created_at` string, date-time
          - `result` object[]
          - `updated_at` string, date-time
        - `id` integer, required
        - `predictions` object[], required — Predictions for this task
          - `created_at` string, date-time
          - `model` object
          - `model_run` object
          - `model_version` string
          - `project` integer
          - `result` object[]
          - `score` number
          - `task` integer
          - `updated_at` string, date-time
        - `predictions_results` string, required
        - `predictions_score` number, double
        - `reviews_rejected` integer
        - `state` string, required
        - `total_annotations` integer
        - `total_predictions` integer
        - `unresolved_comment_count` integer, required
  - `total` integer, required — Total number of tasks
  - `total_annotations` integer, required — Total number of annotations
  - `total_predictions` integer, required — Total number of predictions

## Other responses

- `400` — Bad request - invalid parameters
- `401` — Unauthorized - authentication required
- `403` — Forbidden - insufficient permissions

---

[API](https://skmtc.net/humansignal/apis/label-studio-api.md) · [All operations](https://skmtc.net/humansignal/apis/label-studio-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/humansignal/label-studio-api/revisions/1d13f90af57a/schema)
