Skip to main content
Use the tasks API to create work and keep an external system in sync. Task writes use the same underlying service as the app, including activity, notification, and integration behavior.

Endpoints

Paths below are relative to https://api.getkato.io/v1. There is currently no public task-restore endpoint.

Visibility

Owners and admins can access tasks across the workspace. A regular member’s key can access tasks the member created or is assigned to. The key owner’s current role is checked for every task request; scopes alone do not grant access to every task. Inaccessible tasks return 404. If the key owner leaves the workspace, task access stops. Parent tasks must also be accessible to the caller.

List tasks

Supported query parameters are limit, cursor, and include_archived. Archived tasks are excluded unless include_archived=true. There are no public status or assignee query filters on this endpoint; filter the returned tasks in your integration if needed. Follow next_cursor while has_more is true. See pagination.

Create a task

Use real workspace status slugs and auth-user IDs from your Kato workspace. The general public API does not currently provide a member directory or task-status list endpoint. You can omit optional fields for a minimal task.

Date and response formats

Write start_date and due_date as numbers, such as the result of JavaScript’s Date.parse("2026-09-15T17:00:00Z"). Use an explicit timezone. When both dates are set, the start must not be later than the due date. Responses contain a mix of snake_case and camelCase names: Other response properties include id, title, description, status, priority, assignees, timeLogged, archived, createdBy, createdAt, and updatedAt. timeLogged is minutes or null when unavailable. Do not send a response object straight back as an update; build the expected input fields.

Update a task

Set KATO_TASK_ID to a task returned by your workspace.
Omitted fields stay unchanged. Use null to clear start_date, due_date, parent_task_id, or estimated_time. Use assignees: [] to remove all assignees. linked_record_ids is only accepted during creation.

Archive a task

This returns the task with archived: true. Repeating the archive operation is supported. Patching an archived task returns 404. Use task webhooks for status and assignment changes, and verify incoming signatures before processing an event.