Skip to content

Update a node

PUT
/content/management/v1/experience/nodes/{id}
curl --request PUT \
--url https://api.ebitex.io/content/management/v1/experience/nodes/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "slug": "example", "excludeFromSitemap": true, "rowVersion": 1 }'

Replaces a node’s name and slug. Both are required and replace what is stored; a site root takes a name only and must not send a slug. A slug value is lowercase kebab-case, 3 to 64 characters, in the default and in every locale override, and must be unique among the node’s siblings in every locale.

excludeFromSitemap keeps the page out of sitemaps; omit it to leave the current setting alone. Send rowVersion from your last read to refuse the write if someone else changed the node since.

This route never touches the payload; use PUT /experience/nodes/{id}/payload for that. A changed slug moves the page’s address when it is republished, and the old published path then redirects to the new one. Nothing here reaches delivery until the node is published. The key acts as its role, so branch access rules apply: a node the role cannot view answers 404, and one it can view but not change answers 403 access_denied. A workflow can also lock the node against edits.

Key: a management key with content.management.authoring.

id
required
string format: uuid
Media typeapplication/json
object
name
required
string
slug
required
excludeFromSitemap
null | boolean
rowVersion
null | integer | string format: uint32
/^-?(?:0|[1-9]\d*)$/
Examplegenerated
{
"name": "example",
"slug": "example",
"excludeFromSitemap": true,
"rowVersion": 1
}

OK

validation_failed: a missing name, a missing or malformed slug, or a slug on a site root; errors names each field. reserved_path: the resulting path is reserved and cannot be used by a page.

missing_api_key or invalid_api_key: no key was sent, or it is unknown, revoked or expired.

payment_required: the organization’s subscription needs attention.

access_denied: the key’s role may not edit this node.

scope_denied: the key lacks this route’s scope. tier_required: the Content Management API needs the Pro plan or above. ip_denied: the caller’s address is outside the key’s allowed ranges. app_not_available: Content is not enabled for the organization.

No node has this id, or the key’s role cannot see it.

duplicate_site_name: another site already has this name. duplicate_slug: a sibling already resolves to this slug; localeSlot and conflictingNodeId say where. concurrency_conflict: the node changed since rowVersion; re-read it (currentRowVersion is in the body) and retry.

workflow_state_not_editable: the node’s workflow state does not allow edits; state and definition name it.

Rate limit or quota exceeded; Retry-After says how long to wait. too_many_failed_authentications: too many bad keys from this address.