Replace the caller's mobile home layout
Overwrites the caller's saved mobile home layout for this workspace, and clears a stored desktop layout that was only ever a legacy mobile stand-in. Requires `workspace:read`. Send an `Idempotency-Key` header to make retries safe; a replay within the window returns the original response.
apiKeyAuthorizationBearer <snoze_sk_…>Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.
workspaceId*stringapplication/json- body
visualVersion?|nullsections*array<>Success
application/json- response
data*curl -X PUT 'https://api.snoze.dev/v1/workspaces/string/preferences/mobile-home-layout' \ -H 'Content-Type: application/json' \ -d '{ "sections": [ { "id": "string", "kind": "ask" } ]}'{ "data": { "mobileHomeLayout": { "visualVersion": 1, "sections": [ { "id": "string", "kind": "ask", "config": {} } ] } }}Replace the caller's desktop home layout
Overwrites the caller's saved home dashboard widget layout for this workspace. Requires `workspace:read`. This is a full replacement rather than a patch, so sending the same layout twice is a no-op.
Read the caller's native widget snapshot
Returns everything the caller's home-screen widgets render in one payload: shortcut counts, the Today digest (Needs approval, Automation failures, Waiting on you, Recent activity — at most five rows each), the newest unread inbox rows, the configured database metric with its chart points, the pinned page, and every configured chart evaluated by the dashboard engine and reduced to render-ready rows. Computed from the caller's stored widget settings, so a widget extension needs no other call. Requires `workspace:read`; sections the caller cannot see (automation failures without `automations:read`) are omitted rather than refused, a metric whose database was deleted degrades to null, and a chart whose dashboard or database is gone or unreadable stays in the list with `empty` set, so the other widgets still refresh.