# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Admin API V1 Nodes API version: 1.0.0 extends: openapi/optimizely-nodes-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 10 - target: $.paths['/api/v1/admin/Nodes'].get update: x-apievangelist-phrasing: intent: List content tree nodes effect: read questions: - How do I list the content tree nodes for my commerce site? - Can I filter nodes to the children of one parent node? - How many nodes does the content tree hold? instructions: - text: List all content nodes. - text: List nodes matching {filter}, ordered by {orderby}. slots: filter: query.$filter orderby: query.$orderby - text: Return a count of nodes with the first {top}. slots: top: query.$top method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Nodes'].post update: x-apievangelist-phrasing: intent: Create a content node effect: write questions: - How do I add a new node to a website's content tree? - Can I set the parent and sort order when creating a node? instructions: - text: Create a {type} node under parent {parentId} on website {websiteId}. slots: type: requestBody.type parentId: requestBody.parentId websiteId: requestBody.websiteId - text: Add a node of type {type} at sort position {sortOrder}. slots: type: requestBody.type sortOrder: requestBody.sortOrder method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Nodes({id})'].get update: x-apievangelist-phrasing: intent: Get one content node effect: read questions: - Is there a call to read a single content node by ID? - What parent and website does a specific node belong to? instructions: - text: Get node {id}. slots: id: path.id - text: Show the parent and website of node {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Nodes({id})'].put update: x-apievangelist-phrasing: intent: Replace a content node effect: write questions: - What's the call to overwrite a content node record in full? - Which node fields should I resend when replacing it? instructions: - text: Replace node {id} with type {type} under parent {parentId}. slots: id: path.id type: requestBody.type parentId: requestBody.parentId - text: Overwrite the full node {id} for website {websiteId}. slots: id: path.id websiteId: requestBody.websiteId method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Nodes({id})'].delete update: x-apievangelist-phrasing: intent: Delete a content node effect: destructive questions: - How do I remove a node from the content tree? - Can I delete a node only if it hasn't changed since I read it? instructions: - text: Delete node {id}. slots: id: path.id - text: Delete node {id} with ETag {etag}. slots: id: path.id etag: header.If-Match method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Nodes({id})'].patch update: x-apievangelist-phrasing: intent: Move or reorder a content node effect: write questions: - How do I move a node under a different parent? - Can I change just the sort order of a node in the tree? instructions: - text: Move node {id} under parent {parentId}. slots: id: path.id parentId: requestBody.parentId - text: Set the sort order of node {id} to {sortOrder}. slots: id: path.id sortOrder: requestBody.sortOrder method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/Nodes/Default.Default()'].get update: x-apievangelist-phrasing: intent: Get the default node template effect: read questions: - What does a default content node record look like? - Where do I get starting values for a new node? instructions: - text: Get the default node template. - text: Show default values for a new content node. method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/nodes/delete'].delete update: x-apievangelist-phrasing: intent: Bulk delete content nodes effect: destructive questions: - Can I delete several content nodes at once? - Can I prune a batch of nodes by passing their IDs? instructions: - text: Bulk delete nodes {ids}. slots: ids: query.ids - text: 'Remove all of these content nodes: {ids}.' slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/nodes({key})/customproperties({custompropertyKey})'].get update: x-apievangelist-phrasing: intent: Get a custom property on a node effect: read questions: - Where would I read a custom property stored on a content node? - Can I fetch an extra attribute attached to a node? instructions: - text: Get custom property {prop} on node {key}. slots: key: path.key prop: path.custompropertyKey - text: Show custom field {prop} for content node {key}. slots: key: path.key prop: path.custompropertyKey method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/nodes({key})/pages({pageKey})'].get update: x-apievangelist-phrasing: intent: Get a page under a content node effect: read questions: - Can I read a page that sits under a content node? - Which page versions belong to a given node? instructions: - text: Get page {page} under node {key}. slots: key: path.key page: path.pageKey - text: Show page {page} attached to content node {key}. slots: key: path.key page: path.pageKey method: generated generated: '2026-09-26'