Scope3 · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Scope3 Buyer Creatives API

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

What the actions change

x-apievangelist-phrasing

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

$.info
$.paths['/advertisers/{advertiserId}/creative/model-credentials'].get
$.paths['/advertisers/{advertiserId}/creative/model-credentials'].post
$.paths['/creative/model-credentials/{id}'].patch
$.paths['/creative-dashboard-url'].get
$.paths['/campaigns/{campaignId}/creatives/create'].post
$.paths['/campaigns/{campaignId}/creatives/templates'].get
$.paths['/campaigns/{campaignId}/creativeManifest'].get
$.paths['/campaigns/{campaignId}/creatives'].get
$.paths['/campaigns/{campaignId}/creatives/bulk-update'].post
$.paths['/advertisers/{advertiserId}/creatives/create'].post
$.paths['/advertisers/{advertiserId}/creatives'].get
$.paths['/advertisers/{advertiserId}/creatives/save-to-library'].post
$.paths['/creatives/stash'].post
$.paths['/advertisers/{advertiserId}/creative-intent'].post
$.paths['/campaigns/{campaignId}/creative-confirmation'].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 Scope3 Buyer Creatives API
  version: 1.0.0
extends: openapi/scope3-creatives-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 39
- target: $.paths['/advertisers/{advertiserId}/creative/model-credentials'].get
  update:
    x-apievangelist-phrasing:
      intent: List generation-provider keys for an advertiser
      effect: read
      questions:
      - Which of my own AI generation keys can be used for a given advertiser?
      - Which generation key is auto-selected when creatives are generated?
      instructions:
      - text: List the generation-provider keys available to advertiser {advertiser_id}.
        slots:
          advertiser_id: path.advertiserId
      - text: Show which model key is effective for advertiser {advertiser_id}.
        slots:
          advertiser_id: path.advertiserId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/creative/model-credentials'].post
  update:
    x-apievangelist-phrasing:
      intent: Connect my own generation-provider key
      effect: write
      questions:
      - Can creative generation run on my own model provider account?
      - Is the raw API key I connect for creative generation ever stored in plain text?
      instructions:
      - text: Connect my {provider_type} key {api_key} labelled {label} to advertiser {advertiser_id}.
        slots:
          provider_type: requestBody.providerType
          api_key: requestBody.apiKey
          label: requestBody.label
          advertiser_id: path.advertiserId
      - text: Store generation key {api_key} for provider {provider_type} on advertiser {advertiser_id} as {label}.
        slots:
          api_key: requestBody.apiKey
          provider_type: requestBody.providerType
          advertiser_id: path.advertiserId
          label: requestBody.label
      method: generated
      generated: '2026-10-01'
