Reference

API reference

Updated October 5, 2026

Everything the web app does goes through the same HTTP API, and you can call it too. The reference below is generated from the API's own OpenAPI document every time the site is built, so it lists exactly the routes the API serves.

Base address

Every route lives under /v1 on the API's origin, for example https://api.useyard.app/v1/health (a self-hosted Yard uses its own PUBLIC_API_URL). Requests and answers are JSON.

Authenticating

From a script or another service, use an API key in the Authorization header:

curl -H "Authorization: Bearer $YARD_API_KEY" https://api.useyard.app/v1/orgs
  • Personal keys (yard_pk_…) act as you, with the role you have now in each organization. Create them in Account → API keys.
  • Organization keys (yard_ok_…) act for one organization only, with at most the role they were created with. Organization admins create them in Settings → API keys.

A key is shown once when it is created; only a hash is stored. Keys can expire, be rotated (the old secret keeps working for a grace period) and be revoked. The yard CLI gets its own key when you run yard login.

Scopes

Scope Allows
read GET requests.
write Every other method.
runners Managing runners (/v1/orgs/{org}/runners).
admin Instance administration (/v1/admin); only on an instance admin's personal key.

Some things can never be done with a key, whatever its scopes: managing keys, sessions, passwords, passkeys and two-step sign-in, agent sign-ins, connecting GitHub and approving a CLI sign-in. Sign in to the app for those. An organization key also cannot reach a person's own settings.

Limits

Each key may make 600 requests a minute. Over that the API answers 429.

Errors

