Optimizely · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Optimizely Content API

28 actions 28 updates phrasing extends openapi/optimizely-content-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Optimizely's API. It is a proposal applied on top of the contract, not a document Optimizely publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 28 · first 16 shown; the file carries all of them

$.info
$.paths['/content'].get
$.paths['/content'].post
$.paths['/content/{contentId}'].get
$.paths['/api/v2/content/PageByType'].get
$.paths['/api/v2/content/PagesByParent'].get
$.paths['/api/v2/content/PageByUrl'].get
$.paths['/api/v2/content/PageUrlByType'].get
$.paths['/api/v2/content/PageLinks'].get
$.paths['/api/v2/content/GetNodeIdForPageName'].get
$.paths['/api/v2/content/Theme'].get
$.paths['/content/{contentId}/children'].get
$.paths['/content/{contentId}/ancestors'].get
$.paths['/'].post
$.paths['/{contentGuid}'].get
$.paths['/{contentGuid}'].put

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Optimizely Content API
  version: 1.0.0
extends: openapi/optimizely-content-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: 27
- target: $.paths['/content'].get
  update:
    x-apievangelist-phrasing:
      intent: List items in the CMP content repository
      effect: read
      questions:
      - What content items are sitting in my Optimizely CMP content repository?
      - Can I page through the CMP content library with a limit and offset?
      instructions:
      - text: List everything in the CMP content repository.
      - text: Show {limit} CMP content items starting after the first {offset}.
        slots:
          limit: query.limit
          offset: query.offset
      method: generated
      generated: '2026-09-26'
- target: $.paths['/content'].post
  update:
    x-apievangelist-phrasing:
      intent: Import a content item from a URL
      effect: write
      questions:
      - How do I ingest an article into the content library just by giving its URL?
      - Does importing content from a link happen right away or is it queued?
      instructions:
      - text: Import the page at {original_url} as a new content item.
        slots:
          original_url: requestBody.original_url
      - text: Queue {original_url} for content ingestion.
        slots:
          original_url: requestBody.original_url
      method: generated
      generated: '2026-09-26'
