Scope3 · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Scope3 Buyer Advertisers API

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

$.info
$.paths['/advertisers'].get
$.paths['/advertisers'].post
$.paths['/all-advertisers-home'].get
$.paths['/advertisers/{advertiserId}'].get
$.paths['/advertisers/{advertiserId}'].put
$.paths['/advertisers/{advertiserId}'].delete
$.paths['/advertisers/{advertiserId}/restore'].post
$.paths['/advertisers/{advertiserId}/data-delivery-credentials/{name}/validate'].post
$.paths['/advertisers/{advertiserId}/accounts'].get
$.paths['/advertisers/{advertiserId}/accounts'].post
$.paths['/advertisers/{advertiserId}/accounts/{accountId}'].get
$.paths['/advertisers/{advertiserId}/accounts/available'].get
$.paths['/advertisers/{advertiserId}/accounts/{linkId}'].delete
$.paths['/advertisers/{advertiserId}/accounts/{linkId}/reporting-bucket'].put
$.paths['/advertisers/{advertiserId}/catalogs'].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 Advertisers API
  version: 1.0.0
extends: openapi/scope3-advertisers-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: 22
- target: $.paths['/advertisers'].get
  update:
    x-apievangelist-phrasing:
      intent: List advertisers
      effect: read
      questions:
      - Which advertisers do I have set up in Scope3?
      - Can I filter my advertiser list to only sandbox advertisers?
      - Is there a way to find an advertiser by name along with its brand details?
      instructions:
      - text: List all my active advertisers.
      - text: Find advertisers whose name matches {name}.
        slots:
          name: query.name
      - text: List advertisers with status {status}, {limit} per page.
        slots:
          status: query.status
          limit: query.limit
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an advertiser
      effect: write
      questions:
      - How do I set up a new advertiser before creating campaigns?
      - What do I need to provide to create an advertiser, like brand and currency?
      - Can I create an advertiser as a sandbox for testing?
      instructions:
      - text: Create an advertiser named {name} for brand {brand} billed in {primaryCurrency}.
        slots:
          name: requestBody.name
          brand: requestBody.brand
          primaryCurrency: requestBody.primaryCurrency
      - text: Set up a new sandbox advertiser called {name} with brand {brand} in {primaryCurrency}.
        slots:
          name: requestBody.name
          brand: requestBody.brand
          primaryCurrency: requestBody.primaryCurrency
      method: generated
      generated: '2026-10-01'
