Tasks

Retrieve a Single Task by Id #

Method
GET
Endpoint
Sample Object
Retrieves information about a specific task (using the "id" parameter).
Parameters
Name Type Required? Details Description
api_key String Yes
id Number Yes
Id of the specific task that you would like to retrieve.
$result_format String No
Pass in "array" to get the task inside a JSON array (a list with one item).
$on_error_return_empty_result Boolean No
default: false
For a missing or invalid task id, or a task not found, return HTTP 200 with {} (or [] when $result_format=array). Authentication, rate-limit and unexpected server errors keep their normal HTTP status.
Code Samples
curl -X GET "https://api.exhibitday.com/v1/tasks/info?id=12345" -H "api_key: YOUR_API_KEY"

Example HTTP response body (JSON)

GET /v1/tasks/info - HTTP 200
{
  "id": 12345,
  "exhibitday_url": "https://www.exhibitday.com/Workspace/TaskView/98765?tid=12345",
  "event_task_section_id": null,
  "event_task_section": null,
  "display_rank": 0,
  "name": "Sample task",
  "due_date": null,
  "assignee": null,
  "is_completed": false,
  "task_completed_timestamp": null,
  "task_completed_by": null,
  "details": "",
  "comments": [],
  "event": null,
  "task_created_by": {
    "id": "11111111-2222-4333-8444-555555555555",
    "first_name": "Jane",
    "last_name": "Smith",
    "email": "jane@example.invalid"
  },
  "task_created_timestamp": "2026-10-28T16:00:00Z",
  "task_last_update_timestamp": "2026-10-28T16:00:00Z",
  "integration_metadata_field_1": "",
  "integration_metadata_field_2": "",
  "integration_metadata_field_3": "",
  "integration_metadata_field_4": "",
  "integration_metadata_field_5": ""
}
Note: Illustrative response. Assume the identified records exist in an illustrative workspace and the request succeeds. Generated IDs, related records and timestamps are illustrative. Item links use illustrative workspace 98765 and the DTO's configured application host (an illustrative production-host fallback is used only if absent). Timestamps are illustrative values formatted by the current API serializer; they do not establish the timezone semantics of stored timestamps. The default response representation is shown; documented options can select another shape. Reference labels are illustrative; assume the workspace uses the standard participation types with no custom choices. Request inputs: {"id":12345}.

Retrieve Tasks #