- target: $.paths['/content/{contentId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a CMP content item's details
      effect: read
      questions:
      - How can I look up the details of a single item in the CMP content repository?
      - What does the CMP return for one content item when I know its content ID?
      instructions:
      - text: Get CMP content item {contentId}.
        slots:
          contentId: path.contentId
      - text: Show me the repository details for CMP content {contentId}.
        slots:
          contentId: path.contentId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v2/content/PageByType'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a storefront page by its page type
      effect: read
      questions:
      - How do I fetch the storefront page definition for a given page type like the home page?
      - Can I load a Configured Commerce page just by knowing its type name?
      instructions:
      - text: Load the storefront page of type {type}.
        slots:
          type: query.type
      - text: Get the page content for the {type} page type.
        slots:
          type: query.type
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v2/content/PagesByParent'].get
  update:
    x-apievangelist-phrasing:
      intent: List storefront pages under a parent node
      effect: read
      questions:
      - Which storefront pages sit underneath a given parent node in the page tree?
      - Can I get all child pages of a node in the commerce site structure?
      instructions:
      - text: List the storefront pages under parent node {parentNodeId}.
        slots:
          parentNodeId: query.parentNodeId
      - text: Show all pages whose parent is node {parentNodeId}.
        slots:
          parentNodeId: query.parentNodeId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v2/content/PageByUrl'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a storefront page by its URL
      effect: read
      questions:
      - How do I resolve a storefront URL path to the page that renders it?
      - Can I fetch a commerce page's content when all I have is its URL?
      instructions:
      - text: Get the storefront page served at {url}.
        slots:
          url: query.url
      - text: Resolve URL {url} to its page content.
        slots:
          url: query.url
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v2/content/PageUrlByType'].get
  update:
    x-apievangelist-phrasing:
      intent: Look up the URL of a storefront page type
      effect: read
      questions:
      - What URL does the storefront use for a particular page type, say the cart page?
      - Can I find out where a page type lives so I can link to it?
      instructions:
      - text: Give me the URL of the {type} page.
        slots:
          type: query.type
      - text: Find the storefront link for page type {type}.
        slots:
          type: query.type
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v2/content/PageLinks'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the storefront's page links for navigation
      effect: read
      questions:
      - How do I pull the set of page links that drive my storefront navigation?
      - Is there a single call that returns the links to all the site's pages?
      instructions:
      - text: Fetch the storefront page links.
      - text: Get the list of page links I need to build the site menu.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v2/content/GetNodeIdForPageName'].get
  update:
    x-apievangelist-phrasing:
      intent: Find the node ID for a storefront page name
      effect: read
      questions:
      - How do I find the content node ID behind a page when I only know its name?
      - Which node ID corresponds to a named storefront page?
      instructions:
      - text: Look up the node ID for the page named {pageName}.
        slots:
          pageName: query.pageName
      - text: Get the content node for page {pageName}.
        slots:
          pageName: query.pageName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v2/content/Theme'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the storefront's current theme
      effect: read
      questions:
      - Which theme is my commerce storefront currently using?
      - Can I read the active site theme so my headless front end matches it?
      instructions:
      - text: Get the active storefront theme.
      - text: Tell me which theme the site is set to.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/content/{contentId}/children'].get
  update:
    x-apievangelist-phrasing:
      intent: List child items of a content item
      effect: read
      questions:
      - How do I walk down a CMS page tree to see the items beneath a page?
      - Can I skip and limit results when listing a content item's children in a given language?
      instructions:
      - text: List the child items of content {contentId}.
        slots:
          contentId: path.contentId
      - text: Show {top} children of content {contentId} in {language}, skipping the first {skip}.
        slots:
          top: query.top
          contentId: path.contentId
          language: query.language
          skip: query.skip
      method: generated
      generated: '2026-09-26'
- target: $.paths['/content/{contentId}/ancestors'].get
  update:
    x-apievangelist-phrasing:
      intent: List the ancestors of a content item
      effect: read
      questions:
      - How can I get the chain of parent items from the root down to a content item?
      - What calls give me a breadcrumb trail for a CMS page by its content ID?
      instructions:
      - text: Get the ancestor path for content {contentId}.
        slots:
          contentId: path.contentId
      - text: Build a breadcrumb for content {contentId} in {language}.
        slots:
          contentId: path.contentId
          language: query.language
      method: generated
      generated: '2026-09-26'
- target: $.paths['/'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a new content item in the CMS
      effect: write
      questions:
      - How do I create a new page or block of a given content type under a parent in Optimizely CMS?
      - Can I create a language branch of existing content instead of a brand-new item?
      - Is it possible to upload a media file when creating content?
      instructions:
      - text: Create a {contentType} named {name} under parent {parentLink}.
        slots:
          contentType: requestBody.contentType
          name: requestBody.name
          parentLink: requestBody.parentLink
      - text: Create content {name} of type {contentType} under {parentLink}, scheduled to publish at {startPublish}.
        slots:
          name: requestBody.name
          contentType: requestBody.contentType
          parentLink: requestBody.parentLink
          startPublish: requestBody.startPublish
      method: generated
      generated: '2026-09-26'
- target: $.paths['/{contentGuid}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a content item by its GUID
      effect: read
      questions:
      - How do I fetch the primary draft or latest published version of content using its GUID?
      - Can I read a CMS item for editing when I only have its GUID?
      instructions:
      - text: Get the content item with GUID {contentGuid}.
        slots:
          contentGuid: path.contentGuid
      - text: Load the current draft of content {contentGuid} for editing.
        slots:
          contentGuid: path.contentGuid
      method: generated
      generated: '2026-09-26'
- target: $.paths['/{contentGuid}'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace or upsert a content item by GUID
      effect: write
      questions:
      - How do I overwrite a whole content item by GUID, creating it if it doesn't exist?
      - Will a full update by GUID create new content when nothing matches that GUID?
      instructions:
      - text: Upsert content {contentGuid} as {contentType} named {name} under {parentLink}.
        slots:
          contentGuid: path.contentGuid
          contentType: requestBody.contentType
          name: requestBody.name
          parentLink: requestBody.parentLink
      - text: Fully replace content {contentGuid} and set its status to {status}.
        slots:
          contentGuid: path.contentGuid
          status: requestBody.status
      method: generated
      generated: '2026-09-26'
- target: $.paths['/{contentGuid}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Trash or permanently delete content
      effect: destructive
      questions:
      - How do I delete a CMS item by its GUID?
      - Does deleting content send it to the trash bin, or can I skip the trash and remove it for good?
      instructions:
      - text: Move content {contentGuid} to the trash.
        slots:
          contentGuid: path.contentGuid
      - text: Permanently delete content {contentGuid} with permanent set to {permanent}.
        slots:
          contentGuid: path.contentGuid
          permanent: query.permanent
      method: generated
      generated: '2026-09-26'
- target: $.paths['/{contentGuid}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change a few fields on a content item
      effect: write
      questions:
      - Can I update just the name or status of a content item without resending everything?
      - How do I tweak a single property on a CMS page identified by GUID?
      instructions:
      - text: Rename content {contentGuid} to {name}.
        slots:
          contentGuid: path.contentGuid
          name: requestBody.name
      - text: Set only the status of content {contentGuid} to {status}.
        slots:
          contentGuid: path.contentGuid
          status: requestBody.status
      method: generated
      generated: '2026-09-26'
- target: $.paths['/{contentGuid}/move'].post
  update:
    x-apievangelist-phrasing:
      intent: Move a content item under a new parent
      effect: write
      questions:
      - How do I relocate a page so it becomes a child of a different node?
      - Can I restructure my CMS tree by moving an item to another parent?
      instructions:
      - text: Move content {contentGuid} under {destination}.
        slots:
          contentGuid: path.contentGuid
          destination: requestBody.destination
      - text: Reparent item {contentGuid} to node {destination}.
        slots:
          contentGuid: path.contentGuid
          destination: requestBody.destination
      method: generated
      generated: '2026-09-26'
- target: $.paths['/{contentReference}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a content item by its numeric reference
      effect: read
      questions:
      - How do I fetch a CMS item using its numeric content reference rather than a GUID?
      - What comes back when I look content up by reference ID in the management API?
      instructions:
      - text: Get content by reference {contentReference}.
        slots:
          contentReference: path.contentReference
      - text: Look up the item whose content reference is {contentReference}.
        slots:
          contentReference: path.contentReference
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/episerver/v3.0/content/{contentIdentifier}'].get
  update:
    x-apievangelist-phrasing:
      intent: Deliver a content item by reference or GUID
      effect: read
      questions:
      - How do I read published content through the Content Delivery API in a specific language?
      - Can I choose which properties to return or expand when delivering a single content item?
      instructions:
      - text: Deliver content {contentIdentifier} in {language}.
        slots:
          contentIdentifier: path.contentIdentifier
          language: header.Accept-Language
      - text: Fetch delivered content {contentIdentifier} returning only {select}.
        slots:
          contentIdentifier: path.contentIdentifier
          select: query.select
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/episerver/v3.0/content/{contentIdentifier}/children'].get
  update:
    x-apievangelist-phrasing:
      intent: Deliver the children of a content item
      effect: read
      questions:
      - Which children does a page have when read through the Content Delivery API?
      - Can I page children with a continuation token in the delivery API?
      instructions:
      - text: Deliver the children of {contentIdentifier} in {language}.
        slots:
          contentIdentifier: path.contentIdentifier
          language: header.Accept-Language
      - text: Get up to {top} delivered child items of {contentIdentifier}.
        slots:
          top: query.top
          contentIdentifier: path.contentIdentifier
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/episerver/v3.0/content/{contentIdentifier}/ancestors'].get
  update:
    x-apievangelist-phrasing:
      intent: Deliver the ancestors of a content item
      effect: read
      questions:
      - How do I get a page's parents through the Content Delivery API for site navigation?
      - Can the delivery API return ancestors localized to a given language?
      instructions:
      - text: Deliver the ancestors of {contentIdentifier}.
        slots:
          contentIdentifier: path.contentIdentifier
      - text: List delivered parent pages of {contentIdentifier} in {language}.
        slots:
          contentIdentifier: path.contentIdentifier
          language: header.Accept-Language
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/episerver/v3.0/content'].get
  update:
    x-apievangelist-phrasing:
      intent: Deliver content by URL or a list of IDs
      effect: read
      questions:
      - How do I get published content from its full URL through the delivery API?
      - Can I fetch several content items at once by passing a comma-separated list of GUIDs?
      - Is there a way to require the URL to match exactly with no extra segments?
      instructions:
      - text: Deliver the content at {ContentUrl}, matching the URL exactly.
        slots:
          ContentUrl: query.ContentUrl
      - text: Deliver the content items with GUIDs {Guids}.
        slots:
          Guids: query.Guids
      - text: Deliver content references {References} in {language}.
        slots:
          References: query.References
          language: header.Accept-Language
      method: generated
      generated: '2026-09-26'
- target: $.paths['/content/_filter'].post
  update:
    x-apievangelist-phrasing:
      intent: Search content items with a Lucene query
      effect: read
      questions:
      - How do I filter the content library with a Lucene query?
      - Can content search results include topic information and be paginated?
      instructions:
      - text: Search content matching the Lucene query {query}.
        slots:
          query: requestBody.query
      - text: Run content filter {query} and return page {page} with {rpp} results per page.
        slots:
          query: requestBody.query
          page: query.page
          rpp: query.rpp
      method: generated
      generated: '2026-09-26'
- target: $.paths['/content/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Fetch a recommendations content item by ID
      effect: read
      questions:
      - How do I see the title, abstract and approval status of an ingested content item?
      - Can I check whether an ingested article is featured or approved?
      instructions:
      - text: Fetch ingested content item {id}.
        slots:
          id: path.id
      - text: Show whether content {id} is approved and featured.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/content/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Approve or feature an ingested content item
      effect: write
      questions:
      - How do I mark an ingested article as approved?
      - Which fields can I actually change on a content item - just approved and featured?
      instructions:
      - text: Set approved to {approved} on content {id}.
        slots:
          approved: requestBody.approved
          id: path.id
      - text: 'Mark content {id} as featured: {featured}.'
        slots:
          id: path.id
          featured: requestBody.featured
      method: generated
      generated: '2026-09-26'
- target: $.paths['/content/{id}/sections'].get
  update:
    x-apievangelist-phrasing:
      intent: List the sections that contain a content item
      effect: read
      questions:
      - Which sections is a given content item included in?
      - Can I see every section an article appears in?
      instructions:
      - text: List the sections containing content {id}.
        slots:
          id: path.id
      - text: Show where content {id} is placed across sections.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'