Total number of products in the selected-products cart. A value of 0 means no product has been selected yet; it is not the number of products discovery returned.
Required range: -9007199254740991 <= x <= 9007199254740991
Whether this discovery session is attached to an active campaign. When false, the products are saved to the session but no active campaign reflects them yet.
Guidance shown only when campaignBound is false: either the session is not attached to any campaign, or the campaign it was attached to has been archived. Pass campaignId for an active campaign (or restore the archived one) so the campaign reflects the products.
Non-blocking notices about this submission, e.g. two submitted selections shared the same identity (no selectionId, or a repeated selectionId) and were merged into a single package.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Apostra","colors":{"primary":"#7513D4","light":"#ED7139","dark":"#7513D4"},"logo":{"light":"https://mintcdn.com/agentic2/A5rx0kFcKxq4RfQe/logo-apostra/apostra-black-purple-logo.svg?fit=max\u0026auto=format\u0026n=A5rx0kFcKxq4RfQe\u0026q=85\u0026s=d9788f7a39ebea19b202324e702d3178","dark":"https://mintcdn.com/agentic2/A5rx0kFcKxq4RfQe/logo-apostra/apostra-white-purple-logo.svg?fit=max\u0026auto=format\u0026n=A5rx0kFcKxq4RfQe\u0026q=85\u0026s=9a8b8881bd62ccac198ddd54caa21ba3"},"favicon":"https://mintcdn.com/agentic2/f0_a8sarwuUWvF9a/logo-apostra/apostra-icon-purple.svg?fit=max\u0026auto=format\u0026n=f0_a8sarwuUWvF9a\u0026q=85\u0026s=8e125c217964e76c49a47c64baa01a3d","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","python","javascript"],"prefill":true},"mdx":{"auth":{"method":"bearer"},"server":"https://api.apostra.com/api/v2"}},"navbar":{"primary":{"type":"button","label":"Install Apostra","href":"/v3/quickstart"}},"footer":{"socials":{"twitter":"https://twitter.com/scope3data","github":"https://github.com/apostra-public/apostra","linkedin":"https://linkedin.com/company/scope3"},"links":[{"header":"Legal","items":[{"label":"Terms of Service","href":"https://apostra.com/agreements/terms-of-service"},{"label":"Privacy Policy","href":"https://apostra.com/agreements/privacy-policy"}]}]},"seo":{"metatags":{"canonical":"https://docs.apostra.com","og:type":"website","og:site_name":"Apostra API"},"indexing":"all"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"agentic2","hasAudioNarration":false,"actualSubdomain":"agentic2","customDomains":["docs.apostra.com"],"gitSource":{"type":"github","owner":"scope3data","repo":"agentic-api","deployBranch":"main","contentDirectory":"mintlify","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6aef5058ec2091b7c464ea19","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Build software","count":746},{"language":"default","tag":"Buyer API reference","count":306},{"language":"default","tag":"Seller API reference","count":218},{"language":"default","tag":"Manage ads","count":190},{"language":"default","tag":"Account","count":108},{"language":"default","tag":"Sell media","count":107},{"language":"default","tag":"Task Reference","count":92},{"language":"default","tag":"Storefront","count":83},{"language":"default","tag":"Buy media","count":76},{"language":"default","tag":"Seller operations","count":60}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"v2/buyer-api-reference/product-discovery/remove-products-from-selection","slug":"/v2/buyer-api-reference/product-discovery/remove-products-from-selection","pageMetadata":{"title":"Remove products from selection","description":"Remove products from the selection.","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /discovery/{discoveryId}/products","href":"/v2/buyer-api-reference/product-discovery/remove-products-from-selection","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Remove products from the selection.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Remove products from selection","description":"Remove products from the selection.","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /discovery/{discoveryId}/products","href":"/v2/buyer-api-reference/product-discovery/remove-products-from-selection","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"removeProducts","summary":"Remove products from selection","description":"Remove products from the selection.","tags":["Product Discovery"],"security":["9d527fee-8861-4af8-8a30-7c6ad22c822d"],"parameters":["11f20d42-9ee2-4540-b569-7c09b078cc4d"],"requestBody":"7aa43858-88c7-465d-bf15-e0c741931ca0","responses":{"200":"0170c26b-00ea-47e8-89e0-80c858254112","400":"e7f09244-a528-405d-b972-c368c21ddc6f","401":"ae515634-b977-4f84-80b4-d2ce7cb54d2b","500":"33ea08be-01cf-4597-947a-e7f5d231e330"},"method":"delete","type":"path","servers":["79f891a6-2e76-48a5-99c9-7c181bc851d3"],"path":"/discovery/{discoveryId}/products","baseUrlOptions":["https://api.apostra.com/api/v2/buyer"],"title":"Remove products from selection","codeSamples":[],"requestExampleLanguages":["bash","python","javascript"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.oneOf.0.productIds.items.0":"\u003cstring>","body.oneOf.0.productRefs.items.0.productId":"\u003cstring>","body.oneOf.0.productRefs.items.0.inventorySourceId":"\u003cstring>","body.oneOf.0.productRefs.items.0.selectionId":"\u003cstring>"}]},"dependencies":{"parameters":{"11f20d42-9ee2-4540-b569-7c09b078cc4d":{"in":"path","name":"discoveryId","schema":{"type":"string","minLength":1,"description":"Discovery ID","example":"abc123-def456-ghi789","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"description":"Discovery ID"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Request to remove products from a discovery session","required":["productIds"],"properties":{"productIds":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.productIds.items.[INDEX]","typeLabel":"string"},"description":"Legacy product-wide removal. Product IDs remove every matching selection instance; storefront-qualified sf1:... IDs limit removal to that storefront.","isRequired":true,"uniqueKey":"oneOf.0.productIds","typeLabel":"string[]"},"productRefs":{"minItems":1,"type":"array","items":{"type":"object","properties":{"productId":{"type":"string","minLength":1,"description":"Product ID to remove. Preserve an opaque storefront-qualified value unchanged.","isRequired":true,"uniqueKey":"oneOf.0.productRefs.items.[INDEX].productId","typeLabel":"string"},"inventorySourceId":{"description":"Exact non-null inventory-source provenance returned with the selected product. Storefront-owned null identity is carried by the opaque productId.","type":"string","pattern":"^[1-9]\\d*$","uniqueKey":"oneOf.0.productRefs.items.[INDEX].inventorySourceId","typeLabel":"string"},"selectionId":{"description":"Exact repeat-selection identity. When present, removes only that selection instance.","type":"string","minLength":1,"maxLength":256,"uniqueKey":"oneOf.0.productRefs.items.[INDEX].selectionId","typeLabel":"string"}},"required":["productId"],"uniqueKey":"oneOf.0.productRefs.items.[INDEX]","typeLabel":"object"},"description":"Exact selection references. Include inventorySourceId to remove only one source-qualified base variant.","uniqueKey":"oneOf.0.productRefs","typeLabel":"object[]"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"Request to remove products from a discovery session","required":["productRefs"],"properties":{"productRefs":{"minItems":1,"type":"array","items":{"type":"object","properties":{"productId":{"type":"string","minLength":1,"description":"Product ID to remove. Preserve an opaque storefront-qualified value unchanged.","isRequired":true,"uniqueKey":"oneOf.1.productRefs.items.[INDEX].productId","typeLabel":"string"},"inventorySourceId":{"description":"Exact non-null inventory-source provenance returned with the selected product. Storefront-owned null identity is carried by the opaque productId.","type":"string","pattern":"^[1-9]\\d*$","uniqueKey":"oneOf.1.productRefs.items.[INDEX].inventorySourceId","typeLabel":"string"},"selectionId":{"description":"Exact repeat-selection identity. When present, removes only that selection instance.","type":"string","minLength":1,"maxLength":256,"uniqueKey":"oneOf.1.productRefs.items.[INDEX].selectionId","typeLabel":"string"}},"required":["productId"],"uniqueKey":"oneOf.1.productRefs.items.[INDEX]","typeLabel":"object"},"description":"Exact selection references. Include inventorySourceId to remove only one source-qualified base variant.","isRequired":true,"uniqueKey":"oneOf.1.productRefs","typeLabel":"object[]"},"productIds":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.productIds.items.[INDEX]","typeLabel":"string"},"description":"Legacy product-wide removal. Product IDs remove every matching selection instance; storefront-qualified sf1:... IDs limit removal to that storefront.","uniqueKey":"oneOf.1.productIds","typeLabel":"string[]"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"productIds":["\u003cstring>"],"productRefs":[{"productId":"\u003cstring>","inventorySourceId":"\u003cstring>","selectionId":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"0170c26b-00ea-47e8-89e0-80c858254112":{"description":"Remove products from selection","content":{"application/json":{"schema":{"type":"object","properties":{"discoveryId":{"type":"string","description":"Discovery ID","isRequired":true,"uniqueKey":"discoveryId","typeLabel":"string"},"products":{"type":"array","items":{"type":"object","properties":{"productId":{"type":"string","description":"Product ID","isRequired":true,"uniqueKey":"products.items.[INDEX].productId","typeLabel":"string"},"salesAgentId":{"description":"Sales agent ID","type":"string","isRequired":true,"uniqueKey":"products.items.[INDEX].salesAgentId","typeLabel":"string"},"selectedAt":{"type":"string","description":"When the product was selected (ISO 8601)","isRequired":true,"uniqueKey":"products.items.[INDEX].selectedAt","typeLabel":"string"},"groupId":{"type":"string","description":"Group ID where product was discovered","isRequired":true,"uniqueKey":"products.items.[INDEX].groupId","typeLabel":"string"},"groupName":{"type":"string","description":"Name of the group","isRequired":true,"uniqueKey":"products.items.[INDEX].groupName","typeLabel":"string"},"storefrontId":{"description":"Storefront this product selection came from","type":"string","uniqueKey":"products.items.[INDEX].storefrontId","typeLabel":"string"},"inventorySourceId":{"description":"Exact non-null inventory source selected for execution","type":"string","pattern":"^[1-9]\\d*$","uniqueKey":"products.items.[INDEX].inventorySourceId","typeLabel":"string"},"selectionId":{"description":"Per-instance selection identity. Present only on repeat instances (the same product selected more than once); absent on a product’s single \"base\" selection.","type":"string","uniqueKey":"products.items.[INDEX].selectionId","typeLabel":"string"},"bidPrice":{"description":"Bid price (CPM) the buyer set for the product","type":"number","uniqueKey":"products.items.[INDEX].bidPrice","typeLabel":"number"},"budget":{"description":"Budget allocation for this product","type":"number","uniqueKey":"products.items.[INDEX].budget","typeLabel":"number"},"targetingOverlay":{"description":"Per-line-item AdCP targeting saved with this selection","type":"object","properties":{"geo_countries":{"minItems":1,"type":"array","items":{"type":"string","pattern":"^[A-Z]{2}$","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_countries.items.[INDEX]","typeLabel":"string"},"description":"Restrict delivery to specific countries. ISO 3166-1 alpha-2 codes (e.g., 'US', 'GB', 'DE').","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_countries","typeLabel":"string[]"},"geo_countries_exclude":{"minItems":1,"type":"array","items":{"type":"string","pattern":"^[A-Z]{2}$","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_countries_exclude.items.[INDEX]","typeLabel":"string"},"description":"Exclude specific countries from delivery. ISO 3166-1 alpha-2 codes (e.g., 'US', 'GB', 'DE').","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_countries_exclude","typeLabel":"string[]"},"geo_regions":{"minItems":1,"type":"array","items":{"type":"string","pattern":"^[A-Z]{2}-[A-Z0-9]{1,3}$","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_regions.items.[INDEX]","typeLabel":"string"},"description":"Restrict delivery to exact canonical ISO 3166-2 subdivisions (states, provinces, regions, departments, or other subdivision categories). Unknown identifiers are invalid. At create or update, sellers MUST reject unsupported identifiers and MUST NOT silently widen, drop, or partially apply the list. During get_products, a seller may instead return a sparse, buyer-reviewable targeting_resolution modification for a valid but unsupported requested outcome. Exact internal translation preserves accepted identifiers in package readback.","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_regions","typeLabel":"string[]"},"geo_regions_exclude":{"minItems":1,"type":"array","items":{"type":"string","pattern":"^[A-Z]{2}-[A-Z0-9]{1,3}$","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_regions_exclude.items.[INDEX]","typeLabel":"string"},"description":"Exclude exact canonical ISO 3166-2 subdivisions. Support is independent from geo_regions inclusion support. Unknown identifiers and values also present in geo_regions are invalid. At create or update, sellers MUST reject unsupported identifiers and partial application; during get_products, a seller may instead return a sparse, buyer-reviewable targeting_resolution modification for a valid but unsupported requested outcome.","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_regions_exclude","typeLabel":"string[]"},"geo_metros":{"minItems":1,"type":"array","items":{"type":"object","properties":{"system":{"type":"string","enum":["nielsen_dma","uk_itl1","uk_itl2","eurostat_nuts2","custom"],"description":"Metro area classification system (e.g., 'nielsen_dma', 'uk_itl2')","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_metros.items.[INDEX].system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_metros.items.[INDEX].values.items.[INDEX]","typeLabel":"string"},"description":"Metro codes within the system (e.g., ['501', '602'] for Nielsen DMAs)","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_metros.items.[INDEX].values","typeLabel":"string[]"}},"required":["system","values"],"additionalProperties":false,"description":"A targeted metro area.","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_metros.items.[INDEX]","typeLabel":"object"},"description":"Restrict delivery to specific metro areas. Each entry specifies the classification system and target values. Seller must declare supported systems in get_adcp_capabilities.","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_metros","typeLabel":"object[]"},"geo_metros_exclude":{"minItems":1,"type":"array","items":{"type":"object","properties":{"system":{"type":"string","enum":["nielsen_dma","uk_itl1","uk_itl2","eurostat_nuts2","custom"],"description":"Metro area classification system (e.g., 'nielsen_dma', 'uk_itl2')","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_metros_exclude.items.[INDEX].system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_metros_exclude.items.[INDEX].values.items.[INDEX]","typeLabel":"string"},"description":"Metro codes to exclude within the system (e.g., ['501', '602'] for Nielsen DMAs)","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_metros_exclude.items.[INDEX].values","typeLabel":"string[]"}},"required":["system","values"],"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_metros_exclude.items.[INDEX]","typeLabel":"object"},"description":"Exclude specific metro areas from delivery. Each entry specifies the classification system and excluded values. Seller must declare supported systems in get_adcp_capabilities.","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_metros_exclude","typeLabel":"object[]"},"geo_postal_areas":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","enum":["US"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.0.country","typeLabel":"enum\u003cstring>"},"system":{"type":"string","description":"Country-local postal code system.","enum":["zip","zip_plus_four"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.0.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.0.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.0.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","enum":["GB"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.1.country","typeLabel":"enum\u003cstring>"},"system":{"type":"string","description":"Country-local postal code system.","enum":["outward","full"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.1.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.1.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.1.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","enum":["CA"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.2.country","typeLabel":"enum\u003cstring>"},"system":{"type":"string","description":"Country-local postal code system.","enum":["fsa","full"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.2.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.2.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.2.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","enum":["DE","CH","AT"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.3.country","typeLabel":"enum\u003cstring>"},"system":{"type":"string","description":"Country-local postal code system.","enum":["plz"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.3.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.3.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.3.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.3","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","enum":["FR"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.4.country","typeLabel":"enum\u003cstring>"},"system":{"type":"string","description":"Country-local postal code system.","enum":["code_postal"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.4.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.4.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.4.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.4","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","enum":["AU"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.5.country","typeLabel":"enum\u003cstring>"},"system":{"type":"string","description":"Country-local postal code system.","enum":["postcode"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.5.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.5.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.5.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.5","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","enum":["BR"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.6.country","typeLabel":"enum\u003cstring>"},"system":{"type":"string","description":"Country-local postal code system.","enum":["cep"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.6.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.6.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.6.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.6","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","enum":["IN"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.7.country","typeLabel":"enum\u003cstring>"},"system":{"type":"string","description":"Country-local postal code system.","enum":["pin"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.7.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.7.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.7.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.7","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","enum":["ZA"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.8.country","typeLabel":"enum\u003cstring>"},"system":{"type":"string","description":"Country-local postal code system.","enum":["postal_code"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.8.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.8.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.8.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.8","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.9.country","typeLabel":"string"},"system":{"type":"string","description":"Country-local postal code system.","enum":["postal_code","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.9.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.9.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.9.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.9","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["system","values"],"properties":{"system":{"type":"string","enum":["us_zip","us_zip_plus_four","gb_outward","gb_full","ca_fsa","ca_full","de_plz","fr_code_postal","au_postcode","ch_plz","at_plz"],"description":"Deprecated country-fused postal code system (e.g., 'us_zip', 'gb_outward'). Prefer country + postal-system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.10.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.10.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the legacy system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.10.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX].oneOf.10","typeLabel":"object"}],"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas.items.[INDEX]","typeLabel":"object"},"description":"Restrict delivery to specific postal areas. Prefer the native country + postal system form. The deprecated legacy country-fused postal-system tokens remain accepted for compatibility. Seller must declare supported systems in get_adcp_capabilities.","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas","typeLabel":"object[]"},"geo_postal_areas_exclude":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","enum":["US"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.0.country","typeLabel":"enum\u003cstring>"},"system":{"type":"string","description":"Country-local postal code system.","enum":["zip","zip_plus_four"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.0.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.0.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.0.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","enum":["GB"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.1.country","typeLabel":"enum\u003cstring>"},"system":{"type":"string","description":"Country-local postal code system.","enum":["outward","full"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.1.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.1.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.1.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","enum":["CA"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.2.country","typeLabel":"enum\u003cstring>"},"system":{"type":"string","description":"Country-local postal code system.","enum":["fsa","full"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.2.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.2.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.2.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","enum":["DE","CH","AT"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.3.country","typeLabel":"enum\u003cstring>"},"system":{"type":"string","description":"Country-local postal code system.","enum":["plz"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.3.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.3.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.3.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.3","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","enum":["FR"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.4.country","typeLabel":"enum\u003cstring>"},"system":{"type":"string","description":"Country-local postal code system.","enum":["code_postal"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.4.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.4.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.4.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.4","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","enum":["AU"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.5.country","typeLabel":"enum\u003cstring>"},"system":{"type":"string","description":"Country-local postal code system.","enum":["postcode"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.5.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.5.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.5.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.5","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","enum":["BR"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.6.country","typeLabel":"enum\u003cstring>"},"system":{"type":"string","description":"Country-local postal code system.","enum":["cep"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.6.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.6.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.6.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.6","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","enum":["IN"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.7.country","typeLabel":"enum\u003cstring>"},"system":{"type":"string","description":"Country-local postal code system.","enum":["pin"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.7.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.7.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.7.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.7","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","enum":["ZA"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.8.country","typeLabel":"enum\u003cstring>"},"system":{"type":"string","description":"Country-local postal code system.","enum":["postal_code"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.8.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.8.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.8.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.8","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["country","system","values"],"properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","pattern":"^[A-Z]{2}$","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.9.country","typeLabel":"string"},"system":{"type":"string","description":"Country-local postal code system.","enum":["postal_code","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.9.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.9.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the country and system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.9.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.9","typeLabel":"object"},{"type":"object","description":"Postal area values. Prefer the native country + postal system form. Deprecated legacy country-fused postal-system tokens remain accepted for compatibility.","required":["system","values"],"properties":{"system":{"type":"string","enum":["us_zip","us_zip_plus_four","gb_outward","gb_full","ca_fsa","ca_full","de_plz","fr_code_postal","au_postcode","ch_plz","at_plz"],"description":"Deprecated country-fused postal code system (e.g., 'us_zip', 'gb_outward'). Prefer country + postal-system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.10.system","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.10.values.items.[INDEX]","typeLabel":"string"},"description":"Postal codes within the legacy system.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.10.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX].oneOf.10","typeLabel":"object"}],"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude.items.[INDEX]","typeLabel":"object"},"description":"Exclude specific postal areas from delivery. Prefer the native country + postal system form. The deprecated legacy country-fused postal-system tokens remain accepted for compatibility. Seller must declare supported systems in get_adcp_capabilities.","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_postal_areas_exclude","typeLabel":"object[]"},"daypart_targets":{"minItems":1,"type":"array","items":{"type":"object","description":"A time window for daypart targeting. Specifies days of week, a time-of-day range, and the civil-time clock used to evaluate it. The range is either whole hours (start_hour inclusive, end_hour exclusive; e.g., 6-10 = 6:00am to 10:00am) or, experimentally, minute-resolution clock times (start_time inclusive, end_time exclusive; e.g., 19:30-23:00); an entry carries exactly one form. Follows the Google Ads AdScheduleInfo / DV360 DayPartTargeting pattern.","required":["days","timezone"],"properties":{"days":{"minItems":1,"type":"array","items":{"type":"string","enum":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],"description":"Days of the week for daypart targeting","uniqueKey":"products.items.[INDEX].targetingOverlay.daypart_targets.items.[INDEX].days.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Days of week this window applies to. Use multiple days for compact targeting (e.g., monday-friday in one object). For an overnight start_time/end_time window, each day names the day the window starts on.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.daypart_targets.items.[INDEX].days","typeLabel":"enum\u003cstring>[]"},"timezone":{"oneOf":[{"type":"string","description":"Civil-time clock used to evaluate this window. 'inventory_local' evaluates the hours in the seller-assigned local timezone of each inventory unit that can deliver the impression, such as a screen, venue, station, or publisher property; it never means the buyer, account, or server timezone. A concrete IANA timezone identifier (for example, 'America/New_York', 'CET', or 'UTC') evaluates one shared civil-time clock across the targeted inventory. Omission defaults to 'inventory_local'. Buyers that begin with a user or account preference MUST resolve it to a concrete IANA identifier before sending the daypart; 'user_timezone' and 'account_timezone' are not wire values. For each candidate delivery instant, convert the instant into this clock and compare its resulting local day and time of day with the half-open window: a skipped DST hour or interval has no matching instants, while both occurrences of a repeated hour or interval match. For an overnight start_time/end_time window, an instant matches when its local day is a listed day and its local time is at or after start_time, or when the local day before it is a listed day and its local time is before end_time. This delivery clock is independent of reporting_capabilities.timezone.","default":"inventory_local","enum":["inventory_local"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.daypart_targets.items.[INDEX].timezone.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Civil-time clock used to evaluate this window. 'inventory_local' evaluates the hours in the seller-assigned local timezone of each inventory unit that can deliver the impression, such as a screen, venue, station, or publisher property; it never means the buyer, account, or server timezone. A concrete IANA timezone identifier (for example, 'America/New_York', 'CET', or 'UTC') evaluates one shared civil-time clock across the targeted inventory. Omission defaults to 'inventory_local'. Buyers that begin with a user or account preference MUST resolve it to a concrete IANA identifier before sending the daypart; 'user_timezone' and 'account_timezone' are not wire values. For each candidate delivery instant, convert the instant into this clock and compare its resulting local day and time of day with the half-open window: a skipped DST hour or interval has no matching instants, while both occurrences of a repeated hour or interval match. For an overnight start_time/end_time window, an instant matches when its local day is a listed day and its local time is at or after start_time, or when the local day before it is a listed day and its local time is before end_time. This delivery clock is independent of reporting_capabilities.timezone.","default":"inventory_local","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.daypart_targets.items.[INDEX].timezone.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.daypart_targets.items.[INDEX].timezone","typeLabel":"enum\u003cstring> | any"},"start_hour":{"type":"integer","minimum":0,"maximum":23,"description":"Start hour (inclusive), 0-23 in 24-hour format. 0 = midnight, 6 = 6:00am, 18 = 6:00pm. Whole-hour form: pair with end_hour; mutually exclusive with start_time and end_time.","uniqueKey":"products.items.[INDEX].targetingOverlay.daypart_targets.items.[INDEX].start_hour","typeLabel":"integer"},"end_hour":{"type":"integer","minimum":1,"maximum":24,"description":"End hour (exclusive), 1-24 in 24-hour format. 10 = 10:00am, 24 = midnight. Must be greater than start_hour; whole-hour windows never cross midnight. Whole-hour form: pair with start_hour; mutually exclusive with start_time and end_time.","uniqueKey":"products.items.[INDEX].targetingOverlay.daypart_targets.items.[INDEX].end_hour","typeLabel":"integer"},"start_time":{"type":"string","pattern":"^([01][0-9]|2[0-3]):[0-5][0-9]$","description":"Experimental in AdCP 3.3. Start of the window (inclusive) as a 24-hour HH:MM civil clock time on the entry's timezone clock, such as '19:30'. Use for windows that do not fall on whole hours (linear TV programme junctions, quarter-hour schedules). Pair with end_time; mutually exclusive with start_hour and end_hour. A window whose end_time is earlier than its start_time crosses midnight and belongs to the day it starts on. A product accepts only the finest time granularity it declares in overlay_support.daypart_targets.time_granularity; sellers MUST reject, never round, a clock time the product does not honor.","uniqueKey":"products.items.[INDEX].targetingOverlay.daypart_targets.items.[INDEX].start_time","typeLabel":"string"},"end_time":{"type":"string","pattern":"^([01][0-9]|2[0-3]):[0-5][0-9]$","description":"Experimental in AdCP 3.3. End of the window (exclusive) as a 24-hour HH:MM civil clock time, such as '23:00'. Pair with start_time; mutually exclusive with start_hour and end_hour. end_time earlier than start_time means the window crosses midnight and ends at end_time on the following civil day (for example, 22:00 to 02:00 runs from 22:00 on a listed day until 02:00 the next morning); '00:00' therefore ends the window at the midnight closing the start day. end_time MUST NOT equal start_time: a zero-length or full-day window is invalid, and a full day uses start_hour 0 with end_hour 24. Sellers MUST reject an equal pair with INVALID_REQUEST.","uniqueKey":"products.items.[INDEX].targetingOverlay.daypart_targets.items.[INDEX].end_time","typeLabel":"string"},"label":{"type":"string","description":"Optional human-readable name for this time window (e.g., 'Morning Drive', 'Prime Time')","uniqueKey":"products.items.[INDEX].targetingOverlay.daypart_targets.items.[INDEX].label","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.daypart_targets.items.[INDEX]","typeLabel":"object"},"description":"Restrict delivery to specific time windows. Each entry specifies days of week, an hour range, and an optional timezone that defaults to inventory_local. A concrete IANA zone uses one shared civil-time clock, while inventory_local evaluates each inventory unit in its seller-assigned local timezone. Entries are independent and MAY use different clocks.","uniqueKey":"products.items.[INDEX].targetingOverlay.daypart_targets","typeLabel":"object[]"},"axe_include_segment":{"type":"string","description":"Deprecated: Use TMP provider fields instead. AXE segment ID to include for targeting.","uniqueKey":"products.items.[INDEX].targetingOverlay.axe_include_segment","typeLabel":"string"},"axe_exclude_segment":{"type":"string","description":"Deprecated: Use TMP provider fields instead. AXE segment ID to exclude from targeting.","uniqueKey":"products.items.[INDEX].targetingOverlay.axe_exclude_segment","typeLabel":"string"},"audience_include":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.audience_include.items.[INDEX]","typeLabel":"string"},"description":"Restrict delivery to members of these first-party CRM audiences. Only users present in the uploaded lists are eligible. References audience_id values from sync_audiences on the same seller account — audience IDs are not portable across sellers. Not for lookalike expansion — express that intent in the campaign brief. Seller must declare support in get_adcp_capabilities.","uniqueKey":"products.items.[INDEX].targetingOverlay.audience_include","typeLabel":"string[]"},"audience_exclude":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.audience_exclude.items.[INDEX]","typeLabel":"string"},"description":"Suppress delivery to members of these first-party CRM audiences. Matched users are excluded regardless of other targeting. References audience_id values from sync_audiences on the same seller account — audience IDs are not portable across sellers. Seller must declare support in get_adcp_capabilities.","uniqueKey":"products.items.[INDEX].targetingOverlay.audience_exclude","typeLabel":"string[]"},"signal_targeting_groups":{"type":"object","properties":{"operator":{"type":"string","enum":["all"],"description":"Groups-level operator. Required even though v1 only supports 'all': every child group must be satisfied.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.signal_targeting_groups.operator","typeLabel":"enum\u003cstring>"},"groups":{"minItems":1,"type":"array","items":{"type":"object","properties":{"operator":{"type":"string","enum":["any","none"],"description":"How to evaluate the signals in this group. 'any' is an OR include group. 'none' is an exclusion group equivalent to NOT (A OR B OR C).","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.signal_targeting_groups.groups.items.[INDEX].operator","typeLabel":"enum\u003cstring>"},"signals":{"minItems":1,"type":"array","items":{"type":"object","description":"Buy-time selection of one seller-offered signal inside a package signal targeting group. The signal_ref uses scope 'product' for a product-local signal option, scope 'data_provider' for a signal defined in a data provider's published adagents.json signals[], or scope 'signal_source' for a source-native signal that is not published in adagents.json signals[]. The selected product's inline Product.signal_targeting_options, get_signals feed when inline options are omitted, and signal_targeting_rules define buy-time eligibility. Inclusion and exclusion are controlled by the parent group operator: use operator 'any' to include users matching the signal expression and operator 'none' to exclude users matching the signal expression. For binary signals, value MUST be true; do not use value=false for exclusion inside signal_targeting_groups. Use audience_include/audience_exclude only for buyer-managed first-party audiences registered through sync_audiences.","properties":{"pricing_option_id":{"type":"string","description":"Pricing option selected for this signal. Use the pricing_option_id from the product's signal_targeting_options entry when product-scoped pricing is present; otherwise use the seller get_signals pricing only when the product option does not override it. Required when the selected signal has pricing_options; omit only when the signal is bundled into the product price or has no incremental cost.","uniqueKey":"products.items.[INDEX].targetingOverlay.signal_targeting_groups.groups.items.[INDEX].signals.items.[INDEX].pricing_option_id","typeLabel":"string"},"signal_agent_segment_id":{"type":"string","description":"Optional opaque resolved-segment or seller execution handle for this signal. Omit when signal_ref plus the value expression is sufficient for the seller to resolve the signal. Include when the product option exposes a separate runtime or activation handle, and pass it verbatim. Buyers SHOULD prefer an exposed segment handle over reconstructing condition identity from categorical values because the handle can carry provider namespace and methodology distinctions.","uniqueKey":"products.items.[INDEX].targetingOverlay.signal_targeting_groups.groups.items.[INDEX].signals.items.[INDEX].signal_agent_segment_id","typeLabel":"string"},"activation_key":{"type":"object","description":"Destination-specific activation key returned by get_signals or activate_signal. Usually omitted for seller-offered signals selected directly through the same seller; include only when the selected signal was separately activated and the seller requires the activation key to correlate the package selection.","additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.signal_targeting_groups.groups.items.[INDEX].signals.items.[INDEX].activation_key.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.signal_targeting_groups.groups.items.[INDEX].signals.items.[INDEX].activation_key","typeLabel":"object"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.signal_targeting_groups.groups.items.[INDEX].signals.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.signal_targeting_groups.groups.items.[INDEX].signals.items.[INDEX]","typeLabel":"object"},"description":"Signal targeting entries evaluated by this group. Each entry uses the package signal targeting shape, including signal_ref, value expression, and optional pricing, execution-handle, or activation fields.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.signal_targeting_groups.groups.items.[INDEX].signals","typeLabel":"object[]"}},"required":["operator","signals"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.signal_targeting_groups.groups.items.[INDEX].additionalProperties","typeLabel":"any"},"description":"A basic Boolean group of package-level signal targeting entries. 'any' means the user must match at least one signal in the group. 'none' means the user must match none of the signals in the group. Use groups for portable include/exclude composition such as (A OR B) AND NOT (C OR D).","uniqueKey":"products.items.[INDEX].targetingOverlay.signal_targeting_groups.groups.items.[INDEX]","typeLabel":"object"},"description":"Signal targeting groups to evaluate. Use operator 'any' for include groups and 'none' for exclusion groups.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.signal_targeting_groups.groups","typeLabel":"object[]"}},"required":["operator","groups"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.signal_targeting_groups.additionalProperties","typeLabel":"any"},"description":"Basic Boolean grouping for seller-offered signals. v1 supports a required top-level operator 'all' and child groups with operator 'any' for include groups or 'none' for exclusion groups. Example semantics: group 1 any(A, B) plus group 2 none(C, D) means (A OR B) AND NOT (C OR D). Signal entries reference named signal definitions with signal_ref scope 'product' for product-local signal options or scope 'data_provider' for external signals published in adagents.json signals[]. For simple include-only targeting, send one child group with operator 'any'. Sellers SHOULD reject entries that are not available for the product through inline signal_targeting_options or get_signals, are not active for the account, or exceed the product's signal_targeting_allowed/signal_targeting_rules/product terms. Signal targeting limits are product-scoped, not declared in get_adcp_capabilities, because products may be backed by different ad servers. Sellers MUST echo applied signal_targeting_groups on the resulting package state, including fixed/default selections. Sellers MAY return REQUOTE_REQUIRED when a targeting mutation changes commercial terms.","uniqueKey":"products.items.[INDEX].targetingOverlay.signal_targeting_groups","typeLabel":"object"},"signal_targeting":{"minItems":1,"type":"array","items":{"description":"Targeting constraint for a specific signal. Uses value_type as discriminator to determine the targeting expression format.","uniqueKey":"products.items.[INDEX].targetingOverlay.signal_targeting.items.[INDEX]","typeLabel":"any"},"description":"DEPRECATED. Use signal_targeting_groups for package-level signal targeting. Legacy flat signal_targeting remains accepted during the SignalRef migration window but cannot express grouped include/exclude composition or product-scoped pricing.","uniqueKey":"products.items.[INDEX].targetingOverlay.signal_targeting","typeLabel":"any[]"},"demographics":{"oneOf":[{"type":"object","description":"Canonical age and gender audience targeting, distinct from age_restriction legal eligibility. Named dimensions compose with AND and have independent explicit unknown handling. Age determination constraints remain age-specific. Fresh create/update requests MUST compile exactly or be rejected; get_products may offer a configured alternative only with sparse targeting_resolution modifications and a distinguishable product_id. A non-null request-side demographics value replaces the entire demographics dimension, including both age and gender; retain age when changing only gender. Sellers MUST NOT silently drop, broaden, narrow, or substitute a predicate.","required":["age"],"properties":{"age":{"oneOf":[{"type":"object","description":"Must also satisfy at least one of these alternatives.","required":["min","include_unknown"],"properties":{"min":{"type":"integer","description":"Inclusive minimum age in completed years. Omit for an open lower bound.","maximum":150,"minimum":0,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.0.min","typeLabel":"integer"},"include_unknown":{"type":"boolean","description":"Whether delivery to people whose age is unavailable is part of this predicate. This field has no default and MUST be supplied.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.0.include_unknown","typeLabel":"boolean"},"max":{"type":"integer","minimum":0,"maximum":150,"description":"Inclusive maximum age in completed years. Omit for an open upper bound.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.0.max","typeLabel":"integer"},"accepted_bases":{"minItems":1,"type":"array","items":{"type":"string","enum":["verified","declared","inferred"],"description":"User-level bases that may resolve age for demographic targeting execution. Population estimates are deliberately absent because aggregate composition cannot establish an individual impression's age.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.0.accepted_bases.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.0.accepted_bases","typeLabel":"enum\u003cstring>[]"},"accepted_verification_methods":{"minItems":1,"type":"array","items":{"type":"string","enum":["facial_age_estimation","id_document","digital_id","credit_card","world_id"],"description":"Methods for verifying user age for compliance. Does not include 'inferred' as it is not accepted for regulatory compliance.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.0.accepted_verification_methods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.0.accepted_verification_methods","typeLabel":"enum\u003cstring>[]"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.0.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.0","typeLabel":"object"},{"type":"object","description":"Must also satisfy at least one of these alternatives.","required":["accepted_verification_methods","accepted_bases","min","include_unknown"],"properties":{"min":{"type":"integer","description":"Inclusive minimum age in completed years. Omit for an open lower bound.","maximum":150,"minimum":0,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.1.min","typeLabel":"integer"},"include_unknown":{"type":"boolean","description":"Whether delivery to people whose age is unavailable is part of this predicate. This field has no default and MUST be supplied.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.1.include_unknown","typeLabel":"boolean"},"accepted_bases":{"type":"array","items":{"type":"string","enum":["verified","declared","inferred"],"description":"User-level bases that may resolve age for demographic targeting execution. Population estimates are deliberately absent because aggregate composition cannot establish an individual impression's age.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.1.accepted_bases.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.","minItems":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.1.accepted_bases","typeLabel":"enum\u003cstring>[]"},"accepted_verification_methods":{"type":"array","items":{"type":"string","enum":["facial_age_estimation","id_document","digital_id","credit_card","world_id"],"description":"Methods for verifying user age for compliance. Does not include 'inferred' as it is not accepted for regulatory compliance.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.1.accepted_verification_methods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.","minItems":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.1.accepted_verification_methods","typeLabel":"enum\u003cstring>[]"},"max":{"type":"integer","minimum":0,"maximum":150,"description":"Inclusive maximum age in completed years. Omit for an open upper bound.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.1.max","typeLabel":"integer"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.1.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.1","typeLabel":"object"},{"type":"object","description":"Must also satisfy at least one of these alternatives.","required":["max","include_unknown"],"properties":{"max":{"type":"integer","description":"Inclusive maximum age in completed years. Omit for an open upper bound.","maximum":150,"minimum":0,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.2.max","typeLabel":"integer"},"include_unknown":{"type":"boolean","description":"Whether delivery to people whose age is unavailable is part of this predicate. This field has no default and MUST be supplied.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.2.include_unknown","typeLabel":"boolean"},"min":{"type":"integer","minimum":0,"maximum":150,"description":"Inclusive minimum age in completed years. Omit for an open lower bound.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.2.min","typeLabel":"integer"},"accepted_bases":{"minItems":1,"type":"array","items":{"type":"string","enum":["verified","declared","inferred"],"description":"User-level bases that may resolve age for demographic targeting execution. Population estimates are deliberately absent because aggregate composition cannot establish an individual impression's age.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.2.accepted_bases.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.2.accepted_bases","typeLabel":"enum\u003cstring>[]"},"accepted_verification_methods":{"minItems":1,"type":"array","items":{"type":"string","enum":["facial_age_estimation","id_document","digital_id","credit_card","world_id"],"description":"Methods for verifying user age for compliance. Does not include 'inferred' as it is not accepted for regulatory compliance.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.2.accepted_verification_methods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.2.accepted_verification_methods","typeLabel":"enum\u003cstring>[]"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.2.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.2","typeLabel":"object"},{"type":"object","description":"Must also satisfy at least one of these alternatives.","required":["accepted_verification_methods","accepted_bases","max","include_unknown"],"properties":{"max":{"type":"integer","description":"Inclusive maximum age in completed years. Omit for an open upper bound.","maximum":150,"minimum":0,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.3.max","typeLabel":"integer"},"include_unknown":{"type":"boolean","description":"Whether delivery to people whose age is unavailable is part of this predicate. This field has no default and MUST be supplied.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.3.include_unknown","typeLabel":"boolean"},"accepted_bases":{"type":"array","items":{"type":"string","enum":["verified","declared","inferred"],"description":"User-level bases that may resolve age for demographic targeting execution. Population estimates are deliberately absent because aggregate composition cannot establish an individual impression's age.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.3.accepted_bases.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.","minItems":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.3.accepted_bases","typeLabel":"enum\u003cstring>[]"},"accepted_verification_methods":{"type":"array","items":{"type":"string","enum":["facial_age_estimation","id_document","digital_id","credit_card","world_id"],"description":"Methods for verifying user age for compliance. Does not include 'inferred' as it is not accepted for regulatory compliance.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.3.accepted_verification_methods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.","minItems":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.3.accepted_verification_methods","typeLabel":"enum\u003cstring>[]"},"min":{"type":"integer","minimum":0,"maximum":150,"description":"Inclusive minimum age in completed years. Omit for an open lower bound.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.3.min","typeLabel":"integer"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.3.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.age","typeLabel":"object"},"gender":{"type":"object","properties":{"values":{"minItems":1,"type":"array","items":{"type":"string","enum":["female","male","non_binary"],"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.gender.values.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Nonempty set of selected gender categories. Sellers MUST execute every selected category exactly or reject the request.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.gender.values","typeLabel":"enum\u003cstring>[]"},"include_unknown":{"type":"boolean","description":"Include unstated/unknown gender: unavailable or explicitly withheld (prefer not to say). Required; no default. Independent of unknown age; known categories outside values are excluded.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.gender.include_unknown","typeLabel":"boolean"}},"required":["values","include_unknown"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.gender.additionalProperties","typeLabel":"any"},"description":"Experimental in AdCP 3.3 (media_buy.gender_targeting). AdCP 3.2 core remains age-only.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.gender","typeLabel":"object"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.0","typeLabel":"object"},{"type":"object","description":"Canonical age and gender audience targeting, distinct from age_restriction legal eligibility. Named dimensions compose with AND and have independent explicit unknown handling. Age determination constraints remain age-specific. Fresh create/update requests MUST compile exactly or be rejected; get_products may offer a configured alternative only with sparse targeting_resolution modifications and a distinguishable product_id. A non-null request-side demographics value replaces the entire demographics dimension, including both age and gender; retain age when changing only gender. Sellers MUST NOT silently drop, broaden, narrow, or substitute a predicate.","required":["gender"],"properties":{"gender":{"type":"object","description":"Experimental in AdCP 3.3 (media_buy.gender_targeting). AdCP 3.2 core remains age-only.","required":["values","include_unknown"],"properties":{"values":{"minItems":1,"type":"array","items":{"type":"string","enum":["female","male","non_binary"],"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.gender.values.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Nonempty set of selected gender categories. Sellers MUST execute every selected category exactly or reject the request.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.gender.values","typeLabel":"enum\u003cstring>[]"},"include_unknown":{"type":"boolean","description":"Include unstated/unknown gender: unavailable or explicitly withheld (prefer not to say). Required; no default. Independent of unknown age; known categories outside values are excluded.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.gender.include_unknown","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.gender.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.gender","typeLabel":"object"},"age":{"oneOf":[{"type":"object","description":"Must also satisfy at least one of these alternatives.","required":["min","include_unknown"],"properties":{"min":{"type":"integer","description":"Inclusive minimum age in completed years. Omit for an open lower bound.","maximum":150,"minimum":0,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.0.min","typeLabel":"integer"},"include_unknown":{"type":"boolean","description":"Whether delivery to people whose age is unavailable is part of this predicate. This field has no default and MUST be supplied.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.0.include_unknown","typeLabel":"boolean"},"max":{"type":"integer","minimum":0,"maximum":150,"description":"Inclusive maximum age in completed years. Omit for an open upper bound.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.0.max","typeLabel":"integer"},"accepted_bases":{"minItems":1,"type":"array","items":{"type":"string","enum":["verified","declared","inferred"],"description":"User-level bases that may resolve age for demographic targeting execution. Population estimates are deliberately absent because aggregate composition cannot establish an individual impression's age.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.0.accepted_bases.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.0.accepted_bases","typeLabel":"enum\u003cstring>[]"},"accepted_verification_methods":{"minItems":1,"type":"array","items":{"type":"string","enum":["facial_age_estimation","id_document","digital_id","credit_card","world_id"],"description":"Methods for verifying user age for compliance. Does not include 'inferred' as it is not accepted for regulatory compliance.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.0.accepted_verification_methods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.0.accepted_verification_methods","typeLabel":"enum\u003cstring>[]"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.0.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.0","typeLabel":"object"},{"type":"object","description":"Must also satisfy at least one of these alternatives.","required":["accepted_verification_methods","accepted_bases","min","include_unknown"],"properties":{"min":{"type":"integer","description":"Inclusive minimum age in completed years. Omit for an open lower bound.","maximum":150,"minimum":0,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.1.min","typeLabel":"integer"},"include_unknown":{"type":"boolean","description":"Whether delivery to people whose age is unavailable is part of this predicate. This field has no default and MUST be supplied.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.1.include_unknown","typeLabel":"boolean"},"accepted_bases":{"type":"array","items":{"type":"string","enum":["verified","declared","inferred"],"description":"User-level bases that may resolve age for demographic targeting execution. Population estimates are deliberately absent because aggregate composition cannot establish an individual impression's age.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.1.accepted_bases.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.","minItems":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.1.accepted_bases","typeLabel":"enum\u003cstring>[]"},"accepted_verification_methods":{"type":"array","items":{"type":"string","enum":["facial_age_estimation","id_document","digital_id","credit_card","world_id"],"description":"Methods for verifying user age for compliance. Does not include 'inferred' as it is not accepted for regulatory compliance.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.1.accepted_verification_methods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.","minItems":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.1.accepted_verification_methods","typeLabel":"enum\u003cstring>[]"},"max":{"type":"integer","minimum":0,"maximum":150,"description":"Inclusive maximum age in completed years. Omit for an open upper bound.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.1.max","typeLabel":"integer"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.1.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.1","typeLabel":"object"},{"type":"object","description":"Must also satisfy at least one of these alternatives.","required":["max","include_unknown"],"properties":{"max":{"type":"integer","description":"Inclusive maximum age in completed years. Omit for an open upper bound.","maximum":150,"minimum":0,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.2.max","typeLabel":"integer"},"include_unknown":{"type":"boolean","description":"Whether delivery to people whose age is unavailable is part of this predicate. This field has no default and MUST be supplied.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.2.include_unknown","typeLabel":"boolean"},"min":{"type":"integer","minimum":0,"maximum":150,"description":"Inclusive minimum age in completed years. Omit for an open lower bound.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.2.min","typeLabel":"integer"},"accepted_bases":{"minItems":1,"type":"array","items":{"type":"string","enum":["verified","declared","inferred"],"description":"User-level bases that may resolve age for demographic targeting execution. Population estimates are deliberately absent because aggregate composition cannot establish an individual impression's age.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.2.accepted_bases.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.2.accepted_bases","typeLabel":"enum\u003cstring>[]"},"accepted_verification_methods":{"minItems":1,"type":"array","items":{"type":"string","enum":["facial_age_estimation","id_document","digital_id","credit_card","world_id"],"description":"Methods for verifying user age for compliance. Does not include 'inferred' as it is not accepted for regulatory compliance.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.2.accepted_verification_methods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.2.accepted_verification_methods","typeLabel":"enum\u003cstring>[]"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.2.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.2","typeLabel":"object"},{"type":"object","description":"Must also satisfy at least one of these alternatives.","required":["accepted_verification_methods","accepted_bases","max","include_unknown"],"properties":{"max":{"type":"integer","description":"Inclusive maximum age in completed years. Omit for an open upper bound.","maximum":150,"minimum":0,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.3.max","typeLabel":"integer"},"include_unknown":{"type":"boolean","description":"Whether delivery to people whose age is unavailable is part of this predicate. This field has no default and MUST be supplied.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.3.include_unknown","typeLabel":"boolean"},"accepted_bases":{"type":"array","items":{"type":"string","enum":["verified","declared","inferred"],"description":"User-level bases that may resolve age for demographic targeting execution. Population estimates are deliberately absent because aggregate composition cannot establish an individual impression's age.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.3.accepted_bases.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"User-level age determination bases the buyer permits for this predicate. Sellers MUST use only these bases or reject the request; they MUST NOT silently fall back to another basis. When omitted, the buyer imposes no determination-basis constraint beyond product capability and any age_restriction. population_estimate is structurally unavailable because aggregate evidence cannot identify an eligible user.","minItems":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.3.accepted_bases","typeLabel":"enum\u003cstring>[]"},"accepted_verification_methods":{"type":"array","items":{"type":"string","enum":["facial_age_estimation","id_document","digital_id","credit_card","world_id"],"description":"Methods for verifying user age for compliance. Does not include 'inferred' as it is not accepted for regulatory compliance.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.3.accepted_verification_methods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Verification methods acceptable when verified is an accepted basis. This field narrows verified demographic execution; age_restriction.accepted_methods independently governs legal eligibility and the two sets are intersected when both are present.","minItems":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.3.accepted_verification_methods","typeLabel":"enum\u003cstring>[]"},"min":{"type":"integer","minimum":0,"maximum":150,"description":"Inclusive minimum age in completed years. Omit for an open lower bound.","uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.3.min","typeLabel":"integer"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.3.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age.oneOf.3","typeLabel":"object"}],"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.age","typeLabel":"object"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics.oneOf.1","typeLabel":"object"}],"uniqueKey":"products.items.[INDEX].targetingOverlay.demographics","typeLabel":"object"},"frequency_cap":{"oneOf":[{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["suppress"],"properties":{"suppress":{"type":"object","description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.0.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.0.suppress.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.0.suppress","typeLabel":"object"},"suppress_minutes":{"type":"number","minimum":0,"description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.0.suppress_minutes","typeLabel":"number"},"max_impressions":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.0.max_impressions","typeLabel":"integer"},"per":{"type":"string","enum":["individuals","households","devices","accounts","cookies","custom"],"description":"Entity granularity for impression counting. Required when max_impressions is set.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.0.per","typeLabel":"enum\u003cstring>"},"window":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.0.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.0.window.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.0.window","typeLabel":"object"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.0.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.0","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["window","max_impressions","suppress"],"properties":{"suppress":{"type":"object","description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.1.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.1.suppress.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.1.suppress","typeLabel":"object"},"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.1.max_impressions","typeLabel":"integer"},"window":{"type":"object","description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.1.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.1.window.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.1.window","typeLabel":"object"},"suppress_minutes":{"type":"number","minimum":0,"description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.1.suppress_minutes","typeLabel":"number"},"per":{"type":"string","enum":["individuals","households","devices","accounts","cookies","custom"],"description":"Entity granularity for impression counting. Required when max_impressions is set.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.1.per","typeLabel":"enum\u003cstring>"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.1.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.1","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["per","max_impressions","suppress"],"properties":{"suppress":{"type":"object","description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.2.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.2.suppress.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.2.suppress","typeLabel":"object"},"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.2.max_impressions","typeLabel":"integer"},"per":{"type":"string","description":"Entity granularity for impression counting. Required when max_impressions is set.","enum":["individuals","households","devices","accounts","cookies","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.2.per","typeLabel":"enum\u003cstring>"},"suppress_minutes":{"type":"number","minimum":0,"description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.2.suppress_minutes","typeLabel":"number"},"window":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.2.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.2.window.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.2.window","typeLabel":"object"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.2.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.2","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["window","max_impressions","per","suppress"],"properties":{"suppress":{"type":"object","description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.3.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.3.suppress.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.3.suppress","typeLabel":"object"},"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.3.max_impressions","typeLabel":"integer"},"per":{"type":"string","description":"Entity granularity for impression counting. Required when max_impressions is set.","enum":["individuals","households","devices","accounts","cookies","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.3.per","typeLabel":"enum\u003cstring>"},"window":{"type":"object","description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.3.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.3.window.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.3.window","typeLabel":"object"},"suppress_minutes":{"type":"number","minimum":0,"description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.3.suppress_minutes","typeLabel":"number"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.3.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.3","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["max_impressions","per","window","suppress"],"properties":{"suppress":{"type":"object","description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.4.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.4.suppress.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.4.suppress","typeLabel":"object"},"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.4.max_impressions","typeLabel":"integer"},"per":{"type":"string","description":"Entity granularity for impression counting. Required when max_impressions is set.","enum":["individuals","households","devices","accounts","cookies","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.4.per","typeLabel":"enum\u003cstring>"},"window":{"type":"object","description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.4.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.4.window.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.4.window","typeLabel":"object"},"suppress_minutes":{"type":"number","minimum":0,"description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.4.suppress_minutes","typeLabel":"number"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.4.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.4","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["window","max_impressions","per","suppress"],"properties":{"suppress":{"type":"object","description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.5.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.5.suppress.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.5.suppress","typeLabel":"object"},"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.5.max_impressions","typeLabel":"integer"},"per":{"type":"string","description":"Entity granularity for impression counting. Required when max_impressions is set.","enum":["individuals","households","devices","accounts","cookies","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.5.per","typeLabel":"enum\u003cstring>"},"window":{"type":"object","description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.5.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.5.window.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.5.window","typeLabel":"object"},"suppress_minutes":{"type":"number","minimum":0,"description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.5.suppress_minutes","typeLabel":"number"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.5.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.5","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["per","max_impressions","window","suppress"],"properties":{"suppress":{"type":"object","description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.6.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.6.suppress.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.6.suppress","typeLabel":"object"},"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.6.max_impressions","typeLabel":"integer"},"per":{"type":"string","description":"Entity granularity for impression counting. Required when max_impressions is set.","enum":["individuals","households","devices","accounts","cookies","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.6.per","typeLabel":"enum\u003cstring>"},"window":{"type":"object","description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.6.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.6.window.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.6.window","typeLabel":"object"},"suppress_minutes":{"type":"number","minimum":0,"description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.6.suppress_minutes","typeLabel":"number"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.6.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.6","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["window","max_impressions","per","suppress"],"properties":{"suppress":{"type":"object","description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.7.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.7.suppress.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.7.suppress","typeLabel":"object"},"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.7.max_impressions","typeLabel":"integer"},"per":{"type":"string","description":"Entity granularity for impression counting. Required when max_impressions is set.","enum":["individuals","households","devices","accounts","cookies","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.7.per","typeLabel":"enum\u003cstring>"},"window":{"type":"object","description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.7.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.7.window.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.7.window","typeLabel":"object"},"suppress_minutes":{"type":"number","minimum":0,"description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.7.suppress_minutes","typeLabel":"number"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.7.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.7","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["suppress_minutes"],"properties":{"suppress_minutes":{"type":"number","description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","minimum":0,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.8.suppress_minutes","typeLabel":"number"},"suppress":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.8.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.8.suppress.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.8.suppress","typeLabel":"object"},"max_impressions":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.8.max_impressions","typeLabel":"integer"},"per":{"type":"string","enum":["individuals","households","devices","accounts","cookies","custom"],"description":"Entity granularity for impression counting. Required when max_impressions is set.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.8.per","typeLabel":"enum\u003cstring>"},"window":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.8.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.8.window.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.8.window","typeLabel":"object"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.8.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.8","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["window","max_impressions","suppress_minutes"],"properties":{"suppress_minutes":{"type":"number","description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","minimum":0,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.9.suppress_minutes","typeLabel":"number"},"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.9.max_impressions","typeLabel":"integer"},"window":{"type":"object","description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.9.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.9.window.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.9.window","typeLabel":"object"},"suppress":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.9.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.9.suppress.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.9.suppress","typeLabel":"object"},"per":{"type":"string","enum":["individuals","households","devices","accounts","cookies","custom"],"description":"Entity granularity for impression counting. Required when max_impressions is set.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.9.per","typeLabel":"enum\u003cstring>"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.9.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.9","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["per","max_impressions","suppress_minutes"],"properties":{"suppress_minutes":{"type":"number","description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","minimum":0,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.10.suppress_minutes","typeLabel":"number"},"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.10.max_impressions","typeLabel":"integer"},"per":{"type":"string","description":"Entity granularity for impression counting. Required when max_impressions is set.","enum":["individuals","households","devices","accounts","cookies","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.10.per","typeLabel":"enum\u003cstring>"},"suppress":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.10.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.10.suppress.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.10.suppress","typeLabel":"object"},"window":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.10.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.10.window.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.10.window","typeLabel":"object"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.10.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.10","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["window","max_impressions","per","suppress_minutes"],"properties":{"suppress_minutes":{"type":"number","description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","minimum":0,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.11.suppress_minutes","typeLabel":"number"},"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.11.max_impressions","typeLabel":"integer"},"per":{"type":"string","description":"Entity granularity for impression counting. Required when max_impressions is set.","enum":["individuals","households","devices","accounts","cookies","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.11.per","typeLabel":"enum\u003cstring>"},"window":{"type":"object","description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.11.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.11.window.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.11.window","typeLabel":"object"},"suppress":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.11.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.11.suppress.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.11.suppress","typeLabel":"object"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.11.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.11","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["max_impressions","per","window","suppress_minutes"],"properties":{"suppress_minutes":{"type":"number","description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","minimum":0,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.12.suppress_minutes","typeLabel":"number"},"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.12.max_impressions","typeLabel":"integer"},"per":{"type":"string","description":"Entity granularity for impression counting. Required when max_impressions is set.","enum":["individuals","households","devices","accounts","cookies","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.12.per","typeLabel":"enum\u003cstring>"},"window":{"type":"object","description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.12.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.12.window.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.12.window","typeLabel":"object"},"suppress":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.12.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.12.suppress.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.12.suppress","typeLabel":"object"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.12.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.12","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["window","max_impressions","per","suppress_minutes"],"properties":{"suppress_minutes":{"type":"number","description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","minimum":0,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.13.suppress_minutes","typeLabel":"number"},"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.13.max_impressions","typeLabel":"integer"},"per":{"type":"string","description":"Entity granularity for impression counting. Required when max_impressions is set.","enum":["individuals","households","devices","accounts","cookies","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.13.per","typeLabel":"enum\u003cstring>"},"window":{"type":"object","description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.13.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.13.window.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.13.window","typeLabel":"object"},"suppress":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.13.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.13.suppress.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.13.suppress","typeLabel":"object"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.13.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.13","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["per","max_impressions","window","suppress_minutes"],"properties":{"suppress_minutes":{"type":"number","description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","minimum":0,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.14.suppress_minutes","typeLabel":"number"},"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.14.max_impressions","typeLabel":"integer"},"per":{"type":"string","description":"Entity granularity for impression counting. Required when max_impressions is set.","enum":["individuals","households","devices","accounts","cookies","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.14.per","typeLabel":"enum\u003cstring>"},"window":{"type":"object","description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.14.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.14.window.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.14.window","typeLabel":"object"},"suppress":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.14.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.14.suppress.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.14.suppress","typeLabel":"object"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.14.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.14","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["window","max_impressions","per","suppress_minutes"],"properties":{"suppress_minutes":{"type":"number","description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","minimum":0,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.15.suppress_minutes","typeLabel":"number"},"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.15.max_impressions","typeLabel":"integer"},"per":{"type":"string","description":"Entity granularity for impression counting. Required when max_impressions is set.","enum":["individuals","households","devices","accounts","cookies","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.15.per","typeLabel":"enum\u003cstring>"},"window":{"type":"object","description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.15.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.15.window.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.15.window","typeLabel":"object"},"suppress":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.15.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.15.suppress.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.15.suppress","typeLabel":"object"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.15.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.15","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["max_impressions"],"properties":{"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.16.max_impressions","typeLabel":"integer"},"suppress":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.16.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.16.suppress.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.16.suppress","typeLabel":"object"},"suppress_minutes":{"type":"number","minimum":0,"description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.16.suppress_minutes","typeLabel":"number"},"per":{"type":"string","enum":["individuals","households","devices","accounts","cookies","custom"],"description":"Entity granularity for impression counting. Required when max_impressions is set.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.16.per","typeLabel":"enum\u003cstring>"},"window":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.16.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.16.window.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.16.window","typeLabel":"object"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.16.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.16","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["window","max_impressions"],"properties":{"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.17.max_impressions","typeLabel":"integer"},"window":{"type":"object","description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.17.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.17.window.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.17.window","typeLabel":"object"},"suppress":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.17.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.17.suppress.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.17.suppress","typeLabel":"object"},"suppress_minutes":{"type":"number","minimum":0,"description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.17.suppress_minutes","typeLabel":"number"},"per":{"type":"string","enum":["individuals","households","devices","accounts","cookies","custom"],"description":"Entity granularity for impression counting. Required when max_impressions is set.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.17.per","typeLabel":"enum\u003cstring>"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.17.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.17","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["per","max_impressions"],"properties":{"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.18.max_impressions","typeLabel":"integer"},"per":{"type":"string","description":"Entity granularity for impression counting. Required when max_impressions is set.","enum":["individuals","households","devices","accounts","cookies","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.18.per","typeLabel":"enum\u003cstring>"},"suppress":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.18.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.18.suppress.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.18.suppress","typeLabel":"object"},"suppress_minutes":{"type":"number","minimum":0,"description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.18.suppress_minutes","typeLabel":"number"},"window":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.18.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.18.window.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.18.window","typeLabel":"object"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.18.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.18","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["window","max_impressions","per"],"properties":{"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.19.max_impressions","typeLabel":"integer"},"per":{"type":"string","description":"Entity granularity for impression counting. Required when max_impressions is set.","enum":["individuals","households","devices","accounts","cookies","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.19.per","typeLabel":"enum\u003cstring>"},"window":{"type":"object","description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.19.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.19.window.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.19.window","typeLabel":"object"},"suppress":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.19.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.19.suppress.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.19.suppress","typeLabel":"object"},"suppress_minutes":{"type":"number","minimum":0,"description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.19.suppress_minutes","typeLabel":"number"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.19.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.19","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["max_impressions","per","window"],"properties":{"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.20.max_impressions","typeLabel":"integer"},"per":{"type":"string","description":"Entity granularity for impression counting. Required when max_impressions is set.","enum":["individuals","households","devices","accounts","cookies","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.20.per","typeLabel":"enum\u003cstring>"},"window":{"type":"object","description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.20.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.20.window.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.20.window","typeLabel":"object"},"suppress":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.20.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.20.suppress.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.20.suppress","typeLabel":"object"},"suppress_minutes":{"type":"number","minimum":0,"description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.20.suppress_minutes","typeLabel":"number"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.20.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.20","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["window","max_impressions","per"],"properties":{"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.21.max_impressions","typeLabel":"integer"},"per":{"type":"string","description":"Entity granularity for impression counting. Required when max_impressions is set.","enum":["individuals","households","devices","accounts","cookies","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.21.per","typeLabel":"enum\u003cstring>"},"window":{"type":"object","description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.21.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.21.window.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.21.window","typeLabel":"object"},"suppress":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.21.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.21.suppress.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.21.suppress","typeLabel":"object"},"suppress_minutes":{"type":"number","minimum":0,"description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.21.suppress_minutes","typeLabel":"number"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.21.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.21","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["per","max_impressions","window"],"properties":{"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.22.max_impressions","typeLabel":"integer"},"per":{"type":"string","description":"Entity granularity for impression counting. Required when max_impressions is set.","enum":["individuals","households","devices","accounts","cookies","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.22.per","typeLabel":"enum\u003cstring>"},"window":{"type":"object","description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.22.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.22.window.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.22.window","typeLabel":"object"},"suppress":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.22.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.22.suppress.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.22.suppress","typeLabel":"object"},"suppress_minutes":{"type":"number","minimum":0,"description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.22.suppress_minutes","typeLabel":"number"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.22.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.22","typeLabel":"object"},{"type":"object","description":"Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set. Field location determines scope; this value has no scope discriminator. The MediaBuy root uses the narrower media-buy-frequency-cap schema, which permits maximum impressions only in 3.2.","required":["window","max_impressions","per"],"properties":{"max_impressions":{"type":"integer","description":"Maximum number of impressions per entity per window. For duration windows, implementations typically use a rolling window. campaign applies across the owning field's full flight: the package flight for a targeting overlay, or the MediaBuy flight for a root cap.","maximum":9007199254740991,"minimum":1,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.23.max_impressions","typeLabel":"integer"},"per":{"type":"string","description":"Entity granularity for impression counting. Required when max_impressions is set.","enum":["individuals","households","devices","accounts","cookies","custom"],"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.23.per","typeLabel":"enum\u003cstring>"},"window":{"type":"object","description":"Time window for the max_impressions cap (e.g. {\"interval\": 7, \"unit\": \"days\"} or {\"interval\": 1, \"unit\": \"campaign\"} for the full flight). Required when max_impressions is set.","required":["interval","unit"],"properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.23.window.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.23.window.unit","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.23.window","typeLabel":"object"},"suppress":{"type":"object","properties":{"interval":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of time units. Must be 1 when unit is 'campaign'.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.23.suppress.interval","typeLabel":"integer"},"unit":{"type":"string","enum":["seconds","minutes","hours","days","campaign"],"description":"Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.23.suppress.unit","typeLabel":"enum\u003cstring>"}},"required":["interval","unit"],"additionalProperties":false,"description":"Cooldown period between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g. {\"interval\": 60, \"unit\": \"minutes\"} for a 1-hour cooldown). Preferred over suppress_minutes.","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.23.suppress","typeLabel":"object"},"suppress_minutes":{"type":"number","minimum":0,"description":"Deprecated — use suppress instead. Cooldown period in minutes between consecutive exposures to the same entity (e.g. 60 for a 1-hour cooldown).","uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.23.suppress_minutes","typeLabel":"number"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.23.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap.oneOf.23","typeLabel":"object"}],"uniqueKey":"products.items.[INDEX].targetingOverlay.frequency_cap","typeLabel":"object"},"property_list":{"type":"object","properties":{"agent_url":{"type":"string","description":"AdCP task endpoint of the agent exposing get_property_list. Receivers MUST support resolution over MCP; another advertised AdCP task transport MAY be used by agreement. This is not a base URL for an inferred /lists/{list_id} HTTP path.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.property_list.agent_url","typeLabel":"string"},"list_id":{"type":"string","minLength":1,"description":"Identifier for the property list within the agent","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.property_list.list_id","typeLabel":"string"},"auth_token":{"type":"string","description":"Bearer credential authorizing read-only get_property_list access to this list_id, including every pagination request. When supplied, the managing agent MUST accept it instead of its normal credentials, without requiring the recipient to have an account. It MUST NOT grant access to other lists or mutations. Omit for a public list or independently authorized receiver. Deliver this credential to the intended receiver inside the reference, including in seller task arguments. When authenticating get_property_list requests to the managing agent, send it only in the Authorization header, never in those task arguments or a URL.","uniqueKey":"products.items.[INDEX].targetingOverlay.property_list.auth_token","typeLabel":"string"}},"required":["agent_url","list_id"],"additionalProperties":false,"description":"Reference to a property list for targeting specific properties within this product. The package runs on the intersection of the product's publisher_properties and this list. Sellers SHOULD return a validation error if the product has property_targeting_allowed: false. On an undisclosed roster (empty publisher_properties) a seller MAY accept it and runs only on the properties it matches.","uniqueKey":"products.items.[INDEX].targetingOverlay.property_list","typeLabel":"object"},"property_list_exclude":{"type":"object","properties":{"agent_url":{"type":"string","description":"AdCP task endpoint of the agent exposing get_property_list. Receivers MUST support resolution over MCP; another advertised AdCP task transport MAY be used by agreement. This is not a base URL for an inferred /lists/{list_id} HTTP path.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.property_list_exclude.agent_url","typeLabel":"string"},"list_id":{"type":"string","minLength":1,"description":"Identifier for the property list within the agent","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.property_list_exclude.list_id","typeLabel":"string"},"auth_token":{"type":"string","description":"Bearer credential authorizing read-only get_property_list access to this list_id, including every pagination request. When supplied, the managing agent MUST accept it instead of its normal credentials, without requiring the recipient to have an account. It MUST NOT grant access to other lists or mutations. Omit for a public list or independently authorized receiver. Deliver this credential to the intended receiver inside the reference, including in seller task arguments. When authenticating get_property_list requests to the managing agent, send it only in the Authorization header, never in those task arguments or a URL.","uniqueKey":"products.items.[INDEX].targetingOverlay.property_list_exclude.auth_token","typeLabel":"string"}},"required":["agent_url","list_id"],"additionalProperties":false,"description":"Reference to a property list whose properties must not carry the buyer's ads. Matched properties are removed from delivery. Use for brand-safety do-not-run lists (apps, sites). Exclude wins on overlap with property_list, and applies regardless of the product's property_targeting_allowed flag. Seller must declare support in get_adcp_capabilities. On an undisclosed roster (empty publisher_properties) a seller MAY accept it and MUST then apply it against its full internal roster; a seller that cannot rejects it with UNSUPPORTED_FEATURE.","uniqueKey":"products.items.[INDEX].targetingOverlay.property_list_exclude","typeLabel":"object"},"collection_list":{"type":"object","properties":{"agent_url":{"type":"string","description":"URL of the agent managing the collection list","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.collection_list.agent_url","typeLabel":"string"},"list_id":{"type":"string","minLength":1,"description":"Identifier for the collection list within the agent","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.collection_list.list_id","typeLabel":"string"},"auth_token":{"type":"string","description":"JWT or other authorization token for accessing the list. Optional if the list is public or caller has implicit access.","uniqueKey":"products.items.[INDEX].targetingOverlay.collection_list.auth_token","typeLabel":"string"}},"required":["agent_url","list_id"],"additionalProperties":false,"description":"Reference to a collection list for including specific collections (programs, publications, channels) within this product. The package runs on the intersection of matched collections and this list. Use for inclusion-based collection targeting. Seller must declare support in get_adcp_capabilities. On an undisclosed roster (empty collections) a seller MAY accept it and runs only on the collections it matches.","uniqueKey":"products.items.[INDEX].targetingOverlay.collection_list","typeLabel":"object"},"collection_list_exclude":{"type":"object","properties":{"agent_url":{"type":"string","description":"URL of the agent managing the collection list","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.collection_list_exclude.agent_url","typeLabel":"string"},"list_id":{"type":"string","minLength":1,"description":"Identifier for the collection list within the agent","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.collection_list_exclude.list_id","typeLabel":"string"},"auth_token":{"type":"string","description":"JWT or other authorization token for accessing the list. Optional if the list is public or caller has implicit access.","uniqueKey":"products.items.[INDEX].targetingOverlay.collection_list_exclude.auth_token","typeLabel":"string"}},"required":["agent_url","list_id"],"additionalProperties":false,"description":"Reference to a collection list for excluding specific collections (programs, publications, channels) from this product. Matched collections must not carry the buyer's ads. Use for brand safety do-not-air lists. Seller must declare support in get_adcp_capabilities. On an undisclosed roster (empty collections) a seller MAY accept it and MUST then apply it against its full internal roster; a seller that cannot rejects it with UNSUPPORTED_FEATURE.","uniqueKey":"products.items.[INDEX].targetingOverlay.collection_list_exclude","typeLabel":"object"},"collection_lists":{"minItems":1,"type":"array","items":{"type":"object","properties":{"agent_url":{"type":"string","description":"URL of the agent managing the collection list","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.collection_lists.items.[INDEX].agent_url","typeLabel":"string"},"list_id":{"type":"string","minLength":1,"description":"Identifier for the collection list within the agent","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.collection_lists.items.[INDEX].list_id","typeLabel":"string"},"auth_token":{"type":"string","description":"JWT or other authorization token for accessing the list. Optional if the list is public or caller has implicit access.","uniqueKey":"products.items.[INDEX].targetingOverlay.collection_lists.items.[INDEX].auth_token","typeLabel":"string"}},"required":["agent_url","list_id"],"additionalProperties":false,"description":"Reference to an externally managed collection list. Enables passing large collection exclusion/inclusion sets without embedding them in requests. The receiving agent fetches and caches the list independently.","uniqueKey":"products.items.[INDEX].targetingOverlay.collection_lists.items.[INDEX]","typeLabel":"object"},"description":"Experimental. Several collection_list refs: intersection. Not with collection_list. Over max_references is rejected, never truncated. On an undisclosed roster a seller MAY accept them.","uniqueKey":"products.items.[INDEX].targetingOverlay.collection_lists","typeLabel":"object[]"},"collection_lists_exclude":{"minItems":1,"type":"array","items":{"type":"object","properties":{"agent_url":{"type":"string","description":"URL of the agent managing the collection list","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.collection_lists_exclude.items.[INDEX].agent_url","typeLabel":"string"},"list_id":{"type":"string","minLength":1,"description":"Identifier for the collection list within the agent","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.collection_lists_exclude.items.[INDEX].list_id","typeLabel":"string"},"auth_token":{"type":"string","description":"JWT or other authorization token for accessing the list. Optional if the list is public or caller has implicit access.","uniqueKey":"products.items.[INDEX].targetingOverlay.collection_lists_exclude.items.[INDEX].auth_token","typeLabel":"string"}},"required":["agent_url","list_id"],"additionalProperties":false,"description":"Reference to an externally managed collection list. Enables passing large collection exclusion/inclusion sets without embedding them in requests. The receiving agent fetches and caches the list independently.","uniqueKey":"products.items.[INDEX].targetingOverlay.collection_lists_exclude.items.[INDEX]","typeLabel":"object"},"description":"Experimental. Several collection_list_exclude refs: union. Not with collection_list_exclude. Over max_references is rejected, never truncated. On an undisclosed roster the same rule as collection_list_exclude applies.","uniqueKey":"products.items.[INDEX].targetingOverlay.collection_lists_exclude","typeLabel":"object[]"},"placement_selection":{"type":"object","description":"Purchased placement selection within the product. This constrains package inventory; it is distinct from creative_assignments[].placement_refs, which only route individual creatives within the purchased set. On create, mode selected supplies the complete selected set and mode default uses the product default. In request-side Targeting Input, a non-null value replaces this dimension, omission preserves or inherits it, and null clears it when the product permits that broader inventory set.","additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.placement_selection.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.placement_selection","typeLabel":"object"},"collection_selection":{"type":"object","description":"Purchased collection selection within the product. On create, mode selected supplies the complete selected set and mode default uses the product's full bundle. On package readback this is the committed selection sellers MUST echo as concrete selectors, materializing any collection_list composition; collection_list fields remain the buyer-managed list mechanism. In request-side Targeting Input, a non-null value replaces this dimension, omission preserves or inherits it, and null clears it when the product permits that broader inventory set.","additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.collection_selection.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.collection_selection","typeLabel":"object"},"age_restriction":{"type":"object","properties":{"min":{"type":"integer","minimum":13,"maximum":99,"description":"Minimum age required","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.age_restriction.min","typeLabel":"integer"},"verification_required":{"default":false,"description":"Whether verified age (not inferred) is required for compliance","type":"boolean","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.age_restriction.verification_required","typeLabel":"boolean"},"accepted_methods":{"minItems":1,"type":"array","items":{"type":"string","enum":["facial_age_estimation","id_document","digital_id","credit_card","world_id"],"description":"Methods for verifying user age for compliance. Does not include 'inferred' as it is not accepted for regulatory compliance.","uniqueKey":"products.items.[INDEX].targetingOverlay.age_restriction.accepted_methods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Accepted verification methods. If omitted, any method the platform supports is acceptable.","uniqueKey":"products.items.[INDEX].targetingOverlay.age_restriction.accepted_methods","typeLabel":"enum\u003cstring>[]"}},"required":["min","verification_required"],"additionalProperties":false,"description":"Age restriction for compliance. Use for legal requirements (alcohol, gambling), not audience targeting.","uniqueKey":"products.items.[INDEX].targetingOverlay.age_restriction","typeLabel":"object"},"device_platform":{"minItems":1,"type":"array","items":{"type":"string","enum":["ios","android","windows","macos","linux","chromeos","tvos","tizen","webos","fire_os","roku_os","unknown"],"description":"Operating system platforms for device targeting. Browser values from Sec-CH-UA-Platform standard, extended for CTV.","uniqueKey":"products.items.[INDEX].targetingOverlay.device_platform.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Restrict to specific platforms. Use for technical compatibility (app only works on iOS). Values from Sec-CH-UA-Platform standard, extended for CTV.","uniqueKey":"products.items.[INDEX].targetingOverlay.device_platform","typeLabel":"enum\u003cstring>[]"},"device_platform_exclude":{"minItems":1,"type":"array","items":{"type":"string","enum":["ios","android","windows","macos","linux","chromeos","tvos","tizen","webos","fire_os","roku_os","unknown"],"description":"Operating system platforms for device targeting. Browser values from Sec-CH-UA-Platform standard, extended for CTV.","uniqueKey":"products.items.[INDEX].targetingOverlay.device_platform_exclude.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Exclude specific operating-system platforms from delivery. When a platform appears in both device_platform and device_platform_exclude, exclusion wins. Sellers MUST reject a request they cannot enforce rather than silently dropping the exclusion.","uniqueKey":"products.items.[INDEX].targetingOverlay.device_platform_exclude","typeLabel":"enum\u003cstring>[]"},"device_type":{"minItems":1,"type":"array","items":{"type":"string","enum":["desktop","mobile","tablet","ctv","dooh","unknown"],"description":"Device form factor categories for targeting and reporting. Complements device-platform (operating system) with hardware classification. OpenRTB mapping: 1 (Mobile/Tablet General) → mobile, 2 (PC) → desktop, 4 (Phone) → mobile, 5 (Tablet) → tablet, 6 (Connected Device) → ctv, 7 (Set Top Box) → ctv. DOOH inventory uses dooh.","uniqueKey":"products.items.[INDEX].targetingOverlay.device_type.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Restrict to specific device form factors. Use for campaigns targeting hardware categories rather than operating systems (e.g., mobile-only promotions, CTV campaigns).","uniqueKey":"products.items.[INDEX].targetingOverlay.device_type","typeLabel":"enum\u003cstring>[]"},"device_type_exclude":{"minItems":1,"type":"array","items":{"type":"string","enum":["desktop","mobile","tablet","ctv","dooh","unknown"],"description":"Device form factor categories for targeting and reporting. Complements device-platform (operating system) with hardware classification. OpenRTB mapping: 1 (Mobile/Tablet General) → mobile, 2 (PC) → desktop, 4 (Phone) → mobile, 5 (Tablet) → tablet, 6 (Connected Device) → ctv, 7 (Set Top Box) → ctv. DOOH inventory uses dooh.","uniqueKey":"products.items.[INDEX].targetingOverlay.device_type_exclude.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Exclude specific device form factors from delivery (e.g., exclude CTV for app-install campaigns).","uniqueKey":"products.items.[INDEX].targetingOverlay.device_type_exclude","typeLabel":"enum\u003cstring>[]"},"browser":{"minItems":1,"type":"array","items":{"type":"string","enum":["chrome","safari","firefox","edge","opera","samsung_internet","android_webview","other","unknown"],"description":"Portable browser families for targeting the impression delivery and rendering environment, not a post-click landing-page browser. Values identify browser families, not versions or seller-native browser IDs, and MUST NOT be inferred solely from operating system, device, web/mobile-web inventory, or placement. android_webview means an impression reliably classified as rendering in Android WebView. other means a seller-recognized browser family that is not explicitly enumerated; unknown means the seller cannot classify the browser into a recognized family.","uniqueKey":"products.items.[INDEX].targetingOverlay.browser.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Restrict delivery to specific canonical browser families in the impression delivery and rendering environment, not the post-click landing-page browser. Values MUST NOT be inferred solely from operating system, device, web/mobile-web inventory, or placement. Values in this array use OR semantics. When browser is supplied, families not listed are ineligible: other includes a seller-recognized family that is not explicitly enumerated, while unknown includes a browser the seller cannot classify into a recognized family. When the same family appears in browser and browser_exclude, exclusion wins. Browser and device constraints intersect; a seller that cannot enforce the exact combination MUST exclude or explicitly reconfigure the product during discovery and MUST reject it at create or update rather than silently widening delivery. Browser versions and seller-native IDs are intentionally unsupported.","uniqueKey":"products.items.[INDEX].targetingOverlay.browser","typeLabel":"enum\u003cstring>[]"},"browser_exclude":{"minItems":1,"type":"array","items":{"type":"string","enum":["chrome","safari","firefox","edge","opera","samsung_internet","android_webview","other","unknown"],"description":"Portable browser families for targeting the impression delivery and rendering environment, not a post-click landing-page browser. Values identify browser families, not versions or seller-native browser IDs, and MUST NOT be inferred solely from operating system, device, web/mobile-web inventory, or placement. android_webview means an impression reliably classified as rendering in Android WebView. other means a seller-recognized browser family that is not explicitly enumerated; unknown means the seller cannot classify the browser into a recognized family.","uniqueKey":"products.items.[INDEX].targetingOverlay.browser_exclude.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Exclude specific canonical browser families from delivery. other excludes seller-recognized families that are not explicitly enumerated; unknown excludes browsers the seller cannot classify into a recognized family. When the same family appears in browser and browser_exclude, exclusion wins. Sellers MUST reject a request they cannot enforce rather than silently dropping the exclusion.","uniqueKey":"products.items.[INDEX].targetingOverlay.browser_exclude","typeLabel":"enum\u003cstring>[]"},"store_catchments":{"minItems":1,"type":"array","items":{"type":"object","properties":{"catalog_id":{"type":"string","description":"Synced store-type catalog ID from sync_catalogs.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.store_catchments.items.[INDEX].catalog_id","typeLabel":"string"},"store_ids":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.store_catchments.items.[INDEX].store_ids.items.[INDEX]","typeLabel":"string"},"description":"Filter to specific stores within the catalog. Omit to target all stores.","uniqueKey":"products.items.[INDEX].targetingOverlay.store_catchments.items.[INDEX].store_ids","typeLabel":"string[]"},"catchment_ids":{"minItems":1,"type":"array","items":{"type":"string","uniqueKey":"products.items.[INDEX].targetingOverlay.store_catchments.items.[INDEX].catchment_ids.items.[INDEX]","typeLabel":"string"},"description":"Catchment zone IDs to target (e.g., 'walk', 'drive'). Omit to target all catchment zones.","uniqueKey":"products.items.[INDEX].targetingOverlay.store_catchments.items.[INDEX].catchment_ids","typeLabel":"string[]"}},"required":["catalog_id"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.store_catchments.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.store_catchments.items.[INDEX]","typeLabel":"object"},"description":"Target users within store catchment areas from a synced store catalog. Each entry references a store-type catalog and optionally narrows to specific stores or catchment zones.","uniqueKey":"products.items.[INDEX].targetingOverlay.store_catchments","typeLabel":"object[]"},"geo_proximity":{"minItems":1,"type":"array","items":{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90,"description":"Latitude in decimal degrees (WGS 84). Required for travel_time and radius methods.","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity.items.[INDEX].lat","typeLabel":"number"},"lng":{"type":"number","minimum":-180,"maximum":180,"description":"Longitude in decimal degrees (WGS 84). Required for travel_time and radius methods.","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity.items.[INDEX].lng","typeLabel":"number"},"label":{"type":"string","description":"Human-readable label for this entry (e.g., 'Düsseldorf', 'Heathrow Airport', 'Primary trade area').","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity.items.[INDEX].label","typeLabel":"string"},"travel_time":{"type":"object","properties":{"value":{"type":"number","minimum":1,"description":"Travel time limit.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity.items.[INDEX].travel_time.value","typeLabel":"number"},"unit":{"type":"string","enum":["min","hr"],"description":"Time unit for isochrone (travel-time catchment) calculations.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity.items.[INDEX].travel_time.unit","typeLabel":"enum\u003cstring>"}},"required":["value","unit"],"additionalProperties":false,"description":"Travel time limit for isochrone calculation. The platform resolves this to a geographic boundary based on actual transportation networks.","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity.items.[INDEX].travel_time","typeLabel":"object"},"transport_mode":{"type":"string","enum":["walking","cycling","driving","public_transport"],"description":"Transportation mode for isochrone calculation. Required when travel_time is provided.","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity.items.[INDEX].transport_mode","typeLabel":"enum\u003cstring>"},"radius":{"type":"object","properties":{"value":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Radius distance.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity.items.[INDEX].radius.value","typeLabel":"number"},"unit":{"type":"string","enum":["km","mi","m"],"description":"Distance unit.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity.items.[INDEX].radius.unit","typeLabel":"enum\u003cstring>"}},"required":["value","unit"],"additionalProperties":false,"description":"Simple radius from the point. The platform draws a circle of this distance around the coordinates.","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity.items.[INDEX].radius","typeLabel":"object"},"geometry":{"type":"object","properties":{"type":{"type":"string","enum":["Polygon","MultiPolygon"],"description":"GeoJSON geometry type.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity.items.[INDEX].geometry.type","typeLabel":"enum\u003cstring>"},"coordinates":{"type":"array","items":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity.items.[INDEX].geometry.coordinates.items.[INDEX]","typeLabel":"any"},"description":"GeoJSON coordinates array. For Polygon: array of linear rings. For MultiPolygon: array of polygons.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity.items.[INDEX].geometry.coordinates","typeLabel":"any[]"}},"required":["type","coordinates"],"additionalProperties":false,"description":"Pre-computed GeoJSON geometry defining the proximity boundary. Use when the buyer has already calculated isochrones (via TravelTime, Mapbox, etc.) or has custom boundaries. When geometry is provided, lat/lng are not required.","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity.items.[INDEX].geometry","typeLabel":"object"},"ext":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity.items.[INDEX].ext.additionalProperties","typeLabel":"any"},"description":"Extension object for optional parameters under an owner-controlled namespace (e.g., ext.gam, ext.roku). The reserved ext.adcp namespace is maintained by the AdCP Working Group and is limited to its documented bindings. Used for custom capabilities, partner-specific configuration, and features being proposed for standardization. Namespace support does not imply support for undocumented future bindings.","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity.items.[INDEX].ext","typeLabel":"object"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity.items.[INDEX]","typeLabel":"object"},"description":"Target users within travel time, distance, or a custom boundary around arbitrary geographic points. Multiple entries use OR semantics — a user within range of any listed point is eligible. For campaigns targeting 10+ locations, consider using store_catchments with a location catalog instead. Seller must declare support in get_adcp_capabilities.","uniqueKey":"products.items.[INDEX].targetingOverlay.geo_proximity","typeLabel":"object[]"},"language":{"minItems":1,"type":"array","items":{"type":"string","minLength":2,"maxLength":63,"pattern":"^(?:[a-z]{2,8}(?:-[A-Z][a-z]{3})?(?:-(?:[A-Z]{2}|[0-9]{3}))?(?:-(?:[a-z0-9]{5,8}|[0-9][a-z0-9]{3}))*(?:-[0-9a-wy-z](?:-[a-z0-9]{2,8})+)*(?:-x(?:-[a-z0-9]{1,8})+)?|x(?:-[a-z0-9]{1,8})+)$","description":"A well-formed BCP 47 language tag used by AdCP only as language identity. Script and region may refine that identity; other valid BCP 47 subtags remain part of tag matching but do not make this a general locale-settings object. It does not determine currency, time zone, number/date formatting, market, or legal jurisdiction. The AdCP canonical wire profile requires lower-case language and variants, title-case script, and upper-case region (for example `en-US`, `zh-Hant-TW`, or `x-private`). RFC 5646 comparisons are case-insensitive and its case regularization is optional; AdCP intentionally requires this stricter single wire spelling and receivers MUST reject differently cased tags rather than silently normalizing them. The schema pattern enforces the AdCP casing profile and extension structure for commonly used tags; conforming receivers additionally validate the complete RFC 5646 grammar and registry rules. Every new AdCP field carrying BCP 47 language identity or a concrete language range MUST reference this schema instead of declaring independent string constraints.","uniqueKey":"products.items.[INDEX].targetingOverlay.language.items.[INDEX]","typeLabel":"string"},"description":"Restrict to users with specific language preferences using canonical BCP 47 language ranges. Each buyer range is evaluated against a user's language-preference tag with RFC 4647 section 3.3.1 Basic Filtering: 'fr' matches 'fr', 'fr-CA', and 'fr-FR', while 'fr-CA' matches 'fr-CA' and more-specific descendants but not 'fr' or 'fr-FR'. Values use OR logic.","uniqueKey":"products.items.[INDEX].targetingOverlay.language","typeLabel":"string[]"},"keyword_targets":{"minItems":1,"type":"array","items":{"type":"object","properties":{"keyword":{"type":"string","minLength":1,"description":"The keyword to target","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.keyword_targets.items.[INDEX].keyword","typeLabel":"string"},"match_type":{"type":"string","enum":["broad","phrase","exact"],"description":"Keyword targeting match type. broad: ads may serve on queries semantically related to the keyword. phrase: ads serve when the query contains the keyword phrase. exact: ads serve only when the query matches the keyword exactly.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.keyword_targets.items.[INDEX].match_type","typeLabel":"enum\u003cstring>"},"bid_price":{"type":"number","minimum":0,"description":"Per-keyword bid price, denominated in the same currency as the package's pricing option. Overrides the package-level bid_price for this keyword. Inherits the max_bid interpretation from the pricing option: when max_bid is true, this is the keyword's bid ceiling; when false, this is the exact bid. If omitted, the package bid_price applies.","uniqueKey":"products.items.[INDEX].targetingOverlay.keyword_targets.items.[INDEX].bid_price","typeLabel":"number"}},"required":["keyword","match_type"],"additionalProperties":false,"uniqueKey":"products.items.[INDEX].targetingOverlay.keyword_targets.items.[INDEX]","typeLabel":"object"},"description":"Keyword targeting for search and retail media platforms. Restricts delivery to queries matching the specified keywords. Each keyword is identified by the tuple (keyword, match_type) — the same keyword string with different match types are distinct targets. Sellers SHOULD reject duplicate (keyword, match_type) pairs within a single request. Seller must declare support in get_adcp_capabilities.","uniqueKey":"products.items.[INDEX].targetingOverlay.keyword_targets","typeLabel":"object[]"},"negative_keywords":{"minItems":1,"type":"array","items":{"type":"object","properties":{"keyword":{"type":"string","minLength":1,"description":"The keyword to exclude","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.negative_keywords.items.[INDEX].keyword","typeLabel":"string"},"match_type":{"type":"string","enum":["broad","phrase","exact"],"description":"Keyword targeting match type. broad: ads may serve on queries semantically related to the keyword. phrase: ads serve when the query contains the keyword phrase. exact: ads serve only when the query matches the keyword exactly.","isRequired":true,"uniqueKey":"products.items.[INDEX].targetingOverlay.negative_keywords.items.[INDEX].match_type","typeLabel":"enum\u003cstring>"}},"required":["keyword","match_type"],"additionalProperties":false,"description":"An excluded keyword.","uniqueKey":"products.items.[INDEX].targetingOverlay.negative_keywords.items.[INDEX]","typeLabel":"object"},"description":"Keywords to exclude from delivery. Queries matching these keywords will not trigger the ad. Each negative keyword is identified by the tuple (keyword, match_type). Seller must declare support in get_adcp_capabilities.","uniqueKey":"products.items.[INDEX].targetingOverlay.negative_keywords","typeLabel":"object[]"},"product_codes":{"description":"Provider product codes selected for this line item, such as Amazon ASINs.","type":"array","items":{"type":"string","minLength":1,"uniqueKey":"products.items.[INDEX].targetingOverlay.product_codes.items.[INDEX]","typeLabel":"string"},"uniqueKey":"products.items.[INDEX].targetingOverlay.product_codes","typeLabel":"string[]"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"products.items.[INDEX].targetingOverlay.additionalProperties","typeLabel":"any"},"uniqueKey":"products.items.[INDEX].targetingOverlay","typeLabel":"object"},"channelGroupId":{"description":"Campaign channel group assigned to this product.","type":"string","minLength":1,"maxLength":128,"uniqueKey":"products.items.[INDEX].channelGroupId","typeLabel":"string"}},"required":["productId","salesAgentId","selectedAt","groupId","groupName"],"additionalProperties":false,"description":"A product selected for inclusion in a discovery session","uniqueKey":"products.items.[INDEX]","typeLabel":"object"},"description":"Selected products in the discovery session","isRequired":true,"uniqueKey":"products","typeLabel":"object[]"},"totalProducts":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Total number of products in the selected-products cart. A value of 0 means no product has been selected yet; it is not the number of products discovery returned.","isRequired":true,"uniqueKey":"totalProducts","typeLabel":"integer"},"selectionSummary":{"description":"Plain-language explanation that this response is the selected-products cart, not the discovery result set.","type":"string","uniqueKey":"selectionSummary","typeLabel":"string"},"budgetContext":{"type":"object","description":"Budget allocation context","required":["sessionBudget","allocatedBudget","remainingBudget"],"properties":{"sessionBudget":{"oneOf":[{"description":"Total budget set for the session","type":"number","isRequired":true,"uniqueKey":"budgetContext.sessionBudget.oneOf.0","typeLabel":"number"},{"description":"Total budget set for the session","type":"null","isRequired":true,"uniqueKey":"budgetContext.sessionBudget.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"budgetContext.sessionBudget","typeLabel":"number | null"},"allocatedBudget":{"type":"number","description":"Budget allocated to selected products","isRequired":true,"uniqueKey":"budgetContext.allocatedBudget","typeLabel":"number"},"remainingBudget":{"oneOf":[{"description":"Remaining unallocated budget","type":"number","isRequired":true,"uniqueKey":"budgetContext.remainingBudget.oneOf.0","typeLabel":"number"},{"description":"Remaining unallocated budget","type":"null","isRequired":true,"uniqueKey":"budgetContext.remainingBudget.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"budgetContext.remainingBudget","typeLabel":"number | null"},"budgetWarning":{"description":"Warning message if budget allocation has issues","type":"string","uniqueKey":"budgetContext.budgetWarning","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"budgetContext","typeLabel":"object"},"campaignBound":{"description":"Whether this discovery session is attached to an active campaign. When false, the products are saved to the session but no active campaign reflects them yet.","type":"boolean","uniqueKey":"campaignBound","typeLabel":"boolean"},"campaignWarning":{"description":"Guidance shown only when campaignBound is false: either the session is not attached to any campaign, or the campaign it was attached to has been archived. Pass campaignId for an active campaign (or restore the archived one) so the campaign reflects the products.","type":"string","uniqueKey":"campaignWarning","typeLabel":"string"},"warnings":{"description":"Non-blocking notices about this submission, e.g. two submitted selections shared the same identity (no selectionId, or a repeated selectionId) and were merged into a single package.","type":"array","items":{"type":"string","uniqueKey":"warnings.items.[INDEX]","typeLabel":"string"},"uniqueKey":"warnings","typeLabel":"string[]"}},"required":["discoveryId","products","totalProducts"],"additionalProperties":false,"description":"Response containing the selected-products cart. It does not return discovery results.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"discoveryId":"\u003cstring>","products":[{"productId":"\u003cstring>","salesAgentId":"\u003cstring>","selectedAt":"\u003cstring>","groupId":"\u003cstring>","groupName":"\u003cstring>","storefrontId":"\u003cstring>","inventorySourceId":"\u003cstring>","selectionId":"\u003cstring>","bidPrice":123,"budget":123,"targetingOverlay":{"geo_countries":["\u003cstring>"],"geo_countries_exclude":["\u003cstring>"],"geo_regions":["\u003cstring>"],"geo_regions_exclude":["\u003cstring>"],"geo_metros":[{"system":"nielsen_dma","values":["\u003cstring>"]}],"geo_metros_exclude":[{"system":"nielsen_dma","values":["\u003cstring>"]}],"geo_postal_areas":[{"country":"US","system":"zip","values":["\u003cstring>"]}],"geo_postal_areas_exclude":[{"country":"US","system":"zip","values":["\u003cstring>"]}],"daypart_targets":[{"days":["monday"],"timezone":"inventory_local","start_hour":11,"end_hour":12,"start_time":"\u003cstring>","end_time":"\u003cstring>","label":"\u003cstring>"}],"axe_include_segment":"\u003cstring>","axe_exclude_segment":"\u003cstring>","audience_include":["\u003cstring>"],"audience_exclude":["\u003cstring>"],"signal_targeting_groups":{"operator":"all","groups":[{"operator":"any","signals":[{"pricing_option_id":"\u003cstring>","signal_agent_segment_id":"\u003cstring>","activation_key":{}}]}]},"signal_targeting":["\u003cunknown>"],"demographics":{"age":{"min":75,"include_unknown":true,"max":75,"accepted_bases":["verified"],"accepted_verification_methods":["facial_age_estimation"]},"gender":{"values":["female"],"include_unknown":true}},"frequency_cap":{"suppress":{"interval":4503599627370496,"unit":"seconds"},"suppress_minutes":1,"max_impressions":4503599627370496,"per":"individuals","window":{"interval":4503599627370496,"unit":"seconds"}},"property_list":{"agent_url":"\u003cstring>","list_id":"\u003cstring>","auth_token":"\u003cstring>"},"property_list_exclude":{"agent_url":"\u003cstring>","list_id":"\u003cstring>","auth_token":"\u003cstring>"},"collection_list":{"agent_url":"\u003cstring>","list_id":"\u003cstring>","auth_token":"\u003cstring>"},"collection_list_exclude":{"agent_url":"\u003cstring>","list_id":"\u003cstring>","auth_token":"\u003cstring>"},"collection_lists":[{"agent_url":"\u003cstring>","list_id":"\u003cstring>","auth_token":"\u003cstring>"}],"collection_lists_exclude":[{"agent_url":"\u003cstring>","list_id":"\u003cstring>","auth_token":"\u003cstring>"}],"placement_selection":{},"collection_selection":{},"age_restriction":{"min":56,"verification_required":false,"accepted_methods":["facial_age_estimation"]},"device_platform":["ios"],"device_platform_exclude":["ios"],"device_type":["desktop"],"device_type_exclude":["desktop"],"browser":["chrome"],"browser_exclude":["chrome"],"store_catchments":[{"catalog_id":"\u003cstring>","store_ids":["\u003cstring>"],"catchment_ids":["\u003cstring>"]}],"geo_proximity":[{"lat":0,"lng":0,"label":"\u003cstring>","travel_time":{"value":2,"unit":"min"},"transport_mode":"walking","radius":{"value":1,"unit":"km"},"geometry":{"type":"Polygon","coordinates":["\u003cunknown>"]},"ext":{}}],"language":["\u003cstring>"],"keyword_targets":[{"keyword":"\u003cstring>","match_type":"broad","bid_price":1}],"negative_keywords":[{"keyword":"\u003cstring>","match_type":"broad"}],"product_codes":["\u003cstring>"]},"channelGroupId":"\u003cstring>"}],"totalProducts":0,"selectionSummary":"\u003cstring>","budgetContext":{"sessionBudget":123,"allocatedBudget":123,"remainingBudget":123,"budgetWarning":"\u003cstring>"},"campaignBound":true,"campaignWarning":"\u003cstring>","warnings":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"e7f09244-a528-405d-b972-c368c21ddc6f":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"oneOf":[{"type":"string","enum":[null],"isRequired":true,"uniqueKey":"data.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":[null],"isRequired":true,"uniqueKey":"data.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data","typeLabel":"enum\u003cstring> | null"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"field":{"description":"Field path associated with the error","type":"string","uniqueKey":"error.field","typeLabel":"string"},"details":{"description":"Additional error context","type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Structured error object","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["data","error"],"additionalProperties":false,"description":"Standard error response","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":null,"error":{"code":"\u003cstring>","message":"\u003cstring>","field":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"ae515634-b977-4f84-80b4-d2ce7cb54d2b":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"oneOf":[{"type":"string","enum":[null],"isRequired":true,"uniqueKey":"data.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":[null],"isRequired":true,"uniqueKey":"data.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data","typeLabel":"enum\u003cstring> | null"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"field":{"description":"Field path associated with the error","type":"string","uniqueKey":"error.field","typeLabel":"string"},"details":{"description":"Additional error context","type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Structured error object","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["data","error"],"additionalProperties":false,"description":"Standard error response","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":null,"error":{"code":"\u003cstring>","message":"\u003cstring>","field":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"33ea08be-01cf-4597-947a-e7f5d231e330":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"oneOf":[{"type":"string","enum":[null],"isRequired":true,"uniqueKey":"data.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":[null],"isRequired":true,"uniqueKey":"data.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data","typeLabel":"enum\u003cstring> | null"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"field":{"description":"Field path associated with the error","type":"string","uniqueKey":"error.field","typeLabel":"string"},"details":{"description":"Additional error context","type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","message"],"additionalProperties":false,"description":"Structured error object","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["data","error"],"additionalProperties":false,"description":"Standard error response","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":null,"error":{"code":"\u003cstring>","message":"\u003cstring>","field":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"9d527fee-8861-4af8-8a30-7c6ad22c822d":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key or access token","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"79f891a6-2e76-48a5-99c9-7c181bc851d3":{"url":"https://api.apostra.com/api/v2/buyer","description":"Production server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API key or access token","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key or access token","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"v2/buyer-api-v2.yaml"},"subdomain":"agentic2","siteName":"Apostra","title":"Remove products from selection - Apostra","navMaps":{"firstHrefInVersion":{"v2":{"href":"/v2/buyer-api-reference/product-discovery/remove-products-from-selection","matchLevel":0},"v3":{"href":"/v3/overview","matchLevel":3}},"firstHrefInLanguage":{}},"lastModified":"2026-11-07T03:53:35.804Z","originalFileLocation":"v2/buyer-api-reference/product-discovery/remove-products-from-selection.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Remove products from the selection.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Apostra\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Remove products from selection - Apostra\">\u003cmeta data-mint-head property=\"og:description\" content=\"Remove products from the selection.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Apostra API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.apostra.com/v2/buyer-api-reference/product-discovery/remove-products-from-selection\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://agentic2.mintlify.site/_mintlify/api/og/v2?division=Product+Discovery\u0026amp;title=Remove+products+from+selection\u0026amp;description=Remove+products+from+the+selection.\u0026amp;theme=c49c13ac1fe5edf0b8126688\u0026amp;signature=d25cc9ecac13f7053af5f06b4269a9b095c47edafdfb4709316a0a1fc2fcfb54\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Remove products from selection - Apostra\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Remove products from the selection.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://agentic2.mintlify.site/_mintlify/api/og/v2?division=Product+Discovery\u0026amp;title=Remove+products+from+selection\u0026amp;description=Remove+products+from+the+selection.\u0026amp;theme=c49c13ac1fe5edf0b8126688\u0026amp;signature=d25cc9ecac13f7053af5f06b4269a9b095c47edafdfb4709316a0a1fc2fcfb54\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/agentic2/sAZk5VwCxBRsiHGz/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Apostra\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7513D4\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.apostra.com/v2/buyer-api-reference/product-discovery/remove-products-from-selection\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v2/buyer-api-reference/product-discovery/remove-products-from-selection.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.apostra.com/#organization\",\"name\":\"Apostra\",\"url\":\"https://docs.apostra.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/agentic2/A5rx0kFcKxq4RfQe/logo-apostra/apostra-black-purple-logo.svg?fit=max\u0026auto=format\u0026n=A5rx0kFcKxq4RfQe\u0026q=85\u0026s=d9788f7a39ebea19b202324e702d3178\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.apostra.com#website\",\"name\":\"Apostra\",\"url\":\"https://docs.apostra.com\",\"publisher\":{\"@id\":\"https://docs.apostra.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.apostra.com/v2/buyer-api-reference/product-discovery/remove-products-from-selection#webpage\",\"url\":\"https://docs.apostra.com/v2/buyer-api-reference/product-discovery/remove-products-from-selection\",\"name\":\"Remove products from selection\",\"description\":\"Remove products from the selection.\",\"dateModified\":\"2026-11-07T03:53:35.804Z\",\"isPartOf\":{\"@id\":\"https://docs.apostra.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.apostra.com/v2/buyer-api-reference/product-discovery/remove-products-from-selection#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.apostra.com/v2/buyer-api-reference/product-discovery/remove-products-from-selection#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Buyer API reference\",\"item\":\"https://docs.apostra.com/v2/buyer-api-reference\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Product Discovery\",\"item\":\"https://docs.apostra.com/v2/buyer-api-reference/product-discovery/get-products-across-storefronts\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Remove products from selection\",\"item\":\"https://docs.apostra.com/v2/buyer-api-reference/product-discovery/remove-products-from-selection\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.apostra.com/v2/buyer-api-reference/product-discovery/remove-products-from-selection#apireference\",\"headline\":\"Remove products from selection\",\"name\":\"Remove products from selection\",\"description\":\"Remove products from the selection.\",\"url\":\"https://docs.apostra.com/v2/buyer-api-reference/product-discovery/remove-products-from-selection\",\"mainEntityOfPage\":{\"@id\":\"https://docs.apostra.com/v2/buyer-api-reference/product-discovery/remove-products-from-selection#webpage\"},\"dateModified\":\"2026-11-07T03:53:35.804Z\",\"publisher\":{\"@id\":\"https://docs.apostra.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.apostra.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Apostra\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Apostra","nav":{"global":null,"tabs":[{"tab":"Manage ads","icon":"compass","pages":[{"title":"Manage ads","href":"/v3/manage-ads"}]},{"tab":"Build software","icon":"code","versions":[{"version":"v2","tag":"Compatibility","groups":[{"group":"Start building","icon":"rocket","pages":[{"title":"Build with Apostra","icon":"code","href":"/v2/build-with-apostra"},{"title":"Quick Start","icon":"rocket","href":"/v2/quickstart"},{"title":"Authentication","icon":"key","href":"/v2/authentication"},{"title":"Account Access \u0026 Signup","icon":"user-plus","href":"/v2/setup/account-access"},{"title":"Built for Agents","icon":"robot","href":"/v2/setup/built-for-agents"},{"title":"Manage buyer agents","icon":"robot","href":"/v2/setup/buyer-agent-credentials"},{"title":"Listing, Playbook, and AI Business Rules","sidebarTitle":"Seller pages","icon":"layer-group","href":"/v2/setup/seller-pages"},{"title":"Create a white-label ChatGPT app","sidebarTitle":"ChatGPT app setup","icon":"message-bot","href":"/v2/setup/chatgpt-app-setup"},{"title":"AI Agent Skills","icon":"robot","href":"/v2/skill"},{"title":"Single Sign-On (SSO)","icon":"lock","href":"/v2/setup/sso-setup"},{"title":"Move an assistant integration from Murph to Apostra","icon":"arrows-left-right","href":"/v2/setup/murph-to-apostra"},{"title":"Migrating from v1 to v2","icon":"arrow-up-right-from-square","href":"/v2/setup/migration-guide"}]},{"group":"Core Concepts","icon":"lightbulb","pages":[{"title":"Philosophy","icon":"compass","href":"/v2/concepts/philosophy"},{"title":"The storefront agent","sidebarTitle":"Storefront agent","icon":"user-tie","href":"/v2/concepts/storefront-agent"},{"title":"Agents","icon":"robot","href":"/v2/concepts/agents"},{"title":"Merchandising","sidebarTitle":"Merchandising","icon":"store","href":"/v2/concepts/merchandising"},{"title":"AI Business Rules","sidebarTitle":"AI Business Rules","icon":"scale-balanced","href":"/v2/concepts/ai-business-rules"},{"title":"Object Model","icon":"sitemap","href":"/v2/concepts/object-model"},{"title":"Asks","icon":"hand","href":"/v2/concepts/asks"},{"title":"Approving agent requests","icon":"shield-check","href":"/v2/concepts/web-approvals"},{"title":"Developer Glossary","sidebarTitle":"Glossary","icon":"book-open","href":"/v2/developer-reference/glossary"},{"title":"Which domain is which","icon":"signs-post","href":"/v2/concepts/domains"},{"title":"Inbound email addresses","icon":"inbox","href":"/v2/concepts/inbound-email-addresses"},{"title":"Identity documents","icon":"id-card","href":"/v2/concepts/identity-documents"},{"title":"Platform Accounts and Advertiser Mapping","icon":"sitemap","href":"/v2/concepts/ad-platform-accounts"},{"title":"Media buy lifecycle","icon":"diagram-project","href":"/v2/concepts/media-buy-lifecycle"},{"title":"Campaign readiness","icon":"circle-check","href":"/v2/concepts/campaign-readiness"},{"title":"Goal-seeking campaigns","icon":"bullseye","href":"/v2/concepts/goal-seeking-campaigns"},{"title":"The seller-history co-op","icon":"people-group","href":"/v2/concepts/seller-history-co-op"},{"title":"Cross-currency buying","sidebarTitle":"Cross-currency buying","icon":"money-bill-transfer","href":"/v2/concepts/cross-currency"},{"title":"How Apostra uses AdCP (buy side)","icon":"cart-shopping","href":"/v2/concepts/adcp-on-the-buy-side"},{"title":"AdCP versioning \u0026 negotiation","icon":"code-branch","href":"/v2/concepts/adcp-versioning"},{"title":"How AdCP thinks about video","icon":"film","href":"/v2/concepts/video-creatives"}]},{"group":"Buyer operations","icon":"user","pages":[{"group":"Advertisers","icon":"building","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Advertiser tasks","icon":"list-check","href":"/v2/buyer/advertisers/tasks/index"},{"title":"Create advertiser","icon":"plus","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/create-advertiser"},{"title":"Delete advertiser","icon":"trash","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/delete-advertiser"},{"title":"Execute catalog activation","icon":"play","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/execute-catalog-activation"},{"title":"Get advertiser","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/get-advertiser"},{"title":"List advertisers","icon":"list","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/list-advertisers"},{"title":"Open Advertisers","icon":"building","href":"/v2/buyer/advertisers/tasks/open-advertisers-page"},{"title":"List organization advertisers","icon":"building-user","href":"/v2/buyer/advertisers/tasks/list-organization-advertisers"},{"title":"Manage organization advertiser grants","icon":"user-shield","href":"/v2/buyer/advertisers/tasks/manage-organization-advertiser-grants"},{"title":"Read client access for an advertiser","icon":"user-group","href":"/v2/buyer/advertisers/tasks/read-advertiser-client-access"},{"title":"Invite and manage a client's access","icon":"user-plus","href":"/v2/buyer/advertisers/tasks/save-advertiser-client-access"},{"title":"List audiences","icon":"users","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/list-audiences"},{"title":"List available accounts","icon":"link","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/list-available-accounts"},{"title":"Manage provider accounts on an advertiser","icon":"plug","href":"/v2/buyer/advertisers/tasks/manage-provider-accounts"},{"title":"List catalogs","icon":"list-ul","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/list-catalogs"},{"title":"Preview catalog activation","icon":"eye","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/preview-catalog-activation"},{"title":"Refresh catalog","icon":"arrow-rotate-right","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/refresh-catalog"},{"title":"Revalidate data delivery credential","icon":"rotate","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/revalidate-data-delivery-credential"},{"title":"Save catalog transform","icon":"shuffle","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/save-catalog-transform"},{"title":"Sync audiences","icon":"users-gear","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/sync-audiences"},{"title":"Sync catalogs","icon":"arrows-rotate","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/sync-catalogs"},{"title":"Update account reporting bucket","icon":"bucket","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/update-account-reporting-bucket"},{"title":"Update advertiser","icon":"pen","tag":"Deprecated","href":"/v2/buyer/advertisers/tasks/update-advertiser"}]}]},{"group":"Campaigns","icon":"bullhorn","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Campaign tasks","icon":"list-check","href":"/v2/buyer/campaigns/tasks/index"},{"title":"Auto-select products","icon":"wand-magic-sparkles","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/auto-select-products"},{"title":"Create campaign","icon":"plus","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/create-campaign"},{"title":"Delete campaign","icon":"trash","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/delete-campaign"},{"title":"Execute campaign","icon":"rocket","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/execute-campaign"},{"title":"Get campaign products","icon":"boxes-stacked","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/get-campaign-products"},{"title":"Get media buy packages","icon":"boxes-stacked","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/get-media-buy-packages"},{"title":"List targeting dimensions","icon":"list","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/list-targeting-dimensions"},{"title":"List targeting dimension values","icon":"table-list","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/list-targeting-dimension-values"},{"title":"Resolve targeting dimension text","icon":"wand-magic-sparkles","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/resolve-targeting-dimension"},{"title":"List geo metros","icon":"map","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/list-geo-metros"},{"title":"Get campaign","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/get-campaign"},{"title":"Get campaign delivery","api":"GET /api/v2/buyer/campaigns/{campaignId}/delivery","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/get-campaign-delivery"},{"title":"Get campaign workspace","icon":"table-columns","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/get-campaign-workspace"},{"title":"Get tracked-campaign subscription","api":"GET /api/v2/buyer/storefront-connections/{connectionId}/accounts/{accountId}/directed-campaigns/subscription","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/get-directed-campaign-subscription"},{"title":"Get media buy status","icon":"signal-stream","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/get-media-buy-status"},{"title":"List campaigns","icon":"list","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/list-campaigns"},{"title":"Open Campaigns","icon":"bullhorn","href":"/v2/buyer/campaigns/tasks/open-campaigns-page"},{"title":"Open Review \u0026 go live","icon":"clipboard-check","href":"/v2/buyer/campaigns/tasks/open-campaign-receipt"},{"title":"List campaign suggestion sets","icon":"list-check","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/list-campaign-suggestion-sets"},{"title":"Get campaign suggestion set","icon":"magnifying-glass-dollar","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/get-campaign-suggestion-set"},{"title":"Approve campaign suggestion set","icon":"circle-check","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/approve-campaign-suggestion-set"},{"title":"Reject campaign suggestion set","icon":"circle-xmark","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/reject-campaign-suggestion-set"},{"title":"Pause campaign","icon":"pause","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/pause-campaign"},{"title":"Reactivate campaign","icon":"play","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/reactivate-campaign"},{"title":"Pause media buy","icon":"circle-pause","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/pause-media-buy"},{"title":"Reactivate media buy","icon":"circle-play","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/reactivate-media-buy"},{"title":"Subscribe tracked campaigns","api":"POST /api/v2/buyer/storefront-connections/{connectionId}/accounts/{accountId}/directed-campaigns/subscribe","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/subscribe-directed-campaigns"},{"title":"Unsubscribe tracked campaigns","api":"DELETE /api/v2/buyer/storefront-connections/{connectionId}/accounts/{accountId}/directed-campaigns/subscription","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/unsubscribe-directed-campaigns"},{"title":"Update campaign","icon":"pen","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/update-campaign"},{"title":"Update media buy","icon":"pen-to-square","tag":"Deprecated","href":"/v2/buyer/campaigns/tasks/update-media-buy"}]}]},{"group":"Product Discovery","icon":"magnifying-glass","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Product discovery tasks","icon":"list-check","href":"/v2/buyer/discovery/tasks/index"},{"title":"Add products","icon":"plus","tag":"Deprecated","href":"/v2/buyer/discovery/tasks/add-products"},{"title":"Apply proposal","icon":"wand-magic-sparkles","tag":"Deprecated","href":"/v2/buyer/discovery/tasks/apply-proposal"},{"title":"Create media buys from a product query","icon":"cart-shopping","tag":"Deprecated","href":"/v2/buyer/discovery/tasks/create-media-buys"},{"title":"Browse products","icon":"layer-group","tag":"Deprecated","href":"/v2/buyer/discovery/tasks/browse-products"},{"title":"Discover products","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/discovery/tasks/discover-products"},{"title":"Stream discovery events","icon":"tower-broadcast","tag":"Deprecated","href":"/v2/buyer/discovery/tasks/events"},{"title":"Get products","icon":"list","tag":"Deprecated","href":"/v2/buyer/discovery/tasks/get-products"},{"title":"Remove products","icon":"trash","tag":"Deprecated","href":"/v2/buyer/discovery/tasks/remove-products"}]}]},{"group":"Webhooks","icon":"webhook","pages":[{"title":"Webhooks","icon":"webhook","tag":"Deprecated","href":"/v2/buyer/webhooks/index"}]},{"group":"Creatives","icon":"image","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Creative tasks","icon":"list-check","href":"/v2/buyer/creatives/tasks/index"},{"title":"Start creative session","icon":"sparkles","tag":"Deprecated","href":"/v2/buyer/creatives/tasks/start-creative-session"},{"title":"Manage advertiser creative collections","icon":"folder-tree","tag":"Deprecated","href":"/v2/buyer/creatives/tasks/manage-advertiser-creative-collections"},{"title":"Adopt a managed audio source","icon":"waveform","tag":"Deprecated","href":"/v2/buyer/creatives/tasks/adopt-managed-audio-source"},{"title":"Create advertiser creative master","icon":"layer-group","tag":"Deprecated","href":"/v2/buyer/creatives/tasks/create-advertiser-creative-manifest"},{"title":"Create creative manifest","icon":"plus","tag":"Deprecated","href":"/v2/buyer/creatives/tasks/create-creative-manifest"},{"title":"Detach creative from campaign","icon":"trash","tag":"Deprecated","href":"/v2/buyer/creatives/tasks/delete-creative-manifest"},{"title":"Get creative manifest","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/creatives/tasks/get-creative-manifest"},{"title":"List creative manifests","icon":"list","tag":"Deprecated","href":"/v2/buyer/creatives/tasks/list-creative-manifests"},{"title":"Update creative manifest","icon":"pen","tag":"Deprecated","href":"/v2/buyer/creatives/tasks/update-creative-manifest"}]}]},{"group":"Audiences \u0026 Inventory","icon":"users","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Property list tasks","icon":"list-check","href":"/v2/buyer/property-lists/tasks/index"},{"title":"Check property list","icon":"circle-check","tag":"Deprecated","href":"/v2/buyer/property-lists/tasks/check-property-list"},{"title":"Create property list","icon":"plus","tag":"Deprecated","href":"/v2/buyer/property-lists/tasks/create-property-list"},{"title":"Delete property list","icon":"trash","tag":"Deprecated","href":"/v2/buyer/property-lists/tasks/delete-property-list"},{"title":"Get check report","icon":"file-lines","tag":"Deprecated","href":"/v2/buyer/property-lists/tasks/get-check-report"},{"title":"Get property list","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/property-lists/tasks/get-property-list"},{"title":"List property lists","icon":"list","tag":"Deprecated","href":"/v2/buyer/property-lists/tasks/list-property-lists"},{"title":"Update property list","icon":"pen","tag":"Deprecated","href":"/v2/buyer/property-lists/tasks/update-property-list"}]}]},{"group":"Measurement \u0026 Conversions","icon":"ruler","pages":[{"group":"Measurement Tasks","icon":"list-check","pages":[{"title":"Measurement tasks","icon":"list-check","href":"/v2/buyer/measurement/tasks/index"},{"title":"Create measurement source","icon":"plus","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/create-measurement-source"},{"title":"Create test cohort","icon":"plus","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/create-test-cohort"},{"title":"Delete test cohort","icon":"trash","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/delete-test-cohort"},{"title":"Get measurement config","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/get-measurement-config"},{"title":"Get measurement freshness","icon":"clock","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/get-measurement-freshness"},{"title":"Get measurement source","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/get-measurement-source"},{"title":"Get test cohort","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/get-test-cohort"},{"title":"List measurement records","icon":"list","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/list-measurement-records"},{"title":"List measurement sources","icon":"list","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/list-measurement-sources"},{"title":"List test cohorts","icon":"list","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/list-test-cohorts"},{"title":"Sync measurement data","icon":"arrows-rotate","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/sync-measurement-data"},{"title":"Update measurement config","icon":"pen","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/update-measurement-config"},{"title":"Update measurement source","icon":"pen","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/update-measurement-source"},{"title":"Update test cohort","icon":"pen","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/update-test-cohort"},{"title":"Upload context records","icon":"cloud","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/upload-context-records"},{"title":"Upload measurement records","icon":"upload","tag":"Deprecated","href":"/v2/buyer/measurement/tasks/upload-measurement-records"}]},{"group":"Conversions","icon":"bullseye","pages":[{"title":"Conversion API","icon":"chart-line-up","href":"/v2/integrations/conversion-api"},{"group":"Event Source Tasks","icon":"list-check","pages":[{"title":"Event source tasks","icon":"list-check","href":"/v2/buyer/event-sources/tasks/index"},{"title":"List event sources","icon":"list","tag":"Deprecated","href":"/v2/buyer/event-sources/tasks/list-event-sources"},{"title":"Log event","icon":"circle-dot","href":"/v2/buyer/event-sources/tasks/log-event"},{"title":"Sync event sources","icon":"arrows-rotate","tag":"Deprecated","href":"/v2/buyer/event-sources/tasks/sync-event-sources"}]}]}]},{"group":"Reporting \u0026 Activity","icon":"chart-bar","pages":[{"group":"Reporting Tasks","icon":"list-check","pages":[{"title":"Reporting tasks","icon":"list-check","href":"/v2/buyer/reporting/tasks/index"},{"title":"Get event summary","icon":"clock","tag":"Deprecated","href":"/v2/buyer/reporting/tasks/get-event-summary"},{"title":"Get reporting metrics","icon":"chart-line","tag":"Deprecated","href":"/v2/buyer/reporting/tasks/get-reporting-metrics"},{"title":"Get campaign seller scorecard","icon":"ranking-star","tag":"Deprecated","href":"/v2/buyer/reporting/tasks/get-campaign-seller-scorecard"}]}]},{"group":"Planning \u0026 Governance","icon":"clipboard-check","pages":[{"group":"Syndication","icon":"share-nodes","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Syndication tasks","icon":"list-check","href":"/v2/buyer/syndication/tasks/index"},{"title":"Get syndication status","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/syndication/tasks/get-syndication-status"},{"title":"Toggle syndication","icon":"toggle-on","tag":"Deprecated","href":"/v2/buyer/syndication/tasks/syndicate"}]}]},{"group":"Update Proposals","icon":"code-pull-request","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Update proposal tasks","icon":"list-check","href":"/v2/buyer/update-proposals/tasks/index"},{"title":"Cancel update proposal","icon":"ban","tag":"Deprecated","href":"/v2/buyer/update-proposals/tasks/cancel-update-proposal"},{"title":"Get update proposal","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/update-proposals/tasks/get-update-proposal"}]}]},{"group":"Moderation","icon":"shield-halved","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Moderation tasks","icon":"list-check","href":"/v2/buyer/moderation/tasks/index"},{"title":"Check moderation","icon":"shield-check","href":"/v2/buyer/moderation/tasks/check-moderation"}]}]}]},{"group":"Connections","icon":"store","pages":[{"group":"Storefronts (Buyer)","icon":"store","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Storefront tasks","icon":"list-check","href":"/v2/buyer/storefronts/tasks/index"},{"title":"Get storefront","icon":"magnifying-glass","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/get-storefront"},{"title":"Get storefront capabilities","icon":"signal","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/get-storefront-capabilities"},{"title":"Update selection override","icon":"toggle-on","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/update-selection-override"},{"title":"Update advertiser Seller preference","icon":"sliders","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/update-advertiser-activation-preference"},{"title":"Update billing policy","icon":"file-invoice-dollar","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/update-billing-policy"},{"title":"Approve direct billing","icon":"file-signature","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/accept-direct-billing"},{"title":"Set Enhanced Reporting","icon":"chart-line","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/set-enhanced-reporting"},{"title":"Connect an AdCP source","api":"POST /api/v2/buyer/storefronts/{storefrontId}/sources/{sourceId}/adcp-connection","icon":"link","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/connect-adcp-storefront"},{"title":"Open Media Partners","icon":"plug","href":"/v2/buyer/storefronts/tasks/open-connections-page"},{"title":"List account presences","api":"GET /api/v2/buyer/storefront-connections/{connectionId}/accounts/{accountId}/presences","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/list-account-presences"},{"title":"List credentials","icon":"key","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/list-credentials"},{"title":"Refresh provider accounts","icon":"arrows-rotate","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/refresh-provider-accounts"},{"title":"List storefronts","icon":"list","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/list-storefronts"},{"title":"Register source credentials","icon":"user-lock","tag":"Deprecated","href":"/v2/buyer/storefronts/tasks/register-source-credentials"}]}]}]},{"group":"Account \u0026 Billing","icon":"gear","pages":[{"group":"Account","icon":"id-card","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Account tasks","icon":"list-check","href":"/v2/buyer/account/tasks/index"},{"title":"Get current account","icon":"circle-user","href":"/v2/buyer/account/tasks/get-current-account"},{"title":"Get membership settings","icon":"users","href":"/v2/buyer/account/tasks/get-membership"},{"title":"Get notification preferences","icon":"bell","href":"/v2/buyer/account/tasks/get-notification-preferences"},{"title":"List accounts","icon":"list","href":"/v2/buyer/account/tasks/list-customer-accounts"},{"title":"Preview account archive","icon":"magnifying-glass","href":"/v2/buyer/account/tasks/preview-account-archive"},{"title":"Archive account","icon":"box-archive","href":"/v2/buyer/account/tasks/archive-account"},{"title":"Restore account","icon":"rotate-left","href":"/v2/buyer/account/tasks/unarchive-account"},{"title":"Update account domain","icon":"globe","href":"/v2/buyer/account/tasks/update-customer-domain"},{"title":"Verify operator domain","icon":"circle-check","tag":"Deprecated","href":"/v2/buyer/account/tasks/verify-operator-domain"},{"title":"Your organization's domain","icon":"globe","href":"/v2/buyer/account/tasks/organization-domains"},{"title":"Update membership settings","icon":"user-gear","href":"/v2/buyer/account/tasks/update-membership"},{"title":"Update notification preferences","icon":"bell-concierge","href":"/v2/buyer/account/tasks/update-notification-preferences"}]}]},{"group":"Billing","icon":"file-invoice-dollar","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Billing tasks","icon":"list-check","href":"/v2/buyer/billing/tasks/index"},{"title":"Get billing info","icon":"address-card","href":"/v2/buyer/billing/tasks/get-billing-info"},{"title":"Update billing info","icon":"pen-to-square","href":"/v2/buyer/billing/tasks/update-billing-info"},{"title":"Get billing account","icon":"file-invoice-dollar","href":"/v2/buyer/billing/tasks/get-billing-account"},{"title":"Get inherited billing stub","icon":"building-shield","href":"/v2/buyer/billing/tasks/get-inherited-billing-stub"},{"title":"Get invoice activity","icon":"receipt","href":"/v2/buyer/billing/tasks/get-invoice-activity"}]}]}]}]},{"group":"Seller operations","icon":"store","pages":[{"group":"Getting Started","icon":"rocket","pages":[{"group":"Core Tasks","icon":"list-check","pages":[{"title":"Storefront tasks","icon":"list-check","href":"/v2/storefront/tasks/index"},{"title":"Confirm Media Company identity","icon":"id-card","href":"/v2/storefront/tasks/confirm-media-company-identity"},{"title":"Discover agents","icon":"magnifying-glass","href":"/v2/storefront/tasks/discover-agents"},{"title":"Get readiness","icon":"circle-check","href":"/v2/storefront/tasks/get-readiness"},{"title":"Resolve brand","icon":"building","href":"/v2/storefront/tasks/resolve-brand"}]}]},{"group":"Operating Your Storefront","icon":"wand-magic-sparkles","pages":[{"group":"Playbook API","icon":"list-ol","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Operating instructions tasks","icon":"list-check","href":"/v2/storefront/operating-instructions/tasks/index"},{"title":"Activate version","icon":"toggle-on","href":"/v2/storefront/operating-instructions/tasks/activate-version"},{"title":"Create version","icon":"plus","href":"/v2/storefront/operating-instructions/tasks/create-version"},{"title":"Get active version","icon":"circle-check","href":"/v2/storefront/operating-instructions/tasks/get-active"}]}]}]},{"group":"Inventory Sources","icon":"server","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Inventory source tasks","icon":"list-check","href":"/v2/storefront/inventory-sources/tasks/index"},{"title":"Create inventory source","icon":"plus","href":"/v2/storefront/inventory-sources/tasks/create-inventory-source"},{"title":"Submit certification test setup (retired)","icon":"flask","href":"/v2/storefront/inventory-sources/tasks/submit-certification-fixture-setup"},{"title":"Create a modular source from a feed","icon":"table","href":"/v2/storefront/inventory-sources/tasks/create-feed-modular-source"},{"title":"Delete inventory source","icon":"trash","href":"/v2/storefront/inventory-sources/tasks/delete-inventory-source"},{"title":"Get inventory source","icon":"magnifying-glass","href":"/v2/storefront/inventory-sources/tasks/get-inventory-source"},{"title":"Get modular readiness","icon":"diagram-project","href":"/v2/storefront/inventory-sources/tasks/get-modular-readiness"},{"title":"List inventory sources","icon":"list","href":"/v2/storefront/inventory-sources/tasks/list-inventory-sources"},{"title":"Author property and tag mappings","icon":"diagram-project","href":"/v2/storefront/inventory-sources/tasks/import-mapping"},{"title":"Set FreeWheel execution currency","icon":"coins","href":"/v2/storefront/inventory-sources/tasks/set-execution-currency"},{"title":"Update inventory source","icon":"pen","href":"/v2/storefront/inventory-sources/tasks/update-inventory-source"},{"title":"Update module config","icon":"sliders","href":"/v2/storefront/inventory-sources/tasks/update-modular-module-config"}]}]},{"group":"Demand \u0026 Signals","icon":"signal","pages":[{"group":"Signals","icon":"satellite-dish","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Signal tasks","icon":"list-check","href":"/v2/storefront/signals/tasks/index"},{"title":"Create signal","icon":"plus","href":"/v2/storefront/signals/tasks/create-signal"},{"title":"Delete signal","icon":"trash","href":"/v2/storefront/signals/tasks/delete-signal"},{"title":"Get signal","icon":"magnifying-glass","href":"/v2/storefront/signals/tasks/get-signal"},{"title":"List signals","icon":"list","href":"/v2/storefront/signals/tasks/list-signals"},{"title":"Update signal","icon":"pen","href":"/v2/storefront/signals/tasks/update-signal"}]}]}]},{"group":"Proposals \u0026 Agents","icon":"handshake","pages":[{"group":"Agents","icon":"robot","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Agent tasks","icon":"list-check","href":"/v2/storefront/agents/tasks/index"},{"title":"Create an Agent","href":"/v2/storefront/agents/tasks/create-agent"},{"title":"List agents","icon":"list","href":"/v2/storefront/agents/tasks/list-agents"},{"title":"Run creative conformance","icon":"list-check","href":"/v2/storefront/agents/tasks/run-creative-conformance"}]}]}]},{"group":"Buyer Routing","icon":"route","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Buyer routing tasks","icon":"list-check","href":"/v2/storefront/buyer-routing/tasks/index"},{"title":"Ensure GAM advertiser","icon":"plus","href":"/v2/storefront/buyer-routing/tasks/ensure-gam-advertiser"},{"title":"List buyer mappings","icon":"table-list","href":"/v2/storefront/buyer-routing/tasks/list-buyer-mappings"},{"title":"List GAM advertisers","icon":"list","href":"/v2/storefront/buyer-routing/tasks/list-gam-advertisers"},{"title":"Set default advertiser","icon":"star","href":"/v2/storefront/buyer-routing/tasks/set-default-advertiser"}]}]},{"group":"Analytics \u0026 Activity","icon":"chart-line","pages":[{"group":"Intelligence Runs","icon":"brain","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Get seller decision record","icon":"clipboard-check","href":"/v2/storefront/intelligence-runs/tasks/get-seller-decision-record"}]}]},{"group":"Activity \u0026 Reporting","icon":"chart-simple","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Activity \u0026 reporting tasks","icon":"list-check","href":"/v2/storefront/activity/tasks/index"},{"title":"Check moderation","icon":"shield-check","href":"/v2/storefront/activity/tasks/check-moderation"},{"title":"Get reporting metrics","icon":"chart-column","href":"/v2/storefront/activity/tasks/get-reporting-metrics"},{"title":"List activity","icon":"clock-rotate-left","href":"/v2/storefront/activity/tasks/list-activity"}]}]}]},{"group":"Billing","icon":"file-invoice-dollar","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Billing tasks","icon":"list-check","href":"/v2/storefront/billing/tasks/index"},{"title":"Get billing config","icon":"gear","href":"/v2/storefront/billing/tasks/get-billing-config"},{"title":"Get payout activity","icon":"money-bill-transfer","href":"/v2/storefront/billing/tasks/get-payout-activity"},{"title":"List billing accounts","icon":"sitemap","href":"/v2/storefront/billing/tasks/list-billing-accounts"},{"title":"List payout payees","icon":"list","href":"/v2/storefront/billing/tasks/list-payout-payees"},{"title":"Set payout details","icon":"building-columns","href":"/v2/storefront/billing/tasks/set-payout-details"},{"title":"Set payout payee","icon":"building","href":"/v2/storefront/billing/tasks/set-payout-payee"},{"title":"Update billing config","icon":"sliders","href":"/v2/storefront/billing/tasks/update-billing-config"}]}]},{"group":"Account","icon":"id-card","pages":[{"group":"Task Reference","icon":"list-check","pages":[{"title":"Account tasks","icon":"list-check","href":"/v2/storefront/account/tasks/index"},{"title":"Get current account","icon":"id-card","href":"/v2/storefront/account/tasks/get-current-account"},{"title":"Get membership","icon":"users","href":"/v2/storefront/account/tasks/get-membership"},{"title":"Get notification preferences","icon":"bell","href":"/v2/storefront/account/tasks/get-notification-preferences"},{"title":"List accounts","icon":"list","href":"/v2/storefront/account/tasks/list-customer-accounts"},{"title":"Preview account archive","icon":"magnifying-glass","href":"/v2/storefront/account/tasks/preview-account-archive"},{"title":"Archive account","icon":"box-archive","href":"/v2/storefront/account/tasks/archive-account"},{"title":"Restore account","icon":"rotate-left","href":"/v2/storefront/account/tasks/unarchive-account"},{"title":"Update account domain","icon":"globe","href":"/v2/storefront/account/tasks/update-customer-domain"},{"title":"Update membership","icon":"user-gear","href":"/v2/storefront/account/tasks/update-membership"},{"title":"Update notification preferences","icon":"bell-on","href":"/v2/storefront/account/tasks/update-notification-preferences"}]}]}]},{"group":"Cross-Cutting Reference","icon":"book-bookmark","pages":[{"title":"Errors","icon":"circle-exclamation","href":"/v2/reference/errors"},{"title":"Rate Limits","icon":"gauge-high","href":"/v2/reference/rate-limits"},{"title":"Agent fax lines","icon":"fax","href":"/v2/reference/agent-fax"},{"title":"Agent SMS lines","icon":"message","href":"/v2/reference/agent-sms"},{"title":"Agent RCS messages","icon":"message","href":"/v2/reference/agent-rcs"},{"title":"Agent voice lines","icon":"phone","href":"/v2/reference/agent-voice"},{"title":"Public callback URL requirements","icon":"webhook","href":"/v2/reference/public-callback-url-requirements"},{"title":"MCP App HTML","icon":"window","href":"/v2/reference/mcp-apps"},{"title":"Create a white-label ChatGPT app","sidebarTitle":"White-label ChatGPT app","icon":"comments","href":"/v2/reference/white-label-chatgpt-app"},{"title":"Connect Apostra to Microsoft Copilot Studio","sidebarTitle":"Copilot Studio","icon":"microsoft","href":"/v2/reference/connect-copilot-studio"},{"title":"Connect Apostra to Gemini Enterprise","sidebarTitle":"Gemini Enterprise","icon":"sparkles","href":"/v2/reference/connect-gemini-enterprise"},{"title":"Pagination","icon":"list-ol","href":"/v2/reference/pagination"},{"title":"Tasks","icon":"list-check","href":"/v2/guides/tasks"},{"title":"Diagnose Stuck Media Buys","sidebarTitle":"Diagnose stuck media buys","icon":"stethoscope","href":"/v2/developer-reference/diagnosing-stuck-media-buys"}]},{"group":"Buyer API reference","pages":[{"title":"Buyer API Reference","icon":"code","tag":"Deprecated","href":"/v2/buyer-api-reference"},{"group":"Signup","pages":[{"title":"Request buyer access","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /auth/buyer-signup-intake","href":"/v2/buyer-api-reference/signup/request-buyer-access"}]},{"group":"Advertisers","pages":[{"title":"List advertisers","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers","href":"/v2/buyer-api-reference/advertisers/list-advertisers"},{"title":"Create advertiser","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers","href":"/v2/buyer-api-reference/advertisers/create-advertiser"},{"title":"List organization advertisers","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /organization/advertisers","href":"/v2/buyer-api-reference/advertisers/list-organization-advertisers"},{"title":"Create an organization advertiser lifecycle","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /organization/advertisers","href":"/v2/buyer-api-reference/advertisers/create-an-organization-advertiser-lifecycle"},{"title":"Claim an exact-recipient advertiser invitation","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertiser-invitations/claim","href":"/v2/buyer-api-reference/advertisers/claim-an-exact-recipient-advertiser-invitation"},{"title":"List organization advertiser grants","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /organization/advertiser-grants","href":"/v2/buyer-api-reference/advertisers/list-organization-advertiser-grants"},{"title":"Invite an organization to advertiser access","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /organization/advertiser-grants","href":"/v2/buyer-api-reference/advertisers/invite-an-organization-to-advertiser-access"},{"title":"Get an organization advertiser grant","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /organization/advertiser-grants/{grantRef}","href":"/v2/buyer-api-reference/advertisers/get-an-organization-advertiser-grant"},{"title":"Accept an organization advertiser grant","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /organization/advertiser-grants/{grantRef}/accept","href":"/v2/buyer-api-reference/advertisers/accept-an-organization-advertiser-grant"},{"title":"Reject an organization advertiser grant","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /organization/advertiser-grants/{grantRef}/reject","href":"/v2/buyer-api-reference/advertisers/reject-an-organization-advertiser-grant"},{"title":"Revoke an organization advertiser grant","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /organization/advertiser-grants/{grantRef}/revoke","href":"/v2/buyer-api-reference/advertisers/revoke-an-organization-advertiser-grant"},{"title":"List all advertisers home","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /all-advertisers-home","href":"/v2/buyer-api-reference/advertisers/list-all-advertisers-home"},{"title":"Get advertiser","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}","href":"/v2/buyer-api-reference/advertisers/get-advertiser"},{"title":"Update advertiser","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /advertisers/{advertiserId}","href":"/v2/buyer-api-reference/advertisers/update-advertiser"},{"title":"Delete advertiser","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /advertisers/{advertiserId}","href":"/v2/buyer-api-reference/advertisers/delete-advertiser"},{"title":"Restore advertiser","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/restore","href":"/v2/buyer-api-reference/advertisers/restore-advertiser"},{"title":"Get advertiser tracking configuration","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/tracking-config","href":"/v2/buyer-api-reference/advertisers/get-advertiser-tracking-configuration"},{"title":"Update advertiser tracking configuration","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /advertisers/{advertiserId}/tracking-config","href":"/v2/buyer-api-reference/advertisers/update-advertiser-tracking-configuration"},{"title":"Revalidate data delivery credential","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/data-delivery-credentials/{name}/validate","href":"/v2/buyer-api-reference/advertisers/revalidate-data-delivery-credential"},{"title":"List advertiser accounts","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/accounts","href":"/v2/buyer-api-reference/advertisers/list-advertiser-accounts"},{"title":"Assign account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/accounts","href":"/v2/buyer-api-reference/advertisers/assign-account"},{"title":"Get advertiser account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/accounts/{accountId}","href":"/v2/buyer-api-reference/advertisers/get-advertiser-account"},{"title":"List available accounts","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/accounts/available","href":"/v2/buyer-api-reference/advertisers/list-available-accounts"},{"title":"Unmap a partner account from an advertiser","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /advertisers/{advertiserId}/accounts/{linkId}","href":"/v2/buyer-api-reference/advertisers/unmap-a-partner-account-from-an-advertiser"},{"title":"Update account reporting bucket","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /advertisers/{advertiserId}/accounts/{linkId}/reporting-bucket","href":"/v2/buyer-api-reference/advertisers/update-account-reporting-bucket"},{"title":"List catalogs","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/catalogs","href":"/v2/buyer-api-reference/advertisers/list-catalogs"},{"title":"Sync catalogs","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/catalogs/sync","href":"/v2/buyer-api-reference/advertisers/sync-catalogs"},{"title":"Save catalog transform","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /advertisers/{advertiserId}/catalogs/{catalogId}/transform","href":"/v2/buyer-api-reference/advertisers/save-catalog-transform"},{"title":"Preview catalog activation plan","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/catalogs/{catalogId}/activation-plan/preview","href":"/v2/buyer-api-reference/advertisers/preview-catalog-activation-plan"},{"title":"Refresh catalog","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/catalogs/{catalogId}/refresh","href":"/v2/buyer-api-reference/advertisers/refresh-catalog"},{"title":"Execute catalog activation plan","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/catalogs/{catalogId}/activation-plan/execute","href":"/v2/buyer-api-reference/advertisers/execute-catalog-activation-plan"},{"title":"Sync audiences","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{accountId}/audiences/sync","href":"/v2/buyer-api-reference/advertisers/sync-audiences"},{"title":"List audiences","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{accountId}/audiences","href":"/v2/buyer-api-reference/advertisers/list-audiences"}]},{"group":"Brands","pages":[{"title":"Resolve a brand profile","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /brands/resolve","href":"/v2/buyer-api-reference/brands/resolve-a-brand-profile"}]},{"group":"Buyer Storefront Accounts","pages":[{"title":"Declare sandbox buyer account linkages on a MANAGED storefront","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /storefront-accounts/sync","href":"/v2/buyer-api-reference/buyer-storefront-accounts/declare-sandbox-buyer-account-linkages-on-a-managed-storefront"},{"title":"List the caller's storefront-account grants","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefront-accounts","href":"/v2/buyer-api-reference/buyer-storefront-accounts/list-the-callers-storefront-account-grants"}]},{"group":"Buyer Agent Principals","pages":[{"title":"List the organization's Interchange principals","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /buyer-agent-principals","href":"/v2/buyer-api-reference/buyer-agent-principals/list-the-organizations-interchange-principals"},{"title":"Register an existing credential as a buyer agent","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals","href":"/v2/buyer-api-reference/buyer-agent-principals/register-an-existing-credential-as-a-buyer-agent"},{"title":"Replace exact advertiser access for a buyer agent","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /buyer-agent-principals/{principalId}/access","href":"/v2/buyer-api-reference/buyer-agent-principals/replace-exact-advertiser-access-for-a-buyer-agent"},{"title":"List a buyer agent’s active channel bindings","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /buyer-agent-principals/{principalId}/channel-bindings","href":"/v2/buyer-api-reference/buyer-agent-principals/list-a-buyer-agent’s-active-channel-bindings"},{"title":"Bind a Slack channel to a buyer agent","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/{principalId}/channel-bindings","href":"/v2/buyer-api-reference/buyer-agent-principals/bind-a-slack-channel-to-a-buyer-agent"},{"title":"Revoke a buyer agent channel binding","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /buyer-agent-principals/{principalId}/channel-bindings/{bindingId}","href":"/v2/buyer-api-reference/buyer-agent-principals/revoke-a-buyer-agent-channel-binding"},{"title":"List named seller-account connections for a buyer agent","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /buyer-agent-principals/{principalId}/administration-contexts","href":"/v2/buyer-api-reference/buyer-agent-principals/list-named-seller-account-connections-for-a-buyer-agent"},{"title":"Inspect buyer-agent configuration and readiness","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /buyer-agent-principals/{principalId}/administration","href":"/v2/buyer-api-reference/buyer-agent-principals/inspect-buyer-agent-configuration-and-readiness"},{"title":"Apply a confirmed buyer-agent configuration control","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/{principalId}/controls","href":"/v2/buyer-api-reference/buyer-agent-principals/apply-a-confirmed-buyer-agent-configuration-control"},{"title":"Test one buyer-agent webhook endpoint","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/{principalId}/notification-subscriptions/{subscriberId}/test","href":"/v2/buyer-api-reference/buyer-agent-principals/test-one-buyer-agent-webhook-endpoint"},{"title":"Pause or retire a buyer agent","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/{principalId}/lifecycle-controls","href":"/v2/buyer-api-reference/buyer-agent-principals/pause-or-retire-a-buyer-agent"},{"title":"Provision a hosted buyer-agent runtime-token binding","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/{principalId}/runtime-token/binding","href":"/v2/buyer-api-reference/buyer-agent-principals/provision-a-hosted-buyer-agent-runtime-token-binding"},{"title":"Mint a short-lived hosted buyer-agent runtime token","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/{principalId}/runtime-token","href":"/v2/buyer-api-reference/buyer-agent-principals/mint-a-short-lived-hosted-buyer-agent-runtime-token"},{"title":"Refresh a hosted buyer-agent runtime token","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/{principalId}/runtime-token/refresh","href":"/v2/buyer-api-reference/buyer-agent-principals/refresh-a-hosted-buyer-agent-runtime-token"},{"title":"Issue an identity-only buyer-agent credential","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/issue","href":"/v2/buyer-api-reference/buyer-agent-principals/issue-an-identity-only-buyer-agent-credential"},{"title":"Rotate a buyer-agent API-key credential","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/rotate","href":"/v2/buyer-api-reference/buyer-agent-principals/rotate-a-buyer-agent-api-key-credential"},{"title":"Revoke a buyer-agent credential","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /buyer-agent-principals/revoke","href":"/v2/buyer-api-reference/buyer-agent-principals/revoke-a-buyer-agent-credential"}]},{"group":"Creatives","pages":[{"title":"Get creative dashboard URL","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /creative-dashboard-url","href":"/v2/buyer-api-reference/creatives/get-creative-dashboard-url"},{"title":"Adopt a managed video source into a creative","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /creatives/adopt-managed-video-source","href":"/v2/buyer-api-reference/creatives/adopt-a-managed-video-source-into-a-creative"},{"title":"Adopt a managed audio source into a creative","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /creatives/adopt-managed-audio-source","href":"/v2/buyer-api-reference/creatives/adopt-a-managed-audio-source-into-a-creative"},{"title":"Create creative manifest","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creatives/create","href":"/v2/buyer-api-reference/creatives/create-creative-manifest"},{"title":"List creative templates","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/creatives/templates","href":"/v2/buyer-api-reference/creatives/list-creative-templates"},{"title":"List creative manifests","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/creativeManifest","href":"/v2/buyer-api-reference/creatives/list-creative-manifests"},{"title":"List creatives","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/creatives","href":"/v2/buyer-api-reference/creatives/list-creatives"},{"title":"Bulk update creatives","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creatives/bulk-update","href":"/v2/buyer-api-reference/creatives/bulk-update-creatives"},{"title":"Sync campaign creatives","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creatives/sync","href":"/v2/buyer-api-reference/creatives/sync-campaign-creatives"},{"title":"Create advertiser creative master","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/creatives/create","href":"/v2/buyer-api-reference/creatives/create-advertiser-creative-master"},{"title":"List advertiser creative library","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/creatives","href":"/v2/buyer-api-reference/creatives/list-advertiser-creative-library"},{"title":"Promote advertiser creatives into the library shelf","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/creatives/save-to-library","href":"/v2/buyer-api-reference/creatives/promote-advertiser-creatives-into-the-library-shelf"},{"title":"Stash brought creatives before an advertiser is chosen","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /creatives/stash","href":"/v2/buyer-api-reference/creatives/stash-brought-creatives-before-an-advertiser-is-chosen"},{"title":"Preview a creative tag sheet","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /creatives/tag-sheet-preview","href":"/v2/buyer-api-reference/creatives/preview-a-creative-tag-sheet"},{"title":"Open the creative-intent picker for an advertiser","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/creative-intent","href":"/v2/buyer-api-reference/creatives/open-the-creative-intent-picker-for-an-advertiser"},{"title":"Get creative-confirmation card for a campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/creative-confirmation","href":"/v2/buyer-api-reference/creatives/get-creative-confirmation-card-for-a-campaign"},{"title":"Attach brought creatives to a campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creative-confirmation","href":"/v2/buyer-api-reference/creatives/attach-brought-creatives-to-a-campaign"},{"title":"Reassign a brought creative to a different placement","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creatives/{creativeId}/placement","href":"/v2/buyer-api-reference/creatives/reassign-a-brought-creative-to-a-different-placement"},{"title":"Batch-reassign brought creatives to placements","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creatives/placements","href":"/v2/buyer-api-reference/creatives/batch-reassign-brought-creatives-to-placements"},{"title":"Assign creative to campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/creatives/{creativeId}/campaigns","href":"/v2/buyer-api-reference/creatives/assign-creative-to-campaign"},{"title":"Unassign creative from campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /advertisers/{advertiserId}/creatives/{creativeId}/campaigns/{campaignId}","href":"/v2/buyer-api-reference/creatives/unassign-creative-from-campaign"},{"title":"Archive creative globally","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /advertisers/{advertiserId}/creatives/{creativeId}","href":"/v2/buyer-api-reference/creatives/archive-creative-globally"},{"title":"List creative collections","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/creative-collections","href":"/v2/buyer-api-reference/creatives/list-creative-collections"},{"title":"Create creative collection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creative-collections","href":"/v2/buyer-api-reference/creatives/create-creative-collection"},{"title":"Get creative collection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/creative-collections/{collectionId}","href":"/v2/buyer-api-reference/creatives/get-creative-collection"},{"title":"Update creative collection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /campaigns/{campaignId}/creative-collections/{collectionId}","href":"/v2/buyer-api-reference/creatives/update-creative-collection"},{"title":"Add creative collection members","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creative-collections/{collectionId}/members","href":"/v2/buyer-api-reference/creatives/add-creative-collection-members"},{"title":"Remove creative collection members","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /campaigns/{campaignId}/creative-collections/{collectionId}/members","href":"/v2/buyer-api-reference/creatives/remove-creative-collection-members"},{"title":"Attach creative collection to campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creative-collections/{collectionId}/attach","href":"/v2/buyer-api-reference/creatives/attach-creative-collection-to-campaign"},{"title":"List advertiser creative collections","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/creative-collections","href":"/v2/buyer-api-reference/creatives/list-advertiser-creative-collections"},{"title":"Create advertiser creative collection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/creative-collections","href":"/v2/buyer-api-reference/creatives/create-advertiser-creative-collection"},{"title":"Get advertiser creative collection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/creative-collections/{collectionId}","href":"/v2/buyer-api-reference/creatives/get-advertiser-creative-collection"},{"title":"Update advertiser creative collection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /advertisers/{advertiserId}/creative-collections/{collectionId}","href":"/v2/buyer-api-reference/creatives/update-advertiser-creative-collection"},{"title":"Archive advertiser creative collection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /advertisers/{advertiserId}/creative-collections/{collectionId}","href":"/v2/buyer-api-reference/creatives/archive-advertiser-creative-collection"},{"title":"Add advertiser creative collection members","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/creative-collections/{collectionId}/members","href":"/v2/buyer-api-reference/creatives/add-advertiser-creative-collection-members"},{"title":"Remove advertiser creative collection members","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /advertisers/{advertiserId}/creative-collections/{collectionId}/members","href":"/v2/buyer-api-reference/creatives/remove-advertiser-creative-collection-members"},{"title":"Get creative manifest","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/creatives/{creativeId}","href":"/v2/buyer-api-reference/creatives/get-creative-manifest"},{"title":"Update creative manifest","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /campaigns/{campaignId}/creatives/{creativeId}","href":"/v2/buyer-api-reference/creatives/update-creative-manifest"},{"title":"Delete creative manifest","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /campaigns/{campaignId}/creatives/{creativeId}","href":"/v2/buyer-api-reference/creatives/delete-creative-manifest"},{"title":"Preview creative","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creatives/{creativeId}/preview","href":"/v2/buyer-api-reference/creatives/preview-creative"},{"title":"Duplicate creative","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creatives/{creativeId}/duplicate","href":"/v2/buyer-api-reference/creatives/duplicate-creative"},{"title":"Start creative session","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creative-sessions","href":"/v2/buyer-api-reference/creatives/start-creative-session"},{"title":"Get creative session","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/creative-sessions/{sessionId}","href":"/v2/buyer-api-reference/creatives/get-creative-session"},{"title":"Evaluate creative session","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creative-sessions/{sessionId}/evaluate","href":"/v2/buyer-api-reference/creatives/evaluate-creative-session"},{"title":"Finalize creative session","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/creative-sessions/{sessionId}/finalize","href":"/v2/buyer-api-reference/creatives/finalize-creative-session"},{"title":"Get creative references","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/creative-references","href":"/v2/buyer-api-reference/creatives/get-creative-references"},{"title":"Publish a rendition as VAST","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/video-renditions/{jobUid}/vast-publications","href":"/v2/buyer-api-reference/creatives/publish-a-rendition-as-vast"},{"title":"Revoke a rendition VAST publication","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/rendition-vast-publications/{publicationUid}/revoke","href":"/v2/buyer-api-reference/creatives/revoke-a-rendition-vast-publication"}]},{"group":"Product Discovery","pages":[{"title":"Get products across storefronts","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /products/query","href":"/v2/buyer-api-reference/product-discovery/get-products-across-storefronts"},{"title":"Stage or execute products across storefronts","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /media-buys/batch","href":"/v2/buyer-api-reference/product-discovery/stage-or-execute-products-across-storefronts"},{"title":"Discover products","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /discovery/discover-products","href":"/v2/buyer-api-reference/product-discovery/discover-products"},{"title":"Browse products for discovery session","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /discovery/{discoveryId}/discover-products","href":"/v2/buyer-api-reference/product-discovery/browse-products-for-discovery-session"},{"title":"Get product details","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /discovery/{discoveryId}/products/{productId}/details","href":"/v2/buyer-api-reference/product-discovery/get-product-details"},{"title":"Get selected products","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /discovery/{discoveryId}/products","href":"/v2/buyer-api-reference/product-discovery/get-selected-products"},{"title":"Add products to selection","description":"Add products to the selection. Products must have been discovered via GET /discovery/{discoveryId}/discover-products first.","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /discovery/{discoveryId}/products","href":"/v2/buyer-api-reference/product-discovery/add-products-to-selection"},{"title":"Remove products from selection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /discovery/{discoveryId}/products","href":"/v2/buyer-api-reference/product-discovery/remove-products-from-selection"},{"title":"Apply a proposal","description":"Apply a sales agent proposal to auto-add products with recommended budget allocations. Requires discover-products to have been called first.","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /discovery/{discoveryId}/apply-proposal","href":"/v2/buyer-api-reference/product-discovery/apply-a-proposal"}]},{"group":"Webhook Subscriptions","pages":[{"title":"List webhook subscriptions","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /webhook-subscriptions","href":"/v2/buyer-api-reference/webhook-subscriptions/list-webhook-subscriptions"},{"title":"Register a webhook subscription","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /webhook-subscriptions","href":"/v2/buyer-api-reference/webhook-subscriptions/register-a-webhook-subscription"},{"title":"Delete a webhook subscription","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /webhook-subscriptions/{id}","href":"/v2/buyer-api-reference/webhook-subscriptions/delete-a-webhook-subscription"}]},{"group":"Campaigns","pages":[{"title":"List campaigns","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns","href":"/v2/buyer-api-reference/campaigns/list-campaigns"},{"title":"Create campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns","href":"/v2/buyer-api-reference/campaigns/create-campaign"},{"title":"Get campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}","href":"/v2/buyer-api-reference/campaigns/get-campaign"},{"title":"Update campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /campaigns/{campaignId}","href":"/v2/buyer-api-reference/campaigns/update-campaign"},{"title":"Delete campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /campaigns/{campaignId}","href":"/v2/buyer-api-reference/campaigns/delete-campaign"},{"title":"Get campaign workspace","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/workspace","href":"/v2/buyer-api-reference/campaigns/get-campaign-workspace"},{"title":"Get effective campaign tracking configuration","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/tracking-config","href":"/v2/buyer-api-reference/campaigns/get-effective-campaign-tracking-configuration"},{"title":"Update campaign tracker additions and overrides","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /campaigns/{campaignId}/tracking-config","href":"/v2/buyer-api-reference/campaigns/update-campaign-tracker-additions-and-overrides"},{"title":"Get campaign delivery","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/delivery","href":"/v2/buyer-api-reference/campaigns/get-campaign-delivery"},{"title":"Execute campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/execute","href":"/v2/buyer-api-reference/campaigns/execute-campaign"},{"title":"Pause campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/pause","href":"/v2/buyer-api-reference/campaigns/pause-campaign"},{"title":"Reactivate campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/reactivate","href":"/v2/buyer-api-reference/campaigns/reactivate-campaign"},{"title":"Auto-select products","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/auto-select-products","href":"/v2/buyer-api-reference/campaigns/auto-select-products"},{"title":"Get media buy ADCP status","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/media-buy-status","href":"/v2/buyer-api-reference/campaigns/get-media-buy-adcp-status"},{"title":"Get campaign seller scorecard","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/seller-scorecard","href":"/v2/buyer-api-reference/campaigns/get-campaign-seller-scorecard"},{"title":"Get media buy","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /media-buys/{mediaBuyId}","href":"/v2/buyer-api-reference/campaigns/get-media-buy"},{"title":"Update media buy","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml patch /media-buys/{mediaBuyId}","href":"/v2/buyer-api-reference/campaigns/update-media-buy"},{"title":"List media buy packages","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /media-buys/{mediaBuyId}/packages","href":"/v2/buyer-api-reference/campaigns/list-media-buy-packages"},{"title":"Pause media buy","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /media-buys/{mediaBuyId}/pause","href":"/v2/buyer-api-reference/campaigns/pause-media-buy"},{"title":"Reactivate media buy","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /media-buys/{mediaBuyId}/reactivate","href":"/v2/buyer-api-reference/campaigns/reactivate-media-buy"},{"title":"Get campaign products","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/products","href":"/v2/buyer-api-reference/campaigns/get-campaign-products"},{"title":"List targeting dimensions","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /targeting/dimensions","href":"/v2/buyer-api-reference/campaigns/list-targeting-dimensions"},{"title":"List targeting dimension values","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /targeting/dimensions/{system}","href":"/v2/buyer-api-reference/campaigns/list-targeting-dimension-values"},{"title":"Resolve targeting dimension text","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /targeting/dimensions/{system}/resolve","href":"/v2/buyer-api-reference/campaigns/resolve-targeting-dimension-text"},{"title":"List geo metros","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /targeting/geo-metros","href":"/v2/buyer-api-reference/campaigns/list-geo-metros"}]},{"group":"Audit Logs","pages":[{"title":"List buyer audit logs","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /audit-logs","href":"/v2/buyer-api-reference/audit-logs/list-buyer-audit-logs"}]},{"group":"Activity","pages":[{"title":"List API calls","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /activity/calls","href":"/v2/buyer-api-reference/activity/list-api-calls"},{"title":"Get API call detail","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /activity/calls/{activityUid}","href":"/v2/buyer-api-reference/activity/get-api-call-detail"}]},{"group":"Event Sources","pages":[{"title":"List event sources","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/event-sources","href":"/v2/buyer-api-reference/event-sources/list-event-sources"},{"title":"Sync event sources","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/event-sources/sync","href":"/v2/buyer-api-reference/event-sources/sync-event-sources"},{"title":"Log conversion events","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/log-event","href":"/v2/buyer-api-reference/event-sources/log-conversion-events"}]},{"group":"Reporting","pages":[{"title":"Get event summary","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/events/summary","href":"/v2/buyer-api-reference/reporting/get-event-summary"},{"title":"Get reporting","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /reporting/metrics","href":"/v2/buyer-api-reference/reporting/get-reporting"}]},{"group":"Measurement","pages":[{"title":"Sync measurement data","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/measurement-data/sync","href":"/v2/buyer-api-reference/measurement/sync-measurement-data"},{"title":"List test cohorts","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/test-cohorts","href":"/v2/buyer-api-reference/measurement/list-test-cohorts"},{"title":"Create test cohort","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/test-cohorts","href":"/v2/buyer-api-reference/measurement/create-test-cohort"},{"title":"Get test cohort","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/test-cohorts/{cohortId}","href":"/v2/buyer-api-reference/measurement/get-test-cohort"},{"title":"Update test cohort","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /advertisers/{advertiserId}/test-cohorts/{cohortId}","href":"/v2/buyer-api-reference/measurement/update-test-cohort"},{"title":"Delete test cohort","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /advertisers/{advertiserId}/test-cohorts/{cohortId}","href":"/v2/buyer-api-reference/measurement/delete-test-cohort"},{"title":"Get measurement configuration","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/measurement-config","href":"/v2/buyer-api-reference/measurement/get-measurement-configuration"},{"title":"Update measurement configuration","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /advertisers/{advertiserId}/measurement-config","href":"/v2/buyer-api-reference/measurement/update-measurement-configuration"},{"title":"List measurement sources","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/measurement-sources","href":"/v2/buyer-api-reference/measurement/list-measurement-sources"},{"title":"Create measurement source","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/measurement-sources","href":"/v2/buyer-api-reference/measurement/create-measurement-source"},{"title":"Get measurement source","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/measurement-sources/{sourceId}","href":"/v2/buyer-api-reference/measurement/get-measurement-source"},{"title":"Update measurement source","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml patch /advertisers/{advertiserId}/measurement-sources/{sourceId}","href":"/v2/buyer-api-reference/measurement/update-measurement-source"},{"title":"List measurement records","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/measurement-records","href":"/v2/buyer-api-reference/measurement/list-measurement-records"},{"title":"Upload measurement records","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/measurement-records","href":"/v2/buyer-api-reference/measurement/upload-measurement-records"},{"title":"Upload context records","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/context-records","href":"/v2/buyer-api-reference/measurement/upload-context-records"},{"title":"Check measurement freshness","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/measurement-freshness","href":"/v2/buyer-api-reference/measurement/check-measurement-freshness"}]},{"group":"Optimization Suggestions","pages":[{"title":"List optimization suggestions","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /optimization-suggestions","href":"/v2/buyer-api-reference/optimization-suggestions/list-optimization-suggestions"},{"title":"Get optimization suggestion","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /optimization-suggestions/{suggestionId}","href":"/v2/buyer-api-reference/optimization-suggestions/get-optimization-suggestion"},{"title":"Approve optimization suggestion","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /optimization-suggestions/{suggestionId}/approve","href":"/v2/buyer-api-reference/optimization-suggestions/approve-optimization-suggestion"},{"title":"Reject optimization suggestion","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /optimization-suggestions/{suggestionId}/reject","href":"/v2/buyer-api-reference/optimization-suggestions/reject-optimization-suggestion"},{"title":"List campaign suggestion sets","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaign-suggestion-sets","href":"/v2/buyer-api-reference/optimization-suggestions/list-campaign-suggestion-sets"},{"title":"Get campaign suggestion set","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaign-suggestion-sets/{campaignSuggestionSetId}","href":"/v2/buyer-api-reference/optimization-suggestions/get-campaign-suggestion-set"},{"title":"Approve campaign suggestion set","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaign-suggestion-sets/{campaignSuggestionSetId}/approve","href":"/v2/buyer-api-reference/optimization-suggestions/approve-campaign-suggestion-set"},{"title":"Reject campaign suggestion set","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaign-suggestion-sets/{campaignSuggestionSetId}/reject","href":"/v2/buyer-api-reference/optimization-suggestions/reject-campaign-suggestion-set"}]},{"group":"Identity Match","pages":[{"title":"List identity-match targeting configs","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /identity-match/targeting","href":"/v2/buyer-api-reference/identity-match/list-identity-match-targeting-configs"}]},{"group":"Asks","pages":[{"title":"List my asks","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /asks","href":"/v2/buyer-api-reference/asks/list-my-asks"}]},{"group":"Supply Requests","pages":[{"title":"Suggest requested supply","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /supply-requests/suggestions","href":"/v2/buyer-api-reference/supply-requests/suggest-requested-supply"},{"title":"List requested supply","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /supply-requests","href":"/v2/buyer-api-reference/supply-requests/list-requested-supply"},{"title":"Request supply","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /supply-requests","href":"/v2/buyer-api-reference/supply-requests/request-supply"},{"title":"Remove requested supply","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /supply-requests/remove","href":"/v2/buyer-api-reference/supply-requests/remove-requested-supply"}]},{"group":"Account","pages":[{"title":"Get current account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /accounts/current","href":"/v2/buyer-api-reference/account/get-current-account"},{"title":"List customer accounts","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /accounts","href":"/v2/buyer-api-reference/account/list-customer-accounts"},{"title":"Create account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /accounts/create-child","href":"/v2/buyer-api-reference/account/create-account"},{"title":"Convert account into an organization","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /accounts/convert-to-organization","href":"/v2/buyer-api-reference/account/convert-account-into-an-organization"},{"title":"Get organization posture","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /accounts/organization-posture","href":"/v2/buyer-api-reference/account/get-organization-posture"},{"title":"Update account domain","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml patch /accounts/{customerId}/domain","href":"/v2/buyer-api-reference/account/update-account-domain"},{"title":"Preview account archive","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /accounts/{customerId}/archive-preview","href":"/v2/buyer-api-reference/account/preview-account-archive"},{"title":"Archive child account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /accounts/{customerId}/archive","href":"/v2/buyer-api-reference/account/archive-child-account"},{"title":"Restore child account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /accounts/{customerId}/unarchive","href":"/v2/buyer-api-reference/account/restore-child-account"},{"title":"Delete child account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /accounts/{customerId}","href":"/v2/buyer-api-reference/account/delete-child-account"},{"title":"Get membership settings","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /accounts/{customerId}/membership","href":"/v2/buyer-api-reference/account/get-membership-settings"},{"title":"Update membership settings","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml patch /accounts/{customerId}/membership","href":"/v2/buyer-api-reference/account/update-membership-settings"},{"title":"List inbound email addresses","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /inbound-email-addresses","href":"/v2/buyer-api-reference/account/list-inbound-email-addresses"},{"title":"Create inbound email address","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /inbound-email-addresses","href":"/v2/buyer-api-reference/account/create-inbound-email-address"},{"title":"Rotate inbound email address","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /inbound-email-addresses/{id}/rotate","href":"/v2/buyer-api-reference/account/rotate-inbound-email-address"},{"title":"Revoke inbound email address","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /inbound-email-addresses/{id}/revoke","href":"/v2/buyer-api-reference/account/revoke-inbound-email-address"},{"title":"Get notification preferences","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /notification-preferences","href":"/v2/buyer-api-reference/account/get-notification-preferences"},{"title":"Update notification preferences","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /notification-preferences","href":"/v2/buyer-api-reference/account/update-notification-preferences"},{"title":"Get Slack notification settings","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /notification-delivery-preferences","href":"/v2/buyer-api-reference/account/get-slack-notification-settings"},{"title":"Update a Slack notification setting","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /notification-delivery-preferences","href":"/v2/buyer-api-reference/account/update-a-slack-notification-setting"},{"title":"Check shared Slack availability","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /messaging-apps/slack","href":"/v2/buyer-api-reference/account/check-shared-slack-availability"},{"title":"Inspect Discord messaging apps","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /messaging-apps/discord","href":"/v2/buyer-api-reference/account/inspect-discord-messaging-apps"},{"title":"Create a Discord messaging app","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /messaging-apps/discord","href":"/v2/buyer-api-reference/account/create-a-discord-messaging-app"},{"title":"Inspect Microsoft Teams messaging apps","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /messaging-apps/teams","href":"/v2/buyer-api-reference/account/inspect-microsoft-teams-messaging-apps"},{"title":"Create a Microsoft Teams messaging app","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /messaging-apps/teams","href":"/v2/buyer-api-reference/account/create-a-microsoft-teams-messaging-app"},{"title":"Register a Discord app installation","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /messaging-apps/{definitionId}/discord-installations","href":"/v2/buyer-api-reference/account/register-a-discord-app-installation"},{"title":"Register a Microsoft Teams app installation","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /messaging-apps/{definitionId}/teams-installations","href":"/v2/buyer-api-reference/account/register-a-microsoft-teams-app-installation"},{"title":"Inspect WhatsApp messaging apps","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /messaging-apps/whatsapp","href":"/v2/buyer-api-reference/account/inspect-whatsapp-messaging-apps"},{"title":"Create a reply-only WhatsApp messaging app","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /messaging-apps/whatsapp","href":"/v2/buyer-api-reference/account/create-a-reply-only-whatsapp-messaging-app"},{"title":"Register a WhatsApp business-phone installation","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /messaging-apps/{definitionId}/whatsapp-installations","href":"/v2/buyer-api-reference/account/register-a-whatsapp-business-phone-installation"},{"title":"Link a messaging app identity","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /messaging-apps/{definitionId}/installations/{installationId}/identity","href":"/v2/buyer-api-reference/account/link-a-messaging-app-identity"},{"title":"Revoke a messaging app identity","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /messaging-apps/{definitionId}/installations/{installationId}/identity","href":"/v2/buyer-api-reference/account/revoke-a-messaging-app-identity"},{"title":"Rotate messaging app credentials","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /messaging-apps/{definitionId}/credentials","href":"/v2/buyer-api-reference/account/rotate-messaging-app-credentials"},{"title":"Suspend or uninstall a messaging app installation","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml patch /messaging-apps/{definitionId}/installations/{installationId}","href":"/v2/buyer-api-reference/account/suspend-or-uninstall-a-messaging-app-installation"},{"title":"Retire a messaging app","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml patch /messaging-apps/{definitionId}","href":"/v2/buyer-api-reference/account/retire-a-messaging-app"},{"title":"Get buyer agent activation","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /activation","href":"/v2/buyer-api-reference/account/get-buyer-agent-activation"},{"title":"Retain the first free provider account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /activation/provider-binding","href":"/v2/buyer-api-reference/account/retain-the-first-free-provider-account"},{"title":"Preview market readiness","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /market-readiness","href":"/v2/buyer-api-reference/account/preview-market-readiness"},{"title":"Get buyer readiness","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /readiness","href":"/v2/buyer-api-reference/account/get-buyer-readiness"},{"title":"Update buyer operator domain","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml patch /readiness/operator","href":"/v2/buyer-api-reference/account/update-buyer-operator-domain"}]},{"group":"Notifications","pages":[{"title":"List notifications","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /notifications","href":"/v2/buyer-api-reference/notifications/list-notifications"},{"title":"Mark all notifications as read","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /notifications/read-all","href":"/v2/buyer-api-reference/notifications/mark-all-notifications-as-read"},{"title":"Mark notification as read","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /notifications/{notificationId}/read","href":"/v2/buyer-api-reference/notifications/mark-notification-as-read"},{"title":"Acknowledge notification","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /notifications/{notificationId}/acknowledge","href":"/v2/buyer-api-reference/notifications/acknowledge-notification"}]},{"group":"Release Updates","pages":[{"title":"List personalized release updates","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /release-updates","href":"/v2/buyer-api-reference/release-updates/list-personalized-release-updates"},{"title":"List the release board","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /release-board","href":"/v2/buyer-api-reference/release-updates/list-the-release-board"},{"title":"Mark release updates as seen","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /release-updates/seen","href":"/v2/buyer-api-reference/release-updates/mark-release-updates-as-seen"}]},{"group":"Moderation","pages":[{"title":"Pre-check content against moderation policy","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /moderation/check","href":"/v2/buyer-api-reference/moderation/pre-check-content-against-moderation-policy"}]},{"group":"Storefronts","pages":[{"title":"List storefronts","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefronts","href":"/v2/buyer-api-reference/storefronts/list-storefronts"},{"title":"Get storefront","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefronts/{storefrontId}","href":"/v2/buyer-api-reference/storefronts/get-storefront"},{"title":"Update Storefront selection override","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /storefronts/{storefrontId}/selection-override","href":"/v2/buyer-api-reference/storefronts/update-storefront-selection-override"},{"title":"Update advertiser Seller activation preference","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /storefronts/{storefrontId}/advertisers/{advertiserId}/activation-preference","href":"/v2/buyer-api-reference/storefronts/update-advertiser-seller-activation-preference"},{"title":"Update Storefront billing policy","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /storefronts/{storefrontId}/billing-policy","href":"/v2/buyer-api-reference/storefronts/update-storefront-billing-policy"},{"title":"Accept direct Storefront billing","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /storefronts/{storefrontId}/direct-billing-acceptance","href":"/v2/buyer-api-reference/storefronts/accept-direct-storefront-billing"},{"title":"Get storefront capabilities","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefronts/{storefrontId}/capabilities","href":"/v2/buyer-api-reference/storefronts/get-storefront-capabilities"},{"title":"List storefront connections","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefront-connections","href":"/v2/buyer-api-reference/storefronts/list-storefront-connections"},{"title":"List external account mappings","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefront-connection-account-mappings","href":"/v2/buyer-api-reference/storefronts/list-external-account-mappings"},{"title":"List integration external accounts","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefront-connections/{connectionId}/accounts","href":"/v2/buyer-api-reference/storefronts/list-integration-external-accounts"},{"title":"Refresh integration external accounts","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /storefront-connections/{connectionId}/accounts/refresh","href":"/v2/buyer-api-reference/storefronts/refresh-integration-external-accounts"},{"title":"Remove storefront connection","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /storefront-connections/{connectionId}","href":"/v2/buyer-api-reference/storefronts/remove-storefront-connection"},{"title":"Select integration external account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml patch /storefront-connections/{connectionId}/accounts/{accountId}/select","href":"/v2/buyer-api-reference/storefronts/select-integration-external-account"},{"title":"Map external account to advertiser","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /storefront-connections/{connectionId}/accounts/{accountId}/advertiser","href":"/v2/buyer-api-reference/storefronts/map-external-account-to-advertiser"},{"title":"Set account-level Enhanced Reporting","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /storefront-connections/{connectionId}/accounts/{accountId}/enhanced-reporting","href":"/v2/buyer-api-reference/storefronts/set-account-level-enhanced-reporting"},{"title":"List linkable TikTok identities","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefront-connections/{connectionId}/accounts/{accountId}/identities","href":"/v2/buyer-api-reference/storefronts/list-linkable-tiktok-identities"},{"title":"Set or clear the TikTok ad identity","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /storefront-connections/{connectionId}/accounts/{accountId}/identity","href":"/v2/buyer-api-reference/storefronts/set-or-clear-the-tiktok-ad-identity"},{"title":"Subscribe a directed-campaign account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /storefront-connections/{connectionId}/accounts/{accountId}/directed-campaigns/subscribe","href":"/v2/buyer-api-reference/storefronts/subscribe-a-directed-campaign-account"},{"title":"Get directed-campaign subscription health","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefront-connections/{connectionId}/accounts/{accountId}/directed-campaigns/subscription","href":"/v2/buyer-api-reference/storefronts/get-directed-campaign-subscription-health"},{"title":"Unsubscribe a directed-campaign account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /storefront-connections/{connectionId}/accounts/{accountId}/directed-campaigns/subscription","href":"/v2/buyer-api-reference/storefronts/unsubscribe-a-directed-campaign-account"},{"title":"List account presences","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefront-connections/{connectionId}/accounts/{accountId}/presences","href":"/v2/buyer-api-reference/storefronts/list-account-presences"},{"title":"List reporting-only Meta campaign identities","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefront-connections/{connectionId}/accounts/{accountId}/reporting-campaigns","href":"/v2/buyer-api-reference/storefronts/list-reporting-only-meta-campaign-identities"},{"title":"Get reporting-only Meta campaign delivery","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefront-connections/{connectionId}/accounts/{accountId}/reporting-campaigns/{upstreamCampaignId}/delivery","href":"/v2/buyer-api-reference/storefronts/get-reporting-only-meta-campaign-delivery"},{"title":"Update storefront connection policy","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml patch /storefronts/{storefrontId}/connection-policy","href":"/v2/buyer-api-reference/storefronts/update-storefront-connection-policy"},{"title":"Connect storefront","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /storefronts/{storefrontId}/connection","href":"/v2/buyer-api-reference/storefronts/connect-storefront"},{"title":"List credentials","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefronts/credentials","href":"/v2/buyer-api-reference/storefronts/list-credentials"},{"title":"Register source credentials","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /storefronts/{storefrontId}/sources/{sourceId}/credentials","href":"/v2/buyer-api-reference/storefronts/register-source-credentials"},{"title":"Connect a registered AdCP source","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /storefronts/{storefrontId}/sources/{sourceId}/adcp-connection","href":"/v2/buyer-api-reference/storefronts/connect-a-registered-adcp-source"},{"title":"List publisher domains for a storefront","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /storefronts/{storefrontId}/publishers","href":"/v2/buyer-api-reference/storefronts/list-publisher-domains-for-a-storefront"}]},{"group":"Syndication","pages":[{"title":"Toggle syndication for a resource","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/syndicate","href":"/v2/buyer-api-reference/syndication/toggle-syndication-for-a-resource"},{"title":"Query syndication status","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/syndication-status","href":"/v2/buyer-api-reference/syndication/query-syndication-status"}]},{"group":"Tasks","pages":[{"title":"Get task status","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /tasks/{taskId}","href":"/v2/buyer-api-reference/tasks/get-task-status"}]},{"group":"Property Lists","pages":[{"title":"List property lists","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/property-lists","href":"/v2/buyer-api-reference/property-lists/list-property-lists"},{"title":"Create property list","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/property-lists","href":"/v2/buyer-api-reference/property-lists/create-property-list"},{"title":"Get property list","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /advertisers/{advertiserId}/property-lists/{listId}","href":"/v2/buyer-api-reference/property-lists/get-property-list"},{"title":"Update property list","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /advertisers/{advertiserId}/property-lists/{listId}","href":"/v2/buyer-api-reference/property-lists/update-property-list"},{"title":"Delete property list","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /advertisers/{advertiserId}/property-lists/{listId}","href":"/v2/buyer-api-reference/property-lists/delete-property-list"},{"title":"Get campaign property lists","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /campaigns/{campaignId}/property-lists","href":"/v2/buyer-api-reference/property-lists/get-campaign-property-lists"},{"title":"Attach property list to campaign","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /campaigns/{campaignId}/property-lists","href":"/v2/buyer-api-reference/property-lists/attach-property-list-to-campaign"},{"title":"Check property list","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /property-lists/check","href":"/v2/buyer-api-reference/property-lists/check-property-list"},{"title":"Get property list check report","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /property-lists/reports/{reportId}","href":"/v2/buyer-api-reference/property-lists/get-property-list-check-report"}]},{"group":"Buyer Billing","pages":[{"title":"Retired: credit applications","deprecated":true,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /credit-applications/v2","href":"/v2/buyer-api-reference/buyer-billing/retired:-credit-applications"},{"title":"Retired: credit applications","deprecated":true,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /credit-applications/v2","href":"/v2/buyer-api-reference/buyer-billing/retired:-credit-applications-1"},{"title":"Retired: credit applications","deprecated":true,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /credit-applications/v2/{applicationId}","href":"/v2/buyer-api-reference/buyer-billing/retired:-credit-applications-2"},{"title":"Retired: credit applications","deprecated":true,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /credit-applications/v2/{applicationId}/accept-counteroffer","href":"/v2/buyer-api-reference/buyer-billing/retired:-credit-applications-3"},{"title":"Retired: credit applications","deprecated":true,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /credit-applications/v2/{applicationId}/withdraw","href":"/v2/buyer-api-reference/buyer-billing/retired:-credit-applications-4"},{"title":"Get billing information","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/info","href":"/v2/buyer-api-reference/buyer-billing/get-billing-information"},{"title":"Update billing information (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /billing/info","href":"/v2/buyer-api-reference/buyer-billing/update-billing-information-admin"},{"title":"Get billing account","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/account","href":"/v2/buyer-api-reference/buyer-billing/get-billing-account"},{"title":"Get inherited billing stub","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/account/inherited-stub","href":"/v2/buyer-api-reference/buyer-billing/get-inherited-billing-stub"},{"title":"Get the app-root Rate Card review decision","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/iu-rate-card/login-prompt","href":"/v2/buyer-api-reference/buyer-billing/get-the-app-root-rate-card-review-decision"},{"title":"Get the organization IU Rate Card offer and acceptance state","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/iu-rate-card","href":"/v2/buyer-api-reference/buyer-billing/get-the-organization-iu-rate-card-offer-and-acceptance-state"},{"title":"Get the versioned organization IU commercial document","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/iu-rate-card/v2","href":"/v2/buyer-api-reference/buyer-billing/get-the-versioned-organization-iu-commercial-document"},{"title":"Get the catalog-v3 organization IU commercial document","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/iu-rate-card/v3","href":"/v2/buyer-api-reference/buyer-billing/get-the-catalog-v3-organization-iu-commercial-document"},{"title":"Get the catalog-v4 organization IU commercial document","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/iu-rate-card/v4","href":"/v2/buyer-api-reference/buyer-billing/get-the-catalog-v4-organization-iu-commercial-document"},{"title":"Request human help choosing an IU plan","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /billing/iu-rate-card/mcp-app/help","href":"/v2/buyer-api-reference/buyer-billing/request-human-help-choosing-an-iu-plan"},{"title":"Download the current Commercial Offer proposal","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/iu-rate-card/document.pdf","href":"/v2/buyer-api-reference/buyer-billing/download-the-current-commercial-offer-proposal"},{"title":"Accept an exact organization IU Rate Card offer","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /billing/iu-rate-card/accept","href":"/v2/buyer-api-reference/buyer-billing/accept-an-exact-organization-iu-rate-card-offer"},{"title":"Start adding a card (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /billing/payment-methods/setup","href":"/v2/buyer-api-reference/buyer-billing/start-adding-a-card-admin"},{"title":"Get the latest submitted card confirmation","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/payment-methods/setup-attempt","href":"/v2/buyer-api-reference/buyer-billing/get-the-latest-submitted-card-confirmation"},{"title":"Record a submitted card confirmation (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /billing/payment-methods/setup/{id}/submitted","href":"/v2/buyer-api-reference/buyer-billing/record-a-submitted-card-confirmation-admin"},{"title":"List payment methods","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/payment-methods","href":"/v2/buyer-api-reference/buyer-billing/list-payment-methods"},{"title":"Remove a payment method (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /billing/payment-methods/{id}","href":"/v2/buyer-api-reference/buyer-billing/remove-a-payment-method-admin"},{"title":"Open a payment capture link","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /capture-links/{token}","href":"/v2/buyer-api-reference/buyer-billing/open-a-payment-capture-link"},{"title":"Manually retry the outstanding failed charge (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /billing/payment-methods/pay-now","href":"/v2/buyer-api-reference/buyer-billing/manually-retry-the-outstanding-failed-charge-admin"},{"title":"Get invoice activity","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/invoice-activity","href":"/v2/buyer-api-reference/buyer-billing/get-invoice-activity"},{"title":"List fee invoices","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/fee-invoices","href":"/v2/buyer-api-reference/buyer-billing/list-fee-invoices"},{"title":"Get fee invoice","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/fee-invoices/{invoiceNumber}","href":"/v2/buyer-api-reference/buyer-billing/get-fee-invoice"}]},{"group":"Media Billing","pages":[{"title":"List media billing entities","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/media-entities","href":"/v2/buyer-api-reference/media-billing/list-media-billing-entities"},{"title":"Create media billing entity (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /billing/media-entities","href":"/v2/buyer-api-reference/media-billing/create-media-billing-entity-admin"},{"title":"Update media billing entity (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml put /billing/media-entities/{entityId}","href":"/v2/buyer-api-reference/media-billing/update-media-billing-entity-admin"},{"title":"Delete media billing entity (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /billing/media-entities/{entityId}","href":"/v2/buyer-api-reference/media-billing/delete-media-billing-entity-admin"},{"title":"List media billing attachments","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/media-entities/attachments","href":"/v2/buyer-api-reference/media-billing/list-media-billing-attachments"},{"title":"Attach media billing entity (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /billing/media-entities/attachments","href":"/v2/buyer-api-reference/media-billing/attach-media-billing-entity-admin"},{"title":"Delete media billing attachment (admin)","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /billing/media-entities/attachments/{attachmentId}","href":"/v2/buyer-api-reference/media-billing/delete-media-billing-attachment-admin"},{"title":"Resolve media billing entity","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /billing/media-entities/resolve","href":"/v2/buyer-api-reference/media-billing/resolve-media-billing-entity"}]},{"group":"Update Proposals","pages":[{"title":"Get update proposal status","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml get /update-proposals/{id}","href":"/v2/buyer-api-reference/update-proposals/get-update-proposal-status"},{"title":"Cancel a pending update proposal","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml delete /update-proposals/{id}","href":"/v2/buyer-api-reference/update-proposals/cancel-a-pending-update-proposal"}]},{"group":"MCP","pages":[{"title":"Initialize MCP session","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /","href":"/v2/buyer-api-reference/mcp/initialize-mcp-session"},{"title":"Make API call via MCP","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /api-call","href":"/v2/buyer-api-reference/mcp/make-api-call-via-mcp"},{"title":"Ask about API capabilities","deprecated":null,"version":null,"openapi":"/v2/buyer-api-v2.yaml post /ask-about-capability","href":"/v2/buyer-api-reference/mcp/ask-about-api-capabilities"}]}]},{"group":"Seller API reference","pages":[{"title":"Storefront API reference (legacy v2)","icon":"handshake-angle","href":"/v2/storefront-api-reference"},{"group":"Advertisers","pages":[{"title":"List organization advertisers","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /organization/advertisers","href":"/v2/storefront-api-reference/advertisers/list-organization-advertisers"},{"title":"Create an organization advertiser lifecycle","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /organization/advertisers","href":"/v2/storefront-api-reference/advertisers/create-an-organization-advertiser-lifecycle"},{"title":"List organization advertisers with account setup","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /organization/advertisers/account-setup","href":"/v2/storefront-api-reference/advertisers/list-organization-advertisers-with-account-setup"},{"title":"Claim an exact-recipient advertiser invitation","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /advertiser-invitations/claim","href":"/v2/storefront-api-reference/advertisers/claim-an-exact-recipient-advertiser-invitation"},{"title":"List organization advertiser grants","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /organization/advertiser-grants","href":"/v2/storefront-api-reference/advertisers/list-organization-advertiser-grants"},{"title":"Invite an organization to advertiser access","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /organization/advertiser-grants","href":"/v2/storefront-api-reference/advertisers/invite-an-organization-to-advertiser-access"},{"title":"Get an organization advertiser grant","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /organization/advertiser-grants/{grantRef}","href":"/v2/storefront-api-reference/advertisers/get-an-organization-advertiser-grant"},{"title":"Accept an organization advertiser grant","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /organization/advertiser-grants/{grantRef}/accept","href":"/v2/storefront-api-reference/advertisers/accept-an-organization-advertiser-grant"},{"title":"Reject an organization advertiser grant","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /organization/advertiser-grants/{grantRef}/reject","href":"/v2/storefront-api-reference/advertisers/reject-an-organization-advertiser-grant"},{"title":"Revoke an organization advertiser grant","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /organization/advertiser-grants/{grantRef}/revoke","href":"/v2/storefront-api-reference/advertisers/revoke-an-organization-advertiser-grant"}]},{"group":"Activity","pages":[{"title":"List API calls","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /activity/calls","href":"/v2/storefront-api-reference/activity/list-api-calls"},{"title":"Get API call detail","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /activity/calls/{activityUid}","href":"/v2/storefront-api-reference/activity/get-api-call-detail"}]},{"group":"Communications","pages":[{"title":"Queue an agent text message","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /communications/messages","href":"/v2/storefront-api-reference/communications/queue-an-agent-text-message"},{"title":"Queue an agent RCS text message","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /communications/rcs/messages","href":"/v2/storefront-api-reference/communications/queue-an-agent-rcs-text-message"},{"title":"Request a text-message line for an Agent","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /communications/phone-lines","href":"/v2/storefront-api-reference/communications/request-a-text-message-line-for-an-agent"},{"title":"Get a text-message line request","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /communications/phone-lines/{requestId}","href":"/v2/storefront-api-reference/communications/get-a-text-message-line-request"}]},{"group":"Reporting","pages":[{"title":"Get storefront reporting","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /reporting/metrics","href":"/v2/storefront-api-reference/reporting/get-storefront-reporting"},{"title":"Get exact client Source reporting","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /provider/account/connections/{bindingUid}/reporting","href":"/v2/storefront-api-reference/reporting/get-exact-client-source-reporting"}]},{"group":"Storefront","pages":[{"title":"Get Partner Program access","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /provider/partner-access","href":"/v2/storefront-api-reference/storefront/get-partner-program-access"},{"title":"Get Partner client fleet","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /provider/account","href":"/v2/storefront-api-reference/storefront/get-partner-client-fleet"},{"title":"List client onboarding referrals","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /provider/account/client-referrals","href":"/v2/storefront-api-reference/storefront/list-client-onboarding-referrals"},{"title":"Invite a publisher client","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /provider/account/client-referrals","href":"/v2/storefront-api-reference/storefront/invite-a-publisher-client"},{"title":"Preview a publisher invitation","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /provider/client-referrals/preview","href":"/v2/storefront-api-reference/storefront/preview-a-publisher-invitation"},{"title":"Accept a publisher invitation","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /provider/client-referrals/accept","href":"/v2/storefront-api-reference/storefront/accept-a-publisher-invitation"},{"title":"List eligible publisher Sources","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /provider/client-referrals/setup","href":"/v2/storefront-api-reference/storefront/list-eligible-publisher-sources"},{"title":"Create a publisher-owned Agent Source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /provider/client-referrals/source","href":"/v2/storefront-api-reference/storefront/create-a-publisher-owned-agent-source"},{"title":"Authorize one exact publisher Source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /provider/client-referrals/complete","href":"/v2/storefront-api-reference/storefront/authorize-one-exact-publisher-source"},{"title":"Accept a publisher-authorized connection","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /provider/account/connections/{bindingUid}/accept","href":"/v2/storefront-api-reference/storefront/accept-a-publisher-authorized-connection"},{"title":"Run exact connection validation","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /provider/account/connections/{bindingUid}/validate","href":"/v2/storefront-api-reference/storefront/run-exact-connection-validation"},{"title":"Activate an exact validated connection","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /provider/account/connections/{bindingUid}/activate","href":"/v2/storefront-api-reference/storefront/activate-an-exact-validated-connection"},{"title":"Get a client Source's health as its agent operator","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /provider/account/connections/{bindingUid}/source-health","href":"/v2/storefront-api-reference/storefront/get-a-client-sources-health-as-its-agent-operator"},{"title":"Get storefront","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /storefront","href":"/v2/storefront-api-reference/storefront/get-storefront"},{"title":"Update storefront","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /storefront","href":"/v2/storefront-api-reference/storefront/update-storefront"},{"title":"Create storefront","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /storefront","href":"/v2/storefront-api-reference/storefront/create-storefront"},{"title":"Get storefront readiness","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /readiness","href":"/v2/storefront-api-reference/storefront/get-storefront-readiness"},{"title":"Resolve brand profile","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /resolve-brand","href":"/v2/storefront-api-reference/storefront/resolve-brand-profile"},{"title":"Discover agents for a domain","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /discover-agents","href":"/v2/storefront-api-reference/storefront/discover-agents-for-a-domain"},{"title":"List inventory sources","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources","href":"/v2/storefront-api-reference/storefront/list-inventory-sources"},{"title":"Create inventory source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources","href":"/v2/storefront-api-reference/storefront/create-inventory-source"},{"title":"Get inventory source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}","href":"/v2/storefront-api-reference/storefront/get-inventory-source"},{"title":"Update inventory source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /inventory-sources/{sourceId}","href":"/v2/storefront-api-reference/storefront/update-inventory-source"},{"title":"Delete inventory source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml delete /inventory-sources/{sourceId}","href":"/v2/storefront-api-reference/storefront/delete-inventory-source"},{"title":"Retired: certification sandbox account","deprecated":true,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/certification-sandbox-account","href":"/v2/storefront-api-reference/storefront/retired:-certification-sandbox-account"},{"title":"Retired: certification sandbox account","deprecated":true,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/certification-sandbox-account","href":"/v2/storefront-api-reference/storefront/retired:-certification-sandbox-account-1"},{"title":"Retired: certification sandbox account","deprecated":true,"version":null,"openapi":"/v2/storefront-api-v2.yaml delete /inventory-sources/{sourceId}/certification-sandbox-account","href":"/v2/storefront-api-reference/storefront/retired:-certification-sandbox-account-2"},{"title":"Get inventory source diagnostics","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/diagnostics","href":"/v2/storefront-api-reference/storefront/get-inventory-source-diagnostics"},{"title":"Get an inventory source mapping workspace","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/mapping-workspace","href":"/v2/storefront-api-reference/storefront/get-an-inventory-source-mapping-workspace"},{"title":"Get inventory source connection profile","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/connection-profile","href":"/v2/storefront-api-reference/storefront/get-inventory-source-connection-profile"},{"title":"Run an inventory source discovery test","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/tests/discovery","href":"/v2/storefront-api-reference/storefront/run-an-inventory-source-discovery-test"},{"title":"Download wholesale pricing template","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/wholesale-pricing/template","href":"/v2/storefront-api-reference/storefront/download-wholesale-pricing-template"},{"title":"List inventory property mappings","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/property-mappings","href":"/v2/storefront-api-reference/storefront/list-inventory-property-mappings"},{"title":"Replace inventory property mappings","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /inventory-sources/{sourceId}/property-mappings","href":"/v2/storefront-api-reference/storefront/replace-inventory-property-mappings"},{"title":"Create a modular source with an avails-feed module","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/modular/feed","href":"/v2/storefront-api-reference/storefront/create-a-modular-source-with-an-avails-feed-module"},{"title":"Create Cadent demo modular source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/modular/cadent-demo","href":"/v2/storefront-api-reference/storefront/create-cadent-demo-modular-source"},{"title":"Create FreeWheel sandbox modular source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/modular/freewheel-sandbox","href":"/v2/storefront-api-reference/storefront/create-freewheel-sandbox-modular-source"},{"title":"Get modular inventory source readiness","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/modular","href":"/v2/storefront-api-reference/storefront/get-modular-inventory-source-readiness"},{"title":"Ingest modular avails feed","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/modular/avails-feed","href":"/v2/storefront-api-reference/storefront/ingest-modular-avails-feed"},{"title":"List modular inventory products","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/modular/products","href":"/v2/storefront-api-reference/storefront/list-modular-inventory-products"},{"title":"List modular source work items","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/modular/work-items","href":"/v2/storefront-api-reference/storefront/list-modular-source-work-items"},{"title":"Get modular source work item","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/modular/work-items/{workItemId}","href":"/v2/storefront-api-reference/storefront/get-modular-source-work-item"},{"title":"Update modular source work item","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml patch /inventory-sources/{sourceId}/modular/work-items/{workItemId}","href":"/v2/storefront-api-reference/storefront/update-modular-source-work-item"},{"title":"Complete modular source work item","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/modular/work-items/{workItemId}/complete","href":"/v2/storefront-api-reference/storefront/complete-modular-source-work-item"},{"title":"Get modular inventory capabilities","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/modular/inventory/capabilities","href":"/v2/storefront-api-reference/storefront/get-modular-inventory-capabilities"},{"title":"Search modular inventory selectors","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inventory-sources/{sourceId}/modular/inventory/selectors","href":"/v2/storefront-api-reference/storefront/search-modular-inventory-selectors"},{"title":"Reserve modular inventory product","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/modular/reservations","href":"/v2/storefront-api-reference/storefront/reserve-modular-inventory-product"},{"title":"Prepare modular booking handoff","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/modular/bookings/finalize","href":"/v2/storefront-api-reference/storefront/prepare-modular-booking-handoff"},{"title":"Release modular inventory booking","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/modular/bookings/release","href":"/v2/storefront-api-reference/storefront/release-modular-inventory-booking"},{"title":"Update modular source module config","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml patch /inventory-sources/{sourceId}/modular/modules/{moduleInstanceId}/config","href":"/v2/storefront-api-reference/storefront/update-modular-source-module-config"},{"title":"Preview a feed revision (HITL)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/feed/preview","href":"/v2/storefront-api-reference/storefront/preview-a-feed-revision-hitl"},{"title":"Upload a feed file (HITL, multipart)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/feed/upload","href":"/v2/storefront-api-reference/storefront/upload-a-feed-file-hitl-multipart"},{"title":"Commit a previewed feed revision (HITL)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/feed/commit","href":"/v2/storefront-api-reference/storefront/commit-a-previewed-feed-revision-hitl"},{"title":"Push a feed revision (API_PUSH, no preview step)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/feed/push","href":"/v2/storefront-api-reference/storefront/push-a-feed-revision-api_push-no-preview-step"},{"title":"List ad server sources","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa","href":"/v2/storefront-api-reference/storefront/list-ad-server-sources"},{"title":"Get an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}","href":"/v2/storefront-api-reference/storefront/get-an-ad-server-source"},{"title":"Set a FreeWheel execution currency","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /esa/{esaId}/execution-currency","href":"/v2/storefront-api-reference/storefront/set-a-freewheel-execution-currency"},{"title":"Test an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/test-connection","href":"/v2/storefront-api-reference/storefront/test-an-ad-server-source"},{"title":"Refresh an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/refresh","href":"/v2/storefront-api-reference/storefront/refresh-an-ad-server-source"},{"title":"Re-check an ad server capability","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/capabilities/{capability}/recheck","href":"/v2/storefront-api-reference/storefront/re-check-an-ad-server-capability"},{"title":"Deactivate an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/deactivate","href":"/v2/storefront-api-reference/storefront/deactivate-an-ad-server-source"},{"title":"Reactivate an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/reactivate","href":"/v2/storefront-api-reference/storefront/reactivate-an-ad-server-source"},{"title":"Get ad server source status","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/status","href":"/v2/storefront-api-reference/storefront/get-ad-server-source-status"},{"title":"List ad server source sync history","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/sync-history","href":"/v2/storefront-api-reference/storefront/list-ad-server-source-sync-history"},{"title":"Mint an ad server source launch URL","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/launch","href":"/v2/storefront-api-reference/storefront/mint-an-ad-server-source-launch-url"},{"title":"Get the active operating-instructions version","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /operating-instructions/active","href":"/v2/storefront-api-reference/storefront/get-the-active-operating-instructions-version"},{"title":"Create a new operating-instructions version","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /operating-instructions","href":"/v2/storefront-api-reference/storefront/create-a-new-operating-instructions-version"},{"title":"Activate an operating-instructions version","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /operating-instructions/{version}/activate","href":"/v2/storefront-api-reference/storefront/activate-an-operating-instructions-version"},{"title":"Create a new acceptance-policy version","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /acceptance-policy","href":"/v2/storefront-api-reference/storefront/create-a-new-acceptance-policy-version"},{"title":"Pin or clear the learned default posture","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /learned-default-posture","href":"/v2/storefront-api-reference/storefront/pin-or-clear-the-learned-default-posture"},{"title":"Create a merchandising simulation scenario","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /simulator/scenarios","href":"/v2/storefront-api-reference/storefront/create-a-merchandising-simulation-scenario"},{"title":"Execute a pinned merchandising simulation variant","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /simulator/scenarios/{scenarioId}/revisions/{revisionId}/variants/{variantId}/executions","href":"/v2/storefront-api-reference/storefront/execute-a-pinned-merchandising-simulation-variant"},{"title":"Get the canonical seller decision record for an intelligence run","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /intelligence-runs/{id}/decision-record","href":"/v2/storefront-api-reference/storefront/get-the-canonical-seller-decision-record-for-an-intelligence-run"},{"title":"Get the seller-analytics posture-conversion rollup","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /seller-analytics","href":"/v2/storefront-api-reference/storefront/get-the-seller-analytics-posture-conversion-rollup"},{"title":"List every media buy on the storefront","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /media-buys","href":"/v2/storefront-api-reference/storefront/list-every-media-buy-on-the-storefront"},{"title":"Get one buy's exchange timeline","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /media-buys/{mediaBuyId}/timeline","href":"/v2/storefront-api-reference/storefront/get-one-buys-exchange-timeline"},{"title":"Get the observed creative thumbnail","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /creative-reviews/{creativeId}/thumbnail","href":"/v2/storefront-api-reference/storefront/get-the-observed-creative-thumbnail"},{"title":"List publisher domains","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /publishers","href":"/v2/storefront-api-reference/storefront/list-publisher-domains"},{"title":"Replace publisher list","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /publishers","href":"/v2/storefront-api-reference/storefront/replace-publisher-list"},{"title":"Add a publisher domain","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /publishers","href":"/v2/storefront-api-reference/storefront/add-a-publisher-domain"},{"title":"Declare a property","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /property-roster/properties","href":"/v2/storefront-api-reference/storefront/declare-a-property"},{"title":"Remove a declared property","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml delete /property-roster/properties/{domain}/{propertyKey}","href":"/v2/storefront-api-reference/storefront/remove-a-declared-property"},{"title":"Remove a publisher domain","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml delete /publishers/{domain}","href":"/v2/storefront-api-reference/storefront/remove-a-publisher-domain"}]},{"group":"Identity Match","pages":[{"title":"List identity-match targeting configs","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /identity-match/targeting","href":"/v2/storefront-api-reference/identity-match/list-identity-match-targeting-configs"}]},{"group":"Asks","pages":[{"title":"List my asks","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /asks","href":"/v2/storefront-api-reference/asks/list-my-asks"}]},{"group":"Supply Requests","pages":[{"title":"Suggest requested supply","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /supply-requests/suggestions","href":"/v2/storefront-api-reference/supply-requests/suggest-requested-supply"},{"title":"List requested supply","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /supply-requests","href":"/v2/storefront-api-reference/supply-requests/list-requested-supply"},{"title":"Request supply","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /supply-requests","href":"/v2/storefront-api-reference/supply-requests/request-supply"},{"title":"Remove requested supply","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /supply-requests/remove","href":"/v2/storefront-api-reference/supply-requests/remove-requested-supply"}]},{"group":"Account","pages":[{"title":"Get current account","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /accounts/current","href":"/v2/storefront-api-reference/account/get-current-account"},{"title":"List customer accounts","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /accounts","href":"/v2/storefront-api-reference/account/list-customer-accounts"},{"title":"Get storefront liveness for accounts","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /accounts/liveness","href":"/v2/storefront-api-reference/account/get-storefront-liveness-for-accounts"},{"title":"Create account","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /accounts/create-child","href":"/v2/storefront-api-reference/account/create-account"},{"title":"Convert account into an organization","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /accounts/convert-to-organization","href":"/v2/storefront-api-reference/account/convert-account-into-an-organization"},{"title":"Get organization posture","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /accounts/organization-posture","href":"/v2/storefront-api-reference/account/get-organization-posture"},{"title":"Update account domain","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml patch /accounts/{customerId}/domain","href":"/v2/storefront-api-reference/account/update-account-domain"},{"title":"Preview account archive","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /accounts/{customerId}/archive-preview","href":"/v2/storefront-api-reference/account/preview-account-archive"},{"title":"Archive child account","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /accounts/{customerId}/archive","href":"/v2/storefront-api-reference/account/archive-child-account"},{"title":"Restore child account","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /accounts/{customerId}/unarchive","href":"/v2/storefront-api-reference/account/restore-child-account"},{"title":"Delete child account","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml delete /accounts/{customerId}","href":"/v2/storefront-api-reference/account/delete-child-account"},{"title":"Get membership settings","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /accounts/{customerId}/membership","href":"/v2/storefront-api-reference/account/get-membership-settings"},{"title":"Update membership settings","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml patch /accounts/{customerId}/membership","href":"/v2/storefront-api-reference/account/update-membership-settings"},{"title":"List inbound email addresses","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /inbound-email-addresses","href":"/v2/storefront-api-reference/account/list-inbound-email-addresses"},{"title":"Create inbound email address","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inbound-email-addresses","href":"/v2/storefront-api-reference/account/create-inbound-email-address"},{"title":"Rotate inbound email address","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inbound-email-addresses/{id}/rotate","href":"/v2/storefront-api-reference/account/rotate-inbound-email-address"},{"title":"Revoke inbound email address","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /inbound-email-addresses/{id}/revoke","href":"/v2/storefront-api-reference/account/revoke-inbound-email-address"},{"title":"Get notification preferences","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /notification-preferences","href":"/v2/storefront-api-reference/account/get-notification-preferences"},{"title":"Update notification preferences","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /notification-preferences","href":"/v2/storefront-api-reference/account/update-notification-preferences"},{"title":"Get Slack notification settings","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /notification-delivery-preferences","href":"/v2/storefront-api-reference/account/get-slack-notification-settings"},{"title":"Update a Slack notification setting","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /notification-delivery-preferences","href":"/v2/storefront-api-reference/account/update-a-slack-notification-setting"},{"title":"Check shared Slack availability","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /messaging-apps/slack","href":"/v2/storefront-api-reference/account/check-shared-slack-availability"},{"title":"Inspect Discord messaging apps","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /messaging-apps/discord","href":"/v2/storefront-api-reference/account/inspect-discord-messaging-apps"},{"title":"Create a Discord messaging app","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /messaging-apps/discord","href":"/v2/storefront-api-reference/account/create-a-discord-messaging-app"},{"title":"Inspect Microsoft Teams messaging apps","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /messaging-apps/teams","href":"/v2/storefront-api-reference/account/inspect-microsoft-teams-messaging-apps"},{"title":"Create a Microsoft Teams messaging app","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /messaging-apps/teams","href":"/v2/storefront-api-reference/account/create-a-microsoft-teams-messaging-app"},{"title":"Register a Discord app installation","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /messaging-apps/{definitionId}/discord-installations","href":"/v2/storefront-api-reference/account/register-a-discord-app-installation"},{"title":"Register a Microsoft Teams app installation","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /messaging-apps/{definitionId}/teams-installations","href":"/v2/storefront-api-reference/account/register-a-microsoft-teams-app-installation"},{"title":"Inspect WhatsApp messaging apps","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /messaging-apps/whatsapp","href":"/v2/storefront-api-reference/account/inspect-whatsapp-messaging-apps"},{"title":"Create a reply-only WhatsApp messaging app","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /messaging-apps/whatsapp","href":"/v2/storefront-api-reference/account/create-a-reply-only-whatsapp-messaging-app"},{"title":"Register a WhatsApp business-phone installation","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /messaging-apps/{definitionId}/whatsapp-installations","href":"/v2/storefront-api-reference/account/register-a-whatsapp-business-phone-installation"},{"title":"Link a messaging app identity","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /messaging-apps/{definitionId}/installations/{installationId}/identity","href":"/v2/storefront-api-reference/account/link-a-messaging-app-identity"},{"title":"Revoke a messaging app identity","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml delete /messaging-apps/{definitionId}/installations/{installationId}/identity","href":"/v2/storefront-api-reference/account/revoke-a-messaging-app-identity"},{"title":"Rotate messaging app credentials","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /messaging-apps/{definitionId}/credentials","href":"/v2/storefront-api-reference/account/rotate-messaging-app-credentials"},{"title":"Suspend or uninstall a messaging app installation","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml patch /messaging-apps/{definitionId}/installations/{installationId}","href":"/v2/storefront-api-reference/account/suspend-or-uninstall-a-messaging-app-installation"},{"title":"Retire a messaging app","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml patch /messaging-apps/{definitionId}","href":"/v2/storefront-api-reference/account/retire-a-messaging-app"},{"title":"Get Media Company intake status","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /media-company-intake","href":"/v2/storefront-api-reference/account/get-media-company-intake-status"},{"title":"Start or resume Media Company intake","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /media-company-intake","href":"/v2/storefront-api-reference/account/start-or-resume-media-company-intake"},{"title":"Confirm Media Company identity and billing country","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /media-company-intake/confirm","href":"/v2/storefront-api-reference/account/confirm-media-company-identity-and-billing-country"}]},{"group":"Notifications","pages":[{"title":"List notifications","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /notifications","href":"/v2/storefront-api-reference/notifications/list-notifications"},{"title":"Mark all notifications as read","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /notifications/read-all","href":"/v2/storefront-api-reference/notifications/mark-all-notifications-as-read"},{"title":"Mark notification as read","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /notifications/{notificationId}/read","href":"/v2/storefront-api-reference/notifications/mark-notification-as-read"},{"title":"Acknowledge notification","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /notifications/{notificationId}/acknowledge","href":"/v2/storefront-api-reference/notifications/acknowledge-notification"}]},{"group":"Release Updates","pages":[{"title":"List personalized release updates","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /release-updates","href":"/v2/storefront-api-reference/release-updates/list-personalized-release-updates"},{"title":"List the release board","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /release-board","href":"/v2/storefront-api-reference/release-updates/list-the-release-board"},{"title":"Mark release updates as seen","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /release-updates/seen","href":"/v2/storefront-api-reference/release-updates/mark-release-updates-as-seen"}]},{"group":"Moderation","pages":[{"title":"Pre-check content against moderation policy","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /moderation/check","href":"/v2/storefront-api-reference/moderation/pre-check-content-against-moderation-policy"}]},{"group":"Buyer Billing","pages":[{"title":"Get billing account","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/account","href":"/v2/storefront-api-reference/buyer-billing/get-billing-account"},{"title":"Get inherited billing stub","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/account/inherited-stub","href":"/v2/storefront-api-reference/buyer-billing/get-inherited-billing-stub"},{"title":"Get the app-root Rate Card review decision","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/iu-rate-card/login-prompt","href":"/v2/storefront-api-reference/buyer-billing/get-the-app-root-rate-card-review-decision"},{"title":"Get the organization IU Rate Card offer and acceptance state","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/iu-rate-card","href":"/v2/storefront-api-reference/buyer-billing/get-the-organization-iu-rate-card-offer-and-acceptance-state"},{"title":"Get the versioned organization IU commercial document","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/iu-rate-card/v2","href":"/v2/storefront-api-reference/buyer-billing/get-the-versioned-organization-iu-commercial-document"},{"title":"Get the catalog-v3 organization IU commercial document","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/iu-rate-card/v3","href":"/v2/storefront-api-reference/buyer-billing/get-the-catalog-v3-organization-iu-commercial-document"},{"title":"Get the catalog-v4 organization IU commercial document","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/iu-rate-card/v4","href":"/v2/storefront-api-reference/buyer-billing/get-the-catalog-v4-organization-iu-commercial-document"},{"title":"Request human help choosing an IU plan","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /billing/iu-rate-card/mcp-app/help","href":"/v2/storefront-api-reference/buyer-billing/request-human-help-choosing-an-iu-plan"},{"title":"Download the current Commercial Offer proposal","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/iu-rate-card/document.pdf","href":"/v2/storefront-api-reference/buyer-billing/download-the-current-commercial-offer-proposal"},{"title":"Accept an exact organization IU Rate Card offer","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /billing/iu-rate-card/accept","href":"/v2/storefront-api-reference/buyer-billing/accept-an-exact-organization-iu-rate-card-offer"},{"title":"Start adding a card (admin)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /billing/payment-methods/setup","href":"/v2/storefront-api-reference/buyer-billing/start-adding-a-card-admin"},{"title":"Get the latest submitted card confirmation","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/payment-methods/setup-attempt","href":"/v2/storefront-api-reference/buyer-billing/get-the-latest-submitted-card-confirmation"},{"title":"Record a submitted card confirmation (admin)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /billing/payment-methods/setup/{id}/submitted","href":"/v2/storefront-api-reference/buyer-billing/record-a-submitted-card-confirmation-admin"},{"title":"List payment methods","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/payment-methods","href":"/v2/storefront-api-reference/buyer-billing/list-payment-methods"},{"title":"Remove a payment method (admin)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml delete /billing/payment-methods/{id}","href":"/v2/storefront-api-reference/buyer-billing/remove-a-payment-method-admin"},{"title":"Open a payment capture link","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /capture-links/{token}","href":"/v2/storefront-api-reference/buyer-billing/open-a-payment-capture-link"},{"title":"Manually retry the outstanding failed charge (admin)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /billing/payment-methods/pay-now","href":"/v2/storefront-api-reference/buyer-billing/manually-retry-the-outstanding-failed-charge-admin"},{"title":"Get invoice activity","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/invoice-activity","href":"/v2/storefront-api-reference/buyer-billing/get-invoice-activity"},{"title":"List fee invoices","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/fee-invoices","href":"/v2/storefront-api-reference/buyer-billing/list-fee-invoices"},{"title":"Get fee invoice","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/fee-invoices/{invoiceNumber}","href":"/v2/storefront-api-reference/buyer-billing/get-fee-invoice"}]},{"group":"Storefront Billing","pages":[{"title":"Get the organization IU Rate Card offer and acceptance state (legacy v2 Seller Account route)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/storefront-rate-card","href":"/v2/storefront-api-reference/storefront-billing/get-the-organization-iu-rate-card-offer-and-acceptance-state-legacy-v2-seller-account-route"},{"title":"Accept an exact organization IU Rate Card offer (legacy v2 Seller Account route)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /billing/storefront-rate-card/accept","href":"/v2/storefront-api-reference/storefront-billing/accept-an-exact-organization-iu-rate-card-offer-legacy-v2-seller-account-route"},{"title":"Get payout activity","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/payout-activity","href":"/v2/storefront-api-reference/storefront-billing/get-payout-activity"},{"title":"Get billing config","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing","href":"/v2/storefront-api-reference/storefront-billing/get-billing-config"},{"title":"Update billing configuration (admin)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /billing","href":"/v2/storefront-api-reference/storefront-billing/update-billing-configuration-admin"},{"title":"Set payout details (admin)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /billing/payout-details","href":"/v2/storefront-api-reference/storefront-billing/set-payout-details-admin"},{"title":"List payout payees","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/payees","href":"/v2/storefront-api-reference/storefront-billing/list-payout-payees"},{"title":"Set payout payee (admin)","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /billing/payees","href":"/v2/storefront-api-reference/storefront-billing/set-payout-payee-admin"},{"title":"List billing accounts","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /billing/accounts","href":"/v2/storefront-api-reference/storefront-billing/list-billing-accounts"}]},{"group":"Storefront Ad Server Buyer Routing","pages":[{"title":"Get ad server source sandbox-account readiness","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/sandbox-account","href":"/v2/storefront-api-reference/storefront-ad-server-buyer-routing/get-ad-server-source-sandbox-account-readiness"},{"title":"Ensure ad server source sandbox account exists","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/sandbox-account/ensure","href":"/v2/storefront-api-reference/storefront-ad-server-buyer-routing/ensure-ad-server-source-sandbox-account-exists"},{"title":"List adapter advertisers","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/advertisers","href":"/v2/storefront-api-reference/storefront-ad-server-buyer-routing/list-adapter-advertisers"},{"title":"List cached GAM advertisers","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/gam/advertisers","href":"/v2/storefront-api-reference/storefront-ad-server-buyer-routing/list-cached-gam-advertisers"},{"title":"Ensure a GAM advertiser exists","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/gam/advertisers/ensure","href":"/v2/storefront-api-reference/storefront-ad-server-buyer-routing/ensure-a-gam-advertiser-exists"},{"title":"Set default advertiser","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /esa/{esaId}/default-advertiser","href":"/v2/storefront-api-reference/storefront-ad-server-buyer-routing/set-default-advertiser"},{"title":"Set default GAM advertiser","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /esa/{esaId}/gam/default-advertiser","href":"/v2/storefront-api-reference/storefront-ad-server-buyer-routing/set-default-gam-advertiser"},{"title":"List buyer advertiser mappings","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/buyer-advertiser-mappings","href":"/v2/storefront-api-reference/storefront-ad-server-buyer-routing/list-buyer-advertiser-mappings"}]},{"group":"Storefront Ad Server Catalog","pages":[{"title":"List products for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/products","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/list-products-for-an-ad-server-source"},{"title":"Create a product for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/products","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/create-a-product-for-an-ad-server-source"},{"title":"Validate a product draft for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/products:validate","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/validate-a-product-draft-for-an-ad-server-source"},{"title":"Get a product for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/products/{productId}","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/get-a-product-for-an-ad-server-source"},{"title":"Update a product for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /esa/{esaId}/products/{productId}","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/update-a-product-for-an-ad-server-source"},{"title":"Delete a product for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml delete /esa/{esaId}/products/{productId}","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/delete-a-product-for-an-ad-server-source"},{"title":"Change only the named fields of a product for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml patch /esa/{esaId}/products/{productId}","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/change-only-the-named-fields-of-a-product-for-an-ad-server-source"},{"title":"List signals for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/signals","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/list-signals-for-an-ad-server-source"},{"title":"Create or dry-run a signal for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /esa/{esaId}/signals","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/create-or-dry-run-a-signal-for-an-ad-server-source"},{"title":"Get signal capabilities for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/signals/adapter-capabilities","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/get-signal-capabilities-for-an-ad-server-source"},{"title":"List ad-server targeting for signal authoring","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/signals/candidates","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/list-ad-server-targeting-for-signal-authoring"},{"title":"Get inventory capabilities for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/inventory/capabilities","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/get-inventory-capabilities-for-an-ad-server-source"},{"title":"List publisher properties for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/inventory/publisher-properties","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/list-publisher-properties-for-an-ad-server-source"},{"title":"Search inventory selectors for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/inventory/selectors","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/search-inventory-selectors-for-an-ad-server-source"},{"title":"List creative formats for an ad server source","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /esa/{esaId}/creative-formats","href":"/v2/storefront-api-reference/storefront-ad-server-catalog/list-creative-formats-for-an-ad-server-source"}]},{"group":"Signals","pages":[{"title":"List signals","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /signals","href":"/v2/storefront-api-reference/signals/list-signals"},{"title":"Create signal","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /signals","href":"/v2/storefront-api-reference/signals/create-signal"},{"title":"Get signal","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /signals/{signalId}","href":"/v2/storefront-api-reference/signals/get-signal"},{"title":"Update signal","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml put /signals/{signalId}","href":"/v2/storefront-api-reference/signals/update-signal"},{"title":"Delete signal","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml delete /signals/{signalId}","href":"/v2/storefront-api-reference/signals/delete-signal"}]},{"group":"Storefront Agents","pages":[{"title":"List registered agents","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /agents","href":"/v2/storefront-api-reference/storefront-agents/list-registered-agents"}]},{"group":"Storefront Activity","pages":[{"title":"List storefront activity","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /audit-logs","href":"/v2/storefront-api-reference/storefront-activity/list-storefront-activity"}]},{"group":"Products","pages":[{"title":"List eligible products for media buys","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml get /products","href":"/v2/storefront-api-reference/products/list-eligible-products-for-media-buys"}]},{"group":"MCP","pages":[{"title":"Initialize MCP session","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /","href":"/v2/storefront-api-reference/mcp/initialize-mcp-session"},{"title":"Make API call via MCP","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /api-call","href":"/v2/storefront-api-reference/mcp/make-api-call-via-mcp"},{"title":"Ask about API capabilities","deprecated":null,"version":null,"openapi":"/v2/storefront-api-v2.yaml post /ask-about-capability","href":"/v2/storefront-api-reference/mcp/ask-about-api-capabilities"}]}]},{"group":"Release Notes","icon":"clock-rotate-left","pages":[{"title":"Developer Release Notes","sidebarTitle":"Release notes","icon":"clock-rotate-left","href":"/v2/developer-reference/changelog"}]}]},{"version":"v3","default":true,"pages":[{"title":"v3","href":"/v3/overview"}]}]}]},"basePath":"","title":"Remove products from selection - Apostra","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-i2a3QZ8E.js","utils-ChLwp8m0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DRktVTDc.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CA2pEs4T.js","snippetPresets-ClQ6XrKD.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Ct_Lv36y.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Cn2PYw9e.js","shallow-rkyymjXQ.js","getApiPlaygroundDisplay-BB9vkXtE.js","CodeSnippet-Bm5RU7m1.js","CodeSnippets-BgU9Deuz.js","Page-BUDYNlhG.js","getPastedJson-BD-6NNum.js","icon-8Z6tud2e.js","MethodPill-Tuzr4g3V.js","DuplicateIcon-0ceWFYhN.js","createIcon-FBXow_ST.js","DynamicMarkdown-CD8713Yy.js","SectionHeading-7zgzQbH-.js","axios-vUo_bRtp.js","Markdown-D7Ofw1oz.js","clsx-eKJ4rcii.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CwjSCXIK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-9EK5IAXV.js"]}