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
AuthorizationBearer <token>

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

In: header

Path Parameters

workspaceId*string
surfaceId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/workspaces/string/surfaces/string/publish" \  -H "Content-Type: application/json" \  -d '{}'
{  "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"  }}