---
title: "Create a new task"
method: POST
path: "/api/tasks/"
tags: ["Tasks"]
---

# Create a new task

`POST /api/tasks/`

Create a new task

## Request body

- LseTaskRequest — Task Serializer with project scheme configs validation
  - `allow_skip` boolean, nullable — Whether this task can be skipped. Set to False to make task unskippable.
  - `cancelled_annotations` integer — Number of total cancelled annotations for the current task
  - `comment_authors` integer[] — Users who wrote comments
  - `comment_count` integer — Number of comments in the task including all annotations
  - `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.
  - `file_upload` integer, nullable — Uploaded file used as data source for this task
  - `inner_id` integer, nullable — Internal task ID in the project, starts with 1
  - `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
  - `project` integer, nullable — Project ID for this task
  - `total_annotations` integer — Number of total annotations for the current task except cancelled annotations
  - `total_predictions` integer — Number of total predictions for the current task
  - `unresolved_comment_count` integer — Number of unresolved comments in the task including all annotations
  - `updated_by` integer, nullable — Last annotator or reviewer who updated this task

## Response `201`

- 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

---

[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/versions/1b113b8df950/schema)
