Update a node
const url = 'https://api.ebitex.io/content/management/v1/experience/nodes/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';const options = { method: 'PUT', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"name":"example","slug":"example","excludeFromSitemap":true,"rowVersion":1}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”object
Examplegenerated
{ "name": "example", "slug": "example", "excludeFromSitemap": true, "rowVersion": 1}Responses
Section titled “ Responses ”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.