SnozeDevelopers
API referencePage publish

Publish a surface to the public page site

Turns on public access for a page or note, assigning a slug derived from the request or the title and made unique against every other published surface, database, and view, and stores the SEO, cover, icon, and theme settings alongside it. Requires full access to the surface (`surfaces:write`) and a signed-in session. Surfaces of any other kind are rejected as not publishable. Naturally idempotent: republishing overwrites the settings and keeps the original publish timestamp.

PUT
/v1/workspaces/{workspaceId}/surfaces/{surfaceId}/publish

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
surfaceId*string

Request Body

application/json
  1. body
slug?string|null
seoIndexed?boolean|null
coverImageUrl?string|null
showIcon?boolean|null
theme?|null
updateMode?|null
showEditorPresence?boolean|null

Response Body

Success

application/json
  1. response
data*
Example Request
curl -X PUT 'https://api.snoze.dev/v1/workspaces/string/surfaces/string/publish' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "data": {    "enabled": true,    "slug": "string",    "seoIndexed": true,    "coverImageUrl": "string",    "showIcon": true,    "theme": {      "background": {        "type": "none",        "color": "string",        "gradient": "string",        "gradientFrom": "string",        "gradientTo": "string",        "gradientAngle": 0,        "imageUrl": "string",        "blur": 0      },      "accent": "string",      "radius": 0,      "pageWidth": "default",      "colorScheme": "auto"    },    "publishedAt": "string",    "updateMode": "snapshot",    "showEditorPresence": true  }}