Optimizely · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Optimizely CMP Open API Documentation Library API

42 actions 42 updates phrasing extends openapi/optimizely-library-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 42 · first 16 shown; the file carries all of them

$.info
$.paths['/folders'].get
$.paths['/folders'].post
$.paths['/folders/{id}'].get
$.paths['/folders/{id}'].delete
$.paths['/folders/{id}'].patch
$.paths['/folders/{id}/permissions'].get
$.paths['/folders/{id}/permissions'].post
$.paths['/folders/{id}/permissions/{accessor_id}'].delete
$.paths['/folders/{id}/permissions/{accessor_id}'].patch
$.paths['/file-urls'].post
$.paths['/assets'].get
$.paths['/assets'].post
$.paths['/assets/{asset_id}/fields'].get
$.paths['/assets/{asset_id}/fields'].put
$.paths['/assets/{asset_id}/fields/{field_id}'].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 CMP Open API Documentation Library API
  version: 1.0.0
extends: openapi/optimizely-library-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: 41
- target: $.paths['/folders'].get
  update:
    x-apievangelist-phrasing:
      intent: List library folders
      effect: read
      questions:
      - How do I see all the folders in my content marketing library?
      - Can I list only the subfolders inside one parent folder?
      - Which library folders were changed most recently?
      instructions:
      - text: List the folders in my library, newest changes first.
      - text: Show the subfolders inside folder {parent_folder_id}.
        slots:
          parent_folder_id: query.parent_folder_id
      - text: Get {page_size} library folders per page starting at offset {offset}.
        slots:
          page_size: query.page_size
          offset: query.offset
      method: generated
      generated: '2026-09-26'
