Skip to content
Leadtime
English
Esc
navigateopen⌘Jpreview

Create a new task

Creates a new task (ticket) in the specified project. Tasks are the core work units in Leadtime and represent actionable items that need to be completed. Each task belongs to a project, has a type (e.g., Feature, Bug), a status (e.g., New, In Progress), and can include assignments, deadlines, time estimates, custom fields, tags, and subtasks. The description field accepts HTML or Markdown format and will be automatically converted to the internal editor format. Project access is validated before task creation. Requires Tasks.create permission.

Some fields are dynamically required by workspace and task-type configuration. The global OpenAPI schema shows the universal request shape, but it cannot mark every conditionally required field as required for every workspace. Before creating tasks, read task type metadata from GET /tasks/types or GET /administration/task-settings/types, find the selected typeId, and include every field listed in that type requiredFields. Standard fields such as summary and estimatedTime can be listed there, as well as task custom fields. The API still validates the final request and returns field-level 400 errors when configured requirements are missing.

Assignment fields are project-scoped. assignedToId and accountableId must reference a Leadtime User.id that is assignable in the selected project: either a project user/member with access to that project, or the workspace Leadtime agent user. Read GET /projects/{id} and use its users array before assigning; if a workspace user is missing from the project, add them with PATCH /projects/{id} first.

