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.
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
# 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'