Workspace API

Pages

Pages endpoints of the Zanfia Workspace API, with schemas and code samples.

4 min readLast updated Jul 26, 2026

Custom hosted HTML pages on your storefront domain. Requires the pages:read / pages:write scopes. All routes require a Authorization: Bearer header — see Authentication.

List pages

GET/pages

Authorization

bearerAuth
AuthorizationBearer <token>

API key from Dashboard → Integrations → API, MCP and CLI.

In: header

Response Body

application/json

application/json

curl -X GET "https://example.com/pages"
{  "count": 0,  "pages": [    {      "id": "string",      "slug": "string",      "title": "string",      "status": "draft",      "source": "pasted",      "publishedAt": "string",      "createdAt": "string",      "updatedAt": "string"    }  ]}
{  "error": "string"}

Create a page

POST/pages

Authorization

bearerAuth
AuthorizationBearer <token>

API key from Dashboard → Integrations → API, MCP and CLI.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/pages" \  -H "Content-Type: application/json" \  -d '{    "slug": "string",    "title": "string",    "html": "string"  }'
{  "pageId": "string",  "slug": "string"}
{  "error": "string"}

Page detail

GET/pages/{pageId}

Authorization

bearerAuth
AuthorizationBearer <token>

API key from Dashboard → Integrations → API, MCP and CLI.

In: header

Path Parameters

pageId*string

Page id

Response Body

application/json

application/json

curl -X GET "https://example.com/pages/string"
{  "id": "string",  "slug": "string",  "title": "string",  "status": "draft",  "source": "pasted",  "publishedAt": "string",  "createdAt": "string",  "updatedAt": "string",  "html": "string",  "seo": {    "title": "string",    "description": "string",    "noindex": true  }}
{  "error": "string"}

Update a page

PATCH/pages/{pageId}

Authorization

bearerAuth
AuthorizationBearer <token>

API key from Dashboard → Integrations → API, MCP and CLI.

In: header

Path Parameters

pageId*string

Page id

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X PATCH "https://example.com/pages/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "pageId": "string"}
{  "error": "string"}

Delete a page

DELETE/pages/{pageId}

Authorization

bearerAuth
AuthorizationBearer <token>

API key from Dashboard → Integrations → API, MCP and CLI.

In: header

Path Parameters

pageId*string

Page id

Response Body

application/json

application/json

curl -X DELETE "https://example.com/pages/string"
{  "pageId": "string"}
{  "error": "string"}

Publish or unpublish a page

POST/pages/{pageId}/publish

Authorization

bearerAuth
AuthorizationBearer <token>

API key from Dashboard → Integrations → API, MCP and CLI.

In: header

Path Parameters

pageId*string

Page id

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/pages/string/publish" \  -H "Content-Type: application/json" \  -d '{    "publish": true  }'
{  "pageId": "string",  "status": "draft"}
{  "error": "string"}

Set or clear the storefront main page

PUT/pages/main

Authorization

bearerAuth
AuthorizationBearer <token>

API key from Dashboard → Integrations → API, MCP and CLI.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Set (or clear) the storefront's main page. pageId = a Published page's id to render at the storefront root; null reverts to the product storefront.

Response Body

application/json

application/json

curl -X PUT "https://example.com/pages/main" \  -H "Content-Type: application/json" \  -d '{    "pageId": "string"  }'
{  "mainPageId": "string"}
{  "error": "string"}

Was this article helpful?

Related articles

Spotted something off? Tell us at support@zanfia.com.