A failed request answers with a status and a JSON body with a human-readable error and a stable code, for example {"error": "This API key needs the \write` scope for this.", "code": "key_scope"}`.

  • 401: not signed in, or the key is unknown, revoked or expired.
  • 403: signed in, but not allowed (a missing scope, a role too low).
  • 404: not found, also when something exists in an organization you cannot see.

Health

GET /v1/health

Liveness and version

200 The API is up: Health

Auth

POST /v1/auth/signup

Create an account

Request body: SignUpBody

200 OK: UserResponse

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/auth/signin

Sign in with email and password (may ask for a second step)

Request body: SignInBody

200 OK: UserResponse | TwoFactorChallenge

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/auth/signout

End the current session

200 OK: Ok

GET /v1/auth/me

The signed-in user and their organizations

200 OK: Me

Errors: 400, 401, 403, 404, 409, 429 with an error body

PATCH /v1/auth/me

Update the profile

Request body: UpdateProfileBody

200 OK: UserResponse

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/auth/verify

Verify the email with the 6-digit code

Request body: VerifyBody

200 OK: UserResponse

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/auth/verify/resend

Send a new verification code

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/auth/password

Change the password

Request body: ChangePasswordBody

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/auth/providers

Ways to sign in besides a password

200 OK: AuthProviders

POST /v1/auth/github/url

Where to send the browser to sign in with GitHub

Request body: GithubSigninBody

200 OK: InstallUrl

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/auth/github/signup

What GitHub said about someone signing up through it

Query parameters

NameTypeDescription
ticketstring

200 OK: GithubSignupPending

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/auth/github/signup

Create an account from a GitHub sign-in

Request body: GithubSignupBody

200 OK: UserResponse

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/auth/2fa/totp/setup

Start adding an authenticator app

200 OK: TotpSetup

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/auth/2fa/totp/enable

Confirm the authenticator app with a code; returns recovery codes once

Request body: TotpCodeBody

200 OK: RecoveryCodes

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/auth/2fa/totp/disable

Stop asking for authenticator codes

Request body: TotpCodeBody

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/auth/2fa/verify

Finish signing in with an authenticator, email or recovery code

Request body: TwoFactorVerifyBody

200 OK: UserResponse

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/auth/2fa/email/send

Mail a sign-in code for a half-done sign-in

Request body: TwoFactorEmailSendBody

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/auth/2fa/email/setup

Start using email codes: mails a code to confirm

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/auth/2fa/email/enable

Confirm email codes with the mailed code

Request body: TotpCodeBody

200 OK: UserResponse

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/auth/2fa/email/disable

Stop asking for email codes; needs the password

Request body: EmailFactorDisableBody

200 OK: UserResponse

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/auth/2fa/preferred

Choose the second step sign-in starts with

Request body: TwoFactorPreferredBody

200 OK: UserResponse

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/auth/passkeys

The caller's passkeys

200 OK

NameTypeDescription
passkeysPasskey[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/auth/passkeys/register/options

Options for creating a passkey

200 OK: object

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/auth/passkeys/register/verify

Save a new passkey

Request body: PasskeyRegisterBody

200 OK: Passkey

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/auth/passkeys/{id}

Remove a passkey

Path parameters

NameTypeDescription
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/auth/passkeys/login/options

Options for signing in with a passkey

Request body: PasskeyLoginOptionsBody

200 OK: object

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/auth/passkeys/login/verify

Sign in with a passkey

Request body: PasskeyLoginBody

200 OK: UserResponse

Errors: 400, 401, 403, 404, 409, 429 with an error body

Orgs

GET /v1/orgs

Organizations the caller belongs to

200 OK

NameTypeDescription
orgsOrg[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs

Create an organization

Request body: CreateOrgBody

200 OK: Org

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/orgs/{org}

One organization

Path parameters

NameTypeDescription
orgstringOrganization id or slug

200 OK: Org

Errors: 400, 401, 403, 404, 409, 429 with an error body

PATCH /v1/orgs/{org}

Update organization settings

Path parameters

NameTypeDescription
orgstringOrganization id or slug

Request body: UpdateOrgBody

200 OK: Org

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/orgs/{org}

Delete an organization

Path parameters

NameTypeDescription
orgstringOrganization id or slug

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/orgs/{org}/members

Members of an organization

Path parameters

NameTypeDescription
orgstringOrganization id or slug

200 OK

NameTypeDescription
membersMember[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

PATCH /v1/orgs/{org}/members/{userId}

Change a member's role

Path parameters

NameTypeDescription
orgstringOrganization id or slug
userIdstring

Request body: UpdateMemberBody

200 OK: Member

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/orgs/{org}/members/{userId}

Remove a member, or leave

Path parameters

NameTypeDescription
orgstringOrganization id or slug
userIdstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

API keys

GET /v1/me/api-keys

The caller's personal API keys

200 OK

NameTypeDescription
keysApiKey[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/me/api-keys

Create a personal API key; the secret is shown once

Request body: CreateApiKeyBody

200 OK: CreatedApiKey

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/me/api-keys/{id}

Revoke a personal API key

Path parameters

NameTypeDescription
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/me/api-keys/{id}/rotate

Give a personal API key a new secret; the old one works for a grace period

Path parameters

NameTypeDescription
idstring

Request body: RotateApiKeyBody

200 OK: CreatedApiKey

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/orgs/{org}/api-keys

The organization's API keys (org admins)

Path parameters

NameTypeDescription
orgstring

200 OK

NameTypeDescription
keysApiKey[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/api-keys

Create an organization API key (org admins); the secret is shown once

Path parameters

NameTypeDescription
orgstring

Request body: CreateApiKeyBody

200 OK: CreatedApiKey

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/orgs/{org}/api-keys/{id}

Revoke an organization API key (org admins)

Path parameters

NameTypeDescription
orgstring
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/api-keys/{id}/rotate

Give an organization API key a new secret (org admins)

Path parameters

NameTypeDescription
orgstring
idstring

Request body: RotateApiKeyBody

200 OK: CreatedApiKey

Errors: 400, 401, 403, 404, 409, 429 with an error body

CLI sign-in

POST /v1/cli/login/start

Start signing the yard CLI in: a code to confirm in the browser

Request body: CliLoginStartBody

200 OK: CliLoginStart

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/cli/login/poll

Whether the person confirmed the code; the key, once

Request body

NameTypeDescription
deviceTokenstring

200 OK: CliLoginPoll

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/cli/login/{code}

A pending CLI sign-in, to confirm

Path parameters

NameTypeDescription
codestring

200 OK: CliLoginRequest

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/cli/login/{code}/approve

Confirm a CLI sign-in: mints a personal key for that CLI

Path parameters

NameTypeDescription
codestring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/cli/login/{code}/deny

Refuse a CLI sign-in

Path parameters

NameTypeDescription
codestring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/cli/logout

Revoke the API key this request is made with (yard logout)

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

Invites

GET /v1/orgs/{org}/invites

Pending invites

Path parameters

NameTypeDescription
orgstring

200 OK

NameTypeDescription
invitesInvite[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/invites

Invite by email, or create a shareable link

Path parameters

NameTypeDescription
orgstring

Request body: CreateInviteBody

200 OK: CreatedInvite

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/orgs/{org}/invites/{id}

Revoke an invite

Path parameters

NameTypeDescription
orgstring
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/invites/{token}

What an invite link grants (public)

Path parameters

NameTypeDescription
tokenstring

200 OK: InvitePreview

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/invites/{token}/accept

Join the organization

Path parameters

NameTypeDescription
tokenstring

200 OK: AcceptedInvite

Errors: 400, 401, 403, 404, 409, 429 with an error body

Runners

GET /v1/orgs/{org}/runners

Runners this organization can use

Path parameters

NameTypeDescription
orgstring

200 OK

NameTypeDescription
runnersRunner[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/runners

Register a runner for this organization

Path parameters

NameTypeDescription
orgstring

Request body: CreateRunnerBody

200 OK: CreatedRunner

Errors: 400, 401, 403, 404, 409, 429 with an error body

PATCH /v1/orgs/{org}/runners/{id}

Change how many agent turns an organization's runner runs at once, and when they wait for its load (org admins)

Path parameters

NameTypeDescription
orgstring
idstring

Request body: UpdateRunnerBody

200 OK: Runner

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/orgs/{org}/runners/{id}

Remove an organization's runner

Path parameters

NameTypeDescription
orgstring
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/runners/{id}/rotate-token

Give an organization's runner a new token; the old one stops working

Path parameters

NameTypeDescription
orgstring
idstring

200 OK: RotatedRunnerToken

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/admin/runners/{id}/rotate-token

Give an official runner a new token (instance admins)

Path parameters

NameTypeDescription
idstring

200 OK: RotatedRunnerToken

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/runners/{id}/device/approve

Pin the runner to the machine it connected from instead (org admins); a waiting connection goes live

Path parameters

NameTypeDescription
orgstring
idstring

200 OK: Runner

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/admin/runners/{id}/device/approve

Pin the runner to the machine it connected from instead (instance admins); a waiting connection goes live

Path parameters

NameTypeDescription
idstring

200 OK: Runner

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/runners/{id}/device/reject

Refuse the other machine (org admins); its connection is closed

Path parameters

NameTypeDescription
orgstring
idstring

200 OK: Runner

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/admin/runners/{id}/device/reject

Refuse the other machine (instance admins); its connection is closed

Path parameters

NameTypeDescription
idstring

200 OK: Runner

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/runners/{id}/device/reset

Forget the runner's machine (org admins); the next connection is pinned on trust

Path parameters

NameTypeDescription
orgstring
idstring

200 OK: Runner

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/admin/runners/{id}/device/reset

Forget the runner's machine (instance admins); the next connection is pinned on trust

Path parameters

NameTypeDescription
idstring

200 OK: Runner

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/orgs/{org}/runners/{id}/direct

Give a pinned runner its own https address for terminals and downloads (org admins); checked at once

Path parameters

NameTypeDescription
orgstring
idstring

Request body: SetRunnerDirectBody

200 OK: Runner

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/orgs/{org}/runners/{id}/direct

Stop using the runner's own address (org admins)

Path parameters

NameTypeDescription
orgstring
idstring

200 OK: Runner

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/runners/{id}/direct/verify

Check now that the runner's address answers as this runner (org admins)

Path parameters

NameTypeDescription
orgstring
idstring

200 OK: Runner

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/me/runners

The caller's personal runners

200 OK

NameTypeDescription
runnersRunner[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/me/runners

Register a personal runner: only the caller can put workspaces on it

Request body: CreateRunnerBody

200 OK: CreatedRunner

Errors: 400, 401, 403, 404, 409, 429 with an error body

PATCH /v1/me/runners/{id}

Change a personal runner: whether others may edit the workspaces on it (they can always view them), and how many agent turns it runs at once

Path parameters

NameTypeDescription
idstring

Request body: UpdatePersonalRunnerBody

200 OK: Runner

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/me/runners/{id}

Remove a personal runner

Path parameters

NameTypeDescription
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/me/runners/{id}/rotate-token

Give a personal runner a new token; the old one stops working

Path parameters

NameTypeDescription
idstring

200 OK: RotatedRunnerToken

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/me/runners/{id}/device/approve

Pin the personal runner to the machine it connected from instead

Path parameters

NameTypeDescription
idstring

200 OK: Runner

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/me/runners/{id}/device/reject

Refuse the other machine; its connection is closed

Path parameters

NameTypeDescription
idstring

200 OK: Runner

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/me/runners/{id}/device/reset

Forget the runner's machine; the next connection is pinned on trust

Path parameters

NameTypeDescription
idstring

200 OK: Runner

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/me/runners/{id}/direct

Give a pinned personal runner its own https address; checked at once

Path parameters

NameTypeDescription
idstring

Request body: SetRunnerDirectBody

200 OK: Runner

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/me/runners/{id}/direct

Stop using the personal runner's own address

Path parameters

NameTypeDescription
idstring

200 OK: Runner

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/me/runners/{id}/direct/verify

Check now that the personal runner's address answers as this runner

Path parameters

NameTypeDescription
idstring

200 OK: Runner

Errors: 400, 401, 403, 404, 409, 429 with an error body

PATCH /v1/admin/runners/{id}

Change how many agent turns any runner runs at once, and when they wait for its load (instance admins)

Path parameters

NameTypeDescription
idstring

Request body: UpdateRunnerBody

200 OK: Runner

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/orgs/{org}/runners/{id}/queue

What runs and waits on an organization's runner, and what failed (org admins)

Path parameters

NameTypeDescription
orgstring
idstring

200 OK: RunnerQueue

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/admin/runners/{id}/queue

What runs and waits on any runner, and what failed (instance admins)

Path parameters

NameTypeDescription
idstring

200 OK: RunnerQueue

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/me/runners/{id}/queue

What runs and waits on a personal runner, and what failed

Path parameters

NameTypeDescription
idstring

200 OK: RunnerQueue

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/runner-queue

This workspace's turns on its runner, and how busy the runner is (read only)

Path parameters

NameTypeDescription
wsstring

200 OK: RunnerQueue

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/runners/{id}/retry-failed

Queue every failed project and chat on an organization's runner again (org admins)

Path parameters

NameTypeDescription
orgstring
idstring

Request body: RetryFailedBody

200 OK: RetryFailedResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/admin/runners/{id}/retry-failed

Queue every failed project and chat on any runner again (instance admins)

Path parameters

NameTypeDescription
idstring

Request body: RetryFailedBody

200 OK: RetryFailedResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/me/runners/{id}/retry-failed

Queue every failed project and chat on a personal runner again

Path parameters

NameTypeDescription
idstring

Request body: RetryFailedBody

200 OK: RetryFailedResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/retry-failed

Queue every failed project and chat of this workspace again

Path parameters

NameTypeDescription
wsstring

200 OK: RetryFailedResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/runners/{id}/update

Have an online organization runner install the newest build and restart (org admins)

Path parameters

NameTypeDescription
orgstring
idstring

200 OK: RunnerUpdateStarted

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/admin/runners/{id}/update

Have any online runner install the newest build and restart (instance admins)

Path parameters

NameTypeDescription
idstring

200 OK: RunnerUpdateStarted

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/admin/runners

Register an official runner (instance admins)

Request body

NameTypeDescription
namestring
tieroptional"standard" | "pro"

200 OK: CreatedRunner

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/runner/releases

Downloadable runner builds (public)

200 OK: RunnerReleases

Errors: 400, 401, 403, 404, 409, 429 with an error body

Instance admins

GET /v1/admin/runners

Every runner, official and organizations' (instance admins)

200 OK

NameTypeDescription
runnersAdminRunner[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/admin/claim

Whether the instance has an admin yet, and how the first one claims it

200 OK: AdminClaimState

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/admin/claim

Become the first instance admin with the code from the console

Request body

NameTypeDescription
codeoptionalstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/admin/claim/request

Print a one-time claim code to the API's console

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/admin/overview

Counts across the instance (instance admins)

200 OK: AdminOverview

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/admin/orgs

Every organization, with counts (instance admins)

200 OK

NameTypeDescription
orgsAdminOrg[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/admin/users

People on this instance (instance admins)

Query parameters

NameTypeDescription
qoptionalstring

200 OK

NameTypeDescription
usersAdminUser[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

PATCH /v1/admin/users/{id}

Make someone an admin or not (the owner), disable or enable them (instance admins)

Path parameters

NameTypeDescription
idstring

Request body: UpdateAdminUserBody

200 OK: AdminUser

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/admin/users/{id}/sessions

Sign someone out everywhere and revoke their API keys (instance admins)

Path parameters

NameTypeDescription
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/admin/usage/ai

Agent turns, tokens and cost (instance admins)

Query parameters

NameTypeDescription
groupByoptional"org" | "user" | "provider" | "model" | "day"
daysoptionalinteger

200 OK

NameTypeDescription
rowsAiUsageRow[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

PATCH /v1/admin/feedback/{id}

Mark feedback seen or done, or archive it (instance admins)

Path parameters

NameTypeDescription
idstring

Request body

NameTypeDescription
statusoptional"new" | "seen" | "done"
archivedoptionalboolean

200 OK

NameTypeDescription
idstring
status"new" | "seen" | "done"
archivedAtstring | null

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/admin/email

Recent emails and failures (instance admins)

200 OK

NameTypeDescription
transportstring
deliversboolean
emailsEmailEvent[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/admin/email/test

Send a test email to yourself (instance admins)

200 OK: EmailEvent & object | null

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/admin/audit

What instance admins did (instance admins)

200 OK

NameTypeDescription
eventsAuditEvent[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/admin/system

Version and which settings are configured (instance admins)

200 OK: AdminSystem

Errors: 400, 401, 403, 404, 409, 429 with an error body

Hosters

GET /v1/orgs/{org}/hosters

Hosters this organization can use: its own and the official ones

Path parameters

NameTypeDescription
orgstring

200 OK

NameTypeDescription
hostersHoster[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/hosters

Register a hoster for this organization (org admins); the token is shown once

Path parameters

NameTypeDescription
orgstring

Request body: CreateRunnerBody

200 OK: CreatedHoster

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/orgs/{org}/hosters/{id}

Remove an organization's hoster (org admins)

Path parameters

NameTypeDescription
orgstring
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/hosters/{id}/rotate-token

Give a hoster a new token; the old one stops working (org admins)

Path parameters

NameTypeDescription
orgstring
idstring

200 OK: CreatedHoster

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/hosters/{id}/reset-device

Forget the hoster's machine; the next one to connect is pinned (org admins)

Path parameters

NameTypeDescription
orgstring
idstring

200 OK: Hoster

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/admin/hosters

Every hoster, official and organizations' (instance admins)

200 OK

NameTypeDescription
hostersobject[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/admin/hosters

Register an official hoster for a domain every organization can use (instance admins); the token is shown once

Request body: CreateOfficialHosterBody

200 OK: CreatedHoster

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/admin/hosters/{id}/rotate-token

Give an official hoster a new token; the old one stops working (instance admins)

Path parameters

NameTypeDescription
idstring

200 OK: CreatedHoster

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/admin/hosters/{id}/reset-device

Forget an official hoster's machine; the next one to connect is pinned (instance admins)

Path parameters

NameTypeDescription
idstring

200 OK: Hoster

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/admin/hosters/{id}

Remove an official hoster (instance admins)

Path parameters

NameTypeDescription
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

Storage

GET /v1/orgs/{org}/storage

Where this organization's files are stored

Path parameters

NameTypeDescription
orgstring

200 OK: OrgStorage

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/orgs/{org}/storage

Set the organization's bucket

Path parameters

NameTypeDescription
orgstring

Request body: UpdateOrgStorageBody

200 OK: OrgStorage

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/storage/test

Write, read and delete a probe object

Path parameters

NameTypeDescription
orgstring

200 OK: StorageTestResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/admin/storage/buckets

The host's buckets (instance admins)

200 OK

NameTypeDescription
bucketsStorageBucket[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/admin/storage/buckets

Add a bucket every organization can use (instance admins)

Request body: CreateStorageBucketBody

200 OK: StorageBucket

Errors: 400, 401, 403, 404, 409, 429 with an error body

PATCH /v1/admin/storage/buckets/{id}

Rename, make default, stop new workspaces or change keys (instance admins)

Path parameters

NameTypeDescription
idstring

Request body: UpdateStorageBucketBody

200 OK: StorageBucket

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/admin/storage/buckets/{id}

Remove a host bucket no workspace uses (instance admins)

Path parameters

NameTypeDescription
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/admin/storage/buckets/{id}/test

Write, read and delete a probe object (instance admins)

Path parameters

NameTypeDescription
idstring

200 OK: StorageTestResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/orgs/{org}/storage/buckets

Buckets this organization's workspaces can use

Path parameters

NameTypeDescription
orgstring

200 OK

NameTypeDescription
bucketsStorageBucket[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/storage/buckets

Add a bucket of the organization's own (org admins)

Path parameters

NameTypeDescription
orgstring

Request body: CreateStorageBucketBody

200 OK: StorageBucket

Errors: 400, 401, 403, 404, 409, 429 with an error body

PATCH /v1/orgs/{org}/storage/buckets/{id}

Change one of the organization's buckets (org admins)

Path parameters

NameTypeDescription
orgstring
idstring

Request body: UpdateStorageBucketBody

200 OK: StorageBucket

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/orgs/{org}/storage/buckets/{id}

Remove one of the organization's buckets no workspace uses (org admins)

Path parameters

NameTypeDescription
orgstring
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/storage/buckets/{id}/test

Write, read and delete a probe object (org admins)

Path parameters

NameTypeDescription
orgstring
idstring

200 OK: StorageTestResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/storage

Which bucket this workspace's files are in, and any move under way

Path parameters

NameTypeDescription
wsstring

200 OK: WorkspaceStorage

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/storage/migrate

Move this workspace's files to another bucket (org admins)

Path parameters

NameTypeDescription
wsstring

Request body

NameTypeDescription
bucketIdstring

200 OK: WorkspaceStorage

Errors: 400, 401, 403, 404, 409, 429 with an error body

Integrations

GET /v1/me/integrations

Outside services you connected, and the ones you can

200 OK: IntegrationList

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/me/integrations/{provider}

Connect a service with your own key (checked with the service first)

Path parameters

NameTypeDescription
providerIntegrationProvider

Request body: ConnectIntegrationBody

200 OK: Integration

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/me/integrations/{provider}

Forget your key for a service

Path parameters

NameTypeDescription
providerIntegrationProvider

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/orgs/{org}/integrations

Services the organization connected for its members

Path parameters

NameTypeDescription
orgstring

200 OK: IntegrationList

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/orgs/{org}/integrations/{provider}

Connect a service for everyone in the organization (org admins)

Path parameters

NameTypeDescription
orgstring
providerIntegrationProvider

Request body: ConnectIntegrationBody

200 OK: Integration

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/orgs/{org}/integrations/{provider}

Forget the organization's key for a service (org admins)

Path parameters

NameTypeDescription
orgstring
providerIntegrationProvider

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/stt/status

Whether dictation can use server speech to text, with your key or the organization's

Query parameters

NameTypeDescription
orgoptionalstring

200 OK: SttStatus

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/stt/transcribe

Turn a recording into text with Mistral

Request body: TranscribeBody

200 OK: Transcription

Errors: 400, 401, 403, 404, 409, 429 with an error body

Workspaces

GET /v1/orgs/{org}/workspaces

Workspaces the caller can open

Path parameters

NameTypeDescription
orgstring

Query parameters

NameTypeDescription
archivedoptional"true" | "false"

200 OK

NameTypeDescription
workspacesWorkspace[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/workspaces

Create a workspace on a runner

Path parameters

NameTypeDescription
orgstring

Request body: CreateWorkspaceBody

200 OK: Workspace

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/orgs/{org}/workspaces/{slug}

One workspace, by its URL slug

Path parameters

NameTypeDescription
orgstring
slugstring

200 OK: Workspace

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}

One workspace

Path parameters

NameTypeDescription
wsstring

200 OK: Workspace

Errors: 400, 401, 403, 404, 409, 429 with an error body

PATCH /v1/workspaces/{ws}

Update workspace settings, or move it to another runner

Path parameters

NameTypeDescription
wsstring

Request body: UpdateWorkspaceBody

200 OK: Workspace

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/workspaces/{ws}

Delete an archived workspace

Path parameters

NameTypeDescription
wsstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/retry

Retry provisioning after a failure

Path parameters

NameTypeDescription
wsstring

200 OK: Workspace

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/unarchive

Bring an archived workspace back onto a runner

Path parameters

NameTypeDescription
wsstring

Request body: UnarchiveBody

200 OK: Workspace

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/archive

Stop the runtime; files stay in storage for the retention period

Path parameters

NameTypeDescription
wsstring

200 OK: Workspace

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/share

Who can open this workspace

Path parameters

NameTypeDescription
wsstring

200 OK: Share

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/workspaces/{ws}/share/members/{userId}

Grant, change or clear one person's role

Path parameters

NameTypeDescription
wsstring
userIdstring

Request body: SetShareRoleBody

200 OK: Share

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/share/invite

Share with someone by email

Path parameters

NameTypeDescription
wsstring

Request body: ShareInviteBody

200 OK: ShareInviteResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

Workspace content

GET /v1/workspaces/{ws}/history

Canvas history and unsaved changes

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
containeroptionalstring

200 OK: History

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/history/save

Commit unsaved canvas changes now

Path parameters

NameTypeDescription
wsstring

Request body: SaveHistoryBody

200 OK: HistoryResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/history/{sha}/revert

Put the canvas back to how it was at a commit

Path parameters

NameTypeDescription
wsstring
shastring

Request body

NameTypeDescription
containeroptionalstring

200 OK: HistoryResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/uploads

Start an upload

Path parameters

NameTypeDescription
wsstring

Request body: CreateUploadBody

200 OK: UploadTicket

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/uploads/{id}/complete

Bring an uploaded file into the workspace

Path parameters

NameTypeDescription
wsstring
idstring

200 OK: UploadResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/usage

What the workspace's containers use right now, and its disk

Path parameters

NameTypeDescription
wsstring

200 OK: WorkspaceUsage

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/orgs/{org}/usage

What every workspace of the organization uses right now (admins)

Path parameters

NameTypeDescription
orgstring

200 OK: OrgUsage

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/processes

Processes running in the workspace's container, or in a project's

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
containeroptionalstring

200 OK: ProcessList

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/containers/stop-runtime

Stop every container of the workspace; each starts again when it is next used

Path parameters

NameTypeDescription
wsstring

200 OK

NameTypeDescription
stoppedinteger
skippedinteger

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/processes/kill

Stop one process in a container

Path parameters

NameTypeDescription
wsstring

Request body: KillProcessBody

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/link-preview

Title, description and image of a web page, read from inside the workspace's box

Path parameters

NameTypeDescription
wsstring

Request body: LinkPreviewBody

200 OK: LinkPreview

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/snapshot

Read-only copy of the canvas from storage, for when the runner is offline

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
containeroptionalstring

200 OK: SnapshotLink

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/terminals

Open terminals

Path parameters

NameTypeDescription
wsstring

200 OK

NameTypeDescription
terminalsTerminal[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/terminals

Open a terminal in the workspace or one of its containers

Path parameters

NameTypeDescription
wsstring

Request body: CreateTerminalBody

200 OK: Terminal

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/workspaces/{ws}/terminals/{id}

Close a terminal

Path parameters

NameTypeDescription
wsstring
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

Sheets

GET /v1/workspaces/{ws}/sheets

The sheets of the workspace canvas the caller may open, the first one first

Path parameters

NameTypeDescription
wsstring

200 OK: SheetList

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/sheets

Add a sheet to the workspace canvas

Path parameters

NameTypeDescription
wsstring

Request body: CreateSheetBody

200 OK: Sheet

Errors: 400, 401, 403, 404, 409, 429 with an error body

PATCH /v1/sheets/{id}

Rename a sheet, move it, or change who may open it

Path parameters

NameTypeDescription
idstring

Request body: UpdateSheetBody

200 OK: Sheet

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/sheets/{id}

Delete a sheet (its files are archived in the workspace's history)

Path parameters

NameTypeDescription
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/sheets/{id}/members

Who is on a sheet's list

Path parameters

NameTypeDescription
idstring

200 OK: SheetMembers

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/sheets/{id}/members/{user}

Put someone on a sheet's list, or change their role there

Path parameters

NameTypeDescription
idstring
userstring

Request body: SetSheetMemberBody

200 OK: SheetMembers

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/sheets/{id}/members/{user}

Take someone off a sheet's list

Path parameters

NameTypeDescription
idstring
userstring

200 OK: SheetMembers

Errors: 400, 401, 403, 404, 409, 429 with an error body

GitHub

GET /v1/orgs/{org}/github

GitHub App installations and the caller's GitHub connection

Path parameters

NameTypeDescription
orgstring

200 OK: OrgGithub

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/github/install-url

Where to send the browser to install the GitHub App

Path parameters

NameTypeDescription
orgstring

Query parameters

NameTypeDescription
nextoptionalstring

200 OK: InstallUrl

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/orgs/{org}/github/installations/{id}

Forget an installation

Path parameters

NameTypeDescription
orgstring
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/github/connect-url

Where to send the browser to connect a GitHub account

Request body

NameTypeDescription
nextoptionalstring

200 OK: InstallUrl

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/github/me

The caller's GitHub connection

200 OK: GithubIdentity

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/github/me

Disconnect GitHub, and remove the repositories only its token could read

200 OK: GithubDisconnectResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/github/me/disconnect-preview

Repositories that disconnecting GitHub removes

200 OK: GithubDisconnectPreview

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/github/pat

Connect with a personal access token

Request body: SetPatBody

200 OK: GithubIdentity

Errors: 400, 401, 403, 404, 409, 429 with an error body

Repositories

GET /v1/orgs/{org}/github/repos

GitHub repositories the caller can connect

Path parameters

NameTypeDescription
orgstring

Query parameters

NameTypeDescription
qoptionalstring

200 OK

NameTypeDescription
reposGithubRepo[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/orgs/{org}/repos

Repositories connected to the organization

Path parameters

NameTypeDescription
orgstring

200 OK

NameTypeDescription
reposRepo[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/repos

Connect a GitHub repository

Path parameters

NameTypeDescription
orgstring

Request body: ConnectRepoBody

200 OK: Repo

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/orgs/{org}/repos/new

Create a repository on GitHub and connect it

Path parameters

NameTypeDescription
orgstring

Request body: CreateRepoBody

200 OK: Repo

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/orgs/{org}/repos/{id}

Disconnect a repository

Path parameters

NameTypeDescription
orgstring
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/repos

Repositories mounted in a workspace

Path parameters

NameTypeDescription
wsstring

200 OK

NameTypeDescription
reposWorkspaceRepo[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/repos

Mount a repository in a workspace

Path parameters

NameTypeDescription
wsstring

Request body: MountRepoBody

200 OK: WorkspaceRepo

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/repos/{id}/fetch

Fetch the latest commits

Path parameters

NameTypeDescription
wsstring
idstring

200 OK: WorkspaceRepo

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/repos/{id}/branches

Branches of a mounted repository

Path parameters

NameTypeDescription
wsstring
idstring

200 OK: RepoBranches

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/workspaces/{ws}/repos/{id}/branch

Read the repository at another branch, and start projects from it

Path parameters

NameTypeDescription
wsstring
idstring

Request body: SetRepoBranchBody

200 OK: WorkspaceRepo

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/github/peek

What a GitHub address of a mounted repository is about (for link cards)

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
urlstring

200 OK: GithubPeek

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/workspaces/{ws}/repos/{id}/read-only

Mark a repository read-only in this workspace (a reference), or allow edits again

Path parameters

NameTypeDescription
wsstring
idstring

Request body: SetRepoReadOnlyBody

200 OK: WorkspaceRepo

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/workspaces/{ws}/repos/{id}

Remove a repository from a workspace

Path parameters

NameTypeDescription
wsstring
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

Files and git

GET /v1/workspaces/{ws}/fs/files

Files under a root (tracked and untracked, ignoring .gitignore'd ones)

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring

200 OK: FileList

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/fs/file

Read a text file

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring
pathstring

200 OK: FileContent

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/workspaces/{ws}/fs/file

Write a text file (merged with changes made since `base`, when given)

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring
pathstring

Request body: WriteFileBody

200 OK: WriteFileResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/fs/transfer

Copy or move a file or directory between roots (a task and the workspace)

Path parameters

NameTypeDescription
wsstring

Request body: TransferBody

200 OK: TransferResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/fs/remove

Delete files and folders under a root

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring

Request body: RemovePathsBody

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/fs/grep

Search file contents

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring
qstring

200 OK: GrepResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/git/status

Branch, head and uncommitted changes

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring

200 OK: GitStatus

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/git/commits

Commits on this branch

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring
baseoptionalstring

200 OK

NameTypeDescription
commitsGitCommit[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/git/diff-files

Changed files for a diff target

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring
targetstring

200 OK

NameTypeDescription
filesGitFileChange[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/git/diff

Unified diff

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring
targetstring
pathoptionalstring

200 OK: GitDiff

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/git/commit

Commit everything, as the caller

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring

Request body: CommitBody

200 OK

NameTypeDescription
shastring | null

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/git/discard

Discard uncommitted changes

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring

Request body: DiscardBody

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/git/push

Push the branch with the caller's GitHub token

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring

200 OK

NameTypeDescription
branchstring

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/git/fetch

Fetch origin for a worktree: its counts against the base are current afterwards

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring

200 OK: GitStatus

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/git/pull

Fetch, then fast-forward the branch to its upstream (a diverged branch is refused, unchanged)

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring

200 OK: GitPullResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/git/update

Merge the base branch into the worktree's branch, as the caller (aborted on a conflict)

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring

200 OK: GitUpdateResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/git/abort

Abort the merge or rebase left half done in a worktree

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring

200 OK: GitAbortResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/git/conflicts

What merging the base into the worktree's branch would conflict on (nothing is changed)

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring

200 OK: GitConflicts

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/git/pr

The pull request for this branch, if any

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring

200 OK: PullRequestState

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/git/pr

Open a pull request as the caller

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring

Request body: OpenPrBody

200 OK: PullRequest

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/git/pr/merge

Merge the pull request as the caller

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
scope"workspace" | "container" | "worktree" | "repo"
containeroptionalstring
repooptionalstring

Request body: MergePrBody

200 OK: PullRequest

Errors: 400, 401, 403, 404, 409, 429 with an error body

Agent accounts

GET /v1/agent/catalog

Agents that can be connected, with their models

200 OK

NameTypeDescription
agentsobject[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/agent-accounts

The caller's agent accounts

200 OK

NameTypeDescription
accountsAgentAccount[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/agent-accounts

Add an agent account (then sign it in)

Request body: CreateAgentAccountBody

200 OK: AgentAccount

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/agent-accounts/{id}

Remove an agent account and its stored credentials

Path parameters

NameTypeDescription
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/agent-accounts/{id}/active

Use this account for its agent's turns

Path parameters

NameTypeDescription
idstring

200 OK: AgentAccount

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/agent-accounts/{id}/workspaces/{ws}

Pin this account to a workspace: it runs only there

Path parameters

NameTypeDescription
idstring
wsstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/agent-accounts/{id}/workspaces/{ws}

Unpin this account from a workspace

Path parameters

NameTypeDescription
idstring
wsstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/agent-accounts/{id}/login

Where the sign-in stands

Path parameters

NameTypeDescription
idstring

200 OK: AgentLoginState

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/agent-accounts/{id}/login

Start signing in (runs the agent's own login on a runner)

Path parameters

NameTypeDescription
idstring

Request body: StartAgentLoginBody

200 OK: AgentLoginState

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/agent-accounts/{id}/login/code

Submit the code the provider showed

Path parameters

NameTypeDescription
idstring

Request body: AgentLoginCodeBody

200 OK: AgentLoginState

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/agent-accounts/{id}/login/cancel

Abandon the sign-in

Path parameters

NameTypeDescription
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

Chat

GET /v1/workspaces/{ws}/chat

Your own chat in the workspace, or in one of its projects (made when you have none)

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
containeroptionalstring

200 OK: Chat

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/chats

Everyone's chats in the workspace, or in one of its projects

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
containeroptionalstring

200 OK

NameTypeDescription
chatsChatSummary[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/chats

Start another chat of your own in the workspace, or in one of its projects: a new tab

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
containeroptionalstring

200 OK: Chat

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/chats/{id}

A chat: recent messages, what is queued, and the turn in progress

Path parameters

NameTypeDescription
idstring

200 OK: Chat

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/chats/{id}

Close a chat of your own: its tab goes away, its messages are kept

Path parameters

NameTypeDescription
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/chats/{id}/clear

Clear a chat of your own: it is closed and an empty one takes its place, so the agent starts fresh

Path parameters

NameTypeDescription
idstring

200 OK: Chat

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/chats/{id}/messages

Older messages

Path parameters

NameTypeDescription
idstring

Query parameters

NameTypeDescription
beforeinteger

200 OK

NameTypeDescription
messagesChatMessage[]
hasMoreboolean

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/chats/{id}/messages

Send a message to the agent (queued if it is busy)

Path parameters

NameTypeDescription
idstring

Request body: SendChatBody

200 OK: ChatQueueItem

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/chats/{id}/fork

Write into someone else's chat: starts a chat of your own that quotes theirs, and sends the message there

Path parameters

NameTypeDescription
idstring

Request body: SendChatBody

200 OK

NameTypeDescription
chatChat
itemChatQueueItem

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/chats/{id}/queue/{item}

Take back a message that has not started

Path parameters

NameTypeDescription
idstring
itemstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/chats/{id}/cancel

Stop the running turn

Path parameters

NameTypeDescription
idstring

200 OK

NameTypeDescription
stoppedboolean

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/chats/{id}/start-now

Start the turn that waits in the runner's queue now, over the runner's limit (on an official runner: instance admins only). While it waits for the runner's load, only with `confirmLoad=true` (the person saw the warning); otherwise 409 `runner_overloaded`.

Path parameters

NameTypeDescription
idstring

Query parameters

NameTypeDescription
confirmLoadoptional"true" | "false"

200 OK

NameTypeDescription
startedboolean

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/chats/{id}/retry

Send again what the chat's last turn was asked, after it ended in an error; it carries on from the conversation so far

Path parameters

NameTypeDescription
idstring

200 OK: ChatQueueItem

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/chats/{id}/resume-usage

Usage is available again for the agent account holding this chat's messages: they, and the account's other held messages, go back into the queue

Path parameters

NameTypeDescription
idstring

200 OK

NameTypeDescription
chatsinteger

Errors: 400, 401, 403, 404, 409, 429 with an error body

Containers

GET /v1/workspaces/{ws}/containers

Containers in a workspace (open ones, or the closed ones with closed=true)

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
closedoptional"true" | "false"

200 OK

NameTypeDescription
containersContainer[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/containers

Create a container from instructions, selected blocks and repositories

Path parameters

NameTypeDescription
wsstring

Request body: CreateContainerBody

200 OK: Container

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/containers/purge-closed

Delete every closed container of the workspace for good

Path parameters

NameTypeDescription
wsstring

200 OK

NameTypeDescription
deletedinteger

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/containers/by-slug/{slug}

A container by its directory name

Path parameters

NameTypeDescription
wsstring
slugstring

200 OK: Container

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/chat-logs

What the chat-log blocks show, including for deleted containers

Path parameters

NameTypeDescription
wsstring

200 OK

NameTypeDescription
logsobject[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/containers/{id}

A container, with fresh branch state when its runner is online

Path parameters

NameTypeDescription
idstring

200 OK: Container

Errors: 400, 401, 403, 404, 409, 429 with an error body

PATCH /v1/containers/{id}

Rename a container

Path parameters

NameTypeDescription
idstring

Request body: UpdateContainerBody

200 OK: Container

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/containers/{id}

Delete a container (its chat log stays)

Path parameters

NameTypeDescription
idstring

Query parameters

NameTypeDescription
forceoptional"true" | "false"

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/close

Close a container: it is archived and can be reopened

Path parameters

NameTypeDescription
idstring

Query parameters

NameTypeDescription
forceoptional"true" | "false"

200 OK: Container

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/reopen

Reopen a closed container

Path parameters

NameTypeDescription
idstring

200 OK: Container

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/chat-log-block

Put the conversation on the workspace canvas as a chat-log block

Path parameters

NameTypeDescription
idstring

200 OK: Container

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/retry

Retry a container whose creation failed

Path parameters

NameTypeDescription
idstring

200 OK: Container

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/repos

Check repositories out in the container (new worktrees, read-only checkouts, or read-only ones made writable)

Path parameters

NameTypeDescription
idstring

Request body: AttachContainerReposBody

200 OK: Container

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/start

Work: the agent implements the spec

Path parameters

NameTypeDescription
idstring

Request body: StartContainerBody

200 OK: Container

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/stop

Stop the agent (a container being worked on returns to draft)

Path parameters

NameTypeDescription
idstring

200 OK: Container

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/done

Mark the work as done

Path parameters

NameTypeDescription
idstring

200 OK: Container

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/push

Push every worktree branch with the caller's GitHub token

Path parameters

NameTypeDescription
idstring

200 OK: Container

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/prs

Open pull requests as the caller

Path parameters

NameTypeDescription
idstring

Request body: ContainerPrsBody

200 OK: Container

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/merge

Merge the open pull requests as the caller

Path parameters

NameTypeDescription
idstring

Request body: ContainerMergeBody

200 OK: Container

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/links

Link workspace blocks into the container

Path parameters

NameTypeDescription
idstring

Request body: ContainerBlocksBody

200 OK

NameTypeDescription
copiedinteger

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/sync-back

Bring container-canvas edits to the workspace originals, merged with the workspace's own changes; what cannot be merged is a conflict

Path parameters

NameTypeDescription
idstring

Request body: ContainerBlocksBody

200 OK: SyncBackResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/discard-edits

Throw away container-canvas edits

Path parameters

NameTypeDescription
idstring

Request body: ContainerBlocksBody

200 OK

NameTypeDescription
copiedinteger

Errors: 400, 401, 403, 404, 409, 429 with an error body

Apps

GET /v1/workspaces/{ws}/apps/env

The workspace's env values for apps (secret values are never returned)

Path parameters

NameTypeDescription
wsstring

200 OK: AppEnvList

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/workspaces/{ws}/apps/env

Replace the workspace's env values for apps; a secret sent without a value keeps the stored one

Path parameters

NameTypeDescription
wsstring

Request body: PutAppEnvBody

200 OK: AppEnvList

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/containers/{id}/apps/env

The project's env values for apps (secret values are never returned)

Path parameters

NameTypeDescription
idstring

200 OK: AppEnvList

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/containers/{id}/apps/env

Replace the project's env values for apps; they win over the workspace's

Path parameters

NameTypeDescription
idstring

Request body: PutAppEnvBody

200 OK: AppEnvList

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/apps

The workspace's app configs (its own layer)

Path parameters

NameTypeDescription
wsstring

200 OK: AppConfigList

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/apps/{repo}/{name}

One app config of the workspace layer

Path parameters

NameTypeDescription
wsstring
repostring
namestring

200 OK: AppConfig

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/workspaces/{ws}/apps/{repo}/{name}

Create or replace an app in the workspace layer (every project of the workspace sees it); disabled hides an org default

Path parameters

NameTypeDescription
wsstring
repostring
namestring

Request body: PutAppConfigBody

200 OK: AppConfig

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/workspaces/{ws}/apps/{repo}/{name}

Remove an app from the workspace layer

Path parameters

NameTypeDescription
wsstring
repostring
namestring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/apps/{repo}/save-as-default

Make the workspace's apps of a repository the org default for it (org admins)

Path parameters

NameTypeDescription
wsstring
repostring

200 OK: AppConfigList

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/apps/settings

Which hoster the workspace's apps run on

Path parameters

NameTypeDescription
wsstring

200 OK: WorkspaceAppsSettings

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/workspaces/{ws}/apps/settings

Choose the hoster the workspace's apps run on (null: the org's, else an official one)

Path parameters

NameTypeDescription
wsstring

Request body: PutWorkspaceAppsSettingsBody

200 OK: WorkspaceAppsSettings

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/containers/{id}/apps/config/{repo}/{name}

A project-layer app config

Path parameters

NameTypeDescription
idstring
repostring
namestring

200 OK: AppConfig

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/containers/{id}/apps/config/{repo}/{name}

Create or replace an app in the project layer (only this project sees it); disabled hides an inherited app here

Path parameters

NameTypeDescription
idstring
repostring
namestring

Request body: PutAppConfigBody

200 OK: AppConfig

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/containers/{id}/apps/config/{repo}/{name}

Remove an app from the project layer

Path parameters

NameTypeDescription
idstring
repostring
namestring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/apps/config/{repo}/{name}/promote

Move a project-layer app to the workspace layer, so every project sees it

Path parameters

NameTypeDescription
idstring
repostring
namestring

200 OK: AppConfig

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/orgs/{org}/repos/{repo}/apps

The org default apps of a repository

Path parameters

NameTypeDescription
orgstring
repostring

200 OK: AppConfigList

Errors: 400, 401, 403, 404, 409, 429 with an error body

PUT /v1/orgs/{org}/repos/{repo}/apps/{name}

Create or replace an org default app (org admins)

Path parameters

NameTypeDescription
orgstring
repostring
namestring

Request body: PutAppConfigBody

200 OK: AppConfig

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/orgs/{org}/repos/{repo}/apps/{name}

Remove an org default app (org admins)

Path parameters

NameTypeDescription
orgstring
repostring
namestring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/containers/{id}/apps

A project's apps: their config after the layers are merged, and their instances on the hoster

Path parameters

NameTypeDescription
idstring

200 OK: ProjectApps

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/apps/{repo}/{name}/start

Start an app (and what it depends on)

Path parameters

NameTypeDescription
idstring
repostring
namestring

Request body: AppActionBody

200 OK: ProjectApps

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/apps/{repo}/{name}/stop

Stop an app; its data stays

Path parameters

NameTypeDescription
idstring
repostring
namestring

Request body: AppActionBody

200 OK: ProjectApps

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/apps/{repo}/{name}/restart

Restart an app; it is rebuilt only when the source changed

Path parameters

NameTypeDescription
idstring
repostring
namestring

Request body: AppActionBody

200 OK: ProjectApps

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/apps/{repo}/{name}/reset

Remove an app's container, image and logs, and its data unless keepData

Path parameters

NameTypeDescription
idstring
repostring
namestring

Request body: AppActionBody

200 OK: ProjectApps

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/apps/start

Start every app of the project, in dependency order

Path parameters

NameTypeDescription
idstring

Request body: AppActionBody

200 OK: ProjectApps

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/apps/stop

Stop every app of the project

Path parameters

NameTypeDescription
idstring

Request body: AppActionBody

200 OK: ProjectApps

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/apps/reset

Reset every app of the project

Path parameters

NameTypeDescription
idstring

Request body: AppActionBody

200 OK: ProjectApps

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/containers/{id}/apps/{repo}/{name}/logs

The backlog of an app's build and run log (live lines follow as app.log events)

Path parameters

NameTypeDescription
idstring
repostring
namestring

Query parameters

NameTypeDescription
sinceoptionalinteger | null
tailoptionalinteger

200 OK: AppLogs

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/containers/{id}/apps/{repo}/{name}/db/tables

Tables of a database app

Path parameters

NameTypeDescription
idstring
repostring
namestring

200 OK

NameTypeDescription
tablesDbTable[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/containers/{id}/apps/{repo}/{name}/db/rows

A page of rows of one table of a database app

Path parameters

NameTypeDescription
idstring
repostring
namestring

Query parameters

NameTypeDescription
tablestring
offsetoptionalinteger | null
limitoptionalinteger

200 OK: DbRows

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/containers/{id}/apps/{repo}/{name}/db/query

A read-only query on a database app (writes are refused)

Path parameters

NameTypeDescription
idstring
repostring
namestring

Request body: DbQueryBody

200 OK: DbRows

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/hosted/auth/ticket

A short-lived ticket that opens one team app's host for the caller, if they can see its project

Request body: HostedTicketBody

200 OK: HostedTicket

Errors: 400, 401, 403, 404, 409, 429 with an error body

Conflicts

GET /v1/workspaces/{ws}/conflicts

Files two writers changed in ways that could not be merged (open ones by default)

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
statusoptional"open" | "resolved" | "all"

200 OK: ConflictList

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/workspaces/{ws}/conflicts/{id}

One conflict, with its versions when they are text

Path parameters

NameTypeDescription
wsstring
idstring

200 OK: FileConflictDetail

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/conflicts/{id}/resolve

Settle a conflict: keep one version, keep both, or write the merged text. Recorded in the history.

Path parameters

NameTypeDescription
wsstring
idstring

Request body: ResolveConflictBody

200 OK: ResolveConflictResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/conflicts/{id}/ask-agent

Ask your agent, in your workspace chat, to propose a merged version for you to review

Path parameters

NameTypeDescription
wsstring
idstring

200 OK: AskConflictAgentResult

Errors: 400, 401, 403, 404, 409, 429 with an error body

Comments

GET /v1/workspaces/{ws}/comments

Comment threads on the workspace canvas, or on a project's canvas and spec

Path parameters

NameTypeDescription
wsstring

Query parameters

NameTypeDescription
containeroptionalstring

200 OK

NameTypeDescription
threadsCommentThread[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/workspaces/{ws}/comments

Start a comment thread on a block or a passage

Path parameters

NameTypeDescription
wsstring

Request body: StartThreadBody

200 OK: CommentThread

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/comment-threads/{id}/comments

Answer in a comment thread

Path parameters

NameTypeDescription
idstring

Request body: ReplyBody

200 OK: CommentThread

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/comment-threads/{id}/resolve

Mark a thread resolved

Path parameters

NameTypeDescription
idstring

200 OK: CommentThread

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/comment-threads/{id}/reopen

Open a resolved thread again

Path parameters

NameTypeDescription
idstring

200 OK: CommentThread

Errors: 400, 401, 403, 404, 409, 429 with an error body

PATCH /v1/comments/{id}

Change your own comment

Path parameters

NameTypeDescription
idstring

Request body: EditCommentBody

200 OK: CommentThread

Errors: 400, 401, 403, 404, 409, 429 with an error body

DELETE /v1/comments/{id}

Delete your comment (workspace owners: any comment)

Path parameters

NameTypeDescription
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

Notifications

GET /v1/notifications

The caller's recent notifications

200 OK

NameTypeDescription
notificationsNotification[]
unreadinteger

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/notifications/read-all

Mark every notification as read

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/notifications/clear

Remove every notification of the caller

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

POST /v1/notifications/{id}/read

Mark a notification as read

Path parameters

NameTypeDescription
idstring

200 OK: Ok

Errors: 400, 401, 403, 404, 409, 429 with an error body

Feedback

POST /v1/feedback

Send a request or a problem to the people who build Yard

Request body: FeedbackBody

200 OK

NameTypeDescription
idstring

Errors: 400, 401, 403, 404, 409, 429 with an error body

GET /v1/admin/feedback

Everything people sent, the inbox or the archived (instance admins)

Query parameters

NameTypeDescription
archivedoptional"true" | "false"

200 OK

NameTypeDescription
feedbackFeedback[]

Errors: 400, 401, 403, 404, 409, 429 with an error body

Screenshots

POST /v1/workspaces/{ws}/screenshots

Screenshot a URL or the virtual display from inside a box

Path parameters

NameTypeDescription
wsstring

Request body: ScreenshotBody

200 OK: Screenshot

Errors: 400, 401, 403, 404, 409, 429 with an error body

Direct runner domains

POST /v1/workspaces/{ws}/direct

A one-minute ticket to open a terminal or read files straight from the workspace's runner, when it has its own address

Path parameters

NameTypeDescription
wsstring

Request body: DirectTicketBody

200 OK: DirectTicket

Errors: 400, 401, 403, 404, 409, 429 with an error body

Errors

Every error answers with the same body:

ErrorBody

NameTypeDescription
errorstring
codestring

Schemas

AcceptedInvite

Fields

NameTypeDescription
orgobject
workspaceIdstring | null

AdminClaimState

Fields

NameTypeDescription
openboolean
method"code" | "button"
isAdminboolean
isOwnerboolean

AdminOverview

Fields

NameTypeDescription
usersinteger
orgsinteger
workspacesinteger
runnersobject
turnsLastDayinteger
openFeedbackinteger
failedEmailsLastDayinteger

AdminSystem

Fields

NameTypeDescription
versionstring
migrationsinteger
emailobject
storageobject
githubAppboolean
masterKey"env" | "file"
directTicketsboolean

AdminUser

Fields

NameTypeDescription
idstring
namestring
emailstring
isAdminboolean
isOwnerboolean
disabledboolean
sessionsinteger
orgsinteger
createdAtstring

AgentAccount

Fields

NameTypeDescription
idstring
provider"claude" | "codex" | "cursor" | "fake"
labelstring
status"pending" | "active" | "expired"
auth"login" | "api_key"
isActiveboolean
workspacesobject[]
lastUsedAtstring | null
createdAtstring

AgentLoginCodeBody

Fields

NameTypeDescription
codestring

AgentLoginState

Fields

NameTypeDescription
accountIdstring
phase"none" | "starting" | "awaiting_code" | "awaiting_device" | "verifying" | "authorized" | "error" | "expired"
urlstring | null
userCodestring | null
errorstring | null

ApiKey

Fields

NameTypeDescription
idstring
kind"user" | "org"
namestring
prefixstring
scopes("read" | "write" | "runners" | "admin")[]
role"admin" | "member" | null
createdByobject | null
createdAtstring
expiresAtstring | null
lastUsedAtstring | null
lastUsedIpstring | null
previousExpiresAtstring | null

AppActionBody

Fields

NameTypeDescription
keepDataoptionalboolean

AppConfig

Fields

NameTypeDescription
idstring
layerAppConfigLayer
repostring
repoIdstring
namestring
specobject
disabledboolean
updatedBystring | null
updatedAtstring

AppConfigLayer

"org" | "workspace" | "project"

AppConfigList

Fields

NameTypeDescription
configsAppConfig[]

AppEnvEntry

Fields

NameTypeDescription
repostring | null
appstring | null
namestring
valuestring | null
secretboolean
setboolean

AppEnvList

Fields

NameTypeDescription
entriesAppEnvEntry[]

AppInstance

Fields

NameTypeDescription
idstring
state"pending" | "fetching" | "building" | "starting" | "running" | "sleeping" | "stopped" | "error"
urlsAppUrl[]
sourceShastring | null
hosterIdstring
startedBystring | null
errorstring | null
updatedAtstring

AppLogs

Fields

NameTypeDescription
linesobject[]

AppUrl

Fields

NameTypeDescription
portstring
urlstring
visibility"team" | "public"

AskConflictAgentResult

Fields

NameTypeDescription
chatIdstring

AttachContainerReposBody

Fields

NameTypeDescription
reposobject[]

AuthProviders

Fields

NameTypeDescription
githubboolean

ChangePasswordBody

Fields

NameTypeDescription
currentstring
nextstring

Chat

Fields

NameTypeDescription
idstring
workspaceIdstring
containerIdstring | null
ownerobject | null
forkedFromChatFork
status"idle" | "running" | "awaiting_input" | "error"
messagesChatMessage[]
hasMoreboolean
queueChatQueueItem[]
liveChatLive

ChatActivity

Fields

NameTypeDescription
idstring
kind"read" | "edit" | "run" | "search" | "other"
labelstring
detailoptionalstring
okoptionalboolean
doneboolean
inputoptionalstring
outputoptionalstring

ChatFork

Fields

NameTypeDescription
chatIdstring
ownerobject | null
seqinteger

ChatGitEvent

Fields

NameTypeDescription
kind"pushed" | "pr_opened" | "pr_merged" | "pr_closed" | "pr_reopened" | "pr_conflicting"
repostring
branchstring
baseoptionalstring
commitsoptionalinteger
numberoptionalinteger
urloptionalstring
bystring | null
onGitHubboolean

ChatLive

Fields

NameTypeDescription
turnIdstring
textstring
activityChatActivity[]
todosobject[]
queuedPositioninteger | null
queuedReason"concurrency" | "load" | null
loadobject | null
startedBystring

ChatLoadNotice

Fields

NameTypeDescription
state"queued" | "started" | "paused" | "restarted" | "expired"
positionoptionalinteger
cpuPercentoptionalnumber | null
memPercentoptionalnumber | null

ChatMessage

Fields

NameTypeDescription
idstring
chatIdstring
seqinteger
role"user" | "agent" | "system"
authorobject | null
textstring
contextobject[]
attachmentsstring[]
activityChatActivity[]
questionsobject[]
actions(object | object | object)[]
feedbackSentstring[]
errorobject | null
cancelledboolean
agentobject | null
gitChatGitEvent
loadChatLoadNotice
usageChatUsageNotice
createdAtstring

ChatQueueItem

Fields

NameTypeDescription
idstring
chatIdstring
authorobject
textstring
heldboolean
createdAtstring

ChatUsageNotice

Fields

NameTypeDescription
resetsAtstring | null
heldboolean

CliLoginPoll

Fields

NameTypeDescription
status"pending" | "approved" | "denied" | "expired"
keyoptionalstring
keyIdoptionalstring

CliLoginRequest

Fields

NameTypeDescription
codestring
hostnamestring
scopes("read" | "write" | "runners" | "admin")[]
status"pending" | "approved" | "denied" | "expired"
expiresAtstring

CliLoginStart

Fields

NameTypeDescription
codestring
deviceTokenstring
verifyUrlstring
intervalinteger
expiresAtstring

CliLoginStartBody

Fields

NameTypeDescription
hostnamestring
scopesoptional("read" | "write" | "runners" | "admin")[]

Comment

Fields

NameTypeDescription
idstring
authorobject | null
bodystring
createdAtstring
editedAtstring | null
deletedboolean

CommentThread

Fields

NameTypeDescription
idstring
workspaceIdstring
containerIdstring | null
anchorobject | object
resolvedboolean
resolvedByobject | null
createdAtstring
commentsComment[]

CommitBody

Fields

NameTypeDescription
messagestring

ConflictList

Fields

NameTypeDescription
conflictsFileConflict[]

ConflictSide

Fields

NameTypeDescription
kind"person" | "agent" | "project" | "disk"
namestring
userIdoptionalstring
containeroptionalstring
containerIdoptionalstring

ConnectIntegrationBody

Fields

NameTypeDescription
apiKeystring

ConnectRepoBody

Fields

NameTypeDescription
fullNamestring

Container

Fields

NameTypeDescription
idstring
workspaceIdstring
slugstring
titlestring
instructionsstring
flow"spec" | "direct"
status"creating" | "draft" | "ready" | "done"
agentState"idle" | "running" | "awaiting_input" | "error"
errorstring | null
activityContainerActivity
planobject[]
criteriaobject
chatIdstring
blockIdstring | null
linksstring[]
chatLogBlockIdstring | null
closedAtstring | null
agentobject
reposContainerRepo[]
additionsinteger
deletionsinteger
createdByobject | null
createdAtstring
updatedAtstring

ContainerActivity

Fields

NameTypeDescription
textstring
stepsstring[]
writingSpecboolean

ContainerBlocksBody

Fields

NameTypeDescription
blockIdsstring[]
sheetIdoptionalstring | null

ContainerMergeBody

Fields

NameTypeDescription
methodoptional"merge" | "squash" | "rebase"

ContainerPrsBody

Fields

NameTypeDescription
titleoptionalstring
bodyoptionalstring

ContainerRepo

Fields

NameTypeDescription
repoIdstring
slugstring
fullNamestring
mode"worktree" | "readonly"
branchstring
basestring
additionsinteger
deletionsinteger
commitsinteger
dirtyinteger
pushedboolean
unpushedinteger
aheadBaseinteger
behindBaseinteger
upstreamBehindinteger
operation"merge" | "rebase" | "cherry_pick" | "revert" | null
conflictedstring[]
worktreeRemovedboolean
probject | null

CreateAgentAccountBody

Fields

NameTypeDescription
provider"claude" | "codex" | "cursor" | "fake"
labeloptionalstring
apiKeyoptionalstring

CreateApiKeyBody

Fields

NameTypeDescription
namestring
scopes("read" | "write" | "runners" | "admin")[]
expiresInDaysoptionalinteger
roleoptional"admin" | "member"

CreateContainerBody

Fields

NameTypeDescription
instructionsstring
flowoptional"spec" | "direct"
titleoptionalstring
blockIdsoptionalstring[]
sheetIdoptionalstring | null
reposoptionalobject[]
attachmentsoptionalstring[]
xoptionalnumber
yoptionalnumber
provideroptional"claude" | "codex" | "cursor" | "fake"
modeloptionalstring
effortoptionalstring

CreatedApiKey

Fields

NameTypeDescription
keyApiKey
secretstring

CreatedHoster

Fields

NameTypeDescription
hosterHoster
tokenstring
commandstring

CreatedInvite

Fields

NameTypeDescription
inviteInvite
urlstring

CreatedRunner

Fields

NameTypeDescription
runnerRunner
tokenstring
commandstring
installCommandstring
installCommandWindowsstring
composeobject

CreateInviteBody

Fields

NameTypeDescription
emailoptionalstring
roleoptional"admin" | "member"
maxUsesoptionalinteger

CreateOfficialHosterBody

Fields

NameTypeDescription
namestring
domainstring

CreateOrgBody

Fields

NameTypeDescription
namestring
slugoptionalstring

CreateRepoBody

Fields

NameTypeDescription
namestring
privateoptionalboolean
owneroptionalstring

CreateRunnerBody

Fields

NameTypeDescription
namestring

CreateSheetBody

Fields

NameTypeDescription
namestring

CreateStorageBucketBody

Fields

NameTypeDescription
namestring
provider"r2" | "s3" | "gcs" | "s3c"
endpointoptionalstring
regionoptionalstring
bucketstring
accessKeyIdstring
secretAccessKeystring
isDefaultoptionalboolean
acceptsNewoptionalboolean

CreateTerminalBody

Fields

NameTypeDescription
containeroptionalstring
newoptionalboolean

CreateUploadBody

Fields

NameTypeDescription
namestring
sizeinteger
contentTypeoptionalstring
containeroptionalstring
purposeoptional"uploads" | "attachments"

CreateWorkspaceBody

Fields

NameTypeDescription
namestring
runnerIdstring
useGpuoptionalboolean
storageBucketIdoptionalstring

DbQueryBody

Fields

NameTypeDescription
sqlstring

DbRows

Fields

NameTypeDescription
columnsstring[]
rows((string | null)[])[]
truncatedboolean

DirectTicket

Fields

NameTypeDescription
urlstring
ticketstring
expiresAtstring

DirectTicketBody

Fields

NameTypeDescription
purpose"terminal" | "file"
terminalIdoptionalstring
containeroptionalstring

DiscardBody

Fields

NameTypeDescription
pathsstring[]

EditCommentBody

Fields

NameTypeDescription
bodystring

EmailEvent

Fields

NameTypeDescription
idstring
tostring
kindstring
subjectstring
transportstring
status"sent" | "failed" | "logged"
errorstring | null
atstring

EmailFactorDisableBody

Fields

NameTypeDescription
passwordstring

FeedbackBody

Fields

NameTypeDescription
kind"feature" | "bug" | "other"
titlestring
bodyoptionalstring
workspaceIdoptionalstring
chatIdoptionalstring
messageIdoptionalstring
contextoptionalFeedbackContext

FeedbackContext

Fields

NameTypeDescription
pathoptionalstring
orgIdoptionalstring
workspaceIdoptionalstring
containerIdoptionalstring
appVersionoptionalstring
viewportoptionalobject

FileConflict

Fields

NameTypeDescription
idstring
workspaceIdstring
containerstring | null
pathstring
titlestring | null
kind"text" | "image" | "binary"
source"save" | "sync-back" | "transfer" | "canvas"
blockIdstring | null
oursConflictSide
theirsConflictSide
hasBaseboolean
status"open" | "resolved"
resolution"ours" | "theirs" | "both" | "merged" | "superseded" | null
resolvedBystring | null
resolvedAtstring | null
createdAtstring

FileConflictDetail

Fields

NameTypeDescription
idstring
workspaceIdstring
containerstring | null
pathstring
titlestring | null
kind"text" | "image" | "binary"
source"save" | "sync-back" | "transfer" | "canvas"
blockIdstring | null
oursConflictSide
theirsConflictSide
hasBaseboolean
status"open" | "resolved"
resolution"ours" | "theirs" | "both" | "merged" | "superseded" | null
resolvedBystring | null
resolvedAtstring | null
createdAtstring
textobject | null
proposalstring | null

FileContent

Fields

NameTypeDescription
pathstring
contentstring
binaryboolean
sizenumber
truncatedboolean

FileList

Fields

NameTypeDescription
filesstring[]
truncatedboolean

GitAbortResult

Fields

NameTypeDescription
aborted"merge" | "rebase" | "cherry_pick" | "revert"

GitConflicts

Fields

NameTypeDescription
conflictsboolean
filesstring[]
basestring

GitDiff

Fields

NameTypeDescription
diffstring
truncatedboolean

GithubDisconnectPreview

Fields

NameTypeDescription
reposGithubDisconnectRepo[]

GithubDisconnectRepo

Fields

NameTypeDescription
idstring
fullNamestring
orgSlugstring
orgNamestring
workspacesobject[]
blockedBystring | null

GithubDisconnectResult

Fields

NameTypeDescription
oktrue
removedinteger
keptstring[]

GithubIdentity

Fields

NameTypeDescription
connectedboolean
loginstring | null
namestring | null
emailstring | null
kind"app" | "pat" | null
usableboolean

GithubInstallation

Fields

NameTypeDescription
idstring
installationIdinteger
accountLoginstring
accountTypestring
suspendedboolean

GithubPeek

object | object | object | object | object

GithubSigninBody

Fields

NameTypeDescription
nextoptionalstring

GithubSignupBody

Fields

NameTypeDescription
ticketstring
emailstring
passwordstring
namestring

GithubSignupPending

Fields

NameTypeDescription
loginstring
namestring | null
emailstring | null

GitPullResult

Fields

NameTypeDescription
updatedboolean
headstring | null

GitStatus

Fields

NameTypeDescription
branchstring | null
headstring | null
dirtyinteger
aheadinteger
behindinteger
upstreamstring | null
additionsinteger
deletionsinteger
aheadBaseinteger
behindBaseinteger
operation"merge" | "rebase" | "cherry_pick" | "revert" | null
conflictedstring[]
basestring | null

GitUpdateResult

Fields

NameTypeDescription
result"merged" | "up_to_date" | "conflict"
headstring | null
filesstring[]
basestring

GrepResult

Fields

NameTypeDescription
matchesobject[]
truncatedboolean

Health

Fields

NameTypeDescription
okboolean
versionstring
timestring

History

Fields

NameTypeDescription
headstring | null
dirtystring[]
commitsHistoryCommit[]

HistoryCommit

Fields

NameTypeDescription
shastring
shortstring
messagestring
authorstring
datestring
isHeadboolean

HistoryResult

Fields

NameTypeDescription
shastring | null

HostedTicket

Fields

NameTypeDescription
redirectstring
ticketstring
expiresAtstring

HostedTicketBody

Fields

NameTypeDescription
urlstring

Hoster

Fields

NameTypeDescription
idstring
namestring
kind"official" | "org"
onlineboolean
domainstring | null
tlsstring | null
versionstring | null
hostnamestring | null
lastSeenAtstring | null
device"pinned" | "unpinned"
createdAtstring

InstallUrl

Fields

NameTypeDescription
urlstring

Integration

Fields

NameTypeDescription
providerIntegrationProvider
connectedboolean
hintstring | null
connectedAtstring | null
unreadableboolean

IntegrationList

Fields

NameTypeDescription
integrationsIntegration[]

IntegrationProvider

"mistral"

Invite

Fields

NameTypeDescription
idstring
emailstring | null
role"owner" | "admin" | "member"
workspaceIdstring | null
workspaceRole"owner" | "editor" | "viewer" | null
maxUsesinteger | null
usesinteger
expiresAtstring
createdAtstring
invitedBystring

InvitePreview

Fields

NameTypeDescription
orgNamestring
orgSlugstring
role"owner" | "admin" | "member"
emailstring | null
invitedBystring
workspaceNamestring | null

KillProcessBody

Fields

NameTypeDescription
containeroptionalstring
pidinteger

LinkPreview

Fields

NameTypeDescription
urlstring
titlestring | null
descriptionstring | null
imagestring | null
sitestring | null
frameableoptionalboolean

LinkPreviewBody

Fields

NameTypeDescription
urlstring

Me

Fields

NameTypeDescription
userUser
orgsOrgSummary[]

Member

Fields

NameTypeDescription
userIdstring
namestring
emailstring
role"owner" | "admin" | "member"
joinedAtstring

MergePrBody

Fields

NameTypeDescription
methodoptional"merge" | "squash" | "rebase"

MountRepoBody

Fields

NameTypeDescription
repoIdstring

Ok

Fields

NameTypeDescription
oktrue

OpenPrBody

Fields

NameTypeDescription
titlestring
bodyoptionalstring

Org

Fields

NameTypeDescription
idstring
slugstring
namestring
planstring
retentionDaysinteger
defaultAgentstring | null
defaultModelstring | null
defaultEffortstring | null
allowedEmailDomainsstring[]
role"owner" | "admin" | "member"
memberCountinteger
createdAtstring

OrgGithub

Fields

NameTypeDescription
configuredboolean
appSlugstring | null
installationsGithubInstallation[]
meGithubIdentity

OrgStorage

Fields

NameTypeDescription
kind"managed" | "r2" | "s3" | "gcs"
endpointstring | null
regionstring | null
bucketstring | null
accessKeyIdstring | null
hasSecretboolean
usableboolean

OrgSummary

Fields

NameTypeDescription
idstring
slugstring
namestring
role"owner" | "admin" | "member"

OrgUsage

Fields

NameTypeDescription
measuredAtstring
totalsobject
workspacesobject[]

Passkey

Fields

NameTypeDescription
idstring
namestring
createdAtstring
lastUsedAtstring | null

PasskeyLoginBody

Fields

NameTypeDescription
ticketstring
challengeIdoptionalstring
responseobject

PasskeyLoginOptionsBody

Fields

NameTypeDescription
challengeIdoptionalstring

PasskeyRegisterBody

Fields

NameTypeDescription
namestring
responseobject

ProcessList

Fields

NameTypeDescription
supportedboolean
processesobject[]

ProjectApps

Fields

NameTypeDescription
appsResolvedApp[]
hiddenobject[]
hosterobject | null
blockedstring | null

PullRequest

Fields

NameTypeDescription
numberinteger
urlstring
titlestring
state"open" | "closed" | "merged"
draftboolean

PullRequestState

Fields

NameTypeDescription
prPullRequest
pushedboolean
mergeable"mergeable" | "conflicting" | "unknown" | null

PutAppConfigBody

Fields

NameTypeDescription
specobject

PutAppEnvBody

Fields

NameTypeDescription
entriesobject[]

PutWorkspaceAppsSettingsBody

Fields

NameTypeDescription
hosterIdstring | null

RecoveryCodes

Fields

NameTypeDescription
recoveryCodesstring[]

RemovePathsBody

Fields

NameTypeDescription
pathsstring[]

ReplyBody

Fields

NameTypeDescription
bodystring

Repo

Fields

NameTypeDescription
idstring
slugstring
fullNamestring
descriptionstring | null
privateboolean
defaultBranchstring
createdAtstring

RepoBranches

Fields

NameTypeDescription
branchesstring[]
currentstring

ResolveConflictBody

object | object

ResolveConflictResult

Fields

NameTypeDescription
conflictFileConflict
keptAsstring | null
shastring | null

ResolvedApp

Fields

NameTypeDescription
repostring
repoIdstring
namestring
sourceAppConfigLayer
specobject
overridesAppConfigLayer & string | null
missingstring[]
noWorktreeboolean
instanceAppInstance

RetryFailedBody

Fields

NameTypeDescription
workspaceIdoptionalstring

RetryFailedResult

Fields

NameTypeDescription
chatsinteger
projectsinteger

RotateApiKeyBody

Fields

NameTypeDescription
graceHoursoptionalinteger

RotatedRunnerToken

Fields

NameTypeDescription
runnerRunner
tokenstring
commandstring
installCommandstring
installCommandWindowsstring
composeobject
deliveredboolean
fromEnvboolean

Runner

Fields

NameTypeDescription
idstring
namestring
kind"official" | "official-pro" | "org" | "personal"
onlineboolean
capabilitiesobject | null
versionstring | null
lastSeenAtstring | null
workspaceCountinteger
createdAtstring
deviceRunnerDevice
directRunnerDirect
ownerobject | null
mineboolean
othersCanEditboolean
agentConcurrencyinteger | null
loadRunnerLoadSettings

RunnerDevice

Fields

NameTypeDescription
state"pinned" | "unpinned" | "pending"
hostnamestring | null
osstring | null
pinnedAtstring | null
changeRunnerDeviceChange

RunnerDeviceChange

Fields

NameTypeDescription
idstring
hostnamestring
osstring
archstring
ipstring | null
firstSeenAtstring
lastSeenAtstring
waitingboolean

RunnerDirect

Fields

NameTypeDescription
urlstring
status"unverified" | "ok" | "unreachable"
checkedAtstring | null
errorstring | null

RunnerLoadPatch

Fields

NameTypeDescription
cpuThresholdoptionalinteger
memoryThresholdoptionalinteger
hysteresisoptionalinteger
maxQueueWaitMinutesoptionalinteger | null
autoPauseIdleBoxesoptionalboolean
busyIdleMinutesoptionalinteger

RunnerLoadSettings

Fields

NameTypeDescription
cpuThresholdinteger
memoryThresholdinteger
hysteresisinteger
maxQueueWaitMinutesinteger | null
autoPauseIdleBoxesboolean
busyIdleMinutesinteger

RunnerQueue

Fields

NameTypeDescription
hostobject | null
entriesRunnerQueueEntry[]

RunnerQueueEntry

Fields

NameTypeDescription
chatIdstring | null
workspaceobject
containerobject | null
ownerobject | null
state"running" | "queued" | "held" | "failed"
reason"concurrency" | "load" | "usage" | null
positioninteger | null
mode"chat" | "spec-draft" | "implement" | null
errorstring | null
sincestring | null

RunnerReleases

Fields

NameTypeDescription
latestobject | null
installScriptobject
composeFilestring

RunnerUpdateStarted

Fields

NameTypeDescription
fromstring
tostring
restart"service" | "container" | "self"

SaveHistoryBody

Fields

NameTypeDescription
messageoptionalstring
containeroptionalstring

Screenshot

Fields

NameTypeDescription
pathstring
widthinteger
heightinteger
warningsstring[]
blockIdstring | null

ScreenshotBody

Fields

NameTypeDescription
containeroptionalstring
mode"url" | "screen"
urloptionalstring
widthoptionalinteger
heightoptionalinteger
fullPageoptionalboolean
addToCanvasoptionalboolean

SendChatBody

Fields

NameTypeDescription
textstring
contextBlockIdsoptionalstring[]
sheetIdoptionalstring | null
attachmentsoptionalstring[]
provideroptional"claude" | "codex" | "cursor" | "fake"
modeloptionalstring
effortoptionalstring

SetPatBody

Fields

NameTypeDescription
tokenstring

SetRepoBranchBody

Fields

NameTypeDescription
branchstring

SetRepoReadOnlyBody

Fields

NameTypeDescription
readOnlyboolean

SetRunnerDirectBody

Fields

NameTypeDescription
urlstring

SetShareRoleBody

Fields

NameTypeDescription
role"editor" | "viewer" | null

SetSheetMemberBody

Fields

NameTypeDescription
role"editor" | "viewer"

SetWorkspaceLogoBody

object | object

Share

Fields

NameTypeDescription
orgNamestring
orgAccess"edit" | "view" | "none"
membersShareMember[]

ShareInviteBody

Fields

NameTypeDescription
emailstring
roleoptional"editor" | "viewer"

ShareInviteResult

Fields

NameTypeDescription
outcome"granted" | "invited"
urlstring | null

ShareMember

Fields

NameTypeDescription
userIdstring
namestring
emailstring
orgRole"owner" | "admin" | "member"
role"owner" | "editor" | "viewer" | null
explicitboolean

Sheet

Fields

NameTypeDescription
idstring | null
namestring
docIdstring
access"workspace" | "restricted"
role"owner" | "editor" | "viewer"
canManageboolean
createdByobject | null

SheetList

Fields

NameTypeDescription
sheetsSheet[]

SheetMember

Fields

NameTypeDescription
userIdstring
namestring
emailstring
role"editor" | "viewer"

SheetMembers

Fields

NameTypeDescription
access"workspace" | "restricted"
membersSheetMember[]

SignInBody

Fields

NameTypeDescription
emailstring
passwordstring

SignUpBody

Fields

NameTypeDescription
emailstring
passwordstring
namestring

StartAgentLoginBody

Fields

NameTypeDescription
runnerIdoptionalstring

StartContainerBody

Fields

NameTypeDescription
provideroptional"claude" | "codex" | "cursor" | "fake"
modeloptionalstring
effortoptionalstring

StartThreadBody

Fields

NameTypeDescription
containeroptionalstring
anchorobject | object
bodystring

StorageBucket

Fields

NameTypeDescription
idstring
scope"instance" | "org"
namestring
provider"r2" | "s3" | "gcs" | "s3c"
isDefaultboolean
acceptsNewboolean
source"env" | "legacy" | "added"
endpointstring | null
regionstring | null
bucketstring | null
accessKeyIdstring | null
hasSecretboolean
workspacesinteger | null

StorageTestResult

Fields

NameTypeDescription
okboolean
stepstring | null
detailstring | null

SttStatus

Fields

NameTypeDescription
availableboolean
source"account" | "org" | null

SyncBackResult

Fields

NameTypeDescription
copiedinteger
mergedinteger
conflictsFileConflict[]

Terminal

Fields

NameTypeDescription
idstring
containerstring | null
titlestring

TotpCodeBody

Fields

NameTypeDescription
codestring

TotpSetup

Fields

NameTypeDescription
secretstring
otpauthUrlstring

TranscribeBody

Fields

NameTypeDescription
audiostring
mimeTypeoptionalstring
orgoptionalstring

Transcription

Fields

NameTypeDescription
textstring

TransferBody

Fields

NameTypeDescription
fromobject
toobject
diroptionalstring
moveoptionalboolean

TransferResult

Fields

NameTypeDescription
pathstring
filesinteger
mergedoptionalinteger
conflictsoptionalFileConflict[]

TwoFactorChallenge

Fields

NameTypeDescription
twoFactorobject

TwoFactorEmailSendBody

Fields

NameTypeDescription
challengeIdstring

TwoFactorPreferredBody

Fields

NameTypeDescription
method"totp" | "passkey" | "email"

TwoFactorVerifyBody

Fields

NameTypeDescription
challengeIdstring
codestring

UnarchiveBody

Fields

NameTypeDescription
runnerIdoptionalstring

UpdateAdminUserBody

Fields

NameTypeDescription
isAdminoptionalboolean
disabledoptionalboolean

UpdateContainerBody

Fields

NameTypeDescription
titlestring

UpdateMemberBody

Fields

NameTypeDescription
role"owner" | "admin" | "member"

UpdateOrgBody

Fields

NameTypeDescription
nameoptionalstring
slugoptionalstring
retentionDaysoptional0 | 3 | 7 | 14 | 30 | 90 | 365
defaultAgentoptionalstring | null
defaultModeloptionalstring | null
defaultEffortoptionalstring | null
allowedEmailDomainsoptionalstring[]

UpdateOrgStorageBody

Fields

NameTypeDescription
kind"managed" | "r2" | "s3" | "gcs"
endpointoptionalstring
regionoptionalstring
bucketoptionalstring
accessKeyIdoptionalstring
secretAccessKeyoptionalstring

UpdatePersonalRunnerBody

Fields

NameTypeDescription
othersCanEditoptionalboolean
agentConcurrencyoptionalinteger | null
loadoptionalRunnerLoadPatch

UpdateProfileBody

Fields

NameTypeDescription
namestring

UpdateRunnerBody

Fields

NameTypeDescription
agentConcurrencyoptionalinteger | null
loadoptionalRunnerLoadPatch

UpdateSheetBody

Fields

NameTypeDescription
nameoptionalstring
positionoptionalinteger
accessoptional"workspace" | "restricted"

UpdateStorageBucketBody

Fields

NameTypeDescription
nameoptionalstring
isDefaultoptionalboolean
acceptsNewoptionalboolean
accessKeyIdoptionalstring
secretAccessKeyoptionalstring

UpdateWorkspaceBody

Fields

NameTypeDescription
nameoptionalstring
runnerIdoptionalstring
orgAccessoptional"edit" | "view" | "none"
defaultAgentoptionalstring | null
defaultModeloptionalstring | null
defaultEffortoptionalstring | null
useGpuoptionalboolean
deleteWorktreesWhenDoneoptionalboolean
autoApproveSpecoptionalboolean
autoPushoptionalboolean
autoOpenProptionalboolean
limitsoptionalWorkspaceLimits
historyRemoteoptionalstring | null

UploadResult

Fields

NameTypeDescription
pathstring
sizenumber

UploadTicket

Fields

NameTypeDescription
idstring
mode"bucket" | "relay"
urlstring
pathstring

User

Fields

NameTypeDescription
idstring
emailstring
namestring
emailVerifiedboolean
isAdminboolean
twoFactorobject
createdAtstring

UserResponse

Fields

NameTypeDescription
userUser

VerifyBody

Fields

NameTypeDescription
codestring

Workspace

Fields

NameTypeDescription
idstring
orgIdstring
slugstring
namestring
status"provisioning" | "ready" | "error" | "archived"
errorstring | null
runnerWorkspaceRunner
role"owner" | "editor" | "viewer"
orgAccess"edit" | "view" | "none"
defaultAgentstring | null
defaultModelstring | null
defaultEffortstring | null
useGpuboolean
deleteWorktreesWhenDoneboolean
autoApproveSpecboolean
autoPushboolean
autoOpenPrboolean
limitsWorkspaceLimits
historyRemotestring | null
logostring | null
logoSource"github" | "upload" | "file" | null
logoRefstring | null
blockCountinteger
repoCountinteger
containerCountinteger
agentWorkingboolean
headstring | null
lastSyncedAtstring | null
storageConnectedboolean
archivedAtstring | null
updatedAtstring
createdAtstring

WorkspaceAppsSettings

Fields

NameTypeDescription
hosterIdstring | null
hostersobject[]

WorkspaceLimits

Fields

NameTypeDescription
cpusnumber | null
memoryMbinteger | null

WorkspaceRepo

Fields

NameTypeDescription
repoRepo
status"cloning" | "ready" | "error"
state"cloning" | "fetching" | "ready" | "error" | "offline"
errorstring | null
errorAtstring | null
checkedAtstring | null
headstring | null
branchstring
readOnlyboolean

WorkspaceRunner

Fields

NameTypeDescription
idstring
namestring
kind"official" | "official-pro" | "org" | "personal"
onlineboolean
lastSeenAtstring | null
gpuboolean
personalobject | null

WorkspaceStorage

Fields

NameTypeDescription
bucketStorageBucket & object | null
migrationobject | null
choicesStorageBucket[]

WorkspaceUsage

Fields

NameTypeDescription
supportedboolean
measuredAtstring
boxesobject[]
gpuobject[]
diskobject
limitsWorkspaceLimits

WriteFileBody

Fields

NameTypeDescription
contentstring
baseoptionalstring

WriteFileResult

Fields

NameTypeDescription
oktrue
mergedboolean
conflictFileConflict