Method
GET
Endpoint
This method retrieves tasks in your workspace based on various filter criteria. The filter parameters for this method work in conjunction on an “AND-basis”. For example, if you pass in the value “true” for filter_by_no_due_date and value “12345” for filter_by_event_id, you’ll get back all the tasks with no due date for the event that has an Id of 12345. Also, you can only pass in one value for each filter parameter; this means that you can’t pass in “12345, 56789” as the value for the filter_by_event_id filter parameter expecting to get back all the tasks for the two events 12345 and 56789.
Parameters
Name Type Required? Details Description
api_key String Yes
filter_by_event_id Number No
Only include tasks from this given event.
filter_by_general_tasks_only Boolean No
default: false
Only include general tasks (tasks on the main task board that do not belong to a particular event). Note: this filter cannot be used in conjunction with the filter_by_event_id filter.
filter_by_incomplete_only Boolean No
default: false
If you pass in the value "true" for this parameter, the result will only include tasks that are NOT marked as Completed.
filter_by_completed_only Boolean No
default: false
If you pass in the value "true" for this parameter, the result will only include tasks that are marked as Completed.
filter_by_no_due_date Boolean No
default: false
If you pass in the value "true" for this parameter, the result will only include tasks that do not have a due date set.
filter_by_due_date_greater_than_or_equal_to Date No
Only include tasks that have a due date greater than or equal to the value passed in for this filter parameter. Use this date format: YYYY-MM-DD. You can also pass in "today", "yesterday" or "tomorrow" (based on your workspace's time zone). Note: this filter cannot be used in conjunction with the filter_by_no_due_date filter.
filter_by_due_date_smaller_than_or_equal_to Date No
Only include tasks that have a due date smaller than or equal to the value passed in for this filter parameter. Use this date format: YYYY-MM-DD. You can also pass in "today", "yesterday" or "tomorrow" (based on your workspace's time zone). Note: this filter cannot be used in conjunction with the filter_by_no_due_date filter.
filter_by_has_assignee Boolean No
default: false
Only include tasks that have an assignee. Unassigned tasks will get excluded.
filter_by_assignee_user_id String No
Only include tasks that are assigned to this user. You can get a list of UserIds in your workspace from the /v1/references/users_and_resources endpoint. Note: If you want to retrieve the tasks that are unassigned, include this parameter and pass in the word "null" as the value for it.
filter_by_task_name_contains_text String No
Only include tasks that have the given text in the task Name. For example: If you want to retrieve all the tasks that have the word “order” in the task Name field, pass in the value “order” for the filter_by_task_name_contains_text parameter. Note: this text search is not case-sensitive.
filter_by_integration_metadata_field_1 String No
max length: 3000
Only include tasks that have their integration_metadata_field_1 property equal to the value you pass in for this parameter. Note: A task's integration_metadata_field_1 property is an integration-specific text field only accessible via the ExhibitDay API. This field is typically used to store metadata or information about a particular task (e.g., the "external id" of the task from another system you're integrating with).
filter_by_integration_metadata_field_2 String No
max length: 3000
Only include tasks that have their integration_metadata_field_2 property equal to the value you pass in for this parameter. Note: A task's integration_metadata_field_2 property is an integration-specific text field only accessible via the ExhibitDay API. This field is typically used to store metadata or information about a particular task (e.g., the "external id" of the task from another system you're integrating with).
filter_by_integration_metadata_field_3 String No
max length: 3000
Only include tasks that have their integration_metadata_field_3 property equal to the value you pass in for this parameter. Note: A task's integration_metadata_field_3 property is an integration-specific text field only accessible via the ExhibitDay API. This field is typically used to store metadata or information about a particular task (e.g., the "external id" of the task from another system you're integrating with).
filter_by_integration_metadata_field_4 String No
max length: 3000
Only include tasks that have their integration_metadata_field_4 property equal to the value you pass in for this parameter. Note: A task's integration_metadata_field_4 property is an integration-specific text field only accessible via the ExhibitDay API. This field is typically used to store metadata or information about a particular task (e.g., the "external id" of the task from another system you're integrating with).
filter_by_integration_metadata_field_5 String No
max length: 3000
Only include tasks that have their integration_metadata_field_5 property equal to the value you pass in for this parameter. Note: A task's integration_metadata_field_5 property is an integration-specific text field only accessible via the ExhibitDay API. This field is typically used to store metadata or information about a particular task (e.g., the "external id" of the task from another system you're integrating with).
hydrate_task_comments Boolean No
default: false
Include the comments collection for each task in the result set. Note: hydrating the comments collection for each task in the results will naturally yield a larger response size and response time. Set the value for this parameter to true only if you need to include the list of comments for each task in the result set.
filter_by_completer_user_id String No
Only include the tasks that were completed by this user. Use the user's id from /v1/references/users_and_resources. You can only pass in one id.
$result_sort String No
Sorts the tasks by when they were added or last updated. Accepted values: create_timestamp_asc, create_timestamp_desc, last_update_timestamp_asc, last_update_timestamp_desc. Without this parameter, tasks are grouped by event (in event start date order) and listed in their task board order within each event.
$return_task_lites Boolean No
default: false
Return a shorter version of each task (id, exhibitday_url, display_rank, name, due_date, assignee_user_id, is_completed, completion time and user, the event, created by, created and last update timestamps, and the integration metadata fields). Use it for faster responses when you only need to identify tasks. Note: task comments are not included in these shorter tasks. In them the completion time is named task_completed_timestamp_est, but it is UTC like every other timestamp (the same value as task_completed_timestamp in the full task).
filter_by_last_update_timestamp_greater_than_or_equal_to String No
Only include tasks that were added or changed on or after this date and time, for example 2026-10-14T18:30:00 (a date alone, such as 2026-10-14, means midnight). Responses give task_last_update_timestamp in UTC (it ends in Z), and that value can be passed back unchanged; a value without an offset is read as US Eastern time, and any other offset (e.g., 2026-10-14T18:30:00-04:00) is converted. To sync changes, process and save every page before advancing the cursor. Save the latest task_last_update_timestamp you receive and pass it in next time (tasks changed at exactly that time come back again, upsert every returned record by id, including boundary records). Deleted tasks are not returned. Any other value is rejected with an error.
$limit Number No
The most tasks to return (a whole number of 1 or more). Use it with $offset to read a long list in pages: total_records in the response counts every matching task and has_more is true while more pages follow (the X-Total-Count header carries the total too). Without $limit, every matching task is returned.
$offset Number No
How many tasks to skip before the first one returned (a whole number; 0 by default). For the next page, add the number of tasks you received to $offset.
$result_format String No
Pass in "array" to get the results as a plain JSON array (without records_found, total_records, has_more and list_type; the X-Total-Count header still gives the total), or "wrapped_in_array" to get the usual response inside a JSON array.
$on_error_return_empty_result Boolean No
default: false
For this endpoint's ID, filter or paging validation errors, return HTTP 200 with no matching records in the selected result format. Authentication, rate-limit and unexpected server errors keep their normal HTTP status.
Code Samples
curl -X GET "https://api.exhibitday.com/v1/tasks" -H "api_key: YOUR_API_KEY"

