> ## 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.

# Raycast response models

> Field meanings, nullable values, privacy rules, and collection shapes.

Use these models with the [Raycast endpoints](/api-reference/raycast/overview). Dates are ISO 8601 strings unless a field explicitly says otherwise. IDs are opaque strings. A `null` value is different from an omitted property; preserve that distinction in your client.

## Tasks

Task list, create, update, and detail responses share these fields:

| Fields                           | Type           | Meaning                                                                         |
| -------------------------------- | -------------- | ------------------------------------------------------------------------------- |
| `id`, `title`                    | string         | Task identity and display title.                                                |
| `description`                    | string or null | Task description.                                                               |
| `status`                         | string         | Workspace status slug; discover labels and completion flags with task statuses. |
| `priority`                       | string         | `no_priority`, `low`, `medium`, `high`, or `urgent`.                            |
| `dueDate`                        | string or null | Due date-time.                                                                  |
| `assignees`                      | string\[]      | Assigned auth-user IDs.                                                         |
| `createdBy`                      | string         | Creator's auth-user ID.                                                         |
| `estimatedTime`                  | number or null | Estimated minutes.                                                              |
| `timeLogged`                     | number or null | Logged time in minutes, when available.                                         |
| `linkedMeetingIds`               | string\[]      | Linked native meeting IDs; details still depend on sharing.                     |
| `fileCount`, `linkedRecordCount` | number         | Summary counts where populated by the endpoint; default to zero otherwise.      |
| `timerState`                     | object or null | Active Timely timer: `provider: "timely"`, `eventId`, and ISO `startedAt`.      |
| `webUrl`                         | string         | Link to this task in Kato.                                                      |
| `createdAt`, `updatedAt`         | string         | Creation and last-update date-times.                                            |

[Task details](/api-reference/raycast/tasks-get) add `assigneeProfiles`, `createdByProfile`, `linkedRecords`, `linkedMeetings`, `section`, `activity`, `comments`, and `files`. These collections can be empty. Use the returned detail collections for counts on this endpoint: its summary count fields default to zero. Activity contains the latest 30 entries; `comments` is the comment subset of those entries, not a complete comment history.

### Task detail collections

`linkedRecords` contains compact chips with `recordId`, `title`, `avatarUrl`, `objectTypeId`, `objectTypeName`, and optional `objectTypeSlug`, `objectTypeIcon`, and `objectTypeColor`. These are different from search record previews.

`section` is null or an object with `id`, `name`, `color`, `recordId`, and `recordTitle`. Its section ID, name, and color can be null for an ungrouped record link.

Each file contains `id`, `storageId`, `name`, `mimeType`, `size` (bytes), `displaySize` (`small`, `medium`, or `full`), `url` (nullable), `source` (`direct`, `comment`, `description`, or `activity`), `uploadedBy`, `uploadedByProfile`, and optional `activityId`. **File `createdAt` is a Unix timestamp in milliseconds**, unlike the ISO dates on the task itself. Use the returned URL; a missing URL does not mean the file metadata is absent.

## Profiles and activity

A profile contains `authUserId`, `name`, `email`, and `avatarUrl`. A missing actor or creator profile is `null`; do not require a profile to render an activity.

An activity entry contains `id`, `action`, `comment` (string or null), `actor` (profile or null), and ISO `createdAt`. The [entity activity endpoint](/api-reference/raycast/activity) returns the latest 50 entries without pagination. Other activity actions can have no comment text.

## Record previews

Record previews are display-oriented results, not full raw record values:

| Field                                            | Meaning                                                            |
| ------------------------------------------------ | ------------------------------------------------------------------ |
| `kind`                                           | Always `record`.                                                   |
| `id`, `title`, `avatarUrl`                       | Record identity and display information.                           |
| `subtitle`, `badge`                              | Display labels for the result.                                     |
| `webUrl`                                         | Link to open the record in Kato.                                   |
| `record.objectTypeSlug`, `record.objectTypeName` | Object identity and display name.                                  |
| `record.icon`, `record.color`                    | Object styling metadata.                                           |
| `record.meta`                                    | Array of display fields with `label`, `value`, `type`, and `slug`. |

Recent records and search include up to eight metadata fields. Field visibility respects plan restrictions: enriched and Pro interaction fields are omitted for non-Pro workspaces. To synchronize raw field values with a developer key, use the separate [records API](/api-reference/objects-and-records).

## Schedule items

[Upcoming meetings](/api-reference/raycast/meetings-upcoming), the daily brief, and linked meeting details return schedule items. Native meetings and connected calendar events share:

| Field                                | Type / meaning                                              |
| ------------------------------------ | ----------------------------------------------------------- |
| `id`                                 | Source item ID.                                             |
| `source`                             | `meeting` or `calendar_event`.                              |
| `title`                              | Display title; `Busy` when only busy access is available.   |
| `startTime`, `endTime`               | ISO start and end date-times.                               |
| `isAllDay`                           | Boolean indicating an all-day item.                         |
| `status`                             | Source item's status.                                       |
| `detailLevel`                        | `full`, `title_time`, or `busy`.                            |
| `location`, `description`, `joinUrl` | Details or null; populated only for full access.            |
| `webUrl`                             | Kato application link.                                      |
| `linkedMeetingId`                    | Native meeting ID for `meeting`; null for `calendar_event`. |

Calendar events additionally contain `calendarName` and `externalUrl`; `externalUrl` is null unless full details are visible. Render only the details returned for the current viewer. Calendar event IDs cannot be used as native `linkedMeetingIds` when writing a task.

## Notifications

Notifications contain `id`, `type`, `category`, `entityType`, `entityId`, `title`, `body`, `isRead`, `readAt`, `createdAt`, `actor`, and `webUrl`. `readAt` and `actor` can be null. `webUrl` can also be null when there is no supported target.

`category` is one of `mentions`, `assigned`, `task_updates`, `record_activity`, or `other`. Use `isRead` for unread styling. Marking unread clears `readAt`; dismissal is allowed only for a read notification.

The [notification list](/api-reference/raycast/notifications) returns `{ data, hasMore, nextCursor }`. The daily brief's notification array is limited and does not include pagination metadata.

## Search results

[Search](/api-reference/raycast/search) returns `{ query, data }`. Each result has `kind` (`task`, `record`, or `meeting`), `id`, `title`, `subtitle`, `badge`, and `webUrl`, plus the corresponding `task`, `record`, or `meeting` payload. Switch on `kind` before reading the nested payload.

Results are ranked and limited, with no cursor or total count. Search task payloads contain only `status`, `priority`, and `dueDate`; use task details for the full task. Record payloads use the nested record metadata above, and meeting payloads use schedule items. Privacy filtering still applies. An empty result does not establish that the workspace has no matching private data.


## Related topics

- [Raycast API](/api-reference/raycast/overview.md)
- [Get a record](/api-reference/records/get.md)
- [Create a record](/api-reference/records/create.md)
- [Restore a record](/api-reference/records/restore.md)
- [Update a record](/api-reference/records/update.md)