- target: $.paths['/creative/model-credentials/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Rotate or edit a generation-provider key
      effect: write
      questions:
      - How do I rotate a generation key without losing its label and assignments?
      - Can I make one generation key the default across advertisers?
      instructions:
      - text: Rotate generation credential {id} to new key {api_key}.
        slots:
          id: path.id
          api_key: requestBody.apiKey
      - text: Assign generation credential {id} to advertisers {advertiser_ids}.
        slots:
          id: path.id
          advertiser_ids: requestBody.advertiserIds
      method: generated
      generated: '2026-10-01'
- target: $.paths['/creative-dashboard-url'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a link to the creative dashboard
      effect: read
      questions:
      - Can I get a direct link into the creative dashboard for a campaign?
      - How do I deep-link someone to one specific creative in the dashboard?
      instructions:
      - text: Get the creative dashboard link for advertiser {advertiser_id}, campaign {campaign_id}.
        slots:
          advertiser_id: query.advertiserId
          campaign_id: query.campaignId
      - text: Give me a dashboard URL that opens creative {manifest_id} in campaign {campaign_id} for advertiser {advertiser_id}.
        slots:
          manifest_id: query.manifestId
          campaign_id: query.campaignId
          advertiser_id: query.advertiserId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creatives/create'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a creative in a campaign
      effect: write
      questions:
      - How do I upload a new creative with its files to a campaign?
      - Can I attach a brief message and a format when creating a campaign creative?
      instructions:
      - text: Create creative {name} in campaign {campaign_id} with assets {assets}.
        slots:
          name: requestBody.name
          campaign_id: path.campaignId
          assets: requestBody.assets
      - text: Add a {format_id} creative to campaign {campaign_id} with message {message}.
        slots:
          format_id: requestBody.format_id
          campaign_id: path.campaignId
          message: requestBody.message
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creatives/templates'].get
  update:
    x-apievangelist-phrasing:
      intent: List creative templates and required formats
      effect: read
      questions:
      - What creative templates and formats do my campaign's products require?
      - Which ad sizes do I need to supply for a campaign?
      instructions:
      - text: List creative templates for campaign {campaign_id}.
        slots:
          campaign_id: path.campaignId
      - text: Show the required formats for campaign {campaign_id}.
        slots:
          campaign_id: path.campaignId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creativeManifest'].get
  update:
    x-apievangelist-phrasing:
      intent: Filter a campaign's creatives by role, source or format
      effect: read
      questions:
      - Can I filter a campaign's creatives by format kind, asset type or dimensions?
      - Which of a campaign's creatives are promoted or AI-generated?
      instructions:
      - text: List creative manifests in campaign {campaign_id} with format kind {format_kind}.
        slots:
          campaign_id: path.campaignId
          format_kind: query.format_kind
      - text: Show {dimensions} creatives from source {source} in campaign {campaign_id}.
        slots:
          dimensions: query.dimensions
          source: query.source
          campaign_id: path.campaignId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creatives'].get
  update:
    x-apievangelist-phrasing:
      intent: List a campaign's creatives
      effect: read
      questions:
      - What creatives are in my campaign right now?
      - Can I search a campaign's creatives by name?
      instructions:
      - text: List creatives in campaign {campaign_id}.
        slots:
          campaign_id: path.campaignId
      - text: Search campaign {campaign_id}'s creatives for {search}.
        slots:
          campaign_id: path.campaignId
          search: query.search
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creatives/bulk-update'].post
  update:
    x-apievangelist-phrasing:
      intent: Bulk update a campaign's saved creatives
      effect: write
      questions:
      - Can I change many campaign creatives at once?
      - Can I preview which creatives a bulk change would touch before applying it?
      instructions:
      - text: Preview applying {update} to creatives matching {selection} in campaign {campaign_id}.
        slots:
          update: requestBody.update
          selection: requestBody.selection
          campaign_id: path.campaignId
      - text: Apply {update} to creatives matching {selection} in campaign {campaign_id} with dry run {dry_run}.
        slots:
          update: requestBody.update
          selection: requestBody.selection
          campaign_id: path.campaignId
          dry_run: requestBody.dry_run
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/creatives/create'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a creative master for an advertiser
      effect: write
      questions:
      - Can I create a creative for an advertiser before picking a campaign?
      - How do I make one creative I can reuse across several campaigns?
      instructions:
      - text: Create advertiser-level creative {name} for advertiser {advertiser_id}.
        slots:
          name: requestBody.name
          advertiser_id: path.advertiserId
      - text: Add a reusable creative master to advertiser {advertiser_id} with assets {assets}.
        slots:
          advertiser_id: path.advertiserId
          assets: requestBody.assets
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/creatives'].get
  update:
    x-apievangelist-phrasing:
      intent: List an advertiser's creative library
      effect: read
      questions:
      - What creatives does an advertiser have across all its campaigns?
      - Can I filter an advertiser's library by role, such as evergreen or reference?
      instructions:
      - text: List the creative library for advertiser {advertiser_id}.
        slots:
          advertiser_id: path.advertiserId
      - text: Show {role} creatives in advertiser {advertiser_id}'s library.
        slots:
          role: query.role
          advertiser_id: path.advertiserId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/creatives/save-to-library'].post
  update:
    x-apievangelist-phrasing:
      intent: Promote creatives into the advertiser library shelf
      effect: write
      questions:
      - How do I save creatives as evergreen so they can be reused in other campaigns?
      - Can I keep creatives only as references for generation rather than serving them?
      instructions:
      - text: Save creatives {creative_ids} to advertiser {advertiser_id}'s library as {role}.
        slots:
          creative_ids: requestBody.creative_ids
          advertiser_id: path.advertiserId
          role: requestBody.role
      - text: Promote every creative in collection {collection_id} to the {role} shelf for advertiser {advertiser_id}.
        slots:
          collection_id: requestBody.collection_id
          role: requestBody.role
          advertiser_id: path.advertiserId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/creatives/stash'].post
  update:
    x-apievangelist-phrasing:
      intent: Stash uploaded creatives before choosing an advertiser
      effect: write
      questions:
      - Can I upload creatives before I've said which advertiser they belong to?
      - Will my uploads survive until I name the advertiser later?
      instructions:
      - text: Stash these uploaded creatives {assets} until I pick an advertiser.
        slots:
          assets: requestBody.assets
      - text: Hold uploads {assets} at the customer level for now.
        slots:
          assets: requestBody.assets
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/creative-intent'].post
  update:
    x-apievangelist-phrasing:
      intent: Ask which campaign uploaded creatives are for
      effect: write
      questions:
      - After uploading creatives, how do I get asked which campaign they belong to?
      - Can I see an advertiser's recent campaigns when deciding where creatives go?
      instructions:
      - text: Open the campaign picker for these uploads {assets} under advertiser {advertiser_id}.
        slots:
          assets: requestBody.assets
          advertiser_id: path.advertiserId
      - text: Ask which campaign stashed creatives {creative_ids} are for, for advertiser {advertiser_id}.
        slots:
          creative_ids: requestBody.creative_ids
          advertiser_id: path.advertiserId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creative-confirmation'].get
  update:
    x-apievangelist-phrasing:
      intent: View the creatives added to a campaign and format coverage
      effect: read
      questions:
      - Which required placements are covered by the creatives on my campaign?
      - Can I review what creatives were added to a campaign without attaching more?
      instructions:
      - text: Show the creative confirmation card for campaign {campaign_id}.
        slots:
          campaign_id: path.campaignId
      - text: Check format coverage of campaign {campaign_id}'s creatives.
        slots:
          campaign_id: path.campaignId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creative-confirmation'].post
  update:
    x-apievangelist-phrasing:
      intent: Attach brought creatives to a campaign
      effect: write
      questions:
      - How do I add the creatives I just uploaded to my campaign?
      - Do attached images get matched to placements by size automatically?
      instructions:
      - text: Attach uploads {assets} to campaign {campaign_id}.
        slots:
          assets: requestBody.assets
          campaign_id: path.campaignId
      - text: Attach saved creatives {creative_ids} to campaign {campaign_id}.
        slots:
          creative_ids: requestBody.creative_ids
          campaign_id: path.campaignId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creatives/{creativeId}/placement'].post
  update:
    x-apievangelist-phrasing:
      intent: Move one creative to a different placement
      effect: write
      questions:
      - A creative landed in the wrong slot — can I move it to the leaderboard?
      - How do I correct the placement of a single attached creative?
      instructions:
      - text: Move creative {creative_id} in campaign {campaign_id} to placement {format_id}.
        slots:
          creative_id: path.creativeId
          campaign_id: path.campaignId
          format_id: requestBody.format_id
      - text: Reassign creative {creative_id} to format {format_id} on campaign {campaign_id}.
        slots:
          creative_id: path.creativeId
          format_id: requestBody.format_id
          campaign_id: path.campaignId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creatives/placements'].post
  update:
    x-apievangelist-phrasing:
      intent: Reassign several creatives to placements at once
      effect: write
      questions:
      - Can I save placement mappings for many creatives in one go?
      - How do I commit a batch of creative-to-placement corrections?
      instructions:
      - text: Save placement mappings {mappings} for campaign {campaign_id}.
        slots:
          mappings: requestBody.mappings
          campaign_id: path.campaignId
      - text: Batch-reassign creatives in campaign {campaign_id} using mappings {mappings}.
        slots:
          campaign_id: path.campaignId
          mappings: requestBody.mappings
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/creatives/{creativeId}/campaigns'].post
  update:
    x-apievangelist-phrasing:
      intent: Assign a library creative to a campaign
      effect: write
      questions:
      - How do I reuse a creative from an advertiser's library in another campaign?
      - Can one library creative run in more than one campaign?
      instructions:
      - text: Assign library creative {creative_id} from advertiser {advertiser_id} to campaign {campaign_id}.
        slots:
          creative_id: path.creativeId
          advertiser_id: path.advertiserId
          campaign_id: requestBody.campaignId
      - text: Add advertiser {advertiser_id}'s creative {creative_id} to campaign {campaign_id}.
        slots:
          advertiser_id: path.advertiserId
          creative_id: path.creativeId
          campaign_id: requestBody.campaignId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/creatives/{creativeId}/campaigns/{campaignId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Unassign a library creative from a campaign
      effect: destructive
      questions:
      - Can I take a library creative out of one campaign but keep it in the library?
      - How do I stop a creative running in a specific campaign?
      instructions:
      - text: Unassign creative {creative_id} of advertiser {advertiser_id} from campaign {campaign_id}.
        slots:
          creative_id: path.creativeId
          advertiser_id: path.advertiserId
          campaign_id: path.campaignId
      - text: Remove library creative {creative_id} from campaign {campaign_id} for advertiser {advertiser_id}.
        slots:
          creative_id: path.creativeId
          campaign_id: path.campaignId
          advertiser_id: path.advertiserId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/creatives/{creativeId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Archive a creative across all campaigns
      effect: destructive
      questions:
      - How do I retire a creative everywhere it's used?
      - Will archiving a creative be blocked if it is in an active media buy?
      instructions:
      - text: Archive creative {creative_id} for advertiser {advertiser_id} across all campaigns.
        slots:
          creative_id: path.creativeId
          advertiser_id: path.advertiserId
      - text: Permanently retire advertiser {advertiser_id}'s creative {creative_id} everywhere.
        slots:
          advertiser_id: path.advertiserId
          creative_id: path.creativeId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creative-collections'].get
  update:
    x-apievangelist-phrasing:
      intent: List a campaign's creative collections
      effect: read
      questions:
      - Which creative collections are attached to my campaign?
      - Can I include each collection's members when listing a campaign's collections?
      instructions:
      - text: List creative collections for campaign {campaign_id}.
        slots:
          campaign_id: path.campaignId
      - text: Search campaign {campaign_id}'s collections for {search}.
        slots:
          campaign_id: path.campaignId
          search: query.search
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creative-collections'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a creative collection for a campaign
      effect: write
      questions:
      - How do I group a campaign's creatives and assets into a collection?
      - Can I attach a new collection to the campaign as I create it?
      instructions:
      - text: Create collection {name} in campaign {campaign_id}.
        slots:
          name: requestBody.name
          campaign_id: path.campaignId
      - text: Create campaign collection {name} for campaign {campaign_id} with members {members}.
        slots:
          name: requestBody.name
          campaign_id: path.campaignId
          members: requestBody.members
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creative-collections/{collectionId}'].get
  update:
    x-apievangelist-phrasing:
      intent: View one creative collection
      effect: read
      questions:
      - What creatives and assets are inside a particular collection?
      - Which campaigns is a given collection attached to?
      instructions:
      - text: Show collection {collection_id} in campaign {campaign_id}.
        slots:
          collection_id: path.collectionId
          campaign_id: path.campaignId
      - text: Get the members of collection {collection_id} (campaign {campaign_id}).
        slots:
          collection_id: path.collectionId
          campaign_id: path.campaignId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creative-collections/{collectionId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Rename or describe a creative collection
      effect: write
      questions:
      - Can I rename a creative collection?
      - How do I change a collection's description or metadata?
      instructions:
      - text: Rename collection {collection_id} in campaign {campaign_id} to {name}.
        slots:
          collection_id: path.collectionId
          campaign_id: path.campaignId
          name: requestBody.name
      - text: Set the description of collection {collection_id} (campaign {campaign_id}) to {description}.
        slots:
          collection_id: path.collectionId
          campaign_id: path.campaignId
          description: requestBody.description
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creative-collections/{collectionId}/members'].post
  update:
    x-apievangelist-phrasing:
      intent: Add creatives or assets to a collection
      effect: write
      questions:
      - How do I add more creatives or generated assets to an existing collection?
      - Can raw assets go into a creative collection, not just saved creatives?
      instructions:
      - text: Add members {members} to collection {collection_id} in campaign {campaign_id}.
        slots:
          members: requestBody.members
          collection_id: path.collectionId
          campaign_id: path.campaignId
      - text: Put creatives {members} into collection {collection_id} for campaign {campaign_id}.
        slots:
          members: requestBody.members
          collection_id: path.collectionId
          campaign_id: path.campaignId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creative-collections/{collectionId}/members'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove creatives or assets from a collection
      effect: destructive
      questions:
      - Can I take a creative out of a collection without deleting the creative?
      - How do I drop assets from a creative collection?
      instructions:
      - text: Remove members {members} from collection {collection_id} in campaign {campaign_id}.
        slots:
          members: requestBody.members
          collection_id: path.collectionId
          campaign_id: path.campaignId
      - text: Take {members} out of collection {collection_id} (campaign {campaign_id}).
        slots:
          members: requestBody.members
          collection_id: path.collectionId
          campaign_id: path.campaignId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creative-collections/{collectionId}/attach'].post
  update:
    x-apievangelist-phrasing:
      intent: Attach a creative collection to a campaign
      effect: write
      questions:
      - Can I use a collection as a campaign's approved set or testing set?
      - How do I attach an existing collection to a campaign?
      instructions:
      - text: Attach collection {collection_id} to campaign {campaign_id}.
        slots:
          collection_id: path.collectionId
          campaign_id: path.campaignId
      - text: Attach collection {collection_id} to campaign {campaign_id} as the {role} set.
        slots:
          collection_id: path.collectionId
          campaign_id: path.campaignId
          role: requestBody.role
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/creative-collections'].get
  update:
    x-apievangelist-phrasing:
      intent: List an advertiser's creative collections
      effect: read
      questions:
      - Which creative collections does an advertiser own outside any one campaign?
      - Can I search an advertiser's collections by name?
      instructions:
      - text: List creative collections owned by advertiser {advertiser_id}.
        slots:
          advertiser_id: path.advertiserId
      - text: Search advertiser {advertiser_id}'s collections for {search}.
        slots:
          advertiser_id: path.advertiserId
          search: query.search
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/creative-collections'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an advertiser-owned creative collection
      effect: write
      questions:
      - Can I create a collection that isn't tied to a single campaign?
      - How do I build a collection I can attach to several campaigns?
      instructions:
      - text: Create advertiser collection {name} for advertiser {advertiser_id}.
        slots:
          name: requestBody.name
          advertiser_id: path.advertiserId
      - text: Make a reusable collection {name} under advertiser {advertiser_id} with members {members}.
        slots:
          name: requestBody.name
          advertiser_id: path.advertiserId
          members: requestBody.members
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creatives/{creativeId}'].get
  update:
    x-apievangelist-phrasing:
      intent: View one creative in a campaign
      effect: read
      questions:
      - What assets and settings does a specific creative in my campaign have?
      - Can I fetch a single campaign creative by its id?
      instructions:
      - text: Show creative {creative_id} in campaign {campaign_id}.
        slots:
          creative_id: path.creativeId
          campaign_id: path.campaignId
      - text: Get the assets of campaign {campaign_id}'s creative {creative_id}.
        slots:
          campaign_id: path.campaignId
          creative_id: path.creativeId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creatives/{creativeId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Edit a campaign creative and its assets
      effect: write
      questions:
      - Can I change a creative's click-through URL?
      - How do I swap or delete assets on an existing creative?
      instructions:
      - text: Set the click URL of creative {creative_id} in campaign {campaign_id} to {click_url}.
        slots:
          creative_id: path.creativeId
          campaign_id: path.campaignId
          click_url: requestBody.click_url
      - text: Delete assets {asset_ids} from creative {creative_id} in campaign {campaign_id}.
        slots:
          asset_ids: requestBody.delete_asset_ids
          creative_id: path.creativeId
          campaign_id: path.campaignId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creatives/{creativeId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a creative from a campaign
      effect: destructive
      questions:
      - How do I delete a creative and its files from one campaign?
      - Does deleting a campaign creative remove its assets too?
      instructions:
      - text: Delete creative {creative_id} from campaign {campaign_id}.
        slots:
          creative_id: path.creativeId
          campaign_id: path.campaignId
      - text: Remove creative manifest {creative_id} and its assets from campaign {campaign_id}.
        slots:
          creative_id: path.creativeId
          campaign_id: path.campaignId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creatives/{creativeId}/preview'].post
  update:
    x-apievangelist-phrasing:
      intent: Render a preview of a creative
      effect: read
      questions:
      - Can I see what a creative will look like before it runs?
      - Why does previewing a creative fail with a validation error?
      instructions:
      - text: Preview creative {creative_id} in campaign {campaign_id}.
        slots:
          creative_id: path.creativeId
          campaign_id: path.campaignId
      - text: Render campaign {campaign_id}'s creative {creative_id} through its format renderer.
        slots:
          campaign_id: path.campaignId
          creative_id: path.creativeId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creatives/{creativeId}/duplicate'].post
  update:
    x-apievangelist-phrasing:
      intent: Duplicate a creative within its campaign
      effect: write
      questions:
      - Can I copy an existing creative to make a variation?
      - Does duplicating a creative copy its assets too?
      instructions:
      - text: Duplicate creative {creative_id} in campaign {campaign_id}.
        slots:
          creative_id: path.creativeId
          campaign_id: path.campaignId
      - text: Make a copy of campaign {campaign_id}'s creative {creative_id}.
        slots:
          campaign_id: path.campaignId
          creative_id: path.creativeId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creative-sessions/{sessionId}'].get
  update:
    x-apievangelist-phrasing:
      intent: View a creative iteration session
      effect: read
      questions:
      - What drafts and evaluator results are in my creative iteration session?
      - Where does a creative generation session stand right now?
      instructions:
      - text: Show creative session {session_id} in campaign {campaign_id}.
        slots:
          session_id: path.sessionId
          campaign_id: path.campaignId
      - text: Get the drafts and status of session {session_id} (campaign {campaign_id}).
        slots:
          session_id: path.sessionId
          campaign_id: path.campaignId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creative-sessions/{sessionId}/evaluate'].post
  update:
    x-apievangelist-phrasing:
      intent: Run evaluator checks on a creative session
      effect: write
      questions:
      - Can I run quality checks on the drafts in a creative session?
      - Is there a separate final evaluation stage for a chosen variant?
      instructions:
      - text: Evaluate creative session {session_id} in campaign {campaign_id}.
        slots:
          session_id: path.sessionId
          campaign_id: path.campaignId
      - text: Run {stage} checks on variant {variant_id} of session {session_id} in campaign {campaign_id}.
        slots:
          stage: requestBody.stage
          variant_id: requestBody.selected_variant_id
          session_id: path.sessionId
          campaign_id: path.campaignId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creative-sessions/{sessionId}/finalize'].post
  update:
    x-apievangelist-phrasing:
      intent: Save a session variant as a campaign creative
      effect: write
      questions:
      - How do I turn the variant I like from a creative session into a real creative?
      - Can I name the creative when I finalize a session?
      instructions:
      - text: Finalize session {session_id} in campaign {campaign_id} with variant {variant_id}.
        slots:
          session_id: path.sessionId
          campaign_id: path.campaignId
          variant_id: requestBody.selected_variant_id
      - text: Save the chosen variant of session {session_id} as creative {name} in campaign {campaign_id}.
        slots:
          session_id: path.sessionId
          name: requestBody.name
          campaign_id: path.campaignId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/creative-references'].get
  update:
    x-apievangelist-phrasing:
      intent: Get reference material for generating creatives
      effect: read
      questions:
      - What reference assets and past creatives can be used to generate new ones for a campaign?
      - Which sourced materials are available as generation inputs?
      instructions:
      - text: Get creative references for campaign {campaign_id}.
        slots:
          campaign_id: path.campaignId
      - text: Show the reference assets and past creatives I can generate from for campaign {campaign_id}.
        slots:
          campaign_id: path.campaignId
      method: generated
      generated: '2026-10-01'