Example HTTP response body (JSON)

GET /v1/tasks - HTTP 200
{
  "records_found": 1,
  "total_records": 1,
  "has_more": false,
  "list_type": "task",
  "list_data": [
    {
      "id": 12345,
      "exhibitday_url": "https://www.exhibitday.com/Workspace/TaskView/98765?tid=12345",
      "event_task_section_id": null,
      "event_task_section": null,
      "display_rank": 0,
      "name": "Sample task",
      "due_date": null,
      "assignee": null,
      "is_completed": false,
      "task_completed_timestamp": null,
      "task_completed_by": null,
      "details": "",
      "comments": null,
      "event": null,
      "task_created_by": {
        "id": "11111111-2222-4333-8444-555555555555",
        "first_name": "Jane",
        "last_name": "Smith",
        "email": "jane@example.invalid"
      },
      "task_created_timestamp": "2026-10-28T16:00:00Z",
      "task_last_update_timestamp": "2026-10-28T16:00:00Z",
      "integration_metadata_field_1": "",
      "integration_metadata_field_2": "",
      "integration_metadata_field_3": "",
      "integration_metadata_field_4": "",
      "integration_metadata_field_5": ""
    }
  ]
}
Note: Illustrative response. Assume the identified records exist in an illustrative workspace and the request succeeds. Generated IDs, related records and timestamps are illustrative. Item links use illustrative workspace 98765 and the DTO's configured application host (an illustrative production-host fallback is used only if absent). Timestamps are illustrative values formatted by the current API serializer; they do not establish the timezone semantics of stored timestamps. The default response representation is shown; documented options can select another shape. Reference labels are illustrative; assume the workspace uses the standard participation types with no custom choices. No query/body parameters are sent (the API key remains a header).

Add a Task #

Method
POST
Endpoint
The response will contain an object representing the newly added task.
Parameters
Name Type Required? Details Description
api_key String Yes
name String Yes
max length: 400
The name/short description of the task.
event_id Number No
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 Number No
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 No
default: false
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 Date No
Task due date (format: YYYY-MM-DD).
assignee_user_id String No
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 No
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 No
max length: 3000
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 No
max length: 3000
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 No
max length: 3000
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 No
max length: 3000
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 No
max length: 3000
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.
Code Samples
curl -X POST https://api.exhibitday.com/v1/tasks -H "api_key: YOUR_API_KEY" -H "Content-Type: application/json" -d "{\"name\":\"Sample task\"}"

Example HTTP response body (JSON)