POST/tasks
Authorization
AuthorizationOAuth2 access token · headerrequired
Scopes:api:write
or
AuthorizationBearer token (JWT) · headerrequired
Query parameters
fieldsToReturnstring
Comma-separated list of top-level response fields to return. Overrides the endpoint compact default unless responseShape=full is used.
responseShapestring
Advanced override. Omit for the endpoint compact default. Use full only when you need the complete endpoint response, including nested fields that are not selectable with fieldsToReturn.
Allowed:compactfull
Header parameters
LT-Response-Shapestring
Advanced override. Set to full only when you need the complete endpoint response, including nested fields that are not selectable with fieldsToReturn.
Allowed:full
Request body
requiredapplication/json
accountableIdobject | null
UUID of the Leadtime user who is accountable for this task. Use the User.id UUID, not the Employee.id UUID. The user must be assignable in the selected project: either a project member/user with access to that project, or the workspace Leadtime agent user. Use GET /projects/{id} to inspect the project users array, and PATCH /projects/{id} to add users before making them accountable. GET /workspace/users lists workspace users, but not every workspace user is assignable to every project. Leave null if no one is accountable yet.
assignedToIdobject | null
UUID of the Leadtime user assigned to work on this task. Use the User.id UUID, not the Employee.id UUID. The user must be assignable in the selected project: either a project member/user with access to that project, or the workspace Leadtime agent user. Use GET /projects/{id} to inspect the project users array, and PATCH /projects/{id} to add users before assigning them. GET /workspace/users lists workspace users, but not every workspace user is assignable to every project. Leave null if no one is assigned yet.
componentItemEntityUniqueIdobject
Component item entity unique ID if this task is related to a project component item. Used for linking tasks to specific components in project structures.
customFieldsTaskCustomFieldValueDto[]
Array of custom field values. Each value must correspond to a custom field associated with the selected task type. Use GET /tasks/types and/or GET /tasks/custom-fields. The field value format depends on the field type.
Show properties
Array of TaskCustomFieldValueDto
fieldIdstringrequired
UUID of the custom field. Must be a custom field associated with the task type being used. Use GET /tasks/types and/or GET /tasks/custom-fields.
valuestringrequired
Value for the custom field. The format depends on the field type: Text/TextArea (string), Number (numeric string), Date (ISO 8601 date string), Checkbox (true/false string), Select (one of the predefined option values). Validation is performed based on the field type configuration.
deadlinestring
Task deadline or due date in ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ). Used for tracking deadlines and generating deadline warnings.
descriptionstringrequired
Accepts Markdown or HTML for complex formatting. This content is rendered by the Leadtime rich editor, not by a plain Markdown viewer. For quick/simple text, Markdown is acceptable. For polished user-facing content from an agent or integration, prefer structured HTML because it preserves editor blocks, links, and layout more predictably. Use only the nodes and marks documented below for this field. Supported editor features differ by endpoint and field. Choose formatting for readability, not decoration: use headings for real sections, paragraphs for narrative text, lists or tables for structured facts, blockquotes for quoted context, callouts for important outcomes/risks/notes when supported, and explicit anchors for links. Do not rely on bare URLs or Markdown links when the link must be clickable; use explicit anchors such as <a href="https://example.com" target="_blank" rel="noopener noreferrer nofollow">link text</a>. In HTML you can use: ## Node Types and Marks ### Nodes **paragraph** Type: block Content: inline* (inline only — do not use block tags such as <p> inside; use e.g. <br>, <strong>, <em>, <span>…) Default paragraph. extraPlaceholder is an internal structure for the editor to show a ghost placeholder in empty “template” lines (ProseMirror JSON fragment or null). For normal agent output leave extraPlaceholder as null. Only set it if you are intentionally mirroring a field placeholder the user already has in the open editor; do not set random placeholder data for free-form answers. Atts: - extraPlaceholder: null ```html <p class="paragraph-base" extraplaceholder="null/some-value"></p> ``` **heading** Type: block Content: inline* (inline only — do not use block tags such as <p> inside; use e.g. <br>, <strong>, <em>, <span>…) Atts: - level: 1 ```html <h1 class="heading-base"></h1> ``` **bulletList** Type: block list Content: listItem+ Atts: none ```html <ul class="list-base"><li></li></ul> ``` **hardBreak** Type: inline Atts: none ```html <br> ``` **horizontalRule** Type: block Atts: none ```html <hr class="hr-base"> ``` **orderedList** Type: block list Content: listItem+ Atts: - start: 1 - type: null ```html <ol class="order-list-base" type="null/some-value"><li></li></ol> ``` **listItem** Content: (paragraph|list)* (paragraphs and/or lists, in any order) Atts: none ```html <li></li> ``` **blockquote** Type: block Content: block+ (one or more block child nodes (e.g. paragraph, list, …)) Atts: none ```html <blockquote class="blockquote-base"><p class="paragraph-base"></p></blockquote> ``` **codeBlock** Type: block Content: text* (text only (plus marks if applicable), no block wrappers) Atts: - language: null ```html <pre><code class="language-null/some-value"></code></pre> ``` **table** Type: block Content: tableRow+ Atts: none ```html <table style="width: 0px;"><colgroup></colgroup><tbody><tr></tr></tbody></table> ``` **tableRow** Content: (tableCell | tableHeader)* Atts: none ```html <tr></tr> ``` **tableHeader** Content: block+ (one or more block child nodes (e.g. paragraph, list, …)) Atts: - colspan: 1 - rowspan: 1 - colwidth: null - align: null ```html <th colspan="1" rowspan="1" colwidth="null/some-value" style="text-align: null/some-value;"><p class="paragraph-base"></p></th> ``` **tableCell** Content: block+ (one or more block child nodes (e.g. paragraph, list, …)) Atts: - colspan: 1 - rowspan: 1 - colwidth: null - align: null ```html <td colspan="1" rowspan="1" colwidth="null/some-value" style="text-align: null/some-value;"><p class="paragraph-base"></p></td> ``` **callout** Type: block Content: block+ (one or more block child nodes (e.g. paragraph, list, …)) Callout / info box. The icon attr is an emoji shortcode (e.g. :information_source:, :warning:); it appears on the callout. Body is block content (paragraphs, lists, etc.) — use normal block HTML such as <p class="paragraph-base"> inside the callout <div>. data-type is "callout". Atts: - icon: :information_source: ```html <div data-type="callout" icon=":information_source:"><p class="paragraph-base"></p></div> ``` **condition** Type: block Content: conditionBody (a single condition body block) This node conditionally renders its content based on a set of rules. The rules are defined in the 'conditions' attribute. 'conditions' is an object like: { type: 'and' | 'or', expressions: Array<Expression | ConditionGroup> }. An 'Expression' is { field: string, operator: string, value: any }. A 'ConditionGroup' is a nested { type: 'and' | 'or', expressions: [...] }. Example for an expression: { field: 'invoice.total', operator: 'gt', value: 100 } means 'if invoice total is greater than 100'. Supported operators typically include: eq (equals), neq (not equals), gt (greater than), gte (greater than or equal to), lt (less than), lte (less than or equal to), contains, in, is_true, is_false, etc. Check editor UI for available fields and operators. ALL FIELDS CAN ONLY BE EXISTING VARIABLES. DO NOT INVENT NEW FIELDS. Atts: - conditions: { "type": "and", "expressions": [] } ```html <condition conditions="{&quot;type&quot;:&quot;and&quot;,&quot;expressions&quot;:[]}"><condition-body><p class="paragraph-base"></p></condition-body></condition> ``` **conditionBody** Content: block+ (one or more block child nodes (e.g. paragraph, list, …)) Atts: none ```html <condition-body><p class="paragraph-base"></p></condition-body> ``` **emoji** Type: inline Inline emoji. icon is a colon shortcode (e.g. :thumbsup:, :white_check_mark:) stored in data-icon; body is often empty. Use names your emoji set supports; avoid inventing invalid shortcodes in final HTML if you need them to render. Atts: - icon: :smile: ```html <span data-type="emoji" data-icon=":smile:"></span> ``` **entity** Type: inline Inline link chip to a Leadtime entity (task, project, etc.), usually from the !-picker or by pasting a leadtime link. Display text is #title; data-type is "entity". - entityId: Stable id of the target entity (e.g. task or project id). Use ids from the Public API or the user’s context; do not fabricate ids. - type: What kind of entity is linked (e.g. task, project) — must be consistent with entityId in your workspace. - title: Shown as the visible #label after the chip; should match the real entity title. - data: Optional extra JSON the client provides (may be empty). Do not put secrets in HTML. If the user has not given a real entity, use the API to search or create—do not guess UUIDs or labels. Atts: - entityId: null - type: null - title: null - data: {} ```html <span data-type="entity" entityid="null/some-value" type="null/some-value" title="null/some-value" data="[object Object]">#null/some-value</span> ``` **appFile** Type: block Block for a file attachment that already exists in the workspace. - fileId: Id from Leadtime file storage. Must be real; do not make up. - filename and size: Should match the stored file. Use the app upload or API to get a file id; do not embed arbitrary ids. Atts: - fileId: - filename: - size: 0 ```html <div data-type="appFile" fileid="" filename="" size="0"></div> ``` **appImage** Type: block Block for an image file already uploaded in Leadtime. - fileId: Id of the stored image. Must be a real uploaded file; do not invent. - filename: Display name; should match the file. - width, align, size: Layout as in the editor. If no file id is available, obtain one via upload/API before outputting this node with a fake id. Atts: - fileId: - filename: - width: 500 - align: left - size: 0 ```html <div data-type="appImage" fileid="" filename="" width="500" align="left" size="0"></div> ``` **mention** Type: inline Mentions a workspace member (inserted in the app via the @-picker). The visible label is @name. - id: Leadtime user/employee id for the mentioned person. Must match a real user in the workspace; do not invent ids—resolve people from context or the Public API. - name: Display name for the @mention label. Should match the user shown for id. HTML must keep data-type="mention" with data-id and data-name in sync; plain text in the node is the visible @name. Atts: - id: null - name: null ```html <span data-type="mention" data-name="null/some-value" data-id="null/some-value" id="null/some-value" name="null/some-value">@null/some-value</span> ``` **pageBreak** Type: block Page break for PDF/print output (void <page-break> element). Inserts a hard page break when exporting. Use sparingly where the user asked for a new printed page, not for normal on-screen line breaks (use hardBreak/paragraphs instead). Atts: none ```html <page-break></page-break> ``` **editorPlaceholder** Type: block Content: inline* (inline only — do not use block tags such as <p> inside; use e.g. <br>, <strong>, <em>, <span>…) Used in task-type / template fields as a single editable “field” slot. Renders as a <placeholder> block with inline* content (label/instructions) inside. Prefer normal paragraph nodes for free-form user content; use this when reproducing a structured template the user is editing, not for generic text. Atts: none ```html <placeholder></placeholder> ``` **appVideo** Type: block Block for a workspace video file already uploaded in Leadtime (not a generic external embed). - fileId: Id of the stored file. Must be a file that actually exists in the workspace after upload; do not fabricate. - filename: Display name; should match the file. - width, align, size: Layout hints as in the editor; keep realistic values. If you do not have a file id, use the file upload or Public API first—do not guess ids. Atts: - fileId: - filename: - width: 500 - align: left - size: 0 ```html <div data-type="appVideo" fileid="" filename="" width="500" align="left" size="0"></div> ``` **collapse** Type: block Content: collapseTitle collapseBody (a collapse title node, then a collapse body) Expandable/collapsible section. Required structure: one collapseTitle (summary, inline) then one collapseBody (blocks) as direct children, matching data-type= collapseTitle / collapseBody tags under <collapse>. Do not use title/body nodes outside of a collapse. Atts: none ```html <collapse><collapse-title></collapse-title><collapse-body><p class="paragraph-base"></p></collapse-body></collapse> ``` **collapseBody** Content: block+ (one or more block child nodes (e.g. paragraph, list, …)) Expandable body of a collapse. Only use as sibling of collapseTitle inside a collapse; holds the block content that shows when expanded. Atts: none ```html <collapse-body><p class="paragraph-base"></p></collapse-body> ``` **collapseTitle** Content: inline* (inline only — do not use block tags such as <p> inside; use e.g. <br>, <strong>, <em>, <span>…) Clickable title row of a collapse block. Only use inside a collapse that also has collapseBody; content is the summary line shown when collapsed. Atts: none ```html <collapse-title></collapse-title> ``` **variable** Type: inline Document/template variable token (span with data-type="variable" and data-id). - id: Variable key, often scoped (e.g. currentUser.firstName, project.name). Only use keys that exist for the document type you are in; product docs list the allowed variable ids. Do not invent new variable names in HTML for production templates. Atts: - id: null ```html <span data-type="variable" data-id="null/some-value" id="null/some-value"></span> ``` **embedVideo** Type: block Embeds a third-party video in an iframe. The div carries data-video-embed with data-embed-url (iframe src) and data-original-url (canonical page URL). - embedUrl: Must be a real embed/iframe URL (e.g. YouTube embed) that matches originalUrl. - originalUrl: Human-facing link to the video page; keep it in sync with embedUrl. Do not leave placeholder URLs in final HTML if you claim a real video. Atts: - originalUrl: - embedUrl: ```html <div originalurl="" embedurl="" data-video-embed="" data-original-url="" data-embed-url=""><iframe src=""></iframe></div> ``` ### Marks **link** Atts: - href: null - target: _blank - rel: noopener noreferrer nofollow - class: null - title: null ```html <a target="_blank" rel="noopener noreferrer nofollow" href="">link text example</a> ``` **bold** Atts: none ```html <strong>bold text example</strong> ``` **code** Atts: none ```html <code>code text example</code> ``` **italic** Atts: none ```html <em>italic text example</em> ``` **strike** Atts: none ```html <s>strike text example</s> ``` **underline** Atts: none ```html <u>underline text example</u> ```
enableSupportContingentboolean
Enable support contingent for this task. This flag marks a task as eligible for support contingent billing. Only available for Support projects.
estimatedTimenumber
Estimated time to complete the task in hours (decimal allowed). Used for planning and capacity management. Example: 8 for 8 hours, 2.5 for 2.5 hours. The global OpenAPI schema marks this optional because requiredness is configured per task type. It is required when the selected task type lists `estimatedTime` in requiredFields. Use GET /tasks/types or GET /administration/task-settings/types to inspect requiredFields before POST /tasks.
guestAccessobject | null
Whether organization members (guest users) can access this task. When true, guest users can view and interact with the task. When false, only workspace members can access it. Leave null to use the project default.
default: false
iconobject
Task icon identifier. Must be in the format `:icon_name:` (e.g., `:rocket:`, `:bug:`, `:memo:`, `:white_check_mark:`). Used for visual identification in task lists and views. Leave null to use the default icon from the task type.
isChangeRequestboolean
Whether this task is a change request. Change requests are typically billed separately and tracked differently in Single projects. Used for scope change management.
linkedObjectIdsstring[]
Object instance UUIDs to link to the new task via ObjectsOnTask. Use GET /objects to find object IDs. Requires the same permission as linking objects on an existing task (`objects.canEdit`). Invalid or inaccessible object IDs result in an error and the task is not created.
prioritystringrequired
Task priority level indicating urgency. Options: Low, Normal, High. Used for prioritization and filtering.
Allowed:LowNormalHigh
productsTaskProductSettingsDto[]
Array of product settings to associate products with this task. Use GET /workspace/product-list for product IDs and GET /administration/product-catalog/{id} for variants/options. Each product setting includes the product ID, quantity, variant, and options.
Show properties
Array of TaskProductSettingsDto
activeFromFixedDatestring<date> | null
Fixed start date when activeFromType is FixedDate. Format: ISO 8601 date (YYYY-MM-DD). Required when activeFromType is FixedDate.
activeFromTypestring
Type of activation start for the product. Immediately means it starts right away, ProjectBilling means it starts with project billing, FixedDate means it starts on a specific date.
Allowed:ImmediatelyProjectBillingFixedDate
activeVariantIdobject | null
UUID of the variant that should be active. Use this to switch between variants (e.g., from Standard to Pro). Set to null if the product has no variants or to deactivate variant selection.
customPricesobjectrequired
Custom price overrides for base product, variants, and options. Keys can be "base", "variant_<variantId>", or "option_<optionValueId>". Each value contains priceFixed, priceSubscription, and pricePerUnit overrides. These prices are applied to the product when saving. Note: Tasks only support priceFixed, so priceSubscription and pricePerUnit are ignored.
optionsProductSettingOptionDto[]required
Array of option selections. Each entry specifies which option is being configured and which values are selected. You must provide selections for all options defined on the product, even if no values are selected (use empty array for value). This updates the product configuration without changing product details like name or prices.
Show properties
Array of ProductSettingOptionDto
idstringrequired
UUID of the product option. This identifies which option (e.g., "Color", "Size", "Support Level") is being configured.
valuestring[]required
Array of UUIDs representing the selected option values. For example, if the option is "Color", this array might contain IDs for "Blue" and "Red" if multiple selections are allowed. Each value ID must be a valid UUID.
quantitynumberrequired
Number of units of this product. Must be at least 1. This affects the total price calculation when using per-unit pricing.
min 1
projectIdstringrequired
UUID of the project this task belongs to. The project must exist and the user must have access to it.
statusIdstringrequired
UUID of the initial task status. The status must be valid for the selected task type. Common statuses include New, In Progress, Feedback, Resolved, Closed, and Backlog. Use GET /tasks/types or GET /administration/task-settings/types and choose a status id from the selected task type statuses array.
subTasksIdsstring[]
Array of existing task UUIDs to add as subtasks. Subtasks allow breaking down complex tasks into smaller units. Each subtask must exist and be accessible. The parent-child relationship is established immediately.
summarystring
Brief summary or short description of the task. This is a concise overview that appears in task cards and lists. The global OpenAPI schema marks this optional because requiredness is configured per task type. It is required when the selected task type lists `summary` in requiredFields. Use GET /tasks/types or GET /administration/task-settings/types to inspect requiredFields before POST /tasks.
tagsstring[]
Array of tag UUIDs to categorize this task. Use GET /tags/task/list. Tags enable cross-project organization and filtering and can be automatically inherited from project components.
titlestringrequired
Task title or name. This is the main identifier shown in task lists and views.
typeIdstringrequired
UUID of the task type. The type defines the workflow, available statuses, custom fields, and dynamically required fields. Must be one of the task types allowed for this project (configured in the project settings). Use GET /projects/{id} to see which task types are available for the project, then use GET /tasks/types or GET /administration/task-settings/types to inspect the selected type requiredFields before creating the task.
Responses
200Task created successfully
accountableobject
Accountable user details
accountableIdstring
Accountable user ID
assignedToobject
Assigned user details
assignedToIdstring
Assigned user ID
billedbooleanrequired
Whether task is billed
childSpentTimenumberrequired
Child tasks spent time in minutes
commentsany[][]required
Task comments; each `body` is HTML and may contain the same embedded `appImage` / `appFile` / `appVideo` divs with `fileId` as the task description. Fetch binaries via authenticated `/api/public/workspace/files/{fileId}` with the same Public API Bearer token when needed.
componentItemIdobject
Component item ID
createdAtstring<date-time>required
Task creation timestamp
customFieldsobjectrequired
Custom fields values
deadlinestring<date-time>
Task deadline
descriptionstringrequired
Task description in HTML. May include embedded assets as elements such as `<div data-type="appImage" fileId="…" filename="…">` (images), `appFile`, or `appVideo`—binary content is not embedded; use authenticated GET `{appOrigin}/api/public/workspace/files/{fileId}` with the same Public API Bearer token to retrieve it.
emailDetailsobject
Email details
emailSendErrorstring
Email send error message
emailSendErrorCodestring
Email send error code
emailSendFailedAtstring<date-time>
Email send failed timestamp
emailSendFailedToany[][]
Email send failed recipients
enableSupportContingentbooleanrequired
Enable support contingent
estimatedTimenumber
Estimated time in hours
guestAccessbooleanrequired
Guest access enabled for organization members
historyany[][]required
Task history entries
iconobject
Task icon identifier in the format `:icon_name:` (e.g., `:rocket:`, `:bug:`, `:memo:`). Can be null if no custom icon is set.
iconIsGeneratingbooleanrequired
Whether icon is being generated by AI
idstringrequired
Task ID (UUID)
isChangeRequestbooleanrequired
Whether task is a change request
isParticipantbooleanrequired
Whether current user is a participant
notificationSettingsobjectrequired
Notification settings
parentTaskIdobject
Parent task ID for subtasks
participantsCountnumberrequired
Number of participants
participantsListany[][]required
List of participant user IDs
priorityobjectrequired
Task priority (TaskPriority enum)
productsany[][]required
Task products
projectobjectrequired
Project information
projectIdstringrequired
Project ID
quotationsany[][]required
Express quotations
shortNumbernumberrequired
Task short number (workspace-scoped)
skipFromBillingboolean
Skip from billing
spentTimenumberrequired
Total spent time in minutes
statusIdstringrequired
Task status ID
subTasksIdsany[][]required
Child task IDs
summarystring
Task summary
summaryIsGeneratingbooleanrequired
Whether summary is being generated by AI
tagsany[][]required
Task tags
titlestringrequired
Task title
titleIsGeneratingbooleanrequired
Whether title is being generated by AI
typeIdstringrequired
Task type ID
userIdstringrequired
Creator user ID
400Validation errors or invalid data
errorsobject
messagestring
statusCodenumber
401Unauthorized - Invalid or missing authentication token
403Forbidden - Insufficient API scopes or permissions
Request
curl -X POST "https://leadtime.app/api/public/tasks" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "accountableId": "990e8400-e29b-41d4-a716-446655440004",
  "assignedToId": "880e8400-e29b-41d4-a716-446655440003",
  "componentItemEntityUniqueId": "unique-component-id",
  "customFields": [
    {
      "fieldId": "550e8400-e29b-41d4-a716-446655440000",
      "value": "Custom value"
    }
  ],
  "deadline": "2024-12-31T23:59:59Z",
  "description": "<p>Task description in HTML</p>",
  "enableSupportContingent": false,
  "estimatedTime": 2.5,
  "guestAccess": false,
  "icon": ":rocket:",
  "isChangeRequest": false,
  "linkedObjectIds": [
    "string"
  ],
  "priority": "Normal",
  "products": [
    {
      "activeFromFixedDate": "2024-01-01",
      "activeFromType": "Immediately",
      "activeVariantId": "550e8400-e29b-41d4-a716-446655440006",
      "customPrices": {
        "base": {
          "priceFixed": 100.5,
          "pricePerUnit": null,
          "priceSubscription": null
        },
        "variant_550e8400": {
          "priceFixed": 150,
          "pricePerUnit": null,
          "priceSubscription": null
        }
      },
      "options": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440004",
          "value": [
            "550e8400-e29b-41d4-a716-446655440007"
          ]
        }
      ],
      "quantity": 3
    }
  ],
  "projectId": "550e8400-e29b-41d4-a716-446655440000",
  "statusId": "770e8400-e29b-41d4-a716-446655440002",
  "subTasksIds": [
    "bb0e8400-e29b-41d4-a716-446655440006"
  ],
  "summary": "Brief summary of the task",
  "tags": [
    "aa0e8400-e29b-41d4-a716-446655440005"
  ],
  "title": "Implement new feature",
  "typeId": "660e8400-e29b-41d4-a716-446655440001"
}'
Response
{
  "accountable": {},
  "accountableId": "string",
  "assignedTo": {},
  "assignedToId": "string",
  "billed": true,
  "childSpentTime": 0,
  "comments": [
    [
      null
    ]
  ],
  "componentItemId": {},
  "createdAt": "2024-01-01T00:00:00Z",
  "customFields": {},
  "deadline": "2024-01-01T00:00:00Z",
  "description": "string",
  "emailDetails": {},
  "emailSendError": "string",
  "emailSendErrorCode": "string",
  "emailSendFailedAt": "2024-01-01T00:00:00Z",
  "emailSendFailedTo": [
    [
      null
    ]
  ],
  "enableSupportContingent": true,
  "estimatedTime": 0,
  "guestAccess": true,
  "history": [
    [
      null
    ]
  ],
  "icon": {},
  "iconIsGenerating": true,
  "id": "string",
  "isChangeRequest": true,
  "isParticipant": true,
  "notificationSettings": {},
  "parentTaskId": {},
  "participantsCount": 0,
  "participantsList": [
    [
      null
    ]
  ],
  "priority": {},
  "products": [
    [
      null
    ]
  ],
  "project": {},
  "projectId": "string",
  "quotations": [
    [
      null
    ]
  ],
  "shortNumber": 0,
  "skipFromBilling": true,
  "spentTime": 0,
  "statusId": "string",
  "subTasksIds": [
    [
      null
    ]
  ],
  "summary": "string",
  "summaryIsGenerating": true,
  "tags": [
    [
      null
    ]
  ],
  "title": "string",
  "titleIsGenerating": true,
  "typeId": "string",
  "userId": "string"
}