- target: $.paths['/all-advertisers-home'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the all-advertisers landing overview
      effect: read
      questions:
      - Can I get a portfolio summary across all my advertisers with campaign counts?
      - Which of my advertisers have a resumable draft waiting?
      instructions:
      - text: Show me the all-advertisers home view with portfolio totals.
      - text: Pull the landing overview of every advertiser and its campaign count.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an advertiser's details
      effect: read
      questions:
      - What brand details and ADCP manifest are stored for one of my advertisers?
      - Can I look up a single advertiser by its ID?
      instructions:
      - text: Get advertiser {advertiserId}.
        slots:
          advertiserId: path.advertiserId
      - text: Show the full brand details for advertiser {advertiserId}.
        slots:
          advertiserId: path.advertiserId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update an advertiser
      effect: write
      questions:
      - Can I change an existing advertiser's frequency caps or UTM settings?
      - How do I rename an advertiser or change its primary currency?
      instructions:
      - text: Rename advertiser {advertiserId} to {name}.
        slots:
          advertiserId: path.advertiserId
          name: requestBody.name
      - text: Change the primary currency of advertiser {advertiserId} to {primaryCurrency}.
        slots:
          advertiserId: path.advertiserId
          primaryCurrency: requestBody.primaryCurrency
      - text: Update the frequency caps on advertiser {advertiserId} to {frequencyCaps}.
        slots:
          advertiserId: path.advertiserId
          frequencyCaps: requestBody.frequencyCaps
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Archive an advertiser
      effect: destructive
      questions:
      - What happens when I delete an advertiser, is it archived?
      - Can I remove an advertiser I no longer run campaigns for?
      instructions:
      - text: Delete advertiser {advertiserId}.
        slots:
          advertiserId: path.advertiserId
      - text: Archive the advertiser {advertiserId}.
        slots:
          advertiserId: path.advertiserId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/restore'].post
  update:
    x-apievangelist-phrasing:
      intent: Restore an archived advertiser
      effect: write
      questions:
      - Can I bring back an advertiser I archived by mistake?
      - Is a deleted advertiser recoverable?
      instructions:
      - text: Restore archived advertiser {advertiserId}.
        slots:
          advertiserId: path.advertiserId
      - text: Make deleted advertiser {advertiserId} active again.
        slots:
          advertiserId: path.advertiserId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/data-delivery-credentials/{name}/validate'].post
  update:
    x-apievangelist-phrasing:
      intent: Revalidate a data delivery credential
      effect: write
      questions:
      - After fixing bucket access, how do I re-test my data delivery destination?
      - Why is my object-storage data delivery credential marked FAILED and can I recheck it?
      instructions:
      - text: Revalidate data delivery credential {name} on advertiser {advertiserId}.
        slots:
          name: path.name
          advertiserId: path.advertiserId
      - text: Re-run the destination probe for credential {name} of advertiser {advertiserId}.
        slots:
          name: path.name
          advertiserId: path.advertiserId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/accounts'].get
  update:
    x-apievangelist-phrasing:
      intent: List an advertiser's linked accounts
      effect: read
      questions:
      - Which sales-agent accounts are already linked to my advertiser?
      - Can I see only the linked accounts from one sales agent?
      instructions:
      - text: List the accounts linked to advertiser {advertiserId}.
        slots:
          advertiserId: path.advertiserId
      - text: Show accounts linked to advertiser {advertiserId} from storefront {storefrontId}.
        slots:
          advertiserId: path.advertiserId
          storefrontId: query.storefrontId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/accounts'].post
  update:
    x-apievangelist-phrasing:
      intent: Link a partner account to an advertiser
      effect: write
      questions:
      - How do I connect a seller account I discovered to my advertiser?
      - Can I choose the billing type when linking a partner account?
      instructions:
      - text: Link account {accountId} from source {sourceId} on storefront {storefrontId} to advertiser {advertiserId}.
        slots:
          accountId: requestBody.accountId
          sourceId: requestBody.sourceId
          storefrontId: requestBody.storefrontId
          advertiserId: path.advertiserId
      - text: Assign partner account {accountId} to advertiser {advertiserId} via storefront {storefrontId} and source {sourceId}.
        slots:
          accountId: requestBody.accountId
          advertiserId: path.advertiserId
          storefrontId: requestBody.storefrontId
          sourceId: requestBody.sourceId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/accounts/{accountId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one linked account on an advertiser
      effect: read
      questions:
      - Can I check the details of a single sales-agent account linked to an advertiser?
      - What is stored for one particular linked account on my advertiser?
      instructions:
      - text: Get linked account {accountId} on advertiser {advertiserId}.
        slots:
          accountId: path.accountId
          advertiserId: path.advertiserId
      - text: Show me account {accountId} as linked to advertiser {advertiserId}.
        slots:
          accountId: path.accountId
          advertiserId: path.advertiserId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/accounts/available'].get
  update:
    x-apievangelist-phrasing:
      intent: Discover accounts available to link
      effect: read
      questions:
      - Which seller accounts could I still link to my advertiser from a sales agent?
      - Can I force a fresh lookup of linkable accounts instead of cached results?
      instructions:
      - text: Find accounts available to link to advertiser {advertiserId} from storefront {storefrontId} source {sourceId}.
        slots:
          advertiserId: path.advertiserId
          storefrontId: query.storefrontId
          sourceId: query.sourceId
      - text: Refresh and list linkable accounts for advertiser {advertiserId} from source {sourceId} on storefront {storefrontId}.
        slots:
          advertiserId: path.advertiserId
          sourceId: query.sourceId
          storefrontId: query.storefrontId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/accounts/{linkId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Unlink a partner account from an advertiser
      effect: destructive
      questions:
      - What happens to buys if I unmap a partner account from my advertiser?
      - Can I disconnect a linked seller account but keep its history?
      instructions:
      - text: Unlink account mapping {linkId} from advertiser {advertiserId}.
        slots:
          linkId: path.linkId
          advertiserId: path.advertiserId
      - text: Remove partner account link {linkId} on advertiser {advertiserId}.
        slots:
          linkId: path.linkId
          advertiserId: path.advertiserId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/accounts/{linkId}/reporting-bucket'].put
  update:
    x-apievangelist-phrasing:
      intent: Set a linked account's reporting bucket
      effect: write
      questions:
      - Can I configure an offline reporting bucket on a linked partner account?
      - How do I clear the reporting bucket on an account link?
      instructions:
      - text: Set the reporting bucket on link {linkId} of advertiser {advertiserId} to {reporting_bucket}.
        slots:
          linkId: path.linkId
          advertiserId: path.advertiserId
          reporting_bucket: requestBody.reporting_bucket
      - text: Clear the reporting bucket for account link {linkId} on advertiser {advertiserId} by setting it to {reporting_bucket}.
        slots:
          linkId: path.linkId
          advertiserId: path.advertiserId
          reporting_bucket: requestBody.reporting_bucket
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/catalogs'].get
  update:
    x-apievangelist-phrasing:
      intent: List an advertiser's synced catalogs
      effect: read
      questions:
      - Which product catalogs have been synced for my advertiser?
      - Can I filter synced catalogs by type?
      instructions:
      - text: List catalogs synced for advertiser {advertiserId}.
        slots:
          advertiserId: path.advertiserId
      - text: Show {type} catalogs for advertiser {advertiserId}.
        slots:
          type: query.type
          advertiserId: path.advertiserId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/catalogs/sync'].post
  update:
    x-apievangelist-phrasing:
      intent: Sync catalogs and items to an advertiser
      effect: write
      questions:
      - How do I push my product catalog feed into an advertiser?
      - Can I dry-run a catalog sync before applying it?
      - Will a catalog sync delete catalogs I left out?
      instructions:
      - text: Sync catalogs {catalogs} for account {account} to advertiser {advertiserId}.
        slots:
          catalogs: requestBody.catalogs
          account: requestBody.account
          advertiserId: path.advertiserId
      - text: Dry-run syncing catalogs {catalogs} into advertiser {advertiserId} for account {account}.
        slots:
          catalogs: requestBody.catalogs
          advertiserId: path.advertiserId
          account: requestBody.account
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/catalogs/{catalogId}/transform'].put
  update:
    x-apievangelist-phrasing:
      intent: Save a catalog transform
      effect: write
      questions:
      - How do I define the rules that map catalog items into campaign groups and budget hints?
      - Can I save a named transform for a catalog?
      instructions:
      - text: Save transform {transform} for catalog {catalogId} on advertiser {advertiserId}.
        slots:
          transform: requestBody.transform
          catalogId: path.catalogId
          advertiserId: path.advertiserId
      - text: Set the active transform of catalog {catalogId} for advertiser {advertiserId} to {transform}, named {name}.
        slots:
          catalogId: path.catalogId
          advertiserId: path.advertiserId
          transform: requestBody.transform
          name: requestBody.name
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/catalogs/{catalogId}/activation-plan/preview'].post
  update:
    x-apievangelist-phrasing:
      intent: Preview a catalog activation plan
      effect: write
      questions:
      - Can I see what campaigns a catalog would produce before launching anything?
      - Is it possible to save the activation plan preview for later execution?
      instructions:
      - text: Preview the activation plan for catalog {catalogId} on advertiser {advertiserId}.
        slots:
          catalogId: path.catalogId
          advertiserId: path.advertiserId
      - text: Build and save an activation plan preview for catalog {catalogId} of advertiser {advertiserId}.
        slots:
          catalogId: path.catalogId
          advertiserId: path.advertiserId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/catalogs/{catalogId}/refresh'].post
  update:
    x-apievangelist-phrasing:
      intent: Refresh a URL-backed catalog feed
      effect: write
      questions:
      - How do I pull the latest version of my URL-based catalog feed?
      - Can a catalog refresh also run the activation plan automatically?
      instructions:
      - text: Refresh catalog {catalogId} for advertiser {advertiserId}.
        slots:
          catalogId: path.catalogId
          advertiserId: path.advertiserId
      - text: 'Refetch catalog {catalogId} of advertiser {advertiserId} and execute activation: {executeActivation}.'
        slots:
          catalogId: path.catalogId
          advertiserId: path.advertiserId
          executeActivation: requestBody.executeActivation
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{advertiserId}/catalogs/{catalogId}/activation-plan/execute'].post
  update:
    x-apievangelist-phrasing:
      intent: Execute a catalog activation plan
      effect: write
      questions:
      - What does executing a catalog activation plan create downstream?
      - Can I run a saved activation plan by its plan ID?
      instructions:
      - text: Execute activation plan {planId} for catalog {catalogId} on advertiser {advertiserId}.
        slots:
          planId: requestBody.planId
          catalogId: path.catalogId
          advertiserId: path.advertiserId
      - text: Launch the catalog activation for catalog {catalogId} of advertiser {advertiserId}.
        slots:
          catalogId: path.catalogId
          advertiserId: path.advertiserId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{accountId}/audiences/sync'].post
  update:
    x-apievangelist-phrasing:
      intent: Sync first-party CRM audiences
      effect: write
      questions:
      - How do I upload my first-party CRM audiences?
      - Is audience syncing asynchronous, and can I get notified when it finishes?
      instructions:
      - text: Sync audiences {audiences} to my account.
        slots:
          audiences: requestBody.audiences
      - text: 'Sync CRM audiences {audiences} and delete missing ones: {deleteMissing}.'
        slots:
          audiences: requestBody.audiences
          deleteMissing: requestBody.deleteMissing
      method: generated
      generated: '2026-10-01'
- target: $.paths['/advertisers/{accountId}/audiences'].get
  update:
    x-apievangelist-phrasing:
      intent: List stored audiences
      effect: read
      questions:
      - Which first-party audiences are stored on my account?
      - Can I page through my audience metadata?
      instructions:
      - text: List my stored audiences.
      - text: Show {take} audiences starting after {skip}.
        slots:
          take: query.take
          skip: query.skip
      method: generated
      generated: '2026-10-01'