POST /v1/tasks - HTTP 200
{
  "id": 23456,
  "exhibitday_url": "https://www.exhibitday.com/Workspace/TaskView/98765?tid=23456",
  "event_task_section_id": null,
  "event_task_section": null,
  "display_rank": 0,
  "name": "Sample task",
  "due_date": null,
  "assignee": null,
  "is_completed": false,
  "task_completed_timestamp": null,
  "task_completed_by": null,
  "details": "",
  "comments": [],
  "event": null,
  "task_created_by": {
    "id": "ExhibitDay API",
    "first_name": "ExhibitDay",
    "last_name": "API",
    "email": ""
  },
  "task_created_timestamp": "2026-10-28T16:00:00Z",
  "task_last_update_timestamp": "2026-10-28T16:00:00Z",
  "integration_metadata_field_1": "",
  "integration_metadata_field_2": "",
  "integration_metadata_field_3": "",
  "integration_metadata_field_4": "",
  "integration_metadata_field_5": ""
}
Note: Illustrative response. Assume the identified records exist in an illustrative workspace and the request succeeds. Generated IDs, related records and timestamps are illustrative. Item links use illustrative workspace 98765 and the DTO's configured application host (an illustrative production-host fallback is used only if absent). Timestamps are illustrative values formatted by the current API serializer; they do not establish the timezone semantics of stored timestamps. The default response representation is shown; documented options can select another shape. Reference labels are illustrative; assume the workspace uses the standard participation types with no custom choices. Request inputs: {"name":"Sample task"}.

Delete a Task #

Method
DELETE
Endpoint
Permanently deletes a task. It cannot be undone.
Parameters
Name Type Required? Details Description
api_key String Yes
id Number Yes
The id of the task you would like to delete.
Code Samples
curl -X DELETE "https://api.exhibitday.com/v1/tasks?id=12345" -H "api_key: YOUR_API_KEY"

Example HTTP response body (JSON)

DELETE /v1/tasks - HTTP 200
{
  "status_code": 200,
  "status": "OK",
  "message": "Task Deleted",
  "errors": []
}
Note: Illustrative response. Assume the identified records exist in an illustrative workspace and the request succeeds. Generated IDs, related records and timestamps are illustrative. Item links use illustrative workspace 98765 and the DTO's configured application host (an illustrative production-host fallback is used only if absent). Timestamps are illustrative values formatted by the current API serializer; they do not establish the timezone semantics of stored timestamps. The default response representation is shown; documented options can select another shape. Reference labels are illustrative; assume the workspace uses the standard participation types with no custom choices. Request inputs: {"id":12345}.

Update a Task #

Method
PATCH
Endpoint
To update a task, only pass in the properties that you want to update. To clear a property that supports clearing, pass in null; an empty value leaves the property unchanged (the warnings property in the response names any such parameters). If the update is successful, the message property in the response will contain a list of task properties that were actually changed.
Parameters
Name Type Required? Details Description
api_key String Yes
id Number Yes
The Id of the task you would like to update.
name String No
max length: 400
The name/short description of the task.
event_id Number No
The id of the event you would like to move the task to. To make it a general task (one that is not under any event), pass in null. A moved task is placed at the top of its new task list and taken out of its task section; to place it under one of the new event's task sections, also pass in task_section_id. Links between the task and items of its previous event are removed. A task cannot be moved into or out of an event whose tasks are locked.
task_section_id Number No
The id of the event task section that the task should be placed under. If you don't want to place/categorize the task under a specific event task section, pass in the value "null" for this parameter. Note: you can get a list of available Task Section Ids for a given event using the /v1/events/info endpoint.
is_completed Boolean No
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 Date No
Task due date in YYYY-MM-DD format. To remove the due date, pass in null (JSON null or the string "null"). Omit this parameter, or pass in an empty value, to leave the due date unchanged.
assignee_user_id String No
The User Id of the user you would like to assign the task to. If you want the task to be unassigned, pass in the value "null" for this parameter. To get a list of all the User Ids in your workspace, use the /v1/references/users_and_resources API endpoint; users who can have tasks assigned to them will have their can_have_tasks_assigned property set to true.
details String No
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. To clear this field, pass in null (JSON null or the string "null").
integration_metadata_field_1 String No
max length: 3000
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 No
max length: 3000
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 No
max length: 3000
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 No
max length: 3000
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 No
max length: 3000
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.
Code Samples
curl -X PATCH https://api.exhibitday.com/v1/tasks -H "api_key: YOUR_API_KEY" -H "Content-Type: application/json" -d "{\"id\":12345,\"name\":\"Updated task name\"}"

