profound-logoProfound CMS
⌘K
Admin
Theme
DocsTutorialBlogPhilosophy
DocsTutorialBlogPhilosophy

Hybrid

Collection of Pages with ComponentsTypes of ComponentsSetup server sent events (SSE) content refetchInstall Profound CMS as a proxyCEL Scripting in Template BuilderProject ScaffoldingMedia Library

Headless

Quick startSplit Screen JSON Component Builder with LLMComponent Zod Pull

REST API

REST API OverviewgetConnect your websitegetGET /routesgetGET /routegetGET /blocksgetGET /blocks/with-cel-cachegetGET /blocks/generatedgetGET /componentsgetGET /components/{name}getGET /dataset/{schema_name}getGET /content-changes (SSE)patchPATCH /dataset/{schema_name}postPOST /translationpatchPATCH /translationsgetGET /usagepostPOST /csvpatchPATCH /csv
All Systems Operational
Powered Byprofound-logo
Theme

PATCH /dataset/{schema_name}

Upsert a document variant of a custom component, keyed on document id.

Upsert a variant (a documents row) of a custom component, keyed on document id. Provide id to update an existing variant; omit it to insert a new one. Also available at /schemas/{schema_name}. The content is validated against the component's schema.

Auth: API key β€” always required, and the key must carry the content_write permission.

Path parameters

ParamTypeRequiredNotes
schema_namestringyesThe custom component name.

Query parameters

ParamTypeRequiredNotes
websiteIduuidnoTarget website; falls back to Host header / config.
api_keystringnoAlternative to the x-api-key header.

Request body

{
  "id": "<uuid>",
  "title": "My variant",
  "content": { "title": "Hello", "body": "..." }
}
FieldTypeRequiredNotes
iduuidnoUpdate the matching variant when present; insert when absent or not found.
titlestringnoDisplay title. Defaults to "Untitled" on insert; left unchanged on update when omitted.
contentobjectyesField values, validated against the component's schema. Must be a JSON object.

Response

{
  "id": "...",
  "schema_name": "post",
  "title": "My variant",
  "status": "draft",
  "version": 2,
  "created": true
}

created is true on insert (HTTP 201) and false on update (HTTP 200).

Example

curl -X PATCH '{CMS_API_URL}/dataset/post?websiteId=<uuid>' \
  -H 'x-api-key: <key>' \
  -H 'Content-Type: application/json' \
  -d '{"content":{"title":"Hello"}}'

Errors

  • 400 β€” invalid websiteId, non-object content, unknown or archived component, or validation failure
  • 401 β€” missing or invalid API key
  • 403 β€” key lacks the content_write permission
  • 404 β€” id supplied but no matching variant
Continue Reading
Previousβ€ΉGET /content-changes (SSE)NextPOST /translationβ€Ί