> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getkato.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a Raycast task

> Create a task with Raycast’s camelCase fields and optional record, meeting, and section links.

Create a task with Raycast’s camelCase fields and optional record, meeting, and section links.

Use an OAuth access token issued to `kato-raycast`. Developer keys cannot call this endpoint. See [Raycast authentication](/api-reference/raycast/overview).

Required scopes: `tasks:write`.

Use [task options](/api-reference/raycast/task-options) to discover IDs. Invalid assignees, linked records, meetings, or sections return `400`. Optional fields may be omitted; request dates use ISO strings.

## Parameters

<ParamField body="title" type="string" required>
  Trimmed 1–500 characters.
</ParamField>

<ParamField body="description" type="string">
  Up to 100,000 characters.
</ParamField>

<ParamField body="status" type="string">
  Workspace status slug from the Raycast status endpoint.
</ParamField>

<ParamField body="priority" type="string">
  no\_priority, low, medium, high, or urgent.
</ParamField>

<ParamField body="dueDate" type="string | null">
  ISO 8601 datetime, or null. This differs from developer task writes.
</ParamField>

<ParamField body="assignees" type="string[]">
  Up to 50 workspace auth-user IDs, each 1–200 characters.
</ParamField>

<ParamField body="estimatedTime" type="integer">
  Positive minutes, maximum 525,600.
</ParamField>

<ParamField body="linkedRecordIds" type="string[]">
  Up to 10 accessible record IDs.
</ParamField>

<ParamField body="linkedMeetingIds" type="string[]">
  Up to 10 accessible native meeting IDs.
</ParamField>

<ParamField body="sectionId" type="string">
  Task section ID, 1–200 characters.
</ParamField>

## Response

**201** — Returns the resource under `data`. Example IDs and values are illustrative.

<ResponseExample>
  ```json 201 theme={null}
  {
    "data": {
      "id": "task_example",
      "title": "Prepare kickoff",
      "description": null,
      "status": "todo",
      "priority": "no_priority",
      "assignees": [],
      "dueDate": null,
      "timeLogged": 0,
      "estimatedTime": null,
      "createdBy": "user_example",
      "createdAt": "2026-09-07T12:00:00.000Z",
      "updatedAt": "2026-09-07T12:00:00.000Z",
      "linkedMeetingIds": [],
      "fileCount": 0,
      "linkedRecordCount": 0,
      "timerState": null,
      "webUrl": "https://app.getkato.io/northlane/tasks/task_example/details"
    }
  }
  ```
</ResponseExample>

<RequestExample>
  ```bash Request theme={null}
  curl --fail-with-body --silent --show-error \
    "https://api.getkato.io/v1/raycast/tasks" \
    -H "Authorization: Bearer $KATO_RAYCAST_ACCESS_TOKEN" \
    -H "Content-Type: application/json" \
    --data '{
    "title": "Prepare kickoff",
    "priority": "high"
  }'
  ```
</RequestExample>

This request changes workspace data. A timeout does not prove that the write failed; inspect the result before retrying.


## Related topics

- [All endpoints](/api-reference/endpoints.md)
- [Create a task](/api-reference/tasks/create.md)
- [Update a Raycast task](/api-reference/raycast/tasks-update.md)
- [Get Raycast task details](/api-reference/raycast/tasks-get.md)
- [List Raycast task statuses](/api-reference/raycast/task-statuses.md)