Example HTTP response body (JSON)

PATCH /v1/tasks - HTTP 200
{
  "status_code": 200,
  "status": "OK",
  "message": "Task Update Successful. Task properties that were changed: name",
  "errors": []
}
Note: Illustrative response. Assume the identified records exist in an illustrative workspace and the request succeeds. Generated IDs, related records and timestamps are illustrative. Item links use illustrative workspace 98765 and the DTO's configured application host (an illustrative production-host fallback is used only if absent). Timestamps are illustrative values formatted by the current API serializer; they do not establish the timezone semantics of stored timestamps. The default response representation is shown; documented options can select another shape. Reference labels are illustrative; assume the workspace uses the standard participation types with no custom choices. Request inputs: {"id":12345,"name":"Updated task name"}.

Retrieve Task Comments #

Method
GET
Endpoint
This method retrieves task comments in your workspace based on various filter criteria. The filter parameters for this method work in conjunction on an “AND-basis”. For example, if you pass in the value “12345” for filter_by_event_id, you’ll get back the comments of all the tasks of the event that has an Id of 12345, and if you pass in a task id for filter_by_task_id, you’ll get back the comments of that task only. You can only pass in one value for each filter parameter. If you don’t pass in any filter, all the task comments in your workspace are returned.
Parameters
Name Type Required? Details Description
api_key String Yes
filter_by_event_id Number No
Only include task comments for tasks from this given event.
filter_by_task_id Number No
Only include task comments for this specific task.
hydrate_task Boolean No
default: false
Include the task object for each task comment in the result set. Note: hydrating the task object for each task comment in the results will naturally yield a larger response size and response time. Set the value for this parameter to true only if you need to include the task object for each comment in the result set.
filter_by_commenter_user_id String No
Only include the comments made by this user. Use the user's id from /v1/references/users_and_resources.
$result_sort String No
Sorts the comments by when they were added or last updated. Accepted values: create_timestamp_asc, create_timestamp_desc, last_update_timestamp_asc, last_update_timestamp_desc. Without this parameter, comments are grouped by task (in the same order as the Retrieve Tasks method) and listed oldest first within each task.
filter_by_last_update_timestamp_greater_than_or_equal_to String No
Only include task comments that were added or changed on or after this date and time, for example 2026-10-14T18:30:00 (a date alone, such as 2026-10-14, means midnight). Responses give comment_last_update_timestamp in UTC (it ends in Z), and that value can be passed back unchanged; a value without an offset is read as US Eastern time, and any other offset (e.g., 2026-10-14T18:30:00-04:00) is converted. To sync changes, process and save every page before advancing the cursor. Save the latest comment_last_update_timestamp you receive and pass it in next time (task comments changed at exactly that time come back again, upsert every returned record by id, including boundary records). Deleted task comments are not returned. Any other value is rejected with an error.
$limit Number No
The most task comments to return (a whole number of 1 or more). Use it with $offset to read a long list in pages: total_records in the response counts every matching task comment and has_more is true while more pages follow (the X-Total-Count header carries the total too). Without $limit, every matching task comment is returned.
$offset Number No
How many task comments to skip before the first one returned (a whole number; 0 by default). For the next page, add the number of task comments you received to $offset.
$result_format String No
Pass in "array" to get the results as a plain JSON array (without records_found, total_records, has_more and list_type; the X-Total-Count header still gives the total), or "wrapped_in_array" to get the usual response inside a JSON array.
Code Samples
curl -X GET "https://api.exhibitday.com/v1/tasks/comments" -H "api_key: YOUR_API_KEY"

Example HTTP response body (JSON)

