SnozeDevelopers
API referenceDatabases

Add a button to a database

Defines a button that runs a workspace action against a record, with optional argument bindings, a confirmation prompt and a `visibleWhen` formula that decides per record whether it is offered. Requires the `databases:write` permission and rejects a missing label, an action that is not usable in this workspace, or a formula that does not parse. Send an `Idempotency-Key` header to make retries safe; a replay within the window returns the original response.

POST
/v1/workspaces/{workspaceId}/databases/{databaseId}/buttons

Authorization

apiKey
headerAuthorizationBearer <snoze_sk_…>

Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.

Path Parameters

workspaceId*string
databaseId*string

Request Body

application/json
  1. body
id?|null
label*string
Length1 <= length <= 120
icon?|null
variant?|null
actionId*string
bindings?array<|||>|null
confirmation?|null
placements?array<>|null
visibleWhen?|null
order?number|null
clientMutationId?string|null

Response Body

Success

application/json
  1. response
data*
Example Request
curl -X POST 'https://api.snoze.dev/v1/workspaces/string/databases/string/buttons' \  -H 'Content-Type: application/json' \  -d '{  "label": "string",  "actionId": "string"}'
Example Response
{  "data": {    "id": "string",    "workspaceId": "string",    "databaseId": "string",    "label": "string",    "icon": "string",    "variant": "primary",    "actionId": "string",    "bindings": [      {        "inputPath": "string",        "source": "record_id"      }    ],    "confirmation": {      "title": "string",      "body": "string",      "confirmLabel": "string"    },    "placements": [      "record"    ],    "visibleWhen": "string",    "enabled": true,    "order": 0,    "createdAt": "string",    "updatedAt": "string"  }}