- target: $.paths['/folders'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a library folder
      effect: write
      questions:
      - How do I make a new folder in the Optimizely content library?
      - Can I create a folder nested inside another folder?
      instructions:
      - text: Create a library folder named {name}.
        slots:
          name: requestBody.name
      - text: Create a folder called {name} inside parent folder {parent_folder_id}.
        slots:
          name: requestBody.name
          parent_folder_id: requestBody.parent_folder_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/folders/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a library folder
      effect: read
      questions:
      - What are the details of a single library folder by its ID?
      - Can I look up one folder to see its name and parent?
      instructions:
      - text: Fetch library folder {id}.
        slots:
          id: path.id
      - text: Show me the details of folder {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/folders/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a library folder
      effect: destructive
      questions:
      - How do I remove a folder from my library?
      - Is deleting a library folder still an experimental feature?
      instructions:
      - text: Delete library folder {id}.
        slots:
          id: path.id
      - text: Remove the folder {id} from the library.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/folders/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Rename or move a library folder
      effect: write
      questions:
      - How do I rename an existing library folder?
      - Can I move a folder under a different parent or back to the top level?
      instructions:
      - text: Rename folder {id} to {name}.
        slots:
          id: path.id
          name: requestBody.name
      - text: Move folder {id} under parent folder {parent_folder_id}.
        slots:
          id: path.id
          parent_folder_id: requestBody.parent_folder_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/folders/{id}/permissions'].get
  update:
    x-apievangelist-phrasing:
      intent: List who can access a folder
      effect: read
      questions:
      - Who has access to a particular library folder?
      - Can I filter a folder's permissions by access level?
      instructions:
      - text: List the users and teams with access to folder {id}.
        slots:
          id: path.id
      - text: Show accessors on folder {id} with at least {min_access} access.
        slots:
          id: path.id
          min_access: query.min_access
      method: generated
      generated: '2026-09-26'
- target: $.paths['/folders/{id}/permissions'].post
  update:
    x-apievangelist-phrasing:
      intent: Grant folder access to users or teams
      effect: write
      questions:
      - How do I share a library folder with a team?
      - Can I give specific users permission to a folder?
      instructions:
      - text: Grant {type} accessors {permissions} on folder {id}.
        slots:
          type: requestBody.type
          permissions: requestBody.permissions
          id: path.id
      - text: 'Share folder {id} with these accessors: {permissions}.'
        slots:
          id: path.id
          permissions: requestBody.permissions
      method: generated
      generated: '2026-09-26'
- target: $.paths['/folders/{id}/permissions/{accessor_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Revoke someone's access to a folder
      effect: destructive
      questions:
      - How do I take away a user's access to a library folder?
      - Can I remove a team from a folder's permissions?
      instructions:
      - text: Remove accessor {accessor_id} from folder {id}.
        slots:
          accessor_id: path.accessor_id
          id: path.id
      - text: Revoke folder {id} access for {accessor_id}.
        slots:
          id: path.id
          accessor_id: path.accessor_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/folders/{id}/permissions/{accessor_id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change someone's access level on a folder
      effect: write
      questions:
      - How do I change a user's access level on a library folder?
      - Can I make someone an owner of a folder?
      instructions:
      - text: Set accessor {accessor_id}'s access on folder {id} to {access_type}.
        slots:
          accessor_id: path.accessor_id
          id: path.id
          access_type: requestBody.access_type
      - text: Make {accessor_id} an owner of folder {id}.
        slots:
          accessor_id: path.accessor_id
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/file-urls'].post
  update:
    x-apievangelist-phrasing:
      intent: Generate download URLs for library files
      effect: write
      questions:
      - How do I get download links for files stored in my library?
      - Can I generate download URLs for several files at once by their GUIDs?
      instructions:
      - text: Generate download URLs for file GUIDs {guids}.
        slots:
          guids: requestBody.guids
      - text: Give me download links for the library files {guids}.
        slots:
          guids: requestBody.guids
      method: generated
      generated: '2026-09-26'
- target: $.paths['/assets'].get
  update:
    x-apievangelist-phrasing:
      intent: List and search library assets
      effect: read
      questions:
      - How do I list the images and videos in my content library?
      - Can I search library assets by title or description text?
      - Which assets were modified within a given date range?
      - Can I list only the assets that belong to one campaign?
      instructions:
      - text: List library assets of type {type}.
        slots:
          type: query.type
      - text: Search the library for assets matching {search_text}.
        slots:
          search_text: query.search_text
      - text: Show assets in folder {folder_id}, including subfolders.
        slots:
          folder_id: query.folder_id
      - text: List the assets for campaign {campaign_id}.
        slots:
          campaign_id: query.campaign_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/assets'].post
  update:
    x-apievangelist-phrasing:
      intent: Upload a new library asset
      effect: write
      questions:
      - How do I add a new image, video or raw file to the library?
      - Can I put a newly uploaded asset straight into a specific folder?
      instructions:
      - text: Create an asset titled {title} from upload session {key}.
        slots:
          title: requestBody.title
          key: requestBody.key
      - text: Add uploaded file {key} as asset {title} in folder {folder_id}.
        slots:
          key: requestBody.key
          title: requestBody.title
          folder_id: requestBody.folder_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/assets/{asset_id}/fields'].get
  update:
    x-apievangelist-phrasing:
      intent: List an asset's custom fields
      effect: read
      questions:
      - What custom field values are set on a library asset?
      - Can I page through the fields attached to one asset?
      instructions:
      - text: List the fields on asset {asset_id}.
        slots:
          asset_id: path.asset_id
      - text: Show the custom field values for asset {asset_id}.
        slots:
          asset_id: path.asset_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/assets/{asset_id}/fields'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace all fields on an asset
      effect: write
      questions:
      - How do I overwrite every custom field on an asset in one call?
      - Can I replace an asset's whole set of field values?
      instructions:
      - text: Replace all field values on asset {asset_id}.
        slots:
          asset_id: path.asset_id
      - text: Overwrite the complete field set of asset {asset_id}.
        slots:
          asset_id: path.asset_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/assets/{asset_id}/fields/{field_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update one field value on an asset
      effect: write
      questions:
      - How do I change a single custom field value on an asset?
      - Can I edit one field without touching an asset's other fields?
      instructions:
      - text: Update field {field_id} on asset {asset_id}.
        slots:
          field_id: path.field_id
          asset_id: path.asset_id
      - text: Set a new value for field {field_id} of asset {asset_id}.
        slots:
          field_id: path.field_id
          asset_id: path.asset_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/assets/{asset_id}/versions'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a new version to an asset
      effect: write
      questions:
      - How do I upload a new version of an existing image or video?
      - Can I keep version history when replacing a library file?
      instructions:
      - text: Add a new version of asset {asset_id} from upload {key} titled {title}.
        slots:
          asset_id: path.asset_id
          key: requestBody.key
          title: requestBody.title
      - text: Upload upload-session {key} as the latest version of asset {asset_id}, titled {title}.
        slots:
          key: requestBody.key
          asset_id: path.asset_id
          title: requestBody.title
      method: generated
      generated: '2026-09-26'
- target: $.paths['/assets/{asset_id}/renditions'].get
  update:
    x-apievangelist-phrasing:
      intent: List an asset's renditions
      effect: read
      questions:
      - What renditions or resized versions exist for an asset?
      - Can I see every rendition generated for one image?
      instructions:
      - text: List the renditions of asset {asset_id}.
        slots:
          asset_id: path.asset_id
      - text: Show all renditions generated for asset {asset_id}.
        slots:
          asset_id: path.asset_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/assets/{asset_id}/permissions'].get
  update:
    x-apievangelist-phrasing:
      intent: List who can access an asset
      effect: read
      questions:
      - Who has permission to access a particular library asset?
      - Can I filter an asset's accessors by maximum access level?
      instructions:
      - text: List the users and teams with access to asset {asset_id}.
        slots:
          asset_id: path.asset_id
      - text: Show accessors on asset {asset_id} with {access} access.
        slots:
          asset_id: path.asset_id
          access: query.access
      method: generated
      generated: '2026-09-26'
- target: $.paths['/assets/{asset_id}/permissions'].post
  update:
    x-apievangelist-phrasing:
      intent: Grant asset access to users or teams
      effect: write
      questions:
      - How do I share a single library asset with a team?
      - Can I give specific users permission to one asset?
      instructions:
      - text: Grant {type} accessors {permissions} on asset {asset_id}.
        slots:
          type: requestBody.type
          permissions: requestBody.permissions
          asset_id: path.asset_id
      - text: 'Share asset {asset_id} with these accessors: {permissions}.'
        slots:
          asset_id: path.asset_id
          permissions: requestBody.permissions
      method: generated
      generated: '2026-09-26'
- target: $.paths['/assets/{asset_id}/permissions/{accessor_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Revoke someone's access to an asset
      effect: destructive
      questions:
      - How do I take away a user's access to a library asset?
      - Can I remove a team from an asset's permissions?
      instructions:
      - text: Remove accessor {accessor_id} from asset {asset_id}.
        slots:
          accessor_id: path.accessor_id
          asset_id: path.asset_id
      - text: Revoke asset {asset_id} access for {accessor_id}.
        slots:
          asset_id: path.asset_id
          accessor_id: path.accessor_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/assets/{asset_id}/permissions/{accessor_id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change someone's access level on an asset
      effect: write
      questions:
      - How do I change a user's access level on a single asset?
      - Can I make someone an owner of an asset?
      instructions:
      - text: Set accessor {accessor_id}'s access on asset {asset_id} to {access_type}.
        slots:
          accessor_id: path.accessor_id
          asset_id: path.asset_id
          access_type: requestBody.access_type
      - text: Make {accessor_id} an owner of asset {asset_id}.
        slots:
          accessor_id: path.accessor_id
          asset_id: path.asset_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/renditions/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a rendition
      effect: read
      questions:
      - What are the details of one rendition by its ID?
      - Can I look up a single rendition directly without its asset?
      instructions:
      - text: Fetch rendition {id}.
        slots:
          id: path.id
      - text: Show me the details of rendition {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/rendition-configs/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a rendition configuration
      effect: read
      questions:
      - How is a rendition configuration for my organization set up?
      - Can I inspect the settings of one rendition config by ID?
      instructions:
      - text: Get rendition configuration {id}.
        slots:
          id: path.id
      - text: Show the rendition config settings for {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/assets/{asset_id}/lineages'].post
  update:
    x-apievangelist-phrasing:
      intent: Record where an asset is used externally
      effect: write
      questions:
      - How do I track that an asset is used on an external website?
      - Can I record which rendition of an asset a page is using?
      instructions:
      - text: Record that asset {asset_id} is used at {uri} by source {name}.
        slots:
          asset_id: path.asset_id
          uri: requestBody.uri
          name: requestBody.name
      - text: Add a lineage for asset {asset_id} pointing to {uri}, named {name}, using rendition {rendition_id}.
        slots:
          asset_id: path.asset_id
          uri: requestBody.uri
          name: requestBody.name
          rendition_id: requestBody.rendition_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/assets/{asset_id}/lineages/{lineage_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an asset lineage record
      effect: destructive
      questions:
      - How do I remove an external usage record from an asset?
      - Can I delete a lineage entry once an asset is no longer used there?
      instructions:
      - text: Delete lineage {lineage_id} from asset {asset_id}.
        slots:
          lineage_id: path.lineage_id
          asset_id: path.asset_id
      - text: Remove the usage record {lineage_id} on asset {asset_id}.
        slots:
          lineage_id: path.lineage_id
          asset_id: path.asset_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/assets/{asset_id}/related-assets'].get
  update:
    x-apievangelist-phrasing:
      intent: List an asset's related assets
      effect: read
      questions:
      - Which assets are linked as related to a given article or image?
      - What asset types support related assets?
      instructions:
      - text: List the related assets of asset {asset_id}.
        slots:
          asset_id: path.asset_id
      - text: Show assets linked as related to {asset_id}.
        slots:
          asset_id: path.asset_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/assets/{asset_id}/related-assets'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace an asset's related assets
      effect: write
      questions:
      - How do I set the full list of related assets for an asset?
      - Can I overwrite which assets are linked as related to a video?
      instructions:
      - text: Replace the related assets of {asset_id} with {related_assets}.
        slots:
          asset_id: path.asset_id
          related_assets: requestBody.related_assets
      - text: Set {related_assets} as the only related assets on asset {asset_id}.
        slots:
          related_assets: requestBody.related_assets
          asset_id: path.asset_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/asset-lineages'].get
  update:
    x-apievangelist-phrasing:
      intent: List asset lineage records
      effect: read
      questions:
      - Where are my library assets being used across external sites?
      - Can I filter lineage records by where an asset is used?
      instructions:
      - text: List all asset lineage records.
      - text: Show lineage records for asset {asset_id}.
        slots:
          asset_id: query.asset_id
      - text: Find lineages where assets are used in {used_in}.
        slots:
          used_in: query.used_in
      method: generated
      generated: '2026-09-26'
- target: $.paths['/articles/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an article
      effect: read
      questions:
      - How do I fetch a single article from the library?
      - Can I read an article's content by its ID?
      instructions:
      - text: Get article {id}.
        slots:
          id: path.id
      - text: Show me the library article {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/images/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an image
      effect: read
      questions:
      - How do I fetch the details of a library image?
      - Can I see an image's alt text and tags by its ID?
      instructions:
      - text: Get image {id}.
        slots:
          id: path.id
      - text: Show me the library image {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/images/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an image
      effect: destructive
      questions:
      - How do I delete an image from my content library?
      - Is deleting a library image permanent rather than archiving it?
      instructions:
      - text: Delete image {id}.
        slots:
          id: path.id
      - text: Remove the library image {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/images/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update an image's metadata
      effect: write
      questions:
      - How do I change an image's title or alt text?
      - Can I make a library image public or set it to expire?
      - Can I archive an image or stop search engines indexing it?
      instructions:
      - text: Set the alt text of image {id} to {alt_text}.
        slots:
          id: path.id
          alt_text: requestBody.alt_text
      - text: Rename image {id} to {title}.
        slots:
          id: path.id
          title: requestBody.title
      - text: Make image {id} expire at {expires_at}.
        slots:
          id: path.id
          expires_at: requestBody.expires_at
      method: generated
      generated: '2026-09-26'
- target: $.paths['/videos/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a video
      effect: read
      questions:
      - How do I fetch the details of a library video?
      - Can I see a video's description and tags by its ID?
      instructions:
      - text: Get video {id}.
        slots:
          id: path.id
      - text: Show me the library video {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/videos/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a video
      effect: destructive
      questions:
      - How do I delete a video from my content library?
      - Can I permanently remove a video asset by ID?
      instructions:
      - text: Delete video {id}.
        slots:
          id: path.id
      - text: Remove the library video {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/videos/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a video's metadata
      effect: write
      questions:
      - How do I change a video's title or description?
      - Can I move a video into another folder or archive it?
      instructions:
      - text: Set the description of video {id} to {description}.
        slots:
          id: path.id
          description: requestBody.description
      - text: Move video {id} into folder {folder_id}.
        slots:
          id: path.id
          folder_id: requestBody.folder_id
      - text: Replace the tags on video {id} with {tags}.
        slots:
          id: path.id
          tags: requestBody.tags
      method: generated
      generated: '2026-09-26'
- target: $.paths['/raw-files/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a raw file
      effect: read
      questions:
      - How do I fetch the details of a raw file in the library?
      - Can I look up a PDF or other raw file asset by ID?
      instructions:
      - text: Get raw file {id}.
        slots:
          id: path.id
      - text: Show me the library raw file {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/raw-files/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a raw file
      effect: destructive
      questions:
      - How do I delete a raw file from my content library?
      - Can I permanently remove a raw file asset by ID?
      instructions:
      - text: Delete raw file {id}.
        slots:
          id: path.id
      - text: Remove the library raw file {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/raw-files/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a raw file's metadata
      effect: write
      questions:
      - How do I rename a raw file or change its attribution text?
      - Can I make a raw file's URL public?
      instructions:
      - text: Rename raw file {id} to {title}.
        slots:
          id: path.id
          title: requestBody.title
      - text: Set the attribution text of raw file {id} to {attribution_text}.
        slots:
          id: path.id
          attribution_text: requestBody.attribution_text
      - text: Archive raw file {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/structured-contents'].post
  update:
    x-apievangelist-phrasing:
      intent: Create structured content
      effect: write
      questions:
      - How do I create a structured content asset in the library?
      - Can I put new structured content into a specific folder?
      instructions:
      - text: Create structured content titled {title} with body {content_body}.
        slots:
          title: requestBody.title
          content_body: requestBody.content_body
      - text: Add structured content {content_body} to folder {folder_id}.
        slots:
          content_body: requestBody.content_body
          folder_id: requestBody.folder_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/structured-contents/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get structured content
      effect: read
      questions:
      - How do I read a structured content asset by ID?
      - Can I fetch the body of one structured content item?
      instructions:
      - text: Get structured content {id}.
        slots:
          id: path.id
      - text: Show me the structured content body for {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/structured-contents/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update structured content
      effect: write
      questions:
      - How do I edit the body of a structured content asset?
      - Can I archive a structured content item?
      instructions:
      - text: Update the body of structured content {id} to {content_body}.
        slots:
          id: path.id
          content_body: requestBody.content_body
      - text: Archive structured content {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'