GET /v1/tasks/comments - HTTP 200
{
  "records_found": 1,
  "total_records": 1,
  "has_more": false,
  "list_type": "task_comment",
  "list_data": [
    {
      "id": 12345,
      "comment": "Sample comment",
      "comment_created_timestamp": "2026-10-28T16:00:00Z",
      "comment_last_update_timestamp": "2026-10-28T16:00:00Z",
      "commenter": {
        "id": "11111111-2222-4333-8444-555555555555",
        "first_name": "Jane",
        "last_name": "Smith",
        "email": "jane@example.invalid"
      },
      "event_id": null,
      "task_id": 12345,
      "task": {
        "id": 12345,
        "exhibitday_url": "https://www.exhibitday.com/Workspace/TaskView/98765?tid=12345",
        "event_task_section_id": null,
        "event_task_section": "Uncategorized",
        "display_rank": 0,
        "name": "Sample task",
        "due_date": null,
        "assignee": null,
        "is_completed": false,
        "task_completed_timestamp": null,
        "task_created_timestamp": "2026-10-28T16:00:00Z",
        "task_last_update_timestamp": "2026-10-28T16:00:00Z"
      }
    }
  ]
}
Note: Illustrative response. Assume the identified records exist in an illustrative workspace and the request succeeds. Generated IDs, related records and timestamps are illustrative. Item links use illustrative workspace 98765 and the DTO's configured application host (an illustrative production-host fallback is used only if absent). Timestamps are illustrative values formatted by the current API serializer; they do not establish the timezone semantics of stored timestamps. The default response representation is shown; documented options can select another shape. Reference labels are illustrative; assume the workspace uses the standard participation types with no custom choices. No query/body parameters are sent (the API key remains a header).

Retrieve a Single Task Comment by Id #

Method
GET
Endpoint
Sample Object
Retrieves information about a specific task comment (using the "id" parameter).
Parameters
Name Type Required? Details Description
api_key String Yes
id Number Yes
Id of the specific task comment that you would like to retrieve.
Code Samples
curl -X GET "https://api.exhibitday.com/v1/tasks/comment?id=12345" -H "api_key: YOUR_API_KEY"

Example HTTP response body (JSON)

GET /v1/tasks/comment - HTTP 200
{
  "id": 12345,
  "comment": "Sample comment",
  "comment_created_timestamp": "2026-10-28T16:00:00Z",
  "comment_last_update_timestamp": "2026-10-28T16:00:00Z",
  "commenter": {
    "id": "11111111-2222-4333-8444-555555555555",
    "first_name": "Jane",
    "last_name": "Smith",
    "email": "jane@example.invalid"
  },
  "event_id": null,
  "task_id": 12345,
  "task": {
    "id": 12345,
    "exhibitday_url": "https://www.exhibitday.com/Workspace/TaskView/98765?tid=12345",
    "event_task_section_id": null,
    "event_task_section": "Uncategorized",
    "display_rank": 0,
    "name": "Sample task",
    "due_date": null,
    "assignee": null,
    "is_completed": false,
    "task_completed_timestamp": null,
    "task_created_timestamp": "2026-10-28T16:00:00Z",
    "task_last_update_timestamp": "2026-10-28T16:00:00Z"
  }
}
Note: Illustrative response. Assume the identified records exist in an illustrative workspace and the request succeeds. Generated IDs, related records and timestamps are illustrative. Item links use illustrative workspace 98765 and the DTO's configured application host (an illustrative production-host fallback is used only if absent). Timestamps are illustrative values formatted by the current API serializer; they do not establish the timezone semantics of stored timestamps. The default response representation is shown; documented options can select another shape. Reference labels are illustrative; assume the workspace uses the standard participation types with no custom choices. Request inputs: {"id":12345}.

Add a Comment to a Task #

Method
POST
Endpoint
The response will contain an object representing the newly added task comment.
Parameters
Name Type Required? Details Description
api_key String Yes
task_id Number Yes
The id of the task you would like to add the comment to.
comment String Yes
The text of the comment you would like to add. Only accepts plain text. Any HTML tags will be stripped. Newline characters are displayed as line breaks in ExhibitDay and remain newline characters in API responses. Accepts up to 15,000 characters (some symbols count as two characters).
Code Samples
curl -X POST https://api.exhibitday.com/v1/tasks/comment -H "api_key: YOUR_API_KEY" -H "Content-Type: application/json" -d "{\"task_id\":12345,\"comment\":\"Sample comment\"}"

Example HTTP response body (JSON)

