SnozeDevelopers
API referenceOs widgets

Replace the caller's native widget configuration

Overwrites the caller's widget configuration for this workspace and returns the normalized result (unknown shortcuts dropped, an incomplete metric cleared, charts deduplicated by id and capped at six). This is a full replacement rather than a patch, so sending the same configuration twice is a no-op. Storing it server-side is what lets the worker send a silent refresh push without the app running. Requires `workspace:read`; send an `Idempotency-Key` header to make retries safe.

PUT
/v1/workspaces/{workspaceId}/widgets/settings

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

Request Body

application/json
  1. body
shortcuts*array<>
page?|null|null
metric?|null|null
charts?array<|>|null

Response Body

Success

application/json
  1. response
data*
Example Request
curl -X PUT 'https://api.snoze.dev/v1/workspaces/string/widgets/settings' \  -H 'Content-Type: application/json' \  -d '{  "shortcuts": [    "home"  ]}'
Example Response
{  "data": {    "shortcuts": [      "home"    ],    "page": {      "itemId": "string",      "title": "string",      "kind": "string"    },    "metric": {      "databaseId": "string",      "databaseLabel": "string",      "aggregate": "count",      "fieldKey": "string",      "fieldLabel": "string",      "label": "string",      "display": "number",      "groupByFieldKey": "string",      "groupByFieldLabel": "string",      "chartColor": "string"    },    "charts": [      {        "id": "string",        "kind": "dashboard",        "itemId": "string",        "blockId": "string",        "title": "string",        "dashboardTitle": "string"      }    ]  }}