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.
Authorization
apiKey Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/v1/workspaces/string/databases/string/buttons" \ -H "Content-Type: application/json" \ -d '{ "label": "string", "actionId": "string" }'{ "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" }}{ "_tag": "ApiNotFound", "error": "not_found", "message": "That item does not exist, or this key cannot see it.", "status": 404}{ "_tag": "ApiNotFound", "error": "not_found", "message": "That item does not exist, or this key cannot see it.", "status": 404}List a database's buttons
Returns the buttons defined on the database in display order, each with the action it runs, its input bindings, the placements it appears in (record, row, or toolbar), its optional visibility formula and its confirmation prompt. Requires the `databases:read` permission.
Reorder a database's buttons
Sets the display order of the buttons. `orderedIds` must list every button on the database exactly once - a partial order is rejected rather than silently reshuffling the buttons it omits. Requires the `databases:write` permission. Send an `Idempotency-Key` header to make retries safe; a replay within the window returns the original response.