POST /v1/tasks/comment - HTTP 200
{
  "id": 23456,
  "comment": "Sample comment",
  "comment_created_timestamp": "2026-10-28T16:00:00Z",
  "comment_last_update_timestamp": "2026-10-28T16:00:00Z",
  "commenter": {
    "id": "ExhibitDay API",
    "first_name": "ExhibitDay",
    "last_name": "API",
    "email": ""
  },
  "event_id": null,
  "task_id": 12345,
  "task": {
    "id": 12345,
    "exhibitday_url": "https://www.exhibitday.com/Workspace/TaskView/98765?tid=12345",
    "event_task_section_id": null,
    "event_task_section": "Uncategorized",
    "display_rank": 0,
    "name": "Sample task",
    "due_date": null,
    "assignee": null,
    "is_completed": false,
    "task_completed_timestamp": null,
    "task_created_timestamp": "2026-10-28T16:00:00Z",
    "task_last_update_timestamp": "2026-10-28T16:00:00Z"
  }
}
Note: Illustrative response. Assume the identified records exist in an illustrative workspace and the request succeeds. Generated IDs, related records and timestamps are illustrative. Item links use illustrative workspace 98765 and the DTO's configured application host (an illustrative production-host fallback is used only if absent). Timestamps are illustrative values formatted by the current API serializer; they do not establish the timezone semantics of stored timestamps. The default response representation is shown; documented options can select another shape. Reference labels are illustrative; assume the workspace uses the standard participation types with no custom choices. Request inputs: {"task_id":12345,"comment":"Sample comment"}.

Update a Task Comment #

Method
PATCH
Endpoint
Updates the text of a given comment on a task. A comment cannot be moved to another task.
Parameters
Name Type Required? Details Description
api_key String Yes
id Number Yes
The Id of the task comment you would like to update.
comment String Yes
The text that will replace the existing comment, including any formatting previously applied in ExhibitDay. Only accepts plain text. Any HTML tags will be stripped. Newline characters are displayed as line breaks in ExhibitDay and remain newline characters in API responses. Accepts up to 15,000 characters (some symbols count as two characters). A comment cannot be blank: an empty value (or null) is rejected with an error.
Code Samples
curl -X PATCH https://api.exhibitday.com/v1/tasks/comment -H "api_key: YOUR_API_KEY" -H "Content-Type: application/json" -d "{\"id\":12345,\"comment\":\"Updated comment\"}"

Example HTTP response body (JSON)

PATCH /v1/tasks/comment - HTTP 200
{
  "status_code": 200,
  "status": "OK",
  "message": "Task Comment Update Successful. Task comment updated via API.",
  "errors": []
}
Note: Illustrative response. Assume the identified records exist in an illustrative workspace and the request succeeds. Generated IDs, related records and timestamps are illustrative. Item links use illustrative workspace 98765 and the DTO's configured application host (an illustrative production-host fallback is used only if absent). Timestamps are illustrative values formatted by the current API serializer; they do not establish the timezone semantics of stored timestamps. The default response representation is shown; documented options can select another shape. Reference labels are illustrative; assume the workspace uses the standard participation types with no custom choices. Request inputs: {"id":12345,"comment":"Updated comment"}.

Delete a Task Comment #

Method
DELETE
Endpoint
Permanently deletes a task comment. It cannot be undone.
Parameters
Name Type Required? Details Description
api_key String Yes
id Number Yes
The Id of the task comment you would like to delete.
Code Samples
curl -X DELETE "https://api.exhibitday.com/v1/tasks/comment?id=12345" -H "api_key: YOUR_API_KEY"

Example HTTP response body (JSON)

DELETE /v1/tasks/comment - HTTP 200
{
  "status_code": 200,
  "status": "OK",
  "message": "Task Comment Deleted",
  "errors": []
}
Note: Illustrative response. Assume the identified records exist in an illustrative workspace and the request succeeds. Generated IDs, related records and timestamps are illustrative. Item links use illustrative workspace 98765 and the DTO's configured application host (an illustrative production-host fallback is used only if absent). Timestamps are illustrative values formatted by the current API serializer; they do not establish the timezone semantics of stored timestamps. The default response representation is shown; documented options can select another shape. Reference labels are illustrative; assume the workspace uses the standard participation types with no custom choices. Request inputs: {"id":12345}.