Connect the v3 MCP endpoint in ChatGPT, record a review demo, and prepare a customer-branded submission.
Use this guide to test an Apostra-powered, customer-branded app in ChatGPT
before preparing its public submission. ChatGPT currently labels this
developer-mode connection a Plugin.
A developer-mode connection is private test configuration. Its name, icon, and
description do not publish an app, change Apostra MCP server’s
identity, or automatically carry into another customer’s submission.
a ChatGPT account or workspace that permits Developer mode;
an Apostra account with access to a buyer or seller account enrolled in
the v3 preview that you will demonstrate;
an owner-approved app name and short description; and
a square PNG icon, ideally 256 x 256 pixels and no larger than the limit
displayed by ChatGPT. The current form accepts at most 10 KB.
Use a review or demo account with representative data. Do not record production
credentials, access tokens, private customer data, or real campaign spend.
The app owner’s approved 256 x 256 directory icon from the private-label handoff.
Name
The owner-approved customer-facing app name from the handoff.
Description
The owner-approved short description from the handoff.
Connection
Select Server URL.
Server URL
The exact working private-label MCP URL from the handoff. Do not substitute the shared Apostra /mcp/v3 endpoint.
Authentication
Select OAuth. ChatGPT discovers the OAuth settings from the private-label server.
Review the custom-server warning and select I understand and want to
continue only if the endpoint exactly matches your private-label handoff.
Select Create and complete the app’s sign-in flow with a reviewer whose
home Apostra account is the account assigned to this private-label app.
The hostname is account-bound and refuses a different active account.
Review the tools and metadata ChatGPT discovers from the server.
If ChatGPT cannot create the connection, copy the private-label URL from the
handoff again, check that OAuth is selected, and confirm that your workspace
allows custom MCP servers. Do not edit the URL path or fall back to the shared
Apostra endpoint. The v3 authentication guide explains
which Apostra account and permissions the login grants.If Scan Tools reports Access token is not valid for this protected resource after changing the MCP Server URL, disconnect the saved authorization
and reconnect before scanning again. ChatGPT discovers the OAuth configuration
from the server; no advanced-field overrides are required.
Start a new chat, enable the plugin from the tools menu, and ask:
Call get_status. Tell me the active account, whether it is a buyer or seller,its readiness, and which other accounts I can reach.
Confirm that the result names the assigned account before demonstrating any
workflow. If it does not, reconnect with the grant-bound reviewer credential
for that account’s System advertiser; do not switch a private-label app into
another account. Then test
the exact prompts you plan to give reviewers:
a read that returns useful account data;
a representative write that shows the expected confirmation before it runs;
a follow-up that reuses an identifier from the prior result; and
an unsupported or unsafe request that produces the intended clarification,
refusal, or safe fallback.
Use demo fixtures for writes and stop before creating real spend. If you change
tool metadata or deploy a server update, refresh the connection and rerun the
tests in a new conversation.
Record one clean end-to-end session while the developer-mode plugin is enabled.
The recording should show:
the app name and icon in ChatGPT;
the plugin selected for a new conversation;
get_status confirming the review account;
at least one representative read workflow;
the confirmation and result for a safe demo write, when the app supports
writes; and
the expected behavior for one negative test.
Keep the browser URL, app identity, prompts, confirmations, and final results
legible. Hide password-manager overlays, credentials, OAuth tokens, personal
data, internal admin screens, and unrelated browser tabs. Store the recording
in the customer’s approved file-sharing system; do not commit video files to a
source repository.The video is part of the submission handoff and a useful reproduction artifact.
OpenAI’s portal requirements can change, so check the live form to determine
whether to upload the recording, link it, or retain it for reviewer follow-up.For reference, watch the
example review video created for Apostra app.
Developer-mode branding is not a public listing. The intended handoff is one
app-specific submission package rather than a request to assemble each upload
by hand. An account admin prepares it on the Listing page’s ChatGPT
destination (see Create a white-label ChatGPT app
for the full walkthrough; the retired Account Settings “Discovery &
distribution” tab, and later the retired “Branding & distribution” page, held
these same controls before AI-7434 and AI-8891 moved them here):
Get Public distribution — the Listing page’s fourth step — live: add
the Distribution package, then point your domain at Apostra with one
CNAME. (An app that already runs on its own active per-app hostname keeps its
ChatGPT destination — existing reviewer grant, token, and package — without
this step; requesting a new reviewer grant still needs it.) Apostra checks it for you; there is no separate tenant-specific
TXT record or dedicated ChatGPT hostname to configure. Apostra
first-party app uses its platform-managed hostname and skips this step
entirely.
Review Brand identity at the top of the page. It identifies whether the
storefront resolves a self-hosted brand.json, an AAO-managed identity, a
community profile, or no reusable identity. A usable resolved logo
automatically generates the 256 × 256 directory PNG and 48 × 48 composer
PNG, but this is optional. You can instead upload both channel-specific
PNGs from the ChatGPT destination. If no identity resolves, you can use the
AAO builder to self-host or request AAO-managed hosting, or skip that step
and upload the app icons directly. The directory category is set to Business by Apostra for new
registrations (an existing registration keeps its saved category; the
value appears in the approval preview); other one-time portal choices are completed in
OpenAI rather than duplicated here.
In the ChatGPT destination, choose Request access once the listing is
Public. (An app that already runs on its own active per-app hostname keeps
an existing grant, its token, and its package without Public distribution;
a new grant still requires it.) The action requires the storefront’s Seller account to have
Distribution. Its billing organization has it when it holds an active
seller-distribution entitlement; a Seller source profile does not grant it
on its own. Contact Apostra to add Distribution. Distribution covers the customer-branded AdCP endpoint, the customer-branded
ChatGPT app, organization advertiser management and public listing
distribution. A child account has it when its organization does. Apostra records a bounded review request owned by the
current account and activates it straight away: it creates a no-spend
System advertiser in this storefront and issues one advertiser-scoped,
read-only buyer credential. The destination shows the grant’s active,
revoked, or expired state. If setup fails, Apostra cancels that attempt and
you can request access again. You can request reviewer access up to three
times a day for each directory. When the grant is active,
choose Open reviewer login to view and copy its email and password.
Account admins can reopen the same login while the grant remains active;
Apostra does not put it in the submission ZIP or expose it to the
model. The login is shared across OpenAI, Anthropic, and Microsoft remote
MCP directory reviews for this listing. The reviewer signs in with it on
the Apostra sign-in page that the directory’s connection opens, then
approves the connection on the Authorize access step and returns to the
directory. The login works only through that connection; it holds no
Apostra account membership, so signing in directly at the Apostra website
does not open the app. Every request it makes is checked against the live
grant, including when a reviewer still signed in from an earlier attempt
reconnects and goes straight to Authorize access without the password.
Choose Revoke reviewer access
as soon as review ends. If status is temporarily unavailable, the
destination disables both actions until a refresh can safely determine the
current grant.
Paste the OpenAI verification token in the same ChatGPT destination —
this proves ownership of the storefront’s own public listing domain, the
same one verified in Public distribution, not a second hostname. After you publish
the token, the destination checks (probe_discovery_openai_challenge)
only that the address returns that exact token; OpenAI performs domain verification
separately.
Review the values OpenAI will see, then select Prepare download. If the
listing changed while the page was open, review the refreshed values and
prepare it again. When the package is ready, select Download plugin ZIP
to start the browser download directly from that second click, and
Download submission notes for the reviewer guidance that goes with it.
The page hydrates this control from get_chatgpt_app_config.
reviewerSandboxAvailable is true only when the current Public listing and
Distribution (the seller-distribution entitlement) permit a new request. reviewerSandboxGrantStatus
is loaded when both reviewer eligibility and the existing account-owned grant
lookup succeeded. It is unavailable when either lookup cannot be read safely,
so the page offers a retry instead of treating an outage as a missing
entitlement. An existing grant remains visible and revocable if later
configuration changes make a new request ineligible.The page offers two downloads from the same prepared link:
Download plugin ZIP returns the file you upload to OpenAI, named
<plugin-name>-<version>.zip.
Download submission notes returns openai-submission-notes.md, the
consolidated guidance with the snapshot ID, the complete field map, the
review cases, locale guidance, release copy, screenshot guidance, and video
storyboard. Keep it for your release record; do not upload it to OpenAI.
The submission-bundle URL takes a part query parameter: plugin or notes
returns one file, and handoff (the default when part is omitted) returns
openai-plugin-handoff.zip, an archive holding the plugin ZIP, the notes as
README.md, and readiness-report.json, which records every portal field, its
source, readiness, blockers, and regeneration rules. OpenAI rejects that
archive, so never upload it.Upload the plugin ZIP in OpenAI’s Plugins dashboard, unchanged. Do not unpack
or edit it. It uses OpenAI’s portable plugin layout:
plugin.json carries the listing (display name, short and long description,
developer name, category, website, support, privacy, and Terms URLs), up to
three starter prompts, five positive and three negative review cases, and
release notes. OpenAI imports these fields when you upload the ZIP and shows
the review cases read-only in Review details.
mcp.json declares the app’s production MCP URL.
assets/ holds the selected 256 × 256 logo and 48 × 48 composer icon,
whether generated from resolved brand identity or uploaded for this app.
skills/ holds the canonical skills for the account. Buyer apps include
the account-readiness, campaign-setup, event-source setup, and
campaign-management skills; seller apps include no skills.
Every download carries a higher plugin version than the one before it, so you
can upload a fresh download to the same plugin in OpenAI as an update. If your
app was published through OpenAI’s previous submission form, OpenAI requires
the plugin ZIP to declare the identifier it assigned (app-…); if an upload
reports “Plugin name must match the existing plugin”, send that identifier to
Apostra support before regenerating.
Apostra does not infer your publisher identity, so the plugin ZIP leaves the
developer name for you to enter in OpenAI’s dashboard. Use the name of the
verified individual or business identity of the OpenAI organization that
publishes the plugin; OpenAI displays that verified identity in the
directory.OpenAI caps plugin display names and short descriptions at 30 characters.
Apostra never truncates the display name: if the storefront name is longer,
the readiness report blocks the package until you shorten it.OpenAI scans the production MCP server’s tools when you connect it under
MCPs. Tool annotations come from that live scan, not from the ZIP. Sign in
with the reviewer login, not a staff account, so the scan sees the tools the
reviewer will use. After publication, OpenAI rescans the server daily, and
eligible tool changes go live without a new upload. A change to the listing,
icons, review cases, or skills needs a fresh download, a new upload, and a new
review.A storefront with no logo in its resolved brand identity can still download
the package after both app-specific PNGs are uploaded from the ChatGPT
destination. Upload the 256 × 256 directory icon and 48 × 48 composer icon
together; an incomplete pair is rejected. To use automatic icons instead, add
a logo at the system that manages the identity, refresh the page, choose
Use automatic icons, and regenerate the bundle. The source choice
persists across later saves; switching to automatic does not copy generated
PNG bytes into the manual override fields. Legacy API integrations may
continue updating one existing icon at a time, while new manual selections
must provide the pair. Apostra can read a self-hosted brand.json, but
cannot edit it.The verification token is public at the challenge URL and visible on the
admin-only Listing page, but deliberately excluded from the ZIP, logs, and
reviewer handoff. Never reuse another customer’s bundle or replace its exact
private-label MCP URL with the shared Apostra endpoint.The publisher still completes the requirements that cannot safely be generated:
select the verified business or individual identity that will publish the
app;
confirm Apps Management write access for each submitter;
confirm the domain-verification challenge published from the Branding &
distribution Page before pressing Verify in OpenAI;
confirm that the account-owned reviewer request created its dedicated,
least-privileged no-spend System advertiser. Open the reusable reviewer
login from the destination, paste it only into the directory’s protected
test-access field, ensure it works without MFA, SMS, email confirmation, or
private-network access, and revoke the grant when review ends;
approve country availability, policy attestations, and the generated listing
and release copy; and
approve the final review video and its sharing location.
Follow OpenAI’s current submission guide
when completing the portal. Resolve every finding in Metadata & Skills and
MCPs, rescan the production server immediately before submission, and
enter the demo recording URL, reviewer login, country availability, and
commerce answer in Review details.
Submitting starts OpenAI’s review; it does not publish the app. Keep a release
record in your approved system with the bundle’s snapshot ID, source revision,
generation and submission times, OpenAI draft or version reference, publisher
owner, and current review state. Keep the plugin ZIP you uploaded and its
submission notes, which carry the same snapshot ID, in approved,
access-controlled release storage. Each download stamps a new plugin version,
so record the version of the ZIP you actually uploaded. Do not put reviewer credentials, OAuth
tokens, domain-verification tokens, or private customer data in that record,
the ZIP, or a support ticket, and do not attach the ZIP to an unrestricted
ticket.While review is active, keep the storefront-owned System advertiser, its
grant-bound read-only reviewer login, synthetic no-spend fixtures,
production MCP endpoint, domain challenge, tool metadata, and scanned skills
available. Send Apostra support any reviewer feedback verbatim with the
snapshot ID. Do not regenerate or hand-edit the submitted files unless the
feedback requires a new version.After approval, test the approved snapshot once more, then open the approved
package version in OpenAI and select Publish plugin. Verify directory discovery, installation, OAuth,
get_status, and one safe workflow, and monitor the launch for 24 hours. Revoke
the grant-bound reviewer credential when OpenAI no longer needs it.After rejection, preserve the exact feedback and snapshot ID. Correct the
canonical configuration or Apostra source, download a fresh package, upload
its plugin ZIP to the same plugin, rescan tools, rerun all five positive and
three negative cases, and submit the new package version. Only one review can
be active per plugin. Published metadata and packaged skills are reviewed
snapshots; a skill update reaches the published plugin only through a new
upload, review, and publish.
Give an MCP-capable agent the public, versioned
Publish an OpenAI App skill.
Authenticated Seller Accounts also advertise it through the MCP Skills
extension, so Apostra and compatible clients can load the same workflow without
copying this guide into a prompt.Distribution uses the existing V3 noun surface rather than adding
provider-specific tools:
get({ kind: "distribution" }) returns the configured public hostname, CNAME
target, ownership record, hostname status, MCP URL, and OpenAI challenge
status. An active customer CNAME is the server-owned verification result;
the agent does not claim to test an OpenAI submission.
The same read returns a bounded channels.chatgpt summary: whether the
listing is ready to submit, how many blocking items remain, this channel’s
own hostname and verification status, whether the submission bundle is
current and the listing approved, and one next-step line. It never claims
the app is live in ChatGPT — OpenAI’s review and publish decision happens
entirely on their portal — so it reports platform-side readiness only.
save_seller({ distribution: { openaiChallengeToken: "..." } }) publishes
the portal-provided challenge token. Replacing or removing a current token
requires the corresponding confirmation field.
Both operations are Seller-account-admin only. Reviewer access, portal scans,
screenshots, and video remain manual work described by the submission package.For an end-to-end conversational setup, connect the V2 Storefront MCP endpoint
and follow its Distribution skill section. It exposes the same guarded
operations as the Listing page: update the shared listing, configure and
publish Discovery, configure ChatGPT icons and the domain-ownership challenge,
request reviewer access, and obtain a fresh signed OpenAI package URL. The
agent makes one mutation per turn and stops for explicit owner confirmation at
each consequential boundary. OpenAI portal scans, screenshots, attestations,
submission, and publication remain manual.
Apostra publishes its own plugin through the same download, from its
first-party distribution account. Its package declares the MCP endpoint on the
first-party listing’s hostname and publishes under Scope3’s verified OpenAI
identity. Installation starts OAuth; API keys and provider credentials never
belong in the package or prompts.
Apostra does not infer ChatGPT branding or publisher details from an AdCP
partner registration, seller profile, or MCP connection. In particular:
adding a partner AdCP endpoint does not turn it into a ChatGPT MCP endpoint;
a customer’s logo and listing copy must be provided in that customer’s
developer-mode configuration; the public submission uses the automatic or
app-specific icon pair selected on the Listing page;
the verified publisher identity, public policies, and support details must
match the organization submitting the app. When the app uses Apostra,
the customer’s privacy policy must also disclose the relevant Apostra
data handling; and
a customer-owned MCP host requires its own production endpoint, OAuth
metadata, tools, annotations, UI resources, security review, and submission.
Do not use the shared https://api.apostra.com/mcp/v3 endpoint for a
private-label Developer-mode connection or public submission. OpenAI verifies
one exact token at the host-level /.well-known/openai-apps-challenge path;
changing only the MCP URL path cannot separate multiple app challenges on the
same host.A customer-owned public app therefore needs either a dedicated,
customer-controlled hostname that serves its MCP, OAuth, and verification
challenge, or an explicit arrangement approved by both Apostra and OpenAI.
Control of an Apostra account does not grant control of the
api.apostra.com domain.
{"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":"6aef4c4fd5518ba96e464ad9","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Build software","count":745},{"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/reference/white-label-chatgpt-app","slug":"/v2/reference/white-label-chatgpt-app","pageMetadata":{"title":"Create a white-label ChatGPT app","sidebarTitle":"White-label ChatGPT app","description":"Connect the v3 MCP endpoint in ChatGPT, record a review demo, and prepare a customer-branded submission.","icon":"comments","parity":"exempt","href":"/v2/reference/white-label-chatgpt-app"},"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: \"Connect the v3 MCP endpoint in ChatGPT, record a review demo, and prepare a customer-branded submission.\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Use this guide to test an Apostra-powered, customer-branded app in ChatGPT\nbefore preparing its public submission. ChatGPT currently labels this\ndeveloper-mode connection a `,_jsx(_components.strong,{children:`Plugin`}),`.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`A developer-mode connection is private test configuration. Its name, icon, and\ndescription do not publish an app, change Apostra MCP server’s\nidentity, or automatically carry into another customer’s submission.`})}),`\n`,_jsx(Heading,{level:`2`,id:`before-you-start`,children:`Before you start`}),`\n`,_jsx(_components.p,{children:`You need:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`a ChatGPT account or workspace that permits Developer mode;`}),`\n`,_jsx(_components.li,{children:`an Apostra account with access to a buyer or seller account enrolled in\nthe v3 preview that you will demonstrate;`}),`\n`,_jsx(_components.li,{children:`an owner-approved app name and short description; and`}),`\n`,_jsx(_components.li,{children:`a square PNG icon, ideally 256 x 256 pixels and no larger than the limit\ndisplayed by ChatGPT. The current form accepts at most 10 KB.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Use a review or demo account with representative data. Do not record production\ncredentials, access tokens, private customer data, or real campaign spend.`}),`\n`,_jsx(Heading,{level:`2`,id:`1-add-your-plugin-in-developer-mode`,children:`1. Add your plugin in Developer mode`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`In ChatGPT, open `,_jsx(_components.strong,{children:`Settings`}),` → `,_jsx(_components.strong,{children:`Security and login`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Turn on `,_jsx(_components.strong,{children:`Developer mode`}),`. Availability depends on the ChatGPT account and\nworkspace policy.`]}),`\n`,_jsxs(_components.li,{children:[`Open the `,_jsx(_components.a,{href:`https://chatgpt.com/plugins`,children:`ChatGPT Plugins page`}),` and select the\nplus button.`]}),`\n`,_jsxs(_components.li,{children:[`Complete `,_jsx(_components.strong,{children:`New Plugin`}),` with these values:`]}),`\n`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`What to enter`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Icon`}),_jsx(_components.td,{children:`The app owner’s approved 256 x 256 directory icon from the private-label handoff.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Name`}),_jsx(_components.td,{children:`The owner-approved customer-facing app name from the handoff.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Description`}),_jsx(_components.td,{children:`The owner-approved short description from the handoff.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Connection`}),_jsxs(_components.td,{children:[`Select `,_jsx(_components.strong,{children:`Server URL`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Server URL`}),_jsxs(_components.td,{children:[`The exact working private-label MCP URL from the handoff. Do not substitute the shared Apostra `,_jsx(_components.code,{children:`/mcp/v3`}),` endpoint.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Authentication`}),_jsxs(_components.td,{children:[`Select `,_jsx(_components.strong,{children:`OAuth`}),`. ChatGPT discovers the OAuth settings from the private-label server.`]})]})]})]}),`\n`,_jsxs(_components.ol,{start:`5`,children:[`\n`,_jsxs(_components.li,{children:[`Review the custom-server warning and select `,_jsx(_components.strong,{children:`I understand and want to\ncontinue`}),` only if the endpoint exactly matches your private-label handoff.`]}),`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`Create`}),` and complete the app’s sign-in flow with a reviewer whose\nhome Apostra account is the account assigned to this private-label app.\nThe hostname is account-bound and refuses a different active account.`]}),`\n`,_jsx(_components.li,{children:`Review the tools and metadata ChatGPT discovers from the server.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`If ChatGPT cannot create the connection, copy the private-label URL from the\nhandoff again, check that `,_jsx(_components.strong,{children:`OAuth`}),` is selected, and confirm that your workspace\nallows custom MCP servers. Do not edit the URL path or fall back to the shared\nApostra endpoint. The `,_jsx(_components.a,{href:`/v3/authentication`,children:`v3 authentication guide`}),` explains\nwhich Apostra account and permissions the login grants.`]}),`\n`,_jsxs(_components.p,{children:[`If `,_jsx(_components.strong,{children:`Scan Tools`}),` reports `,_jsx(_components.code,{children:`Access token is not valid for this protected resource`}),` after changing the MCP Server URL, disconnect the saved authorization\nand reconnect before scanning again. ChatGPT discovers the OAuth configuration\nfrom the server; no advanced-field overrides are required.`]}),`\n`,_jsx(Heading,{level:`2`,id:`2-verify-the-connection`,children:`2. Verify the connection`}),`\n`,_jsx(_components.p,{children:`Start a new chat, enable the plugin from the tools menu, and ask:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Call get_status. Tell me the active account, whether it is a buyer or seller,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`its readiness, and which other accounts I can reach.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Confirm that the result names the assigned account before demonstrating any\nworkflow. If it does not, reconnect with the grant-bound reviewer credential\nfor that account’s System advertiser; do not switch a private-label app into\nanother account. Then test\nthe exact prompts you plan to give reviewers:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`a read that returns useful account data;`}),`\n`,_jsx(_components.li,{children:`a representative write that shows the expected confirmation before it runs;`}),`\n`,_jsx(_components.li,{children:`a follow-up that reuses an identifier from the prior result; and`}),`\n`,_jsx(_components.li,{children:`an unsupported or unsafe request that produces the intended clarification,\nrefusal, or safe fallback.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Use demo fixtures for writes and stop before creating real spend. If you change\ntool metadata or deploy a server update, refresh the connection and rerun the\ntests in a new conversation.`}),`\n`,_jsx(Heading,{level:`2`,id:`3-record-the-review-video`,children:`3. Record the review video`}),`\n`,_jsx(_components.p,{children:`Record one clean end-to-end session while the developer-mode plugin is enabled.\nThe recording should show:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`the app name and icon in ChatGPT;`}),`\n`,_jsx(_components.li,{children:`the plugin selected for a new conversation;`}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`get_status`}),` confirming the review account;`]}),`\n`,_jsx(_components.li,{children:`at least one representative read workflow;`}),`\n`,_jsx(_components.li,{children:`the confirmation and result for a safe demo write, when the app supports\nwrites; and`}),`\n`,_jsx(_components.li,{children:`the expected behavior for one negative test.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Keep the browser URL, app identity, prompts, confirmations, and final results\nlegible. Hide password-manager overlays, credentials, OAuth tokens, personal\ndata, internal admin screens, and unrelated browser tabs. Store the recording\nin the customer’s approved file-sharing system; do not commit video files to a\nsource repository.`}),`\n`,_jsx(_components.p,{children:`The video is part of the submission handoff and a useful reproduction artifact.\nOpenAI’s portal requirements can change, so check the live form to determine\nwhether to upload the recording, link it, or retain it for reviewer follow-up.`}),`\n`,_jsxs(_components.p,{children:[`For reference, watch the\n`,_jsx(_components.a,{href:`https://youtu.be/I82M1i11NFs`,children:`example review video created for Apostra app`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`4-prepare-the-public-submission`,children:`4. Prepare the public submission`}),`\n`,_jsxs(_components.p,{children:[`Developer-mode branding is not a public listing. The intended handoff is one\napp-specific submission package rather than a request to assemble each upload\nby hand. An account admin prepares it on the `,_jsx(_components.strong,{children:`Listing`}),` page’s ChatGPT\ndestination (see `,_jsx(_components.a,{href:`/v2/setup/chatgpt-app-setup`,children:`Create a white-label ChatGPT app`}),`\nfor the full walkthrough; the retired Account Settings “Discovery \u0026\ndistribution” tab, and later the retired “Branding \u0026 distribution” page, held\nthese same controls before AI-7434 and AI-8891 moved them here):`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Get `,_jsx(_components.strong,{children:`Public distribution`}),` — the Listing page’s fourth step — live: add\nthe Distribution package, then point your domain at Apostra with one\nCNAME. (An app that already runs on its own active per-app hostname keeps its\nChatGPT destination — existing reviewer grant, token, and package — without\nthis step; requesting a new reviewer grant still needs it.) Apostra checks it for you; there is no separate tenant-specific\nTXT record or dedicated ChatGPT hostname to configure. Apostra\nfirst-party app uses its platform-managed hostname and skips this step\nentirely.`]}),`\n`,_jsxs(_components.li,{children:[`Review `,_jsx(_components.strong,{children:`Brand identity`}),` at the top of the page. It identifies whether the\nstorefront resolves a self-hosted `,_jsx(_components.code,{children:`brand.json`}),`, an AAO-managed identity, a\ncommunity profile, or no reusable identity. A usable resolved logo\nautomatically generates the 256 × 256 directory PNG and 48 × 48 composer\nPNG, but this is optional. You can instead upload both channel-specific\nPNGs from the ChatGPT destination. If no identity resolves, you can use the\nAAO builder to self-host or request AAO-managed hosting, or skip that step\nand upload the app icons directly. The directory category is set to Business by Apostra for new\nregistrations (an existing registration keeps its saved category; the\nvalue appears in the approval preview); other one-time portal choices are completed in\nOpenAI rather than duplicated here.`]}),`\n`,_jsxs(_components.li,{children:[`In the ChatGPT destination, choose `,_jsx(_components.strong,{children:`Request access`}),` once the listing is\nPublic. (An app that already runs on its own active per-app hostname keeps\nan existing grant, its token, and its package without Public distribution;\na new grant still requires it.) The action requires the storefront’s Seller account to have\nDistribution. Its billing organization has it when it holds an active\n`,_jsx(_components.code,{children:`seller-distribution`}),` entitlement; a Seller source profile does not grant it\non its own. Contact Apostra to add Distribution. Distribution covers the customer-branded AdCP endpoint, the customer-branded\nChatGPT app, organization advertiser management and public listing\ndistribution. A child account has it when its organization does. Apostra records a bounded review request owned by the\ncurrent account and activates it straight away: it creates a no-spend\nSystem advertiser in this storefront and issues one advertiser-scoped,\nread-only buyer credential. The destination shows the grant’s active,\nrevoked, or expired state. If setup fails, Apostra cancels that attempt and\nyou can request access again. You can request reviewer access up to three\ntimes a day for each directory. When the grant is active,\nchoose `,_jsx(_components.strong,{children:`Open reviewer login`}),` to view and copy its email and password.\nAccount admins can reopen the same login while the grant remains active;\nApostra does not put it in the submission ZIP or expose it to the\nmodel. The login is shared across OpenAI, Anthropic, and Microsoft remote\nMCP directory reviews for this listing. The reviewer signs in with it on\nthe Apostra sign-in page that the directory’s connection opens, then\napproves the connection on the `,_jsx(_components.strong,{children:`Authorize access`}),` step and returns to the\ndirectory. The login works only through that connection; it holds no\nApostra account membership, so signing in directly at the Apostra website\ndoes not open the app. Every request it makes is checked against the live\ngrant, including when a reviewer still signed in from an earlier attempt\nreconnects and goes straight to `,_jsx(_components.strong,{children:`Authorize access`}),` without the password.\nChoose `,_jsx(_components.strong,{children:`Revoke reviewer access`}),`\nas soon as review ends. If status is temporarily unavailable, the\ndestination disables both actions until a refresh can safely determine the\ncurrent grant.`]}),`\n`,_jsxs(_components.li,{children:[`Paste the OpenAI verification token in the same ChatGPT destination —\nthis proves ownership of the storefront’s own public listing domain, the\nsame one verified in Public distribution, not a second hostname. After you publish\nthe token, the destination checks (`,_jsx(_components.code,{children:`probe_discovery_openai_challenge`}),`)\nonly that the address returns that exact token; OpenAI performs domain verification\nseparately.`]}),`\n`,_jsxs(_components.li,{children:[`Review the values OpenAI will see, then select `,_jsx(_components.strong,{children:`Prepare download`}),`. If the\nlisting changed while the page was open, review the refreshed values and\nprepare it again. When the package is ready, select `,_jsx(_components.strong,{children:`Download plugin ZIP`}),`\nto start the browser download directly from that second click, and\n`,_jsx(_components.strong,{children:`Download submission notes`}),` for the reviewer guidance that goes with it.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The page hydrates this control from `,_jsx(_components.code,{children:`get_chatgpt_app_config`}),`.\n`,_jsx(_components.code,{children:`reviewerSandboxAvailable`}),` is `,_jsx(_components.code,{children:`true`}),` only when the current Public listing and\nDistribution (the `,_jsx(_components.code,{children:`seller-distribution`}),` entitlement) permit a new request. `,_jsx(_components.code,{children:`reviewerSandboxGrantStatus`}),`\nis `,_jsx(_components.code,{children:`loaded`}),` when both reviewer eligibility and the existing account-owned grant\nlookup succeeded. It is `,_jsx(_components.code,{children:`unavailable`}),` when either lookup cannot be read safely,\nso the page offers a retry instead of treating an outage as a missing\nentitlement. An existing grant remains visible and revocable if later\nconfiguration changes make a new request ineligible.`]}),`\n`,_jsx(_components.p,{children:`The page offers two downloads from the same prepared link:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Download plugin ZIP`}),` returns the file you upload to OpenAI, named\n`,_jsx(_components.code,{children:`\u003cplugin-name>-\u003cversion>.zip`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Download submission notes`}),` returns `,_jsx(_components.code,{children:`openai-submission-notes.md`}),`, the\nconsolidated guidance with the snapshot ID, the complete field map, the\nreview cases, locale guidance, release copy, screenshot guidance, and video\nstoryboard. Keep it for your release record; do not upload it to OpenAI.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`submission-bundle`}),` URL takes a `,_jsx(_components.code,{children:`part`}),` query parameter: `,_jsx(_components.code,{children:`plugin`}),` or `,_jsx(_components.code,{children:`notes`}),`\nreturns one file, and `,_jsx(_components.code,{children:`handoff`}),` (the default when `,_jsx(_components.code,{children:`part`}),` is omitted) returns\n`,_jsx(_components.code,{children:`openai-plugin-handoff.zip`}),`, an archive holding the plugin ZIP, the notes as\n`,_jsx(_components.code,{children:`README.md`}),`, and `,_jsx(_components.code,{children:`readiness-report.json`}),`, which records every portal field, its\nsource, readiness, blockers, and regeneration rules. OpenAI rejects that\narchive, so never upload it.`]}),`\n`,_jsx(_components.p,{children:`Upload the plugin ZIP in OpenAI’s Plugins dashboard, unchanged. Do not unpack\nor edit it. It uses OpenAI’s portable plugin layout:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`plugin.json`}),` carries the listing (display name, short and long description,\ndeveloper name, category, website, support, privacy, and Terms URLs), up to\nthree starter prompts, five positive and three negative review cases, and\nrelease notes. OpenAI imports these fields when you upload the ZIP and shows\nthe review cases read-only in `,_jsx(_components.strong,{children:`Review details`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`mcp.json`}),` declares the app’s production MCP URL.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`assets/`}),` holds the selected 256 × 256 logo and 48 × 48 composer icon,\nwhether generated from resolved brand identity or uploaded for this app.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`skills/`}),` holds the canonical skills for the account. Buyer apps include\nthe account-readiness, campaign-setup, event-source setup, and\ncampaign-management skills; seller apps include no skills.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Every download carries a higher plugin version than the one before it, so you\ncan upload a fresh download to the same plugin in OpenAI as an update. If your\napp was published through OpenAI’s previous submission form, OpenAI requires\nthe plugin ZIP to declare the identifier it assigned (`,_jsx(_components.code,{children:`app-…`}),`); if an upload\nreports “Plugin name must match the existing plugin”, send that identifier to\nApostra support before regenerating.\nApostra does not infer your publisher identity, so the plugin ZIP leaves the\ndeveloper name for you to enter in OpenAI’s dashboard. Use the name of the\nverified individual or business identity of the OpenAI organization that\npublishes the plugin; OpenAI displays that verified identity in the\ndirectory.`]}),`\n`,_jsx(_components.p,{children:`OpenAI caps plugin display names and short descriptions at 30 characters.\nApostra never truncates the display name: if the storefront name is longer,\nthe readiness report blocks the package until you shorten it.`}),`\n`,_jsxs(_components.p,{children:[`OpenAI scans the production MCP server’s tools when you connect it under\n`,_jsx(_components.strong,{children:`MCPs`}),`. Tool annotations come from that live scan, not from the ZIP. Sign in\nwith the reviewer login, not a staff account, so the scan sees the tools the\nreviewer will use. After publication, OpenAI rescans the server daily, and\neligible tool changes go live without a new upload. A change to the listing,\nicons, review cases, or skills needs a fresh download, a new upload, and a new\nreview.`]}),`\n`,_jsxs(_components.p,{children:[`A storefront with no logo in its resolved brand identity can still download\nthe package after both app-specific PNGs are uploaded from the `,_jsx(_components.strong,{children:`ChatGPT\ndestination`}),`. Upload the 256 × 256 directory icon and 48 × 48 composer icon\ntogether; an incomplete pair is rejected. To use automatic icons instead, add\na logo at the system that manages the identity, refresh the page, choose\n`,_jsx(_components.strong,{children:`Use automatic icons`}),`, and regenerate the bundle. The source choice\npersists across later saves; switching to automatic does not copy generated\nPNG bytes into the manual override fields. Legacy API integrations may\ncontinue updating one existing icon at a time, while new manual selections\nmust provide the pair. Apostra can read a self-hosted `,_jsx(_components.code,{children:`brand.json`}),`, but\ncannot edit it.`]}),`\n`,_jsx(_components.p,{children:`The verification token is public at the challenge URL and visible on the\nadmin-only Listing page, but deliberately excluded from the ZIP, logs, and\nreviewer handoff. Never reuse another customer’s bundle or replace its exact\nprivate-label MCP URL with the shared Apostra endpoint.`}),`\n`,_jsx(_components.p,{children:`The publisher still completes the requirements that cannot safely be generated:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`select the verified business or individual identity that will publish the\napp;`}),`\n`,_jsx(_components.li,{children:`confirm Apps Management write access for each submitter;`}),`\n`,_jsx(_components.li,{children:`confirm the domain-verification challenge published from the Branding \u0026\ndistribution Page before pressing Verify in OpenAI;`}),`\n`,_jsx(_components.li,{children:`confirm that the account-owned reviewer request created its dedicated,\nleast-privileged no-spend System advertiser. Open the reusable reviewer\nlogin from the destination, paste it only into the directory’s protected\ntest-access field, ensure it works without MFA, SMS, email confirmation, or\nprivate-network access, and revoke the grant when review ends;`}),`\n`,_jsx(_components.li,{children:`approve country availability, policy attestations, and the generated listing\nand release copy; and`}),`\n`,_jsx(_components.li,{children:`approve the final review video and its sharing location.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Follow `,_jsx(_components.a,{href:`https://developers.openai.com/plugins/deploy/submission`,children:`OpenAI’s current submission guide`}),`\nwhen completing the portal. Resolve every finding in `,_jsx(_components.strong,{children:`Metadata \u0026 Skills`}),` and\n`,_jsx(_components.strong,{children:`MCPs`}),`, rescan the production server immediately before submission, and\nenter the demo recording URL, reviewer login, country availability, and\ncommerce answer in `,_jsx(_components.strong,{children:`Review details`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`5-manage-review-and-publication`,children:`5. Manage review and publication`}),`\n`,_jsx(_components.p,{children:`Submitting starts OpenAI’s review; it does not publish the app. Keep a release\nrecord in your approved system with the bundle’s snapshot ID, source revision,\ngeneration and submission times, OpenAI draft or version reference, publisher\nowner, and current review state. Keep the plugin ZIP you uploaded and its\nsubmission notes, which carry the same snapshot ID, in approved,\naccess-controlled release storage. Each download stamps a new plugin version,\nso record the version of the ZIP you actually uploaded. Do not put reviewer credentials, OAuth\ntokens, domain-verification tokens, or private customer data in that record,\nthe ZIP, or a support ticket, and do not attach the ZIP to an unrestricted\nticket.`}),`\n`,_jsx(_components.p,{children:`While review is active, keep the storefront-owned System advertiser, its\ngrant-bound read-only reviewer login, synthetic no-spend fixtures,\nproduction MCP endpoint, domain challenge, tool metadata, and scanned skills\navailable. Send Apostra support any reviewer feedback verbatim with the\nsnapshot ID. Do not regenerate or hand-edit the submitted files unless the\nfeedback requires a new version.`}),`\n`,_jsxs(_components.p,{children:[`After approval, test the approved snapshot once more, then open the approved\npackage version in OpenAI and select `,_jsx(_components.strong,{children:`Publish plugin`}),`. Verify directory discovery, installation, OAuth,\n`,_jsx(_components.code,{children:`get_status`}),`, and one safe workflow, and monitor the launch for 24 hours. Revoke\nthe grant-bound reviewer credential when OpenAI no longer needs it.`]}),`\n`,_jsx(_components.p,{children:`After rejection, preserve the exact feedback and snapshot ID. Correct the\ncanonical configuration or Apostra source, download a fresh package, upload\nits plugin ZIP to the same plugin, rescan tools, rerun all five positive and\nthree negative cases, and submit the new package version. Only one review can\nbe active per plugin. Published metadata and packaged skills are reviewed\nsnapshots; a skill update reaches the published plugin only through a new\nupload, review, and publish.`}),`\n`,_jsx(Heading,{level:`2`,id:`get-conversational-setup-help`,children:`Get conversational setup help`}),`\n`,_jsxs(_components.p,{children:[`Give an MCP-capable agent the public, versioned\n`,_jsx(_components.a,{href:`https://api.apostra.com/skills/publish-an-openai-app/SKILL.md`,children:`Publish an OpenAI App skill`}),`.\nAuthenticated Seller Accounts also advertise it through the MCP Skills\nextension, so Apostra and compatible clients can load the same workflow without\ncopying this guide into a prompt.`]}),`\n`,_jsx(_components.p,{children:`Distribution uses the existing V3 noun surface rather than adding\nprovider-specific tools:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`get({ kind: \"distribution\" })`}),` returns the configured public hostname, CNAME\ntarget, ownership record, hostname status, MCP URL, and OpenAI challenge\nstatus. An `,_jsx(_components.code,{children:`active`}),` customer CNAME is the server-owned verification result;\nthe agent does not claim to test an OpenAI submission.`]}),`\n`,_jsxs(_components.li,{children:[`The same read returns a bounded `,_jsx(_components.code,{children:`channels.chatgpt`}),` summary: whether the\nlisting is ready to submit, how many blocking items remain, this channel’s\nown hostname and verification status, whether the submission bundle is\ncurrent and the listing approved, and one next-step line. It never claims\nthe app is live in ChatGPT — OpenAI’s review and publish decision happens\nentirely on their portal — so it reports platform-side readiness only.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`save_seller({ distribution: { openaiChallengeToken: \"...\" } })`}),` publishes\nthe portal-provided challenge token. Replacing or removing a current token\nrequires the corresponding confirmation field.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Both operations are Seller-account-admin only. Reviewer access, portal scans,\nscreenshots, and video remain manual work described by the submission package.`}),`\n`,_jsx(_components.p,{children:`For an end-to-end conversational setup, connect the V2 Storefront MCP endpoint\nand follow its Distribution skill section. It exposes the same guarded\noperations as the Listing page: update the shared listing, configure and\npublish Discovery, configure ChatGPT icons and the domain-ownership challenge,\nrequest reviewer access, and obtain a fresh signed OpenAI package URL. The\nagent makes one mutation per turn and stops for explicit owner confirmation at\neach consequential boundary. OpenAI portal scans, screenshots, attestations,\nsubmission, and publication remain manual.`}),`\n`,_jsx(Heading,{level:`2`,id:`apostra’s-own-plugin`,children:`Apostra’s own plugin`}),`\n`,_jsx(_components.p,{children:`Apostra publishes its own plugin through the same download, from its\nfirst-party distribution account. Its package declares the MCP endpoint on the\nfirst-party listing’s hostname and publishes under Scope3’s verified OpenAI\nidentity. Installation starts OAuth; API keys and provider credentials never\nbelong in the package or prompts.`}),`\n`,_jsx(Heading,{level:`2`,id:`understand-the-white-label-boundary`,children:`Understand the white-label boundary`}),`\n`,_jsx(_components.p,{children:`Apostra does not infer ChatGPT branding or publisher details from an AdCP\npartner registration, seller profile, or MCP connection. In particular:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`adding a partner AdCP endpoint does not turn it into a ChatGPT MCP endpoint;`}),`\n`,_jsx(_components.li,{children:`a customer’s logo and listing copy must be provided in that customer’s\ndeveloper-mode configuration; the public submission uses the automatic or\napp-specific icon pair selected on the Listing page;`}),`\n`,_jsx(_components.li,{children:`the verified publisher identity, public policies, and support details must\nmatch the organization submitting the app. When the app uses Apostra,\nthe customer’s privacy policy must also disclose the relevant Apostra\ndata handling; and`}),`\n`,_jsx(_components.li,{children:`a customer-owned MCP host requires its own production endpoint, OAuth\nmetadata, tools, annotations, UI resources, security review, and submission.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Do not use the shared `,_jsx(_components.code,{children:`https://api.apostra.com/mcp/v3`}),` endpoint for a\nprivate-label Developer-mode connection or public submission. OpenAI verifies\none exact token at the host-level `,_jsx(_components.code,{children:`/.well-known/openai-apps-challenge`}),` path;\nchanging only the MCP URL path cannot separate multiple app challenges on the\nsame host.`]}),`\n`,_jsxs(_components.p,{children:[`A customer-owned public app therefore needs either a dedicated,\ncustomer-controlled hostname that serves its MCP, OAuth, and verification\nchallenge, or an explicit arrangement approved by both Apostra and OpenAI.\nControl of an Apostra account does not grant control of the\n`,_jsx(_components.code,{children:`api.apostra.com`}),` domain.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create a white-label ChatGPT app","sidebarTitle":"White-label ChatGPT app","description":"Connect the v3 MCP endpoint in ChatGPT, record a review demo, and prepare a customer-branded submission.","icon":"comments","parity":"exempt","href":"/v2/reference/white-label-chatgpt-app"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Before you start","slug":"before-you-start","depth":2,"children":[]},{"title":"1. Add your plugin in Developer mode","slug":"1-add-your-plugin-in-developer-mode","depth":2,"children":[]},{"title":"2. Verify the connection","slug":"2-verify-the-connection","depth":2,"children":[]},{"title":"3. Record the review video","slug":"3-record-the-review-video","depth":2,"children":[]},{"title":"4. Prepare the public submission","slug":"4-prepare-the-public-submission","depth":2,"children":[]},{"title":"5. Manage review and publication","slug":"5-manage-review-and-publication","depth":2,"children":[]},{"title":"Get conversational setup help","slug":"get-conversational-setup-help","depth":2,"children":[]},{"title":"Apostra’s own plugin","slug":"apostra’s-own-plugin","depth":2,"children":[]},{"title":"Understand the white-label boundary","slug":"understand-the-white-label-boundary","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"agentic2","siteName":"Apostra","title":"Create a white-label ChatGPT app - Apostra","navMaps":{"firstHrefInVersion":{"v2":{"href":"/v2/reference/white-label-chatgpt-app","matchLevel":0},"v3":{"href":"/v2/reference/white-label-chatgpt-app","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-11-06T07:34:08.434Z","originalFileLocation":"v2/reference/white-label-chatgpt-app.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=\"Connect the v3 MCP endpoint in ChatGPT, record a review demo, and prepare a customer-branded submission.\">\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=\"Create a white-label ChatGPT app - Apostra\">\u003cmeta data-mint-head property=\"og:description\" content=\"Connect the v3 MCP endpoint in ChatGPT, record a review demo, and prepare a customer-branded submission.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Apostra API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.apostra.com/v2/reference/white-label-chatgpt-app\">\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=Cross-Cutting+Reference\u0026amp;title=Create+a+white-label+ChatGPT+app\u0026amp;description=Connect+the+v3+MCP+endpoint+in+ChatGPT%2C+record+a+review+demo%2C+and+prepare+a+customer-branded+submission.\u0026amp;theme=c49c13ac1fe5edf0b8126688\u0026amp;signature=2b6e6bedf94be81589bfa2a87b0a6e18710de8b331a44a550682f39d848bf1f1\">\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=\"Create a white-label ChatGPT app - Apostra\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Connect the v3 MCP endpoint in ChatGPT, record a review demo, and prepare a customer-branded submission.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://agentic2.mintlify.site/_mintlify/api/og/v2?division=Cross-Cutting+Reference\u0026amp;title=Create+a+white-label+ChatGPT+app\u0026amp;description=Connect+the+v3+MCP+endpoint+in+ChatGPT%2C+record+a+review+demo%2C+and+prepare+a+customer-branded+submission.\u0026amp;theme=c49c13ac1fe5edf0b8126688\u0026amp;signature=2b6e6bedf94be81589bfa2a87b0a6e18710de8b331a44a550682f39d848bf1f1\">\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/reference/white-label-chatgpt-app\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v2/reference/white-label-chatgpt-app.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/reference/white-label-chatgpt-app#webpage\",\"url\":\"https://docs.apostra.com/v2/reference/white-label-chatgpt-app\",\"name\":\"Create a white-label ChatGPT app\",\"description\":\"Connect the v3 MCP endpoint in ChatGPT, record a review demo, and prepare a customer-branded submission.\",\"dateModified\":\"2026-11-06T07:34:08.434Z\",\"isPartOf\":{\"@id\":\"https://docs.apostra.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.apostra.com/v2/reference/white-label-chatgpt-app#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.apostra.com/v2/reference/white-label-chatgpt-app#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Cross-Cutting Reference\",\"item\":\"https://docs.apostra.com/v2/reference/errors\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create a white-label ChatGPT app\",\"item\":\"https://docs.apostra.com/v2/reference/white-label-chatgpt-app\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.apostra.com/v2/reference/white-label-chatgpt-app#article\",\"headline\":\"Create a white-label ChatGPT app\",\"name\":\"Create a white-label ChatGPT app\",\"description\":\"Connect the v3 MCP endpoint in ChatGPT, record a review demo, and prepare a customer-branded submission.\",\"url\":\"https://docs.apostra.com/v2/reference/white-label-chatgpt-app\",\"mainEntityOfPage\":{\"@id\":\"https://docs.apostra.com/v2/reference/white-label-chatgpt-app#webpage\"},\"dateModified\":\"2026-11-06T07:34:08.434Z\",\"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","description":"Serve built MCP App widgets for iframe hosts","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","description":"Add Apostra MCP server as a tool in a Microsoft Copilot Studio agent — no Microsoft review required.","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","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","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,"groups":[{"group":"Start building","icon":"rocket","pages":[{"title":"Build with Apostra","icon":"code","href":"/v3/overview"},{"title":"Developer quickstart","sidebarTitle":"Developer quickstart","icon":"rocket","href":"/v3/developer-quickstart"},{"title":"Building on Apostra or on AdCP directly","sidebarTitle":"Apostra or AdCP directly","icon":"scale-balanced","href":"/v3/apostra-vs-adcp"},{"title":"Choose your operating loop","icon":"diagram-project","href":"/v3/choose-your-loop"},{"title":"Connect in five minutes","icon":"plug","href":"/v3/quickstart"},{"title":"SDK quickstart","icon":"code","href":"/v3/sdk-quickstart"},{"title":"V3 HTTP API","icon":"brackets-curly","href":"/v3/http-api"},{"title":"SDK guide","icon":"code","href":"/v3/sdk-guide"},{"title":"Apostra CLI","icon":"terminal","href":"/v3/cli"}]},{"group":"Build your integration","icon":"code","pages":[{"title":"Build an agent","icon":"robot","href":"/v3/build-an-agent"},{"title":"Connect an agent in an Agents account","icon":"robot","href":"/v3/connect-an-agent"},{"title":"Run Apostra for several client accounts","sidebarTitle":"Several client accounts","icon":"sitemap","href":"/v3/several-client-accounts"},{"title":"What is certification?","icon":"badge-check","href":"/v3/certification"},{"title":"Agent requirements: declarations and behaviour","icon":"clipboard-check","href":"/v3/agent-requirements"},{"title":"Discovering products on a storefront needs an account","sidebarTitle":"Storefront discovery needs an account","icon":"id-card","href":"/v3/storefront-discovery-needs-an-account"},{"title":"How your discovery targeting reaches sellers","sidebarTitle":"Discovery targeting","icon":"crosshairs","href":"/v3/discovery-targeting"},{"title":"Getting ready for AdCP 4.0","icon":"forward","href":"/v3/adcp-4-readiness"},{"title":"Render Apostra widgets in your own host","sidebarTitle":"MCP Apps host contract","icon":"window","href":"/v3/mcp-apps-host"},{"title":"Practise finding places to advertise","href":"/v2/guides/buyer-first-value-rehearsal"},{"title":"Bring data in","icon":"arrow-right-to-bracket","href":"/v3/bring-data-in"},{"title":"Connect Google Analytics 4","sidebarTitle":"Google Analytics","icon":"chart-line","href":"/v3/google-analytics"},{"title":"Delete from Apostra","icon":"trash-can","href":"/v3/delete-from-apostra"},{"title":"Find campaigns created in your ad platform","href":"/v3/import-existing-campaigns"},{"title":"Build a reporting pipeline","icon":"chart-line","href":"/v3/reporting-pipeline"},{"title":"Campaign Pulse","icon":"heart-pulse","href":"/v3/campaign-pulse"},{"title":"Review campaign performance each morning","icon":"chart-line-up","href":"/v3/daily-campaign-review"},{"title":"Webhook endpoints","icon":"webhook","href":"/v3/webhooks"},{"title":"Signing the webhooks you send us","sidebarTitle":"Signing seller webhooks","icon":"signature","href":"/v3/seller-webhook-signing"},{"title":"Reading your agent's webhook results","sidebarTitle":"Webhook results","icon":"inbox","href":"/v3/agent-webhook-deliveries"},{"title":"Integration Architecture","sidebarTitle":"Integration architecture","description":"Decide what your application, buyer agent, and Apostra should each own in an end-to-end buying workflow.","icon":"sitemap","href":"/v2/setup/v3/integration-architecture"},{"title":"Create a white-label ChatGPT app","sidebarTitle":"White-label ChatGPT app","icon":"comments","href":"/v2/reference/white-label-chatgpt-app"}]},{"group":"Workflow recipes","icon":"route","pages":[{"title":"Shared Workflows","sidebarTitle":"Shared workflows","description":"Use asks, documentation search, and account navigation across v3 accounts.","icon":"arrows-left-right","href":"/v2/setup/v3/shared-workflows"},{"title":"Set up operator and brand identity in chat","sidebarTitle":"Identity and brands","icon":"id-card","href":"/v2/setup/v3/identity-setup"},{"title":"Buyer Workflows","sidebarTitle":"Buyer workflows","icon":"bullhorn","href":"/v2/setup/v3/buyer-workflows"},{"title":"Change a live media buy","sidebarTitle":"Change a live media buy","icon":"arrows-rotate","href":"/v3/change-a-live-media-buy"},{"title":"Seller Workflows","sidebarTitle":"Seller workflows","icon":"store","href":"/v2/setup/v3/seller-workflows"},{"title":"Practice buyer briefs and compare responses","sidebarTitle":"Practice buyer briefs","icon":"flask","href":"/v3/seller-practice-and-simulation"},{"title":"Seller RFP Lifecycle","sidebarTitle":"Seller RFP lifecycle","icon":"file-signature","href":"/v3/rfp-lifecycle"},{"title":"RFP performance","icon":"chart-line","href":"/v3/rfp-performance"},{"title":"Session alerts","icon":"bell","href":"/v3/session-alerts"},{"title":"Why a media partner isn't available to an advertiser","sidebarTitle":"Media partner availability","icon":"link","href":"/v3/media-partner-availability"}]},{"group":"MCP reference","icon":"diagram-project","pages":[{"title":"v3 Concepts","sidebarTitle":"Concepts","icon":"diagram-project","href":"/v2/setup/v3/concepts"},{"title":"v3 Tool Catalog","sidebarTitle":"Tool catalog","icon":"screwdriver-wrench","href":"/v3/tool-reference"},{"title":"Retained Session timeline","sidebarTitle":"Session timeline","href":"/v2/setup/v3/session-timeline"},{"title":"Creative generation","href":"/v2/setup/v3/creative-engines"},{"title":"v3 Preview Limitations","sidebarTitle":"Limitations","icon":"triangle-exclamation","href":"/v3/limitations"}]},{"group":"Shared reference","icon":"book-bookmark","pages":[{"title":"Authentication","sidebarTitle":"Authentication","icon":"key","href":"/v3/authentication"},{"title":"Sign in a self-built agent","sidebarTitle":"Agent sign-in","icon":"right-to-bracket","href":"/v3/agent-sign-in"},{"title":"Account access","sidebarTitle":"Account access","icon":"users","href":"/v3/account-access"},{"title":"Name the account on every call","sidebarTitle":"Name the account","icon":"tag","href":"/v3/name-the-account"},{"title":"AI providers","sidebarTitle":"AI providers","icon":"microchip","href":"/v3/ai-providers"},{"title":"Plan \u0026 Billing","sidebarTitle":"Plan \u0026 Billing","icon":"gauge","href":"/v3/plan-and-billing"},{"title":"Billing: plan and invoices","sidebarTitle":"Billing: plan and invoices","icon":"file-invoice-dollar","href":"/v3/billing-plan-and-invoices"},{"title":"Operator fees","sidebarTitle":"Operator fees","icon":"percent","href":"/v3/operator-fees"},{"title":"MCP client setup","sidebarTitle":"MCP client setup","icon":"message-bot","href":"/v3/client-setup"},{"title":"v3 Errors","sidebarTitle":"Errors","icon":"circle-exclamation","href":"/v3/errors"},{"title":"V3 response variants","href":"/v3/response-variants"},{"title":"Count objects with search","sidebarTitle":"Count with search","icon":"chart-simple","href":"/v3/count-with-search"},{"title":"Creative previews","sidebarTitle":"Creative previews","icon":"eye","href":"/v3/creative-previews"},{"title":"Creative sync outcomes","sidebarTitle":"Creative sync outcomes","icon":"route","href":"/v3/creative-sync-outcomes"},{"title":"HTML5 and display tag creative requirements","sidebarTitle":"HTML5 and tag requirements","icon":"file-zipper","href":"/v3/html5-creative-requirements"},{"title":"Is your ad server in line with the agreed terms?","sidebarTitle":"Agreed terms check","icon":"scale-balanced","href":"/v3/agreed-terms-check"},{"title":"Does your buy still match the booking?","sidebarTitle":"Booking answer","icon":"circle-check","href":"/v3/booking-answer"},{"title":"Is each package on pace?","sidebarTitle":"Package pacing","icon":"gauge","href":"/v3/package-pacing"},{"title":"Auto-tagged links","sidebarTitle":"Auto-tagged links","icon":"tag","href":"/v3/auto-tagged-links"},{"title":"Chat with your buyer agent in Apostra","sidebarTitle":"Chat with your buyer agent","icon":"comments","href":"/v3/chat-with-your-buyer-agent"},{"title":"Your account's agent and hosted orchestrators","sidebarTitle":"Hosted buyer agents","icon":"robot","href":"/v3/hosted-buyer-agents"},{"title":"What changed on a media buy?","sidebarTitle":"Media buy history","icon":"clock-rotate-left","href":"/v3/media-buy-history"},{"title":"Migrate V3 write requests","sidebarTitle":"Migrate write requests","icon":"code-branch","href":"/v3/migrate-write-requests"},{"title":"Move a v2 buyer REST integration to V3","sidebarTitle":"Move from v2 REST","icon":"arrow-right-arrow-left","href":"/v3/migrate-from-v2-rest"},{"title":"v3 Limits","sidebarTitle":"Rate and connection limits","icon":"gauge-high","href":"/v3/rate-limits"},{"title":"Changes and compatibility","sidebarTitle":"Changelog","icon":"clock-rotate-left","href":"/v3/changelog"}]}]}]}]},"basePath":"","title":"Create a white-label ChatGPT app - Apostra","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":[],"chunks":[]}