---
title: "Add a Task"
method: POST
path: "/v1/tasks"
tags: ["Tasks"]
---

# Add a Task

`POST /v1/tasks`

## Request

- Base URL: `https://api.exhibitday.com`
- URL: `https://api.exhibitday.com/v1/tasks`
- Auth: one of:
  - API key in header `api_key`
  - API key in query parameter `api_key`

The response will contain an object representing the newly added task.

Documentation: https://api.exhibitday.com/Help/V1?epf=2#post-v1-tasks

## Headers

- `Idempotency-Key` string

## Request body

- PostTasksRequest
  - `name` string, required: The name/short description of the task.
  - `event_id` integer: The id of the event you would like to add the task under. If this value is not provided, the task will be added as a general (non-event-specific) task in your workspace (under the main Task Board).
  - `task_section_id` integer: The id of the event task section that the task should be placed under. Leave this value blank if you don't want to place/categorize the task under a specific event task section. Note: you can get a list of available Task Section Ids for a given event using the /v1/events/info endpoint.
  - `is_completed` boolean: Boolean representing whether or not the task has been completed: true or false (also accepted: yes/no, 1/0, completed/incomplete). Any other value is rejected with an error.
  - `due_date` string, date: Task due date (format: YYYY-MM-DD).
  - `assignee_user_id` string: The id of the user you would like to assign the task to. If you want the task to be unassigned, leave the value for this parameter blank. To get a list of all the user ids in your workspace, use the /v1/references/users_and_resources API endpoint. Users that can have tasks assigned to them will have their can_have_tasks_assigned property set to true.
  - `details` string: The details/description of the task. Send plain text: it is stored HTML-encoded and returned as HTML, so a < b comes back as a &lt; b and each line break as <br/>. Details written in the web app editor come back as that editor rich-text HTML.
  - `integration_metadata_field_1` string: This is an integration-specific text field only accessible via the ExhibitDay API. This field can be used to store whatever metadata or information you'd like about a particular task. For example, you can use it to store the "external id" of the task (from another system you're integrating with). Or, you can use it to store the last sync timestamp. Note: when you retrieve a list of tasks (using the /v1/tasks endpoint), you can filter down the results by the value of this field.
  - `integration_metadata_field_2` string: This is an integration-specific text field only accessible via the ExhibitDay API. This field can be used to store whatever metadata or information you'd like about a particular task. For example, you can use it to store the "external id" of the task (from another system you're integrating with). Or, you can use it to store the last sync timestamp. Note: when you retrieve a list of tasks (using the /v1/tasks endpoint), you can filter down the results by the value of this field.
  - `integration_metadata_field_3` string: This is an integration-specific text field only accessible via the ExhibitDay API. This field can be used to store whatever metadata or information you'd like about a particular task. For example, you can use it to store the "external id" of the task (from another system you're integrating with). Or, you can use it to store the last sync timestamp. Note: when you retrieve a list of tasks (using the /v1/tasks endpoint), you can filter down the results by the value of this field.
  - `integration_metadata_field_4` string: This is an integration-specific text field only accessible via the ExhibitDay API. This field can be used to store whatever metadata or information you'd like about a particular task. For example, you can use it to store the "external id" of the task (from another system you're integrating with). Or, you can use it to store the last sync timestamp. Note: when you retrieve a list of tasks (using the /v1/tasks endpoint), you can filter down the results by the value of this field.
  - `integration_metadata_field_5` string: This is an integration-specific text field only accessible via the ExhibitDay API. This field can be used to store whatever metadata or information you'd like about a particular task. For example, you can use it to store the "external id" of the task (from another system you're integrating with). Or, you can use it to store the last sync timestamp. Note: when you retrieve a list of tasks (using the /v1/tasks endpoint), you can filter down the results by the value of this field.

## Response `200`

OK

- Task, nullable
  - `id` integer
  - `exhibitday_url` string, nullable
  - `event_task_section_id` integer, nullable
  - `event_task_section` string, nullable
  - `display_rank` integer
  - `name` string, nullable
  - `due_date` string, nullable
  - `assignee` AspNetUserReferenced, nullable
    - `id` string, nullable
    - `first_name` string, nullable
    - `last_name` string, nullable
    - `email` string, nullable
  - `is_completed` boolean
  - `task_completed_timestamp` string, date-time, nullable
  - `task_completed_by` AspNetUserReferenced, nullable
    - `id` string, nullable
    - `first_name` string, nullable
    - `last_name` string, nullable
    - `email` string, nullable
  - `details` string, nullable
  - `comments` TaskCommentReferenced[], nullable
    - `id` integer
    - `comment` string, nullable
    - `comment_created_timestamp` string, date-time
    - `comment_last_update_timestamp` string, date-time
    - `commenter` AspNetUserReferenced, nullable
      - `id` string, nullable
      - `first_name` string, nullable
      - `last_name` string, nullable
      - `email` string, nullable
  - `event` EventReferenced, nullable
    - `id` integer
    - `exhibitday_url` string, nullable
    - `name` string, nullable
    - `start_date` string, nullable
    - `end_date` string, nullable
    - `participation_type_id` integer
    - `participation_type` string, nullable
    - `format_id` integer
    - `format` string, nullable
    - `event_created_timestamp` string, date-time, nullable
    - `event_last_update_timestamp` string, date-time
  - `task_created_by` AspNetUserReferenced, nullable
    - `id` string, nullable
    - `first_name` string, nullable
    - `last_name` string, nullable
    - `email` string, nullable
  - `task_created_timestamp` string, date-time
  - `task_last_update_timestamp` string, date-time
  - `integration_metadata_field_1` string, nullable
  - `integration_metadata_field_2` string, nullable
  - `integration_metadata_field_3` string, nullable
  - `integration_metadata_field_4` string, nullable
  - `integration_metadata_field_5` string, nullable

## Other responses

- `400`: Bad Request: a missing or invalid parameter, or a change that is not allowed (error_code says which).
- `401`: Unauthorized: the api_key is missing or invalid, or API access is not enabled for the workspace.
- `404`: Not Found: no object with that id in your workspace, or an unknown URL or method.
- `409`: Conflict: idempotency_key_in_use (a request with the same Idempotency-Key is still being processed; retry after a moment with the same key) or idempotency_key_indeterminate (an earlier request with that key did not finish; check whether it succeeded, then retry with a new key).
- `429`: Too Many Requests: the rate limit was exceeded.
- `500`: Unexpected Internal Error.

---

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