Get the resolved embed data for a surface
Resolves the databases, views, and pages embedded in the surface's blocks and canvas elements and returns their live data, so a guest who can read the surface sees its cards without needing direct access to the embedded content. Requires `surfaces:read` on the surface and a signed-in session.
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
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/v1/workspaces/string/surfaces/string/embed-data"{ "data": { "databaseData": [ { "databaseId": "string", "detail": { "id": "string", "workspaceId": "string", "itemId": "string", "parentItemId": "string", "key": "string", "label": "string", "description": "string", "icon": "string", "order": 0, "settings": {}, "recordLayout": { "version": 2, "pageWidth": "default", "propertyColumns": 1, "propertyDensity": "comfortable", "propertyOrder": [ "string" ], "hiddenFieldKeys": [ "string" ], "sections": [ { "id": "string", "label": "string", "fieldKeys": [ "string" ] } ], "contentPosition": "before_properties", "showComments": true, "showActivity": true, "pinnedFieldKeys": [ "string" ], "autoAddNewFields": true, "collapsedSectionIds": [ "string" ], "relationViews": { "property1": { "defaultViewId": "string", "position": "properties", "collapsed": true }, "property2": { "defaultViewId": "string", "position": "properties", "collapsed": true } }, "showReferences": true }, "archived": true, "fields": [ { "id": "string", "workspaceId": "string", "databaseId": "string", "key": "string", "label": "string", "kind": "text", "required": true, "defaultValue": "string", "options": [ { "id": "string", "key": "string", "name": "string", "color": "string", "order": 0 } ], "settings": {}, "order": 0, "createdAt": "string", "updatedAt": "string" } ], "views": [ { "id": "string", "workspaceId": "string", "databaseId": "string", "key": "string", "label": "string", "kind": "table", "placement": "database", "manifest": {}, "relationFieldId": "string", "ownerUserId": "string", "scope": "shared", "locked": true, "definitionVersion": 0, "createdAt": "string", "updatedAt": "string" } ], "createdAt": "string", "updatedAt": "string" }, "records": [ { "id": "1d8a44e0-7c93-4f21-b60a-3e8d2f5a9c14", "workspaceId": "4b81aa0c-6d2f-4b19-9f0e-1a7c3d5e8b02", "databaseId": "9f2c1e7a-3b58-4d0c-8e27-6a1f9d4b3c85", "contentSurfaceId": "string", "title": "Ship the desktop app", "data": { "status": "in_progress", "due": "2026-08-01" }, "relations": {}, "computed": {}, "system": {}, "related": {}, "archived": false, "externalId": "string", "createdByUserId": "string", "updatedByUserId": "string", "createdAt": "2026-07-10T08:00:00.000Z", "updatedAt": "2026-07-14T11:26:02.000Z" } ] } ], "events": {}, "linkedItems": [ { "id": "0b6f2e6a-9f2c-4e7a-8d31-2c1e7a9f2c4e", "workspaceId": "4b81aa0c-6d2f-4b19-9f0e-1a7c3d5e8b02", "parentItemId": "d3a7f1b8-5c04-4e62-9a11-7b2e6c0d4f39", "kind": "database", "targetId": "9f2c1e7a-3b58-4d0c-8e27-6a1f9d4b3c85", "title": "Launch tasks", "icon": "rocket", "color": "#2f6f4f", "order": 0, "archived": false, "accessMode": "open", "metadata": {}, "createdAt": "2026-07-01T09:12:44.000Z", "updatedAt": "2026-07-14T16:03:10.000Z" } ], "linkedSurfaceBlocks": [ { "surfaceId": "string", "state": {} } ], "surfaceDetails": [ { "surfaceId": "string", "detail": {} } ], "aggregates": [ { "databaseId": "string", "fn": "string", "fieldKey": "string", "viewId": "string", "value": 0, "count": 0 } ], "members": [ { "id": "string", "workspaceId": "string", "userId": "string", "effectiveRoleId": "string", "clerkUserId": "string", "role": "owner", "primaryEmail": "string", "displayName": "string", "avatarUrl": "string", "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}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.
Get a published page by slug
Returns the published surface behind the slug -- its blocks or canvas elements, site theme, and the live data for any embedded databases and views -- for rendering the public page site. No authentication; the slug is the only credential. A slug that does not exist, or one whose page has been unpublished, returns the same opaque not-found.