Salesforce Marketing Cloud · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Salesforce Marketing Cloud REST Assets API

8 actions 8 updates phrasing extends openapi/salesforce-marketing-cloud-assets-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Salesforce Marketing Cloud's API. It is a proposal applied on top of the contract, not a document Salesforce Marketing Cloud publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 8

$.info
$.paths['/asset/v1/content/assets'].get
$.paths['/asset/v1/content/assets'].post
$.paths['/asset/v1/content/assets/{id}'].get
$.paths['/asset/v1/content/assets/{id}'].put
$.paths['/asset/v1/content/assets/{id}'].delete
$.paths['/asset/v1/content/assets/query'].post
$.paths['/asset/v1/content/categories'].get

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 Salesforce Marketing Cloud REST Assets API
  version: 1.0.0
extends: openapi/salesforce-marketing-cloud-assets-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: 7
- target: $.paths['/asset/v1/content/assets'].get
  update:
    x-apievangelist-phrasing:
      intent: List Content Builder assets
      effect: read
      questions:
      - What emails, templates and images are in my Content Builder library?
      - Can I list just the HTML emails using a simple filter?
      - Is it possible to page through assets sorted by last modified date?
      instructions:
      - text: List my Content Builder assets, newest modified first.
      - text: List assets matching the filter {filter}.
        slots:
          filter: query.$filter
      - text: Show page {page} of my assets, {size} per page.
        slots:
          page: query.$page
          size: query.$pageSize
      method: generated
      generated: '2026-09-26'
- target: $.paths['/asset/v1/content/assets'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a Content Builder asset
      effect: write
      questions:
      - How do I upload a new HTML email into Content Builder programmatically?
      - Can I create a reusable content block or code snippet through the API?
      - Which asset type do I pick when adding a new template-based email?
      instructions:
      - text: Create a new {type} asset named {name}.
        slots:
          type: requestBody.assetType
          name: requestBody.name
      - text: Add a new asset called {name} of type {type} with content {content}.
        slots:
          name: requestBody.name
          type: requestBody.assetType
          content: requestBody.content
      method: generated
      generated: '2026-09-26'
- target: $.paths['/asset/v1/content/assets/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Retrieve one asset by id
      effect: read
      questions:
      - How can I pull the full content and folder of one specific asset?
      - What metadata comes back when I fetch a single Content Builder asset?
      instructions:
      - text: Get asset {id}.
        slots:
          id: path.id
      - text: Show me the content and category of asset {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/asset/v1/content/assets/{id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update an existing asset
      effect: write
      questions:
      - How do I change the HTML of an email that's already in Content Builder?
      - Can I rename an existing asset or move it to another folder?
      instructions:
      - text: Rename asset {id} to {name}, keeping its type {type}.
        slots:
          id: path.id
          name: requestBody.name
          type: requestBody.assetType
      - text: Replace the content of existing asset {id} ({name}, type {type}) with {content}.
        slots:
          id: path.id
          name: requestBody.name
          type: requestBody.assetType
          content: requestBody.content
      method: generated
      generated: '2026-09-26'
- target: $.paths['/asset/v1/content/assets/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an asset permanently
      effect: destructive
      questions:
      - How do I remove an old email template from Content Builder?
      - Can a deleted asset be recovered afterwards?
      instructions:
      - text: Delete asset {id}.
        slots:
          id: path.id
      - text: Permanently remove asset {id} from Content Builder.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/asset/v1/content/assets/query'].post
  update:
    x-apievangelist-phrasing:
      intent: Search assets with advanced query logic
      effect: read
      questions:
      - Can I search assets with AND/OR conditions that the simple list filter can't express?
      - How do I run a structured query over Content Builder and return only certain fields?
      - Is there a way to sort asset search results by more than one field?
      instructions:
      - text: Run an advanced asset query with the criteria {query}.
        slots:
          query: requestBody.query
      - text: Query assets matching {query} and return only the fields {fields}.
        slots:
          query: requestBody.query
          fields: requestBody.fields
      method: generated
      generated: '2026-09-26'
- target: $.paths['/asset/v1/content/categories'].get
  update:
    x-apievangelist-phrasing:
      intent: List Content Builder folders
      effect: read
      questions:
      - What folders are my Content Builder assets organized into?
      - How can I see the subfolders under a particular parent folder?
      instructions:
      - text: List all my Content Builder categories.
      - text: List the folders matching {filter}.
        slots:
          filter: query.$filter
      method: generated
      generated: '2026-09-26'