Workspaces
17 operations, generated from the OpenAPI document.
The caller's workspaces, with their role in each (null where they collaborate on some bases only)
GET /api/workspaces
Access: any signed-in user, for their own data; personal access tokens need schema.bases:read.
Responses
200Successworkspacesarray of object requiredidstring (uuid) requirednamestring requiredrole"owner" | "creator" | "editor" | "commenter" | "read_only" | null requiredcreatedAtstring (date-time) requiredupdatedAtstring (date-time) required
401Not signed in429Too many requests: a rate limit was reached (see Retry-After)
Create a workspace (the caller becomes its owner)
POST /api/workspaces
Access: any signed-in user, for their own data; signed-in session only (no personal access tokens).
Request body
namestring required
Responses
201Successidstring (uuid) requirednamestring requiredrole"owner" | "creator" | "editor" | "commenter" | "read_only" | null requiredcreatedAtstring (date-time) requiredupdatedAtstring (date-time) required
401Not signed in422The request failed validation429Too many requests: a rate limit was reached (see Retry-After)
Read a workspace
GET /api/workspaces/{workspaceId}
Access: workspace:read on the workspace (see ACTIONS for the minimum role); personal access tokens need schema.bases:read.
Parameters
| Name | In | Type | Required |
|---|---|---|---|
workspaceId | path | string | yes |
Responses
200Successidstring (uuid) requirednamestring requiredrole"owner" | "creator" | "editor" | "commenter" | "read_only" | null requiredcreatedAtstring (date-time) requiredupdatedAtstring (date-time) required
401Not signed in403Signed in, but the role is too low404No such resource, or no access to it429Too many requests: a rate limit was reached (see Retry-After)
Rename a workspace (owners)
PATCH /api/workspaces/{workspaceId}
Access: workspace:update on the workspace (see ACTIONS for the minimum role); signed-in session only (no personal access tokens).
Parameters
| Name | In | Type | Required |
|---|---|---|---|
workspaceId | path | string | yes |
Request body
namestring
Responses
200Successidstring (uuid) requirednamestring requiredrole"owner" | "creator" | "editor" | "commenter" | "read_only" | null requiredcreatedAtstring (date-time) requiredupdatedAtstring (date-time) required
401Not signed in403Signed in, but the role is too low404No such resource, or no access to it422The request failed validation429Too many requests: a rate limit was reached (see Retry-After)
Delete a workspace (owners; soft delete, everyone loses access at once)
DELETE /api/workspaces/{workspaceId}
Access: workspace:delete on the workspace (see ACTIONS for the minimum role); signed-in session only (no personal access tokens).
Parameters
| Name | In | Type | Required |
|---|---|---|---|
workspaceId | path | string | yes |
Responses
204Success, no content401Not signed in403Signed in, but the role is too low404No such resource, or no access to it429Too many requests: a rate limit was reached (see Retry-After)
The workspace's plan, its limits and what it uses: records per base, attachment bytes, this month's automation runs and API calls, billable editors (members)
GET /api/workspaces/{workspaceId}/usage
Access: workspace:read on the workspace (see ACTIONS for the minimum role); personal access tokens need schema.bases:read.
Parameters
| Name | In | Type | Required |
|---|---|---|---|
workspaceId | path | string | yes |
Responses
200SuccessworkspaceIdstring (uuid) requiredplanobject requiredidstring requirednamestring required
periodobject requiredstartstring (date) requiredendstring (date) required
basesarray of object requiredbaseIdstring (uuid) requirednamestring requiredrecordsinteger requiredlimitinteger | null required
attachmentBytesobject requiredusedinteger requiredlimitinteger | null required
automationRunsobject requiredusedinteger requiredlimitinteger | null required
apiCallsobject requiredusedinteger requiredlimitinteger | null required
editorsobject requiredusedinteger requiredlimitinteger | null required
aiCreditsobject | null requiredusedinteger requiredlimitinteger | null required
revisionHistoryDaysinteger | null requiredfeaturesobject requiredremoveBrandingboolean requiredpersonalViewsboolean requiredlockedViewsboolean requirededitPermissionsboolean requiredssoboolean requiredscimboolean requiredauditLogExportboolean requiredadminConsoleboolean requireddataResidencyboolean required
upgradeUrlstring | null required
401Not signed in403Signed in, but the role is too low404No such resource, or no access to it429Too many requests: a rate limit was reached (see Retry-After)
The workspace's subscription and the plans its owners can buy (owners; nothing to buy without billing)
GET /api/workspaces/{workspaceId}/billing
Access: workspace:manage_billing on the workspace (see ACTIONS for the minimum role); signed-in session only (no personal access tokens).
Parameters
| Name | In | Type | Required |
|---|---|---|---|
workspaceId | path | string | yes |
Responses
200SuccessworkspaceIdstring (uuid) requiredenabledboolean requiredplanobject requiredidstring requirednamestring required
subscriptionobject | null requiredplanstring requiredinterval"month" | "year" requiredstatus"incomplete" | "incomplete_expired" | "trialing" | "active" | "past_due" | "canceled" | "unpaid" requiredentitledboolean requiredcancelAtPeriodEndboolean requiredcurrentPeriodEndstring | null requiredseatsinteger | null requiredgraceEndsAtstring | null required
offersarray of object requiredplanstring requirednamestring requiredintervalsarray of "month" | "year" requiredpriceobject | null requiredamountnumber | null requiredannualnumber | null requiredcurrencystring requiredperstring required
portalboolean requirededitorsinteger requiredmanageboolean required
401Not signed in403Signed in, but the role is too low404No such resource, or no access to it429Too many requests: a rate limit was reached (see Retry-After)
Start a checkout for a plan at the billing provider (owners). The plan changes only when the provider's signed event arrives; a workspace with a subscription changes or cancels it in the portal
POST /api/workspaces/{workspaceId}/billing/checkout
Access: workspace:manage_billing on the workspace (see ACTIONS for the minimum role); signed-in session only (no personal access tokens).
Parameters
| Name | In | Type | Required |
|---|---|---|---|
workspaceId | path | string | yes |
Request body
planstring requiredinterval"month" | "year" required
Responses
200Successurlstring (uri) required
401Not signed in403Signed in, but the role is too low404No such resource, or no access to it422The request failed validation429Too many requests: a rate limit was reached (see Retry-After)
Open the billing provider's customer portal: change plan, cancel, invoices (owners of a workspace with a subscription)
POST /api/workspaces/{workspaceId}/billing/portal
Access: workspace:manage_billing on the workspace (see ACTIONS for the minimum role); signed-in session only (no personal access tokens).
Parameters
| Name | In | Type | Required |
|---|---|---|---|
workspaceId | path | string | yes |
Responses
200Successurlstring (uri) required
401Not signed in403Signed in, but the role is too low404No such resource, or no access to it429Too many requests: a rate limit was reached (see Retry-After)
Change the workspace's subscription at the billing provider (owners): another plan or interval (prorated), or cancel at the end of the period or take that back. Applied when the provider's signed event arrives
PATCH /api/workspaces/{workspaceId}/billing/subscription
Access: workspace:manage_billing on the workspace (see ACTIONS for the minimum role); signed-in session only (no personal access tokens).
Parameters
| Name | In | Type | Required |
|---|---|---|---|
workspaceId | path | string | yes |
Request body
object
Responses
204Success, no content401Not signed in403Signed in, but the role is too low404No such resource, or no access to it422The request failed validation429Too many requests: a rate limit was reached (see Retry-After)
Whether AI features are on in the workspace (members): a provider from the workspace's own key or the instance's. Off: the app hides them
GET /api/workspaces/{workspaceId}/ai
Access: workspace:read on the workspace (see ACTIONS for the minimum role); personal access tokens need schema.bases:read.
Parameters
| Name | In | Type | Required |
|---|---|---|---|
workspaceId | path | string | yes |
Responses
200SuccessworkspaceIdstring requiredavailableboolean requiredsource"workspace" | "instance" | null required
401Not signed in403Signed in, but the role is too low404No such resource, or no access to it429Too many requests: a rate limit was reached (see Retry-After)
The workspace's AI provider settings (owners): the instance's model, the workspace's base URL and model, whether a key is stored (never the key)
GET /api/workspaces/{workspaceId}/ai/settings
Access: workspace:manage_ai on the workspace (see ACTIONS for the minimum role); signed-in session only (no personal access tokens).
Parameters
| Name | In | Type | Required |
|---|---|---|---|
workspaceId | path | string | yes |
Responses
200SuccessworkspaceIdstring requiredsource"workspace" | "instance" | null requiredinstanceobject requiredavailableboolean requiredmodelstring | null requiredcreditsobject | nullusedinteger requiredlimitinteger requiredresetsOnstring (date) required
workspaceobject | null requiredbaseUrlstring requiredmodelstring requiredhasKeyboolean requiredupdatedAtstring required
allowedHostsarray of string | null required
401Not signed in403Signed in, but the role is too low404No such resource, or no access to it429Too many requests: a rate limit was reached (see Retry-After)
Bring your own key (owners): an OpenAI-compatible endpoint, model and API key for the workspace's AI features. The key is write-only and encrypted at rest; omit it to keep the stored one
PUT /api/workspaces/{workspaceId}/ai/settings
Access: workspace:manage_ai on the workspace (see ACTIONS for the minimum role); signed-in session only (no personal access tokens).
Parameters
| Name | In | Type | Required |
|---|---|---|---|
workspaceId | path | string | yes |
Request body
baseUrlstring (uri) | nullmodelstring requiredapiKeystring
Responses
200SuccessworkspaceIdstring requiredsource"workspace" | "instance" | null requiredinstanceobject requiredavailableboolean requiredmodelstring | null requiredcreditsobject | nullusedinteger requiredlimitinteger requiredresetsOnstring (date) required
workspaceobject | null requiredbaseUrlstring requiredmodelstring requiredhasKeyboolean requiredupdatedAtstring required
allowedHostsarray of string | null required
401Not signed in403Signed in, but the role is too low404No such resource, or no access to it422The request failed validation429Too many requests: a rate limit was reached (see Retry-After)
Remove the workspace's own AI key (owners): AI features fall back to the instance's provider, or turn off
DELETE /api/workspaces/{workspaceId}/ai/settings
Access: workspace:manage_ai on the workspace (see ACTIONS for the minimum role); signed-in session only (no personal access tokens).
Parameters
| Name | In | Type | Required |
|---|---|---|---|
workspaceId | path | string | yes |
Responses
200SuccessworkspaceIdstring requiredsource"workspace" | "instance" | null requiredinstanceobject requiredavailableboolean requiredmodelstring | null requiredcreditsobject | nullusedinteger requiredlimitinteger requiredresetsOnstring (date) required
workspaceobject | null requiredbaseUrlstring requiredmodelstring requiredhasKeyboolean requiredupdatedAtstring required
allowedHostsarray of string | null required
401Not signed in403Signed in, but the role is too low404No such resource, or no access to it429Too many requests: a rate limit was reached (see Retry-After)
Send one small structured request to the workspace's AI provider (owners) and report whether it answered
POST /api/workspaces/{workspaceId}/ai/settings/test
Access: workspace:manage_ai on the workspace (see ACTIONS for the minimum role); signed-in session only (no personal access tokens).
Parameters
| Name | In | Type | Required |
|---|---|---|---|
workspaceId | path | string | yes |
Responses
200Successokboolean requiredsource"workspace" | "instance" requiredmodelstring requirederrorstring | null requiredusageobject | null requiredinputTokensinteger requiredoutputTokensinteger requiredtotalTokensinteger required
latencyMsinteger required
401Not signed in403Signed in, but the role is too low404No such resource, or no access to it429Too many requests: a rate limit was reached (see Retry-After)
Describe a new base (creators): the AI assistant proposes its tables, fields, views and automations as a change plan. Nothing is created
POST /api/workspaces/{workspaceId}/assistant/plan
Access: base:create on the workspace (see ACTIONS for the minimum role); signed-in session only (no personal access tokens).
Parameters
| Name | In | Type | Required |
|---|---|---|---|
workspaceId | path | string | yes |
Request body
promptstring required
Responses
200Successplanobject requiredsummarystring requiredbaseNamestring | null requiredoperationsarray of object required
problemsarray of object requiredoperationinteger requiredfieldstring | null requiredkind"formula" | "reference" | "name" | "type" requiredmessagestring required
attemptsinteger required
401Not signed in403Signed in, but the role is too low404No such resource, or no access to it422The request failed validation429Too many requests: a rate limit was reached (see Retry-After)
Create a new base from a change plan the user confirmed (creators)
POST /api/workspaces/{workspaceId}/assistant/apply
Access: base:create on the workspace (see ACTIONS for the minimum role); signed-in session only (no personal access tokens).
Parameters
| Name | In | Type | Required |
|---|---|---|---|
workspaceId | path | string | yes |
Request body
namestring requiredplanobject requiredsummarystring requiredbaseNamestring | null requiredoperationsarray of object required
Responses
201SuccessbaseIdstring (uuid) requiredtablesinteger requiredfieldsinteger requiredviewsinteger requiredautomationsinteger requiredfirstTableIdstring (uuid) | null required
401Not signed in403Signed in, but the role is too low404No such resource, or no access to it422The request failed validation429Too many requests: a rate limit was reached (see Retry-After)