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