Skip to main content
The Raycast API lives at https://api.getkato.io/v1/raycast. It combines task, record, meeting, activity, and notification operations for the Kato Raycast extension. Its request and response formats differ from the general /v1 developer API.

Authentication and visibility

Send an OAuth access token issued to the registered kato-raycast client:
Developer access keys cannot call this surface. Raycast OAuth tokens cannot call the general developer API or CLI API. Use the OAuth flow to understand authorization, refresh, and revocation. Kato currently has no self-service registration endpoint for arbitrary OAuth clients. Every request rechecks workspace membership. Resource access also respects the member’s current role and sharing rules. For example, task lists return tasks assigned to the token owner, while a direct task-detail request can access additional tasks visible to that member. Meeting responses can expose full details, title and time only, or a busy block.

Start with discovery

Request and response differences

Raycast task writes use camelCase fields such as dueDate, estimatedTime, and linkedRecordIds. dueDate is an ISO 8601 date-time string, rather than the general developer API’s millisecond timestamp. Use the separate endpoint pages when moving between surfaces. Most resources return { "data": ... }. Some discovery endpoints return top-level objects. Paginated collections use hasMore and nextCursor. Pass the cursor unchanged and keep filters fixed. These are offset-based cursors: concurrent changes can shift results, so deduplicate by ID when traversing a changing list. Shared response models describe tasks, schedule items, record previews, notifications, and search results. Example IDs, statuses, object names, and application URLs are illustrative. Open the returned webUrl rather than constructing an application URL yourself.

Limits and errors

The /v1 middleware allows 300 requests per minute per key. On 429, honor the Retry-After header in seconds. Each endpoint specifies its own collection size and required scopes; combined endpoints require every listed scope, even if a search filter selects only one resource type. 401 indicates an invalid or expired credential; refresh once using the current refresh token. 403 can indicate a wrong token kind, client, scope, or lost membership. 404 can mean a resource is absent or inaccessible. Do not treat an inaccessible task or meeting as permission to retry through another API surface.