Scope3 · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Scope3 Buyer Campaigns API

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

$.info
$.paths['/campaigns'].get
$.paths['/campaigns'].post
$.paths['/campaigns/{campaignId}'].get
$.paths['/campaigns/{campaignId}'].put
$.paths['/campaigns/{campaignId}'].delete
$.paths['/campaigns/{campaignId}/delivery'].get
$.paths['/campaigns/{campaignId}/execute'].post
$.paths['/campaigns/{campaignId}/pause'].post
$.paths['/campaigns/{campaignId}/reactivate'].post
$.paths['/campaigns/{campaignId}/auto-select-products'].post
$.paths['/campaigns/{campaignId}/media-buy-status'].get
$.paths['/media-buys/{mediaBuyId}'].get
$.paths['/media-buys/{mediaBuyId}'].patch
$.paths['/media-buys/{mediaBuyId}/packages'].get
$.paths['/media-buys/{mediaBuyId}/pause'].post

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 Campaigns API
  version: 1.0.0
extends: openapi/scope3-campaigns-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: 21
- target: $.paths['/campaigns'].get
  update:
    x-apievangelist-phrasing:
      intent: List campaigns
      effect: read
      questions:
      - Which campaigns are running for a particular advertiser?
      - Can I include archived campaigns when listing?
      - How do I find campaigns by media buy status?
      instructions:
      - text: List campaigns for advertiser {advertiserId}.
        slots:
          advertiserId: query.advertiserId
      - text: Show campaigns with status {status}.
        slots:
          status: query.status
      - text: Find campaigns named {name}, including archived ones.
        slots:
          name: query.name
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a campaign
      effect: write
      questions:
      - How do I start a new ad campaign?
      - Will my campaign brief be screened by content moderation when I create it?
      instructions:
      - text: Create a new campaign.
      - text: Draft a new campaign with a brief for my advertiser.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a campaign's details
      effect: read
      questions:
      - Can I see the full detail of one campaign including its property lists?
      - Is there a way to fetch fresh campaign data rather than cached?
      instructions:
      - text: Get campaign {id}.
        slots:
          id: path.id
      - text: Show campaign {id} with product details.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a campaign
      effect: write
      questions:
      - Can I edit a campaign's name or brief after creating it?
      - What happens if my updated campaign brief violates moderation policy?
      instructions:
      - text: Update campaign {id}.
        slots:
          id: path.id
      - text: Change the brief on campaign {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a campaign
      effect: destructive
      questions:
      - Can I delete a campaign I no longer need?
      - Is deleting a campaign permanent?
      instructions:
      - text: Delete campaign {id}.
        slots:
          id: path.id
      - text: Remove campaign {id} entirely.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/delivery'].get
  update:
    x-apievangelist-phrasing:
      intent: Get live campaign delivery
      effect: read
      questions:
      - How is my tracked campaign actually delivering right now?
      - Can I break campaign delivery down by placement?
      instructions:
      - text: Get live delivery for campaign {campaignId}.
        slots:
          campaignId: path.campaignId
      - text: Show delivery for campaign {campaignId} from {startDate} to {endDate} broken down by placement.
        slots:
          campaignId: path.campaignId
          startDate: query.startDate
          endDate: query.endDate
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/execute'].post
  update:
    x-apievangelist-phrasing:
      intent: Launch a campaign
      effect: write
      questions:
      - How do I launch a campaign so it starts delivering ads?
      - Can I get debug details when a campaign launch fails?
      instructions:
      - text: Launch campaign {id}.
        slots:
          id: path.id
      - text: Execute campaign {id} with debug output {debug}.
        slots:
          id: path.id
          debug: requestBody.debug
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/pause'].post
  update:
    x-apievangelist-phrasing:
      intent: Pause a campaign
      effect: write
      questions:
      - Does pausing a campaign also pause all of its media buys?
      - Can I stop a running campaign temporarily?
      instructions:
      - text: Pause campaign {id}.
        slots:
          id: path.id
      - text: Pause all delivery on campaign {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/reactivate'].post
  update:
    x-apievangelist-phrasing:
      intent: Reactivate a paused campaign
      effect: write
      questions:
      - How do I resume a campaign I paused?
      - Does reactivating a campaign restart its paused media buys too?
      instructions:
      - text: Reactivate campaign {id}.
        slots:
          id: path.id
      - text: Resume paused campaign {id} and its media buys.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/auto-select-products'].post
  update:
    x-apievangelist-phrasing:
      intent: Auto-select products for a campaign
      effect: write
      questions:
      - Can Scope3 pick products automatically for my draft performance campaign?
      - Is there a cap on how many products auto-selection chooses?
      instructions:
      - text: Auto-select products for campaign {id}.
        slots:
          id: path.id
      - text: Auto-select up to {maxProducts} products for campaign {id}.
        slots:
          maxProducts: requestBody.maxProducts
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/media-buy-status'].get
  update:
    x-apievangelist-phrasing:
      intent: Poll live ADCP status of a campaign's media buys
      effect: read
      questions:
      - What is the live seller-side status of every media buy in my campaign?
      - Can I sync media buy statuses from the sales agents for a campaign?
      instructions:
      - text: Poll ADCP status for all media buys in campaign {id}.
        slots:
          id: path.id
      - text: Check live sales-agent status of campaign {id}'s media buys.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/media-buys/{mediaBuyId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a media buy and why it isn't delivering
      effect: read
      questions:
      - Why is my media buy not delivering yet?
      - What error code and pending reason does a single media buy have?
      instructions:
      - text: Get media buy {mediaBuyId}.
        slots:
          mediaBuyId: path.mediaBuyId
      - text: Explain why media buy {mediaBuyId} is pending.
        slots:
          mediaBuyId: path.mediaBuyId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/media-buys/{mediaBuyId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a media buy
      effect: write
      questions:
      - Can I change the end date or creatives of one media buy?
      - Is it possible to edit a media buy's packages without touching the campaign?
      instructions:
      - text: Change the end time of media buy {mediaBuyId} to {end_time}.
        slots:
          mediaBuyId: path.mediaBuyId
          end_time: requestBody.end_time
      - text: Swap the creatives on media buy {mediaBuyId} to {creative_ids}.
        slots:
          mediaBuyId: path.mediaBuyId
          creative_ids: requestBody.creative_ids
      - text: Rename media buy {mediaBuyId} to {name}.
        slots:
          mediaBuyId: path.mediaBuyId
          name: requestBody.name
      method: generated
      generated: '2026-10-01'
- target: $.paths['/media-buys/{mediaBuyId}/packages'].get
  update:
    x-apievangelist-phrasing:
      intent: List a media buy's packages
      effect: read
      questions:
      - Which packages make up a media buy and what are their flight dates?
      - Can I see each package's pacing period?
      instructions:
      - text: List packages in media buy {mediaBuyId}.
        slots:
          mediaBuyId: path.mediaBuyId
      - text: Show products and pacing for each package of media buy {mediaBuyId}.
        slots:
          mediaBuyId: path.mediaBuyId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/media-buys/{mediaBuyId}/pause'].post
  update:
    x-apievangelist-phrasing:
      intent: Pause a single media buy
      effect: write
      questions:
      - Can I pause one media buy without pausing the whole campaign?
      - Will pausing a media buy affect its sibling buys?
      instructions:
      - text: Pause media buy {mediaBuyId}.
        slots:
          mediaBuyId: path.mediaBuyId
      - text: Pause only media buy {mediaBuyId}, leaving the rest running.
        slots:
          mediaBuyId: path.mediaBuyId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/media-buys/{mediaBuyId}/reactivate'].post
  update:
    x-apievangelist-phrasing:
      intent: Reactivate a single media buy
      effect: write
      questions:
      - Can I resume one paused media buy on its own?
      - Does reactivating a media buy touch other buys in the campaign?
      instructions:
      - text: Reactivate media buy {mediaBuyId}.
        slots:
          mediaBuyId: path.mediaBuyId
      - text: Resume paused media buy {mediaBuyId} only.
        slots:
          mediaBuyId: path.mediaBuyId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/campaigns/{campaignId}/products'].get
  update:
    x-apievangelist-phrasing:
      intent: List products staged on a campaign
      effect: read
      questions:
      - What products are queued on my campaign before launch?
      - Which discovery run found each product on a campaign?
      instructions:
      - text: List products staged on campaign {id}.
        slots:
          id: path.id
      - text: Show the queued products and their media buys for campaign {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/targeting/dimensions'].get
  update:
    x-apievangelist-phrasing:
      intent: List supported targeting dimensions
      effect: read
      questions:
      - What targeting dimensions can I use in campaign constraints?
      - Can I get targeting dimension names in another language?
      instructions:
      - text: List the supported targeting dimensions.
      - text: Show targeting dimensions in locale {locale}.
        slots:
          locale: query.locale
      method: generated
      generated: '2026-10-01'
- target: $.paths['/targeting/dimensions/{system}'].get
  update:
    x-apievangelist-phrasing:
      intent: List codes for a targeting dimension
      effect: read
      questions:
      - Which codes are valid for a given targeting dimension?
      - Can I get all code-name pairs for one targeting system?
      instructions:
      - text: List the values for targeting dimension {system}.
        slots:
          system: path.system
      - text: Show code-name pairs for {system} in locale {locale}.
        slots:
          system: path.system
          locale: query.locale
      method: generated
      generated: '2026-10-01'
- target: $.paths['/targeting/dimensions/{system}/resolve'].get
  update:
    x-apievangelist-phrasing:
      intent: Resolve text to targeting codes
      effect: read
      questions:
      - How do I turn a place or label typed in plain text into a targeting code?
      - Can I tell when a targeting text match is ambiguous?
      instructions:
      - text: Resolve {q} to a code in targeting dimension {system}.
        slots:
          q: query.q
          system: path.system
      - text: Look up targeting code candidates for {q} within {system}.
        slots:
          q: query.q
          system: path.system
      method: generated
      generated: '2026-10-01'
- target: $.paths['/targeting/geo-metros'].get
  update:
    x-apievangelist-phrasing:
      intent: List geo metro targeting codes
      effect: read
      questions:
      - Which metro area codes can I target?
      - Are geo metro codes numeric strings?
      instructions:
      - text: List the geo metro codes.
      - text: Show geo metros for system {system}.
        slots:
          system: query.system
      method: generated
      generated: '2026-10-01'