Getting started
Developer quickstart
Connect to your workspace and make your first API request.
Build integrations with workspace records and tasks, receive outbound webhooks, or load project environment variables with the Kato CLI.
Choose your starting point
| You want to | Use |
|---|---|
| Read or update workspace records | Objects and records API |
| Create and manage tasks | Tasks API |
| React when work changes in Kato | Webhooks |
| Pull environment variables or run a command with them | CLI |
The public REST API uses https://api.getkato.io/v1. The CLI uses its own /cli/v1 surface. The CLI currently manages project environment variables; it does not provide record or task commands.
Create an access key
In Kato, open Settings → Workspace → Developers → New access key. Give the key a recognizable name and choose the permissions your integration needs. API key creation requires Pro.
For this first request, choose Objects: Read. Copy the generated kato_… token when it appears; it is only shown once. Store it in a local secret manager or environment variable named KATO_API_KEY. Keep it out of browser code and source control.
Read Authentication and API conventions for roles, scopes, and key revocation.
Check the connection
With KATO_API_KEY set in your shell, make a read-only request:
curl --fail-with-body --silent --show-error \
https://api.getkato.io/v1/whoami \
-H "Authorization: Bearer $KATO_API_KEY"A successful response identifies the key's workspace and granted scopes. IDs below are illustrative.
{
"data": {
"workspace": {
"id": "workspace_example",
"name": "Northstar Studio",
"slug": "northstar"
},
"scopes": ["objects:read"],
"keyId": "key_example"
}
}Check the returned workspace before writing data. A key belongs to one workspace.
Discover your objects
curl --fail-with-body --silent --show-error \
https://api.getkato.io/v1/objects \
-H "Authorization: Bearer $KATO_API_KEY"The data array contains each object's id, slug, singularName, pluralName, and createdAt. Use an object ID or slug from this response to discover its fields. Object slugs and field definitions can differ between workspaces.
Build the next step
Start with a read-only integration. When you need writes, create a key with the matching write scope and try your request on a test record.
For ongoing synchronization, use pagination for your initial import and webhooks for subsequent changes. Webhook subscriptions do not backfill historical events.
Something missing? Let us know.