v1

latestOpenAPI 3.1.0MIT2026-08-0481194343.8 KB
keys

Create an API key

Scope: keys (always opt-in; a default-minted key cannot mint further keys). Returns the raw key ONCE. Subsequent reads only return the prefix.

An account may hold up to 200 active keys by default; beyond that, creation fails with KEY_LIMIT_REACHED. Revoke unused keys rather than reusing one across services. A key-store outage returns 503 DB_UNAVAILABLE with Retry-After rather than a bare 500.

post/v1/keys

Request body

namestring required
scopesstring[]

Omit or send [] for the server default shown here: 20 of the 23 scopes, covering every ordinary product surface (including terminal:exec, files:write, snapshots:write, machines:write, schedules and triggers) so you do not have to discover a scope list before your first call.

Exactly THREE scopes are always opt-in, because each is a privilege escalation rather than a product tier and must be requested explicitly:

  • keys — mints AND revokes further Coasty API keys (POST /v1/keys, GET /v1/keys, DELETE /v1/keys/{key_id}).
  • browser:execute — runs arbitrary JavaScript in the machine's browser session.
  • connection:read — returns plaintext connection secrets such as SSH keys.

Requesting a narrower set than the default is supported and recommended for keys you hand to a single service.

Response

Key created.

keystring required

The raw API key. Returned ONCE only.

key_idstring required
namestring required
tier'free' | 'starter' | 'professional' | 'enterprise' required
scopesstring[] required
created_atstring date-time required