Remove a block
DELETE /v1/pages/{page_id}/blocks/{block_id} — Delete one block from the page DRAFT, preserving everything else. Removing the last remaining block is refused…
Delete one block from the page DRAFT, preserving everything else. Removing the last remaining block is refused. Requires expected_updated_at (query parameter).
Requires scope: pages:write. Plan entitlement: public_api (Creator and Pro).
API key (bf_live_… / bf_test_…) as a Bearer token.
In: header
Path Parameters
1 <= lengthBlock ID from the page's draft.blocks
1 <= lengthQuery Parameters
Concurrency stamp: the draft.updated_at you last read. A mismatch is refused with 409 stale_snapshot — re-read the page and retry.
1 <= lengthResponse Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X DELETE "https://example.com/v1/pages/string/blocks/string?expected_updated_at=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" }}Add a block POST
POST /v1/pages/{page_id}/blocks — Append ONE block to the page DRAFT, preserving every existing block byte-for-byte. Optionally wire an uploaded file (public_path…
Get analytics summary GET
GET /v1/analytics/summary — Workspace analytics for the last 7/30/90 days: views, clicks, unique visitors, CTR, top links, top referrers, and tip revenue.