Create a page
POST /v1/pages — Create a new bio page as an UNPUBLISHED draft — the same path as the dashboard's New page dialog (slug derived from the title and deduped)…
Create a new bio page as an UNPUBLISHED draft — the same path as the dashboard's New page dialog (slug derived from the title and deduped). Nothing goes live until Publish page.
Requires scope: pages:write. Plan entitlement: public_api (Creator and Pro).
Consequential operation — send an Idempotency-Key header.
API key (bf_live_… / bf_test_…) as a Bearer token.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://example.com/v1/pages" \ -H "Content-Type: application/json" \ -d '{ "title": "string" }'{ "id": "string", "title": "string", "description": "string", "slug": "string", "status": "DRAFT", "locale": "string", "public_url": "string", "theme": { "label": "string", "preset_key": "string" }, "draft": { "updated_at": "2019-08-24T14:15:22Z", "block_count": 0, "blocks": [ { "id": "string", "kind": "string", "enabled": true, "label": "string" } ] }, "published": { "is_live": true, "block_count": 0, "live_updated_at": "2019-08-24T14:15:22Z" }}List pages GET
GET /v1/pages — Every bio page in the workspace, newest-updated first. Cursor-paginated. Requires scope pages:read.
Get a page GET
GET /v1/pages/{page_id} — One page's draft AND published state: ordered draft block refs (IDs for the write endpoints), theme, route, and the draft.updated_at…