Scope3 · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Scope3 Storefront API

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

$.info
$.paths['/account-mappings/summary'].get
$.paths['/account-mappings'].get
$.paths['/account-mappings/export'].get
$.paths['/account-mappings/reviews'].get
$.paths['/account-mappings/reviews/{grantId}/decision'].post
$.paths['/account-mappings/sources/{inventorySourceId}/refresh'].post
$.paths['/account-mappings/imports/prepare'].post
$.paths['/account-mappings/imports/{revisionId}/preview'].post
$.paths['/account-mappings/imports/{revisionId}/commit'].post
$.paths['/account-mappings/imports/{revisionId}'].get
$.paths['/storefront'].get
$.paths['/storefront'].put
$.paths['/storefront'].post
$.paths['/storefront'].patch
$.paths['/demo'].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 Storefront API
  version: 1.0.0
extends: openapi/scope3-storefront-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: 159
- target: $.paths['/account-mappings/summary'].get
  update:
    x-apievangelist-phrasing:
      intent: Summarize seller account mapping coverage
      effect: read
      questions:
      - How many buyer relationships do I have mapped across my active inventory sources?
      - What does the summary on the Buyer Account Mapping page count?
      instructions:
      - text: Show me the coverage counts for my seller account mappings.
      - text: Give me a quick summary of how many operator and brand relationships are mapped to active sources.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/account-mappings'].get
  update:
    x-apievangelist-phrasing:
      intent: List seller account relationships
      effect: read
      questions:
      - Which operator and brand relationships does my storefront own?
      - Can I search my seller account relationships by name and page through them?
      instructions:
      - text: List my seller account relationships matching {search}.
        slots:
          search: query.search
      - text: Show {limit} seller account relationships starting at offset {offset}.
        slots:
          limit: query.limit
          offset: query.offset
      method: generated
      generated: '2026-10-01'
- target: $.paths['/account-mappings/export'].get
  update:
    x-apievangelist-phrasing:
      intent: Export seller account mappings as CSV
      effect: read
      questions:
      - Can I download my current account mappings and the mapping template as CSV?
      - Where do I get the source-mapping template to fill in offline?
      instructions:
      - text: Export my seller account mappings and the blank mapping template as CSV files.
      - text: Download the healthy source-account mappings I currently have.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/account-mappings/reviews'].get
  update:
    x-apievangelist-phrasing:
      intent: List pending buyer account requests
      effect: read
      questions:
      - Which buyer account requests are waiting for me to approve or reject?
      - Do pending buyer account requests include the version I need to make a decision?
      instructions:
      - text: Show the buyer account requests awaiting my decision.
      - text: List {limit} pending buyer account requests from offset {offset}.
        slots:
          limit: query.limit
          offset: query.offset
      method: generated
      generated: '2026-10-01'
- target: $.paths['/account-mappings/reviews/{grantId}/decision'].post
  update:
    x-apievangelist-phrasing:
      intent: Approve or reject a buyer account request
      effect: write
      questions:
      - Can I reject a buyer's account request, and do I have to give a reason?
      - What happens if I approve a buyer account request for Interchange-cleared billing?
      instructions:
      - text: Approve buyer account request {grantId}.
        slots:
          grantId: path.grantId
      - text: Reject buyer account request {grantId} with a reason.
        slots:
          grantId: path.grantId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/account-mappings/sources/{inventorySourceId}/refresh'].post
  update:
    x-apievangelist-phrasing:
      intent: Refresh advertiser choices for an ad-server source
      effect: write
      questions:
      - Can I reload the advertiser list from my Google Ad Manager or FreeWheel source for account mapping?
      - Which ad servers support refreshing the source-account roster?
      instructions:
      - text: Refresh the advertiser account choices for inventory source {inventorySourceId}.
        slots:
          inventorySourceId: path.inventorySourceId
      - text: Pull the latest ad-server advertiser roster into account mapping for source {inventorySourceId}.
        slots:
          inventorySourceId: path.inventorySourceId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/account-mappings/imports/prepare'].post
  update:
    x-apievangelist-phrasing:
      intent: Prepare an account mapping feed upload
      effect: write
      questions:
      - How do I get a signed upload URL for my source_account_bindings.csv file?
      - Can I upload account mappings as a snapshot that covers specific inventory sources?
      instructions:
      - text: Prepare an account mapping feed upload in {mode} mode for revision {sourceRevision}.
        slots:
          mode: requestBody.mode
          sourceRevision: requestBody.sourceRevision
      - text: Reserve a mapping feed revision for {file} covering sources {coveredInventorySourceKeys}.
        slots:
          file: requestBody.file
          coveredInventorySourceKeys: requestBody.coveredInventorySourceKeys
      method: generated
      generated: '2026-10-01'
- target: $.paths['/account-mappings/imports/{revisionId}/preview'].post
  update:
    x-apievangelist-phrasing:
      intent: Validate and preview an account mapping feed
      effect: read
      questions:
      - Can I see which rows of my uploaded account mapping file are invalid before applying it?
      - What impact will my mapping feed revision have before I commit it?
      instructions:
      - text: Validate and preview uploaded account mapping revision {revisionId}.
        slots:
          revisionId: path.revisionId
      - text: Check mapping feed revision {revisionId} for bad rows and get a preview token.
        slots:
          revisionId: path.revisionId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/account-mappings/imports/{revisionId}/commit'].post
  update:
    x-apievangelist-phrasing:
      intent: Commit a previewed account mapping feed
      effect: write
      questions:
      - Will committing a mapping feed overwrite the manual mappings I made?
      - Can I apply only part of a reviewed account mapping feed?
      instructions:
      - text: Commit account mapping revision {revisionId} using preview token {previewToken}.
        slots:
          revisionId: path.revisionId
          previewToken: requestBody.previewToken
      - text: Apply mapping feed {revisionId} with idempotency key {idempotencyKey} and preview token {previewToken}.
        slots:
          revisionId: path.revisionId
          idempotencyKey: requestBody.idempotencyKey
          previewToken: requestBody.previewToken
      method: generated
      generated: '2026-10-01'
- target: $.paths['/account-mappings/imports/{revisionId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Check an account mapping feed revision
      effect: read
      questions:
      - What state is my account mapping feed upload in right now?
      - Where can I see diagnostics for a mapping feed revision I uploaded?
      instructions:
      - text: Show the status and diagnostics of mapping feed revision {revisionId}.
        slots:
          revisionId: path.revisionId
      - text: Get the lifecycle and impact of account mapping revision {revisionId}.
        slots:
          revisionId: path.revisionId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/storefront'].get
  update:
    x-apievangelist-phrasing:
      intent: Get my storefront
      effect: read
      questions:
      - What is my storefront currently configured as?
      - Can I see my storefront's name, publisher domain and plan?
      instructions:
      - text: Show me my storefront.
      - text: Fetch my current storefront configuration.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/storefront'].put
  update:
    x-apievangelist-phrasing:
      intent: Update storefront settings
      effect: write
      questions:
      - Can I pause my storefront so it stops transacting?
      - How do I change which countries and currencies my storefront accepts?
      - Can I update the demand contact email and logo buyers see?
      instructions:
      - text: Pause my storefront by setting paused to {isPaused}.
        slots:
          isPaused: requestBody.isPaused
      - text: Change my storefront's default currency to {defaultCurrency}.
        slots:
          defaultCurrency: requestBody.defaultCurrency
      - text: Set the storefront demand contact to {demandContactName} at {demandContactEmail}.
        slots:
          demandContactName: requestBody.demandContactName
          demandContactEmail: requestBody.demandContactEmail
      method: generated
      generated: '2026-10-01'
- target: $.paths['/storefront'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a storefront
      effect: write
      questions:
      - What do I need to set up a new storefront?
      - Is creating a storefront safe to repeat if I already have one?
      instructions:
      - text: Create a storefront named {name} for publisher domain {publisherDomain}.
        slots:
          name: requestBody.name
          publisherDomain: requestBody.publisherDomain
      - text: Set up my storefront {name} with default currency {defaultCurrency}.
        slots:
          name: requestBody.name
          defaultCurrency: requestBody.defaultCurrency
      method: generated
      generated: '2026-10-01'
- target: $.paths['/storefront'].patch
  update:
    x-apievangelist-phrasing:
      intent: Patch legacy storefront capabilities
      effect: write
      questions:
      - Can I change just the storefront capabilities without resending the whole configuration?
      - Where do I update my storefront's setup intent on its own?
      instructions:
      - text: Patch only my storefront capabilities to {capabilities}.
        slots:
          capabilities: requestBody.capabilities
      - text: Update just the storefront setup intent to {setupIntent}.
        slots:
          setupIntent: requestBody.setupIntent
      method: generated
      generated: '2026-10-01'
- target: $.paths['/demo'].get
  update:
    x-apievangelist-phrasing:
      intent: Get my Demo Storefront
      effect: read
      questions:
      - Do I have a Demo Storefront, and when does its lease expire?
      - What synthetic profile is my demo storefront running on?
      instructions:
      - text: Show my Demo Storefront and its lease status.
      - text: Check whether a demo storefront exists for my account.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/demo'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a seven-day Demo Storefront
      effect: write
      questions:
      - Can I spin up a demo storefront to try things without real side effects?
      - How long does a new Demo Storefront last?
      instructions:
      - text: Create a Demo Storefront from profile {profileId}.
        slots:
          profileId: requestBody.profileId
      - text: Start a demo storefront using profile {profileId} version {profileVersion}.
        slots:
          profileId: requestBody.profileId
          profileVersion: requestBody.profileVersion
      method: generated
      generated: '2026-10-01'
- target: $.paths['/demo'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete my Demo Storefront
      effect: destructive
      questions:
      - Does deleting my demo storefront remove my customer account too?
      - Can I throw away the demo storefront and its synthetic data?
      instructions:
      - text: Delete my Demo Storefront.
      - text: Tear down the demo storefront and all its synthetic resources.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/demo/reset'].post
  update:
    x-apievangelist-phrasing:
      intent: Reset the Demo Storefront
      effect: destructive
      questions:
      - Can I rebuild my demo storefront back to its starting state?
      - Does resetting the demo storefront extend its lease?
      instructions:
      - text: Reset my Demo Storefront to its pinned profile.
      - text: Rebuild the demo storefront from scratch without extending it.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/demo/source-recipes'].get
  update:
    x-apievangelist-phrasing:
      intent: List demo source recipes
      effect: read
      questions:
      - Which synthetic inventory sources can I add to a demo storefront?
      - What composition presets are available for demo storefronts?
      instructions:
      - text: List the demo source recipes I can attach.
      - text: Show the synthetic modular-source recipes for demos.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/demo/sources'].post
  update:
    x-apievangelist-phrasing:
      intent: Attach synthetic sources to the demo
      effect: write
      questions:
      - Can I add several synthetic inventory sources to my demo storefront at once?
      - How do I give my demo storefront some fake inventory to sell?
      instructions:
      - text: Attach demo source recipes {recipeIds} to my Demo Storefront.
        slots:
          recipeIds: requestBody.recipeIds
      - text: Add the synthetic sources {recipeIds} to the active demo.
        slots:
          recipeIds: requestBody.recipeIds
      method: generated
      generated: '2026-10-01'
- target: $.paths['/demo/sources/{sourceId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a source from the demo
      effect: destructive
      questions:
      - Can I take one synthetic source back out of my demo storefront?
      - What happens to the generated inventory when I remove a demo source?
      instructions:
      - text: Remove demo source {sourceId} from my Demo Storefront.
        slots:
          sourceId: path.sourceId
      - text: Detach synthetic source {sourceId} and its inventory from the demo.
        slots:
          sourceId: path.sourceId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/demo/extend'].post
  update:
    x-apievangelist-phrasing:
      intent: Extend the Demo Storefront lease
      effect: write
      questions:
      - Can I keep my demo storefront longer than seven days?
      - How many days can I extend a demo storefront by?
      instructions:
      - text: Extend my Demo Storefront by {days} days.
        slots:
          days: requestBody.days
      - text: Push back the demo storefront expiry.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/readiness'].get
  update:
    x-apievangelist-phrasing:
      intent: Check if the storefront can go live
      effect: read
      questions:
      - Is my storefront ready to go live?
      - What is blocking my storefront from launching?
      instructions:
      - text: Check my storefront's go-live readiness.
      - text: List the blocking checks for inventory sources and agent auth before launch.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/readiness/compliance'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the latest compliance check
      effect: read
      questions:
      - Did my storefront pass its last compliance check?
      - Has a compliance readiness check ever run on my storefront?
      instructions:
      - text: Show my storefront's most recent compliance result.
      - text: Get the last compliance readiness check.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/readiness/compliance/refresh'].post
  update:
    x-apievangelist-phrasing:
      intent: Re-run the storefront compliance check
      effect: write
      questions:
      - Can I re-run compliance against just one agent?
      - How do I recheck compliance after fixing a source health issue?
      instructions:
      - text: Re-run the compliance check for agent {agentId}.
        slots:
          agentId: requestBody.agentId
      - text: Recheck compliance across all my storefront's agents now.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/resolve-brand'].post
  update:
    x-apievangelist-phrasing:
      intent: Look up a brand profile by domain
      effect: read
      questions:
      - Is there a brand profile on agenticadvertising.org for this domain?
      - Can I get a brand's name and logo just from its website domain?
      instructions:
      - text: Resolve the brand profile for {domain}.
        slots:
          domain: requestBody.domain
      - text: Look up the brand name and logo for domain {domain}.
        slots:
          domain: requestBody.domain
      method: generated
      generated: '2026-10-01'
- target: $.paths['/discover-agents'].get
  update:
    x-apievangelist-phrasing:
      intent: Find agents authorized for a domain
      effect: read
      questions:
      - Which operator and publisher agents are authorized to sell a given domain?
      - Can I bypass the cached agent discovery result for a domain?
      instructions:
      - text: Discover the authorized agents for {domain}.
        slots:
          domain: query.domain
      - text: Find agents for {domain} and bypass the cache with refresh {refresh}.
        slots:
          domain: query.domain
          refresh: query.refresh
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources'].get
  update:
    x-apievangelist-phrasing:
      intent: List inventory sources
      effect: read
      questions:
      - Which inventory sources are connected to my storefront?
      - What sources of inventory am I selling from today?
      instructions:
      - text: List all my storefront's inventory sources.
      - text: Show every inventory source on the storefront.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an inventory source
      effect: write
      questions:
      - Can I add a new inventory source and register its sales agent at the same time?
      - What authentication types can a new inventory source use?
      instructions:
      - text: Create an inventory source named {name} pointing at {endpointUrl}.
        slots:
          name: requestBody.name
          endpointUrl: requestBody.endpointUrl
      - text: Add inventory source {name} using protocol {protocol} and {authenticationType} auth.
        slots:
          name: requestBody.name
          protocol: requestBody.protocol
          authenticationType: requestBody.authenticationType
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources/{sourceId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an inventory source
      effect: read
      questions:
      - What are the settings of one specific inventory source?
      - Can I look up an inventory source by its source ID?
      instructions:
      - text: Show inventory source {sourceId}.
        slots:
          sourceId: path.sourceId
      - text: Get the details of source {sourceId}.
        slots:
          sourceId: path.sourceId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources/{sourceId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update an inventory source
      effect: write
      questions:
      - Does changing an inventory source's status affect its linked agent?
      - Can I point an existing inventory source at a new endpoint URL?
      instructions:
      - text: Set the status of inventory source {sourceId} to {status}.
        slots:
          sourceId: path.sourceId
          status: requestBody.status
      - text: Rename inventory source {sourceId} to {name}.
        slots:
          sourceId: path.sourceId
          name: requestBody.name
      - text: Change the endpoint of source {sourceId} to {endpointUrl}.
        slots:
          sourceId: path.sourceId
          endpointUrl: requestBody.endpointUrl
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources/{sourceId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an inventory source
      effect: destructive
      questions:
      - What happens to the linked agent when I delete an inventory source?
      - Can I permanently remove an inventory source from my storefront?
      instructions:
      - text: Delete inventory source {sourceId}.
        slots:
          sourceId: path.sourceId
      - text: Remove source {sourceId} and disable its agent.
        slots:
          sourceId: path.sourceId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources/{sourceId}/diagnostics'].get
  update:
    x-apievangelist-phrasing:
      intent: Get call health diagnostics for a source
      effect: read
      questions:
      - Is my inventory source timing out or failing calls lately?
      - How has a source's latency moved compared with the prior window?
      instructions:
      - text: Show call health diagnostics for source {sourceId}.
        slots:
          sourceId: path.sourceId
      - text: Get latency and failure stats for source {sourceId} over the last {windowHours} hours.
        slots:
          sourceId: path.sourceId
          windowHours: query.windowHours
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources/{sourceId}/mapping-workspace'].get
  update:
    x-apievangelist-phrasing:
      intent: View a source's mapping workspace
      effect: read
      questions:
      - Can I see how my storefront identities map through one inventory source?
      - Which product paths on a source are ready versus inactive?
      instructions:
      - text: Open the mapping workspace for source {sourceId}.
        slots:
          sourceId: path.sourceId
      - text: Show storefront-built and agent-supplied mapping readiness for source {sourceId}.
        slots:
          sourceId: path.sourceId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources/{sourceId}/tests/discovery'].post
  update:
    x-apievangelist-phrasing:
      intent: Run a product discovery test on a source
      effect: read
      questions:
      - Can I test whether a sales agent returns products without creating a media buy?
      - Does a discovery test on a source spend any money?
      instructions:
      - text: Run a discovery test against source {sourceId}.
        slots:
          sourceId: path.sourceId
      - text: Test get_products on source {sourceId} with the brief {brief}.
        slots:
          sourceId: path.sourceId
          brief: requestBody.brief
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources/{sourceId}/wholesale-pricing/template'].get
  update:
    x-apievangelist-phrasing:
      intent: Download the wholesale pricing CSV template
      effect: read
      questions:
      - Where do I get a pre-filled wholesale avails and pricing template for a source?
      - Does the wholesale pricing template list each ad-server selector my products use?
      instructions:
      - text: Download the wholesale pricing template for source {sourceId}.
        slots:
          sourceId: path.sourceId
      - text: Get the pre-filled avails and pricing CSV for source {sourceId}.
        slots:
          sourceId: path.sourceId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources/{sourceId}/property-mappings'].get
  update:
    x-apievangelist-phrasing:
      intent: List property and tag mappings for a source
      effect: read
      questions:
      - Which properties and tags have I mapped on a managed sales-agent source?
      - Can I review my seller-authored property mappings?
      instructions:
      - text: List the property mappings on source {sourceId}.
        slots:
          sourceId: path.sourceId
      - text: Show the tag and property mappings I authored for source {sourceId}.
        slots:
          sourceId: path.sourceId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources/{sourceId}/property-mappings'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace all property mappings for a source
      effect: write
      questions:
      - Can I dry-run a replacement of my property mappings before applying it?
      - Does replacing property mappings overwrite all of them at once?
      instructions:
      - text: Dry-run replacing the property mappings on source {sourceId} with dry run {dry_run}.
        slots:
          sourceId: path.sourceId
          dry_run: query.dry_run
      - text: Replace every property and tag mapping on source {sourceId}.
        slots:
          sourceId: path.sourceId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources/ad-servers/citrusad'].post
  update:
    x-apievangelist-phrasing:
      intent: Connect CitrusAd as an ad server
      effect: write
      questions:
      - Can I connect CitrusAd for sponsored products to my storefront?
      - What CitrusAd details do I need to connect it, like team ID and namespaces?
      instructions:
      - text: Connect CitrusAd team {teamId} in the {environment} environment with namespaces {namespaces}.
        slots:
          teamId: requestBody.teamId
          environment: requestBody.environment
          namespaces: requestBody.namespaces
      - text: Hook up CitrusAd in {environment} for team {teamId}, namespaces {namespaces}, priced in {defaultCurrency}.
        slots:
          environment: requestBody.environment
          teamId: requestBody.teamId
          namespaces: requestBody.namespaces
          defaultCurrency: requestBody.defaultCurrency
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources/{sourceId}/ad-servers/citrusad/credentials/{credentialKind}'].put
  update:
    x-apievangelist-phrasing:
      intent: Rotate a CitrusAd credential
      effect: write
      questions:
      - Can I swap in a new CitrusAd credential on an existing source?
      - Is the rotated CitrusAd secret ever stored in the source config?
      instructions:
      - text: Rotate the CitrusAd {credentialKind} credential on source {sourceId}.
        slots:
          credentialKind: path.credentialKind
          sourceId: path.sourceId
      - text: Replace the CitrusAd {credentialKind} credential for source {sourceId} with {auth}.
        slots:
          credentialKind: path.credentialKind
          sourceId: path.sourceId
          auth: requestBody.auth
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources/{sourceId}/ad-servers/citrusad/credentials/{credentialKind}'].post
  update:
    x-apievangelist-phrasing:
      intent: Save a first CitrusAd credential
      effect: write
      questions:
      - Where do I store my CitrusAd credentials after connecting it?
      - Will the CitrusAd credential I save ever be returned by the API?
      instructions:
      - text: Save a new CitrusAd {credentialKind} credential for source {sourceId}.
        slots:
          credentialKind: path.credentialKind
          sourceId: path.sourceId
      - text: Store CitrusAd {credentialKind} auth {auth} on source {sourceId}.
        slots:
          credentialKind: path.credentialKind
          auth: requestBody.auth
          sourceId: path.sourceId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources/{sourceId}/ad-servers/citrusad/credentials/{credentialKind}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Revoke a CitrusAd credential
      effect: destructive
      questions:
      - Can I revoke a CitrusAd credential and delete its stored secret?
      - What happens when I revoke CitrusAd access on a source?
      instructions:
      - text: Revoke the CitrusAd {credentialKind} credential on source {sourceId}.
        slots:
          credentialKind: path.credentialKind
          sourceId: path.sourceId
      - text: Delete the stored CitrusAd {credentialKind} secret for source {sourceId}.
        slots:
          credentialKind: path.credentialKind
          sourceId: path.sourceId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources/modular/feed'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a feed-backed modular source
      effect: write
      questions:
      - Can I create an inventory source from an uploaded avails feed?
      - Does a feed-backed modular source include a booking ledger by default?
      instructions:
      - text: Create a modular avails-feed source named {name}.
        slots:
          name: requestBody.name
      - text: Set up feed source {name} with the booking ledger set to {includeBookingLedger}.
        slots:
          name: requestBody.name
          includeBookingLedger: requestBody.includeBookingLedger
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources/modular/cadent-demo'].post
  update:
    x-apievangelist-phrasing:
      intent: Create or reset a Cadent demo source
      effect: write
      questions:
      - Can I set up a Cadent-backed demo source for a live demo?
      - How do I reset the Cadent demo source with fresh avails?
      instructions:
      - text: Create a Cadent demo modular source named {name}.
        slots:
          name: requestBody.name
      - text: Reset the Cadent demo source with reset {reset} and seed avails {seedAvails}.
        slots:
          reset: requestBody.reset
          seedAvails: requestBody.seedAvails
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources/modular/freewheel-sandbox'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a FreeWheel sandbox source
      effect: write
      questions:
      - Can I create a FreeWheel sandbox source with live taxonomy selectors?
      - Do I need to provide FreeWheel credentials for the sandbox source?
      instructions:
      - text: Create a FreeWheel sandbox modular source named {name}.
        slots:
          name: requestBody.name
      - text: Set up the FreeWheel sandbox source for advertiser {advertiserId}.
        slots:
          advertiserId: requestBody.advertiserId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources/{sourceId}/modular'].get
  update:
    x-apievangelist-phrasing:
      intent: Check a modular source's setup readiness
      effect: read
      questions:
      - What setup fields are still missing on my modular inventory source?
      - Which lifecycle stage is a modular source in, and how much open work does it have?
      instructions:
      - text: Show the readiness of modular source {sourceId}.
        slots:
          sourceId: path.sourceId
      - text: List missing setup fields and issues for modular source {sourceId}.
        slots:
          sourceId: path.sourceId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/inventory-sources/{sourceId}/modular/avails-feed'].post
  update:
    x-apievangelist-phrasing:
      intent: Load confirmed avails into a modular source
      effect: write
      questions:
      - How do I load avails into a modular source's static feed after reviewing them?
      - Can I send avails as CSV text instead of structured rows?
      instructions:
      - text: Ingest the reviewed avails into modular source {sourceId} with confirmed {confirmed}.
        slots:
          sourceId: path.sourceId
          confirmed: requestBody.confirmed
      - text: Upsert avails from this CSV {csvText} into modular source {sourceId}.
        slots:
          csvText: requestBody.csvText
          sourceId: path.sourceId
      method: generated
      generated: '2026-10-01'


# --- truncated at 32 KB (108 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/scope3/refs/heads/main/overlays/scope3-storefront-api-phrasing-overlay.yaml