Add Semicola to Codex, Claude Code or any MCP client, sign in with OAuth, and verify the account with a read-only call.
By the end of this page your coding agent will know which Semicola account it is connected to and
will have read its first objects. You need a Semicola account and an MCP client that supports remote
servers over Streamable HTTP. Creating an account or finishing seller onboarding can take longer than
the connection itself.
The login command opens a browser. Sign in to Semicola, pick the account to use, and approve the
connection. Then start a Codex session in your project.
claude mcp add --transport http semicola https://api.semicola.com/mcp/v3claude
Inside Claude Code, run /mcp, choose semicola, and complete sign-in in the browser.
Add a remote server that uses Streamable HTTP with this URL:
https://api.semicola.com/mcp/v3
Choose OAuth as the authentication method. The client discovers everything else from the server’s
first 401 response. See MCP client setup for host-specific notes.
If your client already has a Semicola connection that points at this URL, reuse it. Your agent should
never ask you to paste a password or key into the chat.
OAuth connects the coding session as you. It is not an identity for software you deploy later. For
a headless service, create an API key and keep it in a secret manager; see
Authentication.
Running the Semicola stack locally? Use http://localhost:4000/mcp/v3 instead. The local server
plays the sign-in role itself, with the same discovery documents.
Use the semicola connection to call get_status. Tell me the active account, whether it is a buyeror a seller, any readiness blockers, and which other accounts I can reach. Do not create or changeanything.
If the client reports that the connection still needs authentication, finish OAuth in its MCP
controls and try again. Adding a server is not the same as signing in.A successful get_status proves the connection reaches your account. It does not prove that every
advertiser, seller or write is allowed.If the wrong account is active, call switch_account with a customerId from the status result’s
reachableAccounts, then call get_status again. The table at the end of this page covers what to
check when a tool you expected is missing.
Ask the agent to look at tools/list, then call search with the input that suits your account:
Buyer account
Seller account
{ "kind": "seller", "limit": 10 }
This lists sellers and their connection and readiness status for your account. It does not send
anyone a brief. An empty list is a valid answer, not a broken connection.
{ "kind": "inventory_source", "limit": 10 }
This lists the inventory sources connected to your storefront. A new storefront may have none yet.
You now have a verified connection and one account-scoped read. The schemas in tools/list are the
contract for this session; they can differ by account, role and feature availability.
A good first project is a read-only seller browser for a buyer account:
Build a small seller-discovery prototype in this repository using the semicola MCP connection.Check the account with get_status and read the current tool schemas. List sellers and show theirreadiness and connection status. Keep credentials out of the repository. Add a fixture test for apopulated result and one for an empty result. Do not request proposals or create a campaign yet.Explain how to run it and what the tests prove.
The fixture tests prove your code handles the shapes; the live get_status and search calls prove
account access. Neither proves a campaign can launch. When you are ready to write, read the
Campaign object guide and the v3 Tool Catalog.
Finish OAuth in the client’s MCP controls, then retry.
Wrong account, or buyer or seller tools missing
Read reachableAccounts from get_status, switch to the right account, and refresh the tool list.
Permission denied
The credential’s account or role lacks access. Reinstalling the connection does not change permissions.
A readiness blocker
Follow the next action get_status returns. A working connection does not finish commercial setup.
The client cannot show a widget
Use the structured result or text summary, or switch to a host that supports MCP Apps.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Semicola","description":"Docs for Semicola: buy media from every seller with one agent, sell through a storefront agent, and build on the v3 MCP endpoint.","colors":{"primary":"#3B5BFF","light":"#7C93FF","dark":"#1B2A6B"},"logo":{"light":"https://mintcdn.com/semicola/DISjjRP2VNqC232R/logo/light.svg?fit=max\u0026auto=format\u0026n=DISjjRP2VNqC232R\u0026q=85\u0026s=5776a0cd528979910571214492d71582","dark":"https://mintcdn.com/semicola/DISjjRP2VNqC232R/logo/dark.svg?fit=max\u0026auto=format\u0026n=DISjjRP2VNqC232R\u0026q=85\u0026s=49ec2d7e4c11b0f5ef0436ba1536187a"},"favicon":"https://mintcdn.com/semicola/DISjjRP2VNqC232R/favicon.svg?fit=max\u0026auto=format\u0026n=DISjjRP2VNqC232R\u0026q=85\u0026s=ae9e879e87d0a52a82376bfacdd4df96","navbar":{"primary":{"type":"button","label":"Open app","href":"https://app.semicola.com"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/semicola"}},"fonts":{"heading":{"family":"Space Grotesk"},"body":{"family":"Inter"}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"semicola","hasAudioNarration":false,"actualSubdomain":"semicola","customDomains":["docs.semicola.com"],"gitSource":{"type":"github","owner":"therightangle","repo":"semicola","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6abc5d0f42bc9d5a6fdfc4d8","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"Build with Semicola","count":465},{"language":"default","tag":"v3 API reference","count":162},{"language":"default","tag":"Buyer API reference","count":137},{"language":"default","tag":"Storefront API reference","count":120},{"language":"default","tag":"Use Semicola","count":64},{"language":"default","tag":"Inventory Sources","count":34},{"language":"default","tag":"Assistant","count":32},{"language":"default","tag":"Creatives","count":31},{"language":"default","tag":"Campaigns","count":26},{"language":"default","tag":"Sell media","count":24}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":true},"customCss":[],"page":{"pagePath":"v3/quickstart","slug":"/v3/quickstart","pageMetadata":{"title":"Connect in five minutes","description":"Add Semicola to Codex, Claude Code or any MCP client, sign in with OAuth, and verify the account with a read-only call.","href":"/v3/quickstart"},"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: \"Add Semicola to Codex, Claude Code or any MCP client, sign in with OAuth, and verify the account with a read-only call.\"\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`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Tab,Table,Tabs,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`By the end of this page your coding agent will know which Semicola account it is connected to and\nwill have read its first objects. You need a Semicola account and an MCP client that supports remote\nservers over Streamable HTTP. Creating an account or finishing seller onboarding can take longer than\nthe connection itself.`}),`\n`,_jsx(Heading,{level:`2`,id:`1-add-the-connection`,children:`1. Add the connection`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Codex`,id:`codex`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`codex`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` semicola`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.semicola.com/mcp/v3`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`codex`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` login`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` semicola`})]}),`\n`]})})}),_jsx(_components.p,{children:`The login command opens a browser. Sign in to Semicola, pick the account to use, and approve the\nconnection. Then start a Codex session in your project.`})]}),_jsxs(Tab,{title:`Claude Code`,id:`claude-code`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`claude`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --transport`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` http`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` semicola`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.semicola.com/mcp/v3`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`claude`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Inside Claude Code, run `,_jsx(_components.code,{children:`/mcp`}),`, choose `,_jsx(_components.code,{children:`semicola`}),`, and complete sign-in in the browser.`]})]}),_jsxs(Tab,{title:`Other MCP clients`,id:`other-mcp-clients`,children:[_jsxs(_components.p,{children:[`Add a remote server that uses `,_jsx(_components.strong,{children:`Streamable HTTP`}),` with this URL:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,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:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`https://api.semicola.com/mcp/v3`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[`Choose OAuth as the authentication method. The client discovers everything else from the server’s\nfirst `,_jsx(_components.code,{children:`401`}),` response. See `,_jsx(_components.a,{href:`/v3/client-setup`,children:`MCP client setup`}),` for host-specific notes.`]})]})]}),`\n`,_jsx(_components.p,{children:`If your client already has a Semicola connection that points at this URL, reuse it. Your agent should\nnever ask you to paste a password or key into the chat.`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`OAuth connects the coding session as you. It is not an identity for software you deploy later. For\na headless service, create an API key and keep it in a secret manager; see\n`,_jsx(_components.a,{href:`/v3/authentication`,children:`Authentication`}),`.`]})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Running the Semicola stack locally? Use `,_jsx(_components.code,{children:`http://localhost:4000/mcp/v3`}),` instead. The local server\nplays the sign-in role itself, with the same discovery documents.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`2-prove-account-access`,children:`2. Prove account access`}),`\n`,_jsx(_components.p,{children:`Ask your agent:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,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:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Use the semicola connection to call get_status. Tell me the active account, whether it is a buyer`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`or a seller, any readiness blockers, and which other accounts I can reach. Do not create or change`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`anything.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`If the client reports that the connection still needs authentication, finish OAuth in its MCP\ncontrols and try again. Adding a server is not the same as signing in.`}),`\n`,_jsxs(_components.p,{children:[`A successful `,_jsx(_components.code,{children:`get_status`}),` proves the connection reaches your account. It does not prove that every\nadvertiser, seller or write is allowed.`]}),`\n`,_jsxs(_components.p,{children:[`If the wrong account is active, call `,_jsx(_components.code,{children:`switch_account`}),` with a `,_jsx(_components.code,{children:`customerId`}),` from the status result’s\n`,_jsx(_components.code,{children:`reachableAccounts`}),`, then call `,_jsx(_components.code,{children:`get_status`}),` again. The table at the end of this page covers what to\ncheck when a tool you expected is missing.`]}),`\n`,_jsx(Heading,{level:`2`,id:`3-make-a-first-read`,children:`3. Make a first read`}),`\n`,_jsxs(_components.p,{children:[`Ask the agent to look at `,_jsx(_components.code,{children:`tools/list`}),`, then call `,_jsx(_components.code,{children:`search`}),` with the input that suits your account:`]}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Buyer account`,id:`buyer-account`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"kind\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"seller\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"limit\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`10`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`]})})}),_jsx(_components.p,{children:`This lists sellers and their connection and readiness status for your account. It does not send\nanyone a brief. An empty list is a valid answer, not a broken connection.`})]}),_jsxs(Tab,{title:`Seller account`,id:`seller-account`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"kind\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"inventory_source\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"limit\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`10`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`]})})}),_jsx(_components.p,{children:`This lists the inventory sources connected to your storefront. A new storefront may have none yet.`})]})]}),`\n`,_jsxs(_components.p,{children:[`You now have a verified connection and one account-scoped read. The schemas in `,_jsx(_components.code,{children:`tools/list`}),` are the\ncontract for this session; they can differ by account, role and feature availability.`]}),`\n`,_jsx(Heading,{level:`2`,id:`4-build-a-small-prototype`,children:`4. Build a small prototype`}),`\n`,_jsx(_components.p,{children:`A good first project is a read-only seller browser for a buyer account:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,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:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Build a small seller-discovery prototype in this repository using the semicola MCP connection.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Check the account with get_status and read the current tool schemas. List sellers and show their`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`readiness and connection status. Keep credentials out of the repository. Add a fixture test for a`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`populated result and one for an empty result. Do not request proposals or create a campaign yet.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Explain how to run it and what the tests prove.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`The fixture tests prove your code handles the shapes; the live `,_jsx(_components.code,{children:`get_status`}),` and `,_jsx(_components.code,{children:`search`}),` calls prove\naccount access. Neither proves a campaign can launch. When you are ready to write, read the\n`,_jsx(_components.a,{href:`/buy/campaign`,children:`Campaign object guide`}),` and the `,_jsx(_components.a,{href:`/v3/tool-catalog`,children:`v3 Tool Catalog`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`if-the-first-call-fails`,children:`If the first call fails`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`What you see`}),_jsx(_components.th,{children:`What to do`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Authentication required`}),_jsx(_components.td,{children:`Finish OAuth in the client’s MCP controls, then retry.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Wrong account, or buyer or seller tools missing`}),_jsxs(_components.td,{children:[`Read `,_jsx(_components.code,{children:`reachableAccounts`}),` from `,_jsx(_components.code,{children:`get_status`}),`, switch to the right account, and refresh the tool list.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Permission denied`}),_jsx(_components.td,{children:`The credential’s account or role lacks access. Reinstalling the connection does not change permissions.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A readiness blocker`}),_jsxs(_components.td,{children:[`Follow the next action `,_jsx(_components.code,{children:`get_status`}),` returns. A working connection does not finish commercial setup.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`The client cannot show a widget`}),_jsx(_components.td,{children:`Use the structured result or text summary, or switch to a host that supports MCP Apps.`})]})]})]})]})}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":"Connect in five minutes","description":"Add Semicola to Codex, Claude Code or any MCP client, sign in with OAuth, and verify the account with a read-only call.","href":"/v3/quickstart"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"1. Add the connection","slug":"1-add-the-connection","depth":2,"children":[]},{"title":"2. Prove account access","slug":"2-prove-account-access","depth":2,"children":[]},{"title":"3. Make a first read","slug":"3-make-a-first-read","depth":2,"children":[]},{"title":"4. Build a small prototype","slug":"4-build-a-small-prototype","depth":2,"children":[]},{"title":"If the first call fails","slug":"if-the-first-call-fails","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/semicola/75b2c9b1b7bf3f36/eslint.config.js"],"subdomain":"semicola","siteName":"Semicola","title":"Connect in five minutes - Semicola","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-24T22:07:29.110Z","originalFileLocation":"v3/quickstart.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=\"Add Semicola to Codex, Claude Code or any MCP client, sign in with OAuth, and verify the account with a read-only call.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Semicola\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/semicola/RuR9jiM_mm4QddMQ/_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/semicola/RuR9jiM_mm4QddMQ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/semicola/RuR9jiM_mm4QddMQ/_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/semicola/RuR9jiM_mm4QddMQ/_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/semicola/RuR9jiM_mm4QddMQ/_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/semicola/RuR9jiM_mm4QddMQ/_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/semicola/RuR9jiM_mm4QddMQ/_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/semicola/RuR9jiM_mm4QddMQ/_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/semicola/RuR9jiM_mm4QddMQ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Connect in five minutes - Semicola\">\u003cmeta data-mint-head property=\"og:description\" content=\"Add Semicola to Codex, Claude Code or any MCP client, sign in with OAuth, and verify the account with a read-only call.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Semicola\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.semicola.com/v3/quickstart\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://semicola.mintlify.site/_mintlify/api/og/v2?division=Start+building\u0026amp;title=Connect+in+five+minutes\u0026amp;description=Add+Semicola+to+Codex%2C+Claude+Code+or+any+MCP+client%2C+sign+in+with+OAuth%2C+and+verify+the+account+with+a+read-only+call.\u0026amp;theme=623e3cf125339cd239a4ea2b\u0026amp;signature=b1b52e88c500c863a3921be6335501fecc2965e9712f8bc05d4640428ce4f7d9\">\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=\"Connect in five minutes - Semicola\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Add Semicola to Codex, Claude Code or any MCP client, sign in with OAuth, and verify the account with a read-only call.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://semicola.mintlify.site/_mintlify/api/og/v2?division=Start+building\u0026amp;title=Connect+in+five+minutes\u0026amp;description=Add+Semicola+to+Codex%2C+Claude+Code+or+any+MCP+client%2C+sign+in+with+OAuth%2C+and+verify+the+account+with+a+read-only+call.\u0026amp;theme=623e3cf125339cd239a4ea2b\u0026amp;signature=b1b52e88c500c863a3921be6335501fecc2965e9712f8bc05d4640428ce4f7d9\">\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/semicola/RuR9jiM_mm4QddMQ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Semicola\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3B5BFF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.semicola.com/v3/quickstart\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v3/quickstart.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.semicola.com/#organization\",\"name\":\"Semicola\",\"url\":\"https://docs.semicola.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/semicola/DISjjRP2VNqC232R/logo/light.svg?fit=max\u0026auto=format\u0026n=DISjjRP2VNqC232R\u0026q=85\u0026s=5776a0cd528979910571214492d71582\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.semicola.com#website\",\"name\":\"Semicola\",\"url\":\"https://docs.semicola.com\",\"publisher\":{\"@id\":\"https://docs.semicola.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.semicola.com/v3/quickstart#webpage\",\"url\":\"https://docs.semicola.com/v3/quickstart\",\"name\":\"Connect in five minutes\",\"description\":\"Add Semicola to Codex, Claude Code or any MCP client, sign in with OAuth, and verify the account with a read-only call.\",\"dateModified\":\"2026-09-24T22:07:29.110Z\",\"isPartOf\":{\"@id\":\"https://docs.semicola.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.semicola.com/v3/quickstart#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.semicola.com/v3/quickstart#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"v3\",\"item\":\"https://docs.semicola.com/v3/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Start building\",\"item\":\"https://docs.semicola.com/v3/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Connect in five minutes\",\"item\":\"https://docs.semicola.com/v3/quickstart\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.semicola.com/v3/quickstart#article\",\"headline\":\"Connect in five minutes\",\"name\":\"Connect in five minutes\",\"description\":\"Add Semicola to Codex, Claude Code or any MCP client, sign in with OAuth, and verify the account with a read-only call.\",\"url\":\"https://docs.semicola.com/v3/quickstart\",\"mainEntityOfPage\":{\"@id\":\"https://docs.semicola.com/v3/quickstart#webpage\"},\"dateModified\":\"2026-09-24T22:07:29.110Z\",\"publisher\":{\"@id\":\"https://docs.semicola.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.semicola.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Semicola\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Semicola","nav":{"global":null,"tabs":[{"tab":"Use Semicola","pages":[{"title":"Use Semicola","href":""}]},{"tab":"Build with Semicola","groups":[{"group":"v3","pages":[{"group":"Start building","pages":[{"title":"Build with Semicola","href":"/v3/overview"},{"title":"Choose your operating loop","description":"Decide whether to work inside Semicola, build your own application, or combine an agent with code that owns progress.","href":"/v3/choose-your-loop"},{"title":"Connect in five minutes","href":"/v3/quickstart"}]},{"group":"Build your integration","pages":[{"title":"Build an agent","description":"Grow a read-only prototype into a buying loop that survives retries, restarts and human approval.","href":"/v3/build-an-agent"},{"title":"Runnable examples","href":"/v3/examples"}]},{"group":"MCP reference","pages":[{"title":"v3 Tool Catalog","href":"/v3/tool-catalog"}]},{"group":"Shared reference","pages":[{"title":"Authentication","href":"/v3/authentication"},{"title":"Account access","href":"/v3/account-access"},{"title":"Manage buyer agents","href":"/v2/setup/buyer-agent-credentials"},{"title":"MCP client setup","href":"/v3/client-setup"},{"title":"Copilot Studio and Gemini Enterprise","href":"/v3/enterprise-hosts"},{"title":"White-label ChatGPT app","href":"/v3/white-label-chatgpt-app"},{"title":"Errors","href":"/v3/errors"},{"title":"Limits","href":"/v3/limits"},{"title":"Pagination","href":"/v3/pagination"},{"title":"Semi API","href":"/v3/semi-api"},{"title":"MCP Apps","href":"/v3/mcp-apps"},{"title":"Public URL requirements","href":"/v3/public-urls"},{"title":"Changes and compatibility","href":"/v3/changelog"}]}]},{"group":"Concepts","pages":[{"title":"Object model","href":"/concepts/object-model"},{"title":"The storefront agent","href":"/concepts/storefront-agent"},{"title":"Merchandising","href":"/concepts/merchandising"},{"title":"Media buy lifecycle","href":"/concepts/media-buy-lifecycle"},{"title":"Campaign readiness","href":"/concepts/campaign-readiness"},{"title":"Sandbox","href":"/concepts/sandbox"},{"title":"Asks","href":"/concepts/asks"},{"title":"Budgets, fees and currency","href":"/concepts/budgets-and-currency"},{"title":"Which domain is which","href":"/concepts/domains"},{"title":"Identity documents","href":"/concepts/identity-documents"},{"title":"Agents","href":"/concepts/agents"},{"title":"How AdCP thinks about video","href":"/concepts/video-creatives"},{"title":"How Semicola uses AdCP","href":"/concepts/adcp"}]},{"group":"Agents","pages":[{"title":"Semicola for advertising agents","sidebarTitle":"For agents","href":"/agents/for-agents"}]},{"group":"Skills","pages":[{"title":"Agent skills","href":"/skills/overview"},{"title":"Build with Semicola","href":"/skills/build-with-semicola"},{"title":"Get an account ready to buy","href":"/skills/get-account-ready-to-buy"},{"title":"Set up a campaign","href":"/skills/set-up-a-campaign"},{"title":"Manage a campaign","href":"/skills/manage-a-campaign"},{"title":"Buy from a seller","href":"/skills/buy-from-seller"},{"title":"Test a sales agent","href":"/skills/test-sales-agent"},{"title":"Set up an event source","href":"/skills/set-up-an-event-source"},{"title":"Generate campaign creatives","href":"/skills/generate-campaign-creatives"},{"title":"Inspect a tag sheet","href":"/skills/inspect-tag-sheet"},{"title":"Publish an OpenAI app","href":"/skills/publish-an-openai-app"},{"title":"Buyer skill","href":"/v2/buyer/skill"},{"title":"Storefront skill","href":"/v2/storefront/skill"}]},{"group":"Buyer API reference","pages":[{"group":"Activity","pages":[{"title":"API call log: every admitted buyer API request, including failures and denials","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/activity/calls","href":"/api-reference/buyer/activity/api-call-log:-every-admitted-buyer-api-request-including-failures-and-denials"},{"title":"One API call: correlation ids, safe request JSON, error response, headers, steps","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/activity/calls/{id}","href":"/api-reference/buyer/activity/one-api-call:-correlation-ids-safe-request-json-error-response-headers-steps"}]},{"group":"Advertisers","pages":[{"title":"List advertisers","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/advertisers","href":"/api-reference/buyer/advertisers/list-advertisers"},{"title":"Create an advertiser (confirm currency first)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/advertisers","href":"/api-reference/buyer/advertisers/create-an-advertiser-confirm-currency-first"},{"title":"Sync event sources","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/advertisers/{advertiserId}/event-sources/sync","href":"/api-reference/buyer/advertisers/sync-event-sources"},{"title":"Hourly event counts by type (event summary)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/advertisers/{advertiserId}/events/summary","href":"/api-reference/buyer/advertisers/hourly-event-counts-by-type-event-summary"},{"title":"Get an advertiser","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/advertisers/{id}","href":"/api-reference/buyer/advertisers/get-an-advertiser"},{"title":"Update an advertiser","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml put /api/v2/buyer/advertisers/{id}","href":"/api-reference/buyer/advertisers/update-an-advertiser"},{"title":"Archive an advertiser","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml delete /api/v2/buyer/advertisers/{id}","href":"/api-reference/buyer/advertisers/archive-an-advertiser"},{"title":"List advertiser linked accounts","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/advertisers/{id}/accounts","href":"/api-reference/buyer/advertisers/list-advertiser-linked-accounts"},{"title":"Unmap an advertiser linked account","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml delete /api/v2/buyer/advertisers/{id}/accounts/{linkId}","href":"/api-reference/buyer/advertisers/unmap-an-advertiser-linked-account"},{"title":"Advertiser readiness checklist (brand, currency, linked accounts)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/advertisers/{id}/readiness","href":"/api-reference/buyer/advertisers/advertiser-readiness-checklist-brand-currency-linked-accounts"},{"title":"Restore an archived advertiser","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/advertisers/{id}/restore","href":"/api-reference/buyer/advertisers/restore-an-archived-advertiser"},{"title":"Resolve a brand card (no persistence)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/brands/resolve","href":"/api-reference/buyer/advertisers/resolve-a-brand-card-no-persistence"},{"title":"The buyer's sponsorship scope (a storefront a sponsored buyer is confined to)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/scope","href":"/api-reference/buyer/advertisers/the-buyers-sponsorship-scope-a-storefront-a-sponsored-buyer-is-confined-to"},{"title":"List organization advertisers (owned advertisers and relationships)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/organization/advertisers","href":"/api-reference/buyer/advertisers/list-organization-advertisers-owned-advertisers-and-relationships"},{"title":"Set an owned advertiser managed or self-serve","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml patch /api/v2/organization/advertisers/{advertiserId}/operating-mode","href":"/api-reference/buyer/advertisers/set-an-owned-advertiser-managed-or-self-serve"}]},{"group":"Event Sources","pages":[{"title":"Event sources with health","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/advertisers/{advertiserId}/event-sources","href":"/api-reference/buyer/event-sources/event-sources-with-health"},{"title":"Event sources with health","deprecated":true,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/event-sources","href":"/api-reference/buyer/event-sources/event-sources-with-health-1"},{"title":"Create or update an event source","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/event-sources","href":"/api-reference/buyer/event-sources/create-or-update-an-event-source"},{"title":"Log conversion events (server-to-server, up to 10,000)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/event-sources/{key}/events","href":"/api-reference/buyer/event-sources/log-conversion-events-server-to-server-up-to-10000"}]},{"group":"Syndication","pages":[{"title":"Toggle syndication of an audience, event source or catalog to ADCP agents","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/advertisers/{advertiserId}/syndicate","href":"/api-reference/buyer/syndication/toggle-syndication-of-an-audience-event-source-or-catalog-to-adcp-agents"},{"title":"Query syndication status records","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/advertisers/{advertiserId}/syndication-status","href":"/api-reference/buyer/syndication/query-syndication-status-records"}]},{"group":"Creatives","pages":[{"title":"Uploaded assets in the advertiser library","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/advertisers/{id}/assets","href":"/api-reference/buyer/creatives/uploaded-assets-in-the-advertiser-library"},{"title":"Library creatives","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/advertisers/{id}/creatives","href":"/api-reference/buyer/creatives/library-creatives"},{"title":"Attach a creative to campaigns (format fit)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/advertisers/{id}/creatives/{cid}/campaigns","href":"/api-reference/buyer/creatives/attach-a-creative-to-campaigns-format-fit"},{"title":"Create a library creative","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/advertisers/{id}/creatives/create","href":"/api-reference/buyer/creatives/create-a-library-creative"},{"title":"Reserve an asset upload","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/assets/upload","href":"/api-reference/buyer/creatives/reserve-an-asset-upload"},{"title":"Upload asset bytes to a reserved upload URL (signed token, no session)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml put /api/v2/buyer/assets/uploads/{uploadId}","href":"/api-reference/buyer/creatives/upload-asset-bytes-to-a-reserved-upload-url-signed-token-no-session"},{"title":"Upload asset bytes (POST form of the same upload URL)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/assets/uploads/{uploadId}","href":"/api-reference/buyer/creatives/upload-asset-bytes-post-form-of-the-same-upload-url"},{"title":"List a campaign's creative sessions","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/campaigns/{id}/creative-sessions","href":"/api-reference/buyer/creatives/list-a-campaigns-creative-sessions"},{"title":"Start a creative session (saves the brief and generates drafts with your key)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/campaigns/{id}/creative-sessions","href":"/api-reference/buyer/creatives/start-a-creative-session-saves-the-brief-and-generates-drafts-with-your-key"},{"title":"Get a creative session","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/campaigns/{id}/creative-sessions/{sid}","href":"/api-reference/buyer/creatives/get-a-creative-session"},{"title":"Run evaluator checks across a creative session","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/campaigns/{id}/creative-sessions/{sid}/evaluate","href":"/api-reference/buyer/creatives/run-evaluator-checks-across-a-creative-session"},{"title":"Save the approved creative session output as a creative","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/campaigns/{id}/creative-sessions/{sid}/finalize","href":"/api-reference/buyer/creatives/save-the-approved-creative-session-output-as-a-creative"},{"title":"Refine a creative session variant from feedback","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/campaigns/{id}/creative-sessions/{sid}/variants/{vid}/refine","href":"/api-reference/buyer/creatives/refine-a-creative-session-variant-from-feedback"},{"title":"Creatives on a campaign","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/campaigns/{id}/creatives","href":"/api-reference/buyer/creatives/creatives-on-a-campaign"},{"title":"Get a campaign creative","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/campaigns/{id}/creatives/{cid}","href":"/api-reference/buyer/creatives/get-a-campaign-creative"},{"title":"Update a campaign creative","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml put /api/v2/buyer/campaigns/{id}/creatives/{cid}","href":"/api-reference/buyer/creatives/update-a-campaign-creative"},{"title":"Detach a creative","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml delete /api/v2/buyer/campaigns/{id}/creatives/{cid}","href":"/api-reference/buyer/creatives/detach-a-creative"},{"title":"Duplicate a creative","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/campaigns/{id}/creatives/{cid}/duplicate","href":"/api-reference/buyer/creatives/duplicate-a-creative"},{"title":"Create a creative on a campaign","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/campaigns/{id}/creatives/create","href":"/api-reference/buyer/creatives/create-a-creative-on-a-campaign"},{"title":"Disconnect a creative engine connection","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml delete /api/v2/buyer/creative-engine-connections/{id}","href":"/api-reference/buyer/creatives/disconnect-a-creative-engine-connection"},{"title":"Set a creative engine connection's Audiences switch","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml patch /api/v2/buyer/creative-engine-connections/{id}","href":"/api-reference/buyer/creatives/set-a-creative-engine-connections-audiences-switch"},{"title":"List creative engines and your connections","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/creative-engines","href":"/api-reference/buyer/creatives/list-creative-engines-and-your-connections"},{"title":"Connect a creative engine with your own key (the secure handoff form)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/creative-engines/{id}/connections","href":"/api-reference/buyer/creatives/connect-a-creative-engine-with-your-own-key-the-secure-handoff-form"},{"title":"List generation provider keys","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/creative/model-credentials","href":"/api-reference/buyer/creatives/list-generation-provider-keys"},{"title":"Connect a generation provider key","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/creative/model-credentials","href":"/api-reference/buyer/creatives/connect-a-generation-provider-key"},{"title":"Disconnect a generation provider key","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml delete /api/v2/buyer/creative/model-credentials/{id}","href":"/api-reference/buyer/creatives/disconnect-a-generation-provider-key"},{"title":"Rotate or update a generation provider key","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml patch /api/v2/buyer/creative/model-credentials/{id}","href":"/api-reference/buyer/creatives/rotate-or-update-a-generation-provider-key"},{"title":"Creative detail (preview, assets, campaigns, seller review)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/creatives/{cid}/detail","href":"/api-reference/buyer/creatives/creative-detail-preview-assets-campaigns-seller-review"},{"title":"Preview a creative tag sheet (names, declared sizes, destination needs)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/creatives/tag-sheet-preview","href":"/api-reference/buyer/creatives/preview-a-creative-tag-sheet-names-declared-sizes-destination-needs"}]},{"group":"Audiences","pages":[{"title":"List an advertiser's synced audiences with status and counts","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/advertisers/{id}/audiences","href":"/api-reference/buyer/audiences/list-an-advertisers-synced-audiences-with-status-and-counts"},{"title":"Sync first-party CRM audiences (asynchronous: returns a task id)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/advertisers/{id}/audiences/sync","href":"/api-reference/buyer/audiences/sync-first-party-crm-audiences-asynchronous:-returns-a-task-id"}]},{"group":"Catalogs","pages":[{"title":"An advertiser's catalog feeds (health, versions, refreshes, activation jobs)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/advertisers/{id}/catalogs","href":"/api-reference/buyer/catalogs/an-advertisers-catalog-feeds-health-versions-refreshes-activation-jobs"},{"title":"Activate the catalog: draft campaigns, creative jobs and seller feed sharing","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/advertisers/{id}/catalogs/{catalogId}/activation-plan/execute","href":"/api-reference/buyer/catalogs/activate-the-catalog:-draft-campaigns-creative-jobs-and-seller-feed-sharing"},{"title":"Preview the activation plan: campaign groups, creative assets, seller targets","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/advertisers/{id}/catalogs/{catalogId}/activation-plan/preview","href":"/api-reference/buyer/catalogs/preview-the-activation-plan:-campaign-groups-creative-assets-seller-targets"},{"title":"Fetch a URL feed now and store a new version when items changed","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/advertisers/{id}/catalogs/{catalogId}/refresh","href":"/api-reference/buyer/catalogs/fetch-a-url-feed-now-and-store-a-new-version-when-items-changed"},{"title":"Save the transform recipe (group-by fields, creative prompt, budget per group)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml put /api/v2/buyer/advertisers/{id}/catalogs/{catalogId}/transform","href":"/api-reference/buyer/catalogs/save-the-transform-recipe-group-by-fields-creative-prompt-budget-per-group"},{"title":"Connect or update catalog feeds (a feed URL or inline items)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/advertisers/{id}/catalogs/sync","href":"/api-reference/buyer/catalogs/connect-or-update-catalog-feeds-a-feed-url-or-inline-items"}]},{"group":"Property Lists","pages":[{"title":"List an advertiser's property lists (summaries; filter by purpose)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/advertisers/{id}/property-lists","href":"/api-reference/buyer/property-lists/list-an-advertisers-property-lists-summaries;-filter-by-purpose"},{"title":"Create an include or exclude property list (domains and/or typed identifiers)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/advertisers/{id}/property-lists","href":"/api-reference/buyer/property-lists/create-an-include-or-exclude-property-list-domains-andor-typed-identifiers"},{"title":"Get a property list with its resolved identifiers","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/advertisers/{id}/property-lists/{listId}","href":"/api-reference/buyer/property-lists/get-a-property-list-with-its-resolved-identifiers"},{"title":"Rename a property list and/or replace its identifiers (include lists cascade to live buys)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml put /api/v2/buyer/advertisers/{id}/property-lists/{listId}","href":"/api-reference/buyer/property-lists/rename-a-property-list-andor-replace-its-identifiers-include-lists-cascade-to-live-buys"},{"title":"Archive a property list","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml delete /api/v2/buyer/advertisers/{id}/property-lists/{listId}","href":"/api-reference/buyer/property-lists/archive-a-property-list"},{"title":"Create a property list from an xlsx, xls or csv file (multipart: file, name, purpose; max 10 MB, first column, header auto-detected, up to 100,000 identifiers)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/advertisers/{id}/property-lists/upload","href":"/api-reference/buyer/property-lists/create-a-property-list-from-an-xlsx-xls-or-csv-file-multipart:-file-name-purpose;-max-10-mb-first-column-header-auto-detected-up-to-100000-identifiers"},{"title":"The property lists applied to a campaign through its media buys' packages","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/campaigns/{id}/property-lists","href":"/api-reference/buyer/property-lists/the-property-lists-applied-to-a-campaign-through-its-media-buys-packages"},{"title":"Push an advertiser include list to the campaign's active media buys","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/campaigns/{id}/property-lists","href":"/api-reference/buyer/property-lists/push-an-advertiser-include-list-to-the-campaigns-active-media-buys"},{"title":"Check a candidate identifier set: ok, modify, remove and assess buckets","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/property-lists/check","href":"/api-reference/buyer/property-lists/check-a-candidate-identifier-set:-ok-modify-remove-and-assess-buckets"},{"title":"A stored property list check report (kept 7 days)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/property-lists/reports/{reportId}","href":"/api-reference/buyer/property-lists/a-stored-property-list-check-report-kept-7-days"}]},{"group":"Audit Logs","pages":[{"title":"Change history","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/audit-logs","href":"/api-reference/buyer/audit-logs/change-history"}]},{"group":"Campaigns","pages":[{"title":"List campaigns (defaults ACTIVE, DRAFT, PAUSED)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/campaigns","href":"/api-reference/buyer/campaigns/list-campaigns-defaults-active-draft-paused"},{"title":"Create a DRAFT campaign (confirm currency first)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/campaigns","href":"/api-reference/buyer/campaigns/create-a-draft-campaign-confirm-currency-first"},{"title":"Get a campaign","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/campaigns/{id}","href":"/api-reference/buyer/campaigns/get-a-campaign"},{"title":"Update a campaign","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml put /api/v2/buyer/campaigns/{id}","href":"/api-reference/buyer/campaigns/update-a-campaign"},{"title":"Delete a draft campaign","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml delete /api/v2/buyer/campaigns/{id}","href":"/api-reference/buyer/campaigns/delete-a-draft-campaign"},{"title":"Auto-select products","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/campaigns/{id}/auto-select-products","href":"/api-reference/buyer/campaigns/auto-select-products"},{"title":"Launch: dispatch every staged media buy","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/campaigns/{id}/execute","href":"/api-reference/buyer/campaigns/launch:-dispatch-every-staged-media-buy"},{"title":"Source of truth for live/delivery claims","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/campaigns/{id}/media-buy-status","href":"/api-reference/buyer/campaigns/source-of-truth-for-livedelivery-claims"},{"title":"Optimization suggestions for a campaign","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/campaigns/{id}/optimizations","href":"/api-reference/buyer/campaigns/optimization-suggestions-for-a-campaign"},{"title":"Approve or reject a suggestion","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/campaigns/{id}/optimizations/{sid}/decide","href":"/api-reference/buyer/campaigns/approve-or-reject-a-suggestion"},{"title":"Check pacing and suggest (or apply) a reallocation","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/campaigns/{id}/optimize","href":"/api-reference/buyer/campaigns/check-pacing-and-suggest-or-apply-a-reallocation"},{"title":"Pause a campaign","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/campaigns/{id}/pause","href":"/api-reference/buyer/campaigns/pause-a-campaign"},{"title":"Products in the campaign cart","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/campaigns/{id}/products","href":"/api-reference/buyer/campaigns/products-in-the-campaign-cart"},{"title":"Reactivate a paused campaign","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/campaigns/{id}/reactivate","href":"/api-reference/buyer/campaigns/reactivate-a-paused-campaign"},{"title":"Review \u0026 go live receipt: totals, blockers and warnings","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/campaigns/{id}/receipt","href":"/api-reference/buyer/campaigns/review-\u0026-go-live-receipt:-totals-blockers-and-warnings"},{"title":"Campaign workspace projection","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/campaigns/{id}/workspace","href":"/api-reference/buyer/campaigns/campaign-workspace-projection"},{"title":"List targeting dimensions","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/targeting/dimensions","href":"/api-reference/buyer/campaigns/list-targeting-dimensions"},{"title":"List targeting dimension values","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/targeting/dimensions/{system}","href":"/api-reference/buyer/campaigns/list-targeting-dimension-values"},{"title":"Resolve targeting dimension text","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/targeting/dimensions/{system}/resolve","href":"/api-reference/buyer/campaigns/resolve-targeting-dimension-text"},{"title":"List geo metros","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/targeting/geo-metros","href":"/api-reference/buyer/campaigns/list-geo-metros"}]},{"group":"Reporting","pages":[{"title":"Campaign delivery","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/campaigns/{id}/delivery","href":"/api-reference/buyer/reporting/campaign-delivery"},{"title":"Reporting summary / timeseries / CSV","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/reporting/metrics","href":"/api-reference/buyer/reporting/reporting-summary-timeseries-csv"}]},{"group":"Product Discovery","pages":[{"title":"Seller proposals for a campaign (latest or one execution)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/campaigns/{id}/proposals","href":"/api-reference/buyer/product-discovery/seller-proposals-for-a-campaign-latest-or-one-execution"},{"title":"Send the campaign's brief to its eligible sellers","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/campaigns/{id}/request-proposals","href":"/api-reference/buyer/product-discovery/send-the-campaigns-brief-to-its-eligible-sellers"},{"title":"Select a proposal into the cart","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/discovery/{id}/apply-proposal","href":"/api-reference/buyer/product-discovery/select-a-proposal-into-the-cart"},{"title":"Current discovery results","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/discovery/{id}/discover-products","href":"/api-reference/buyer/product-discovery/current-discovery-results"},{"title":"Discovery revisions (SSE)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/discovery/{id}/events","href":"/api-reference/buyer/product-discovery/discovery-revisions-sse"},{"title":"Selected products","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/discovery/{id}/products","href":"/api-reference/buyer/product-discovery/selected-products"},{"title":"Add selected products","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/discovery/{id}/products","href":"/api-reference/buyer/product-discovery/add-selected-products"},{"title":"Clear selected products","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml delete /api/v2/buyer/discovery/{id}/products","href":"/api-reference/buyer/product-discovery/clear-selected-products"},{"title":"Start or continue a discovery session","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/discovery/discover-products","href":"/api-reference/buyer/product-discovery/start-or-continue-a-discovery-session"},{"title":"Canonical AdCP get_products fan-out (progressive)","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/products/query","href":"/api-reference/buyer/product-discovery/canonical-adcp-get_products-fan-out-progressive"}]},{"group":"Media Buys","pages":[{"title":"Get a media buy","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/media-buys/{id}","href":"/api-reference/buyer/media-buys/get-a-media-buy"},{"title":"Update a media buy","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml patch /api/v2/buyer/media-buys/{id}","href":"/api-reference/buyer/media-buys/update-a-media-buy"},{"title":"Packages of a media buy","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/media-buys/{id}/packages","href":"/api-reference/buyer/media-buys/packages-of-a-media-buy"},{"title":"Pause media buy","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/media-buys/{id}/pause","href":"/api-reference/buyer/media-buys/pause-media-buy"},{"title":"Reactivate media buy","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/media-buys/{id}/reactivate","href":"/api-reference/buyer/media-buys/reactivate-media-buy"},{"title":"Stage or execute selections onto the DRAFT campaign","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/media-buys/batch","href":"/api-reference/buyer/media-buys/stage-or-execute-selections-onto-the-draft-campaign"}]},{"group":"Optimization Suggestions","pages":[{"title":"List optimization suggestions","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/optimization-suggestions","href":"/api-reference/buyer/optimization-suggestions/list-optimization-suggestions"},{"title":"Get optimization suggestion","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/optimization-suggestions/{id}","href":"/api-reference/buyer/optimization-suggestions/get-optimization-suggestion"},{"title":"Approve optimization suggestion","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/optimization-suggestions/{id}/approve","href":"/api-reference/buyer/optimization-suggestions/approve-optimization-suggestion"},{"title":"Reject optimization suggestion","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/optimization-suggestions/{id}/reject","href":"/api-reference/buyer/optimization-suggestions/reject-optimization-suggestion"}]},{"group":"Storefronts","pages":[{"title":"List external account mappings","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/storefront-connection-account-mappings","href":"/api-reference/buyer/storefronts/list-external-account-mappings"},{"title":"List storefront connections","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/storefront-connections","href":"/api-reference/buyer/storefronts/list-storefront-connections"},{"title":"Remove storefront connection","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml delete /api/v2/buyer/storefront-connections/{id}","href":"/api-reference/buyer/storefronts/remove-storefront-connection"},{"title":"List integration external accounts","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/storefront-connections/{id}/accounts","href":"/api-reference/buyer/storefronts/list-integration-external-accounts"},{"title":"Map an integration account to an advertiser","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/storefront-connections/{id}/accounts/{accountId}/advertiser","href":"/api-reference/buyer/storefronts/map-an-integration-account-to-an-advertiser"},{"title":"Set account-level Enhanced Reporting","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml put /api/v2/buyer/storefront-connections/{id}/accounts/{accountId}/enhanced-reporting","href":"/api-reference/buyer/storefronts/set-account-level-enhanced-reporting"},{"title":"Browse storefronts","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/storefronts","href":"/api-reference/buyer/storefronts/browse-storefronts"},{"title":"Get a storefront","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/storefronts/{id}","href":"/api-reference/buyer/storefronts/get-a-storefront"},{"title":"Per-advertiser activation","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml put /api/v2/buyer/storefronts/{id}/advertisers/{aid}/activation-preference","href":"/api-reference/buyer/storefronts/per-advertiser-activation"},{"title":"Update Storefront billing policy","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml put /api/v2/buyer/storefronts/{id}/billing-policy","href":"/api-reference/buyer/storefronts/update-storefront-billing-policy"},{"title":"AdCP capabilities of a storefront","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/storefronts/{id}/capabilities","href":"/api-reference/buyer/storefronts/adcp-capabilities-of-a-storefront"},{"title":"Connect a storefront","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/storefronts/{id}/connection","href":"/api-reference/buyer/storefronts/connect-a-storefront"},{"title":"Update storefront connection policy","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml patch /api/v2/buyer/storefronts/{id}/connection-policy","href":"/api-reference/buyer/storefronts/update-storefront-connection-policy"},{"title":"Save an API token for a storefront connection","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/storefronts/{id}/connection/bearer","href":"/api-reference/buyer/storefronts/save-an-api-token-for-a-storefront-connection"},{"title":"Accept direct Storefront billing","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/storefronts/{id}/direct-billing-acceptance","href":"/api-reference/buyer/storefronts/accept-direct-storefront-billing"},{"title":"Account-wide seller selection","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml put /api/v2/buyer/storefronts/{id}/selection-override","href":"/api-reference/buyer/storefronts/account-wide-seller-selection"},{"title":"List cloud drive integration requests","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/cloud-drive-connections/requests","href":"/api-reference/buyer/storefronts/list-cloud-drive-integration-requests"},{"title":"Request a cloud drive integration","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/cloud-drive-connections/requests","href":"/api-reference/buyer/storefronts/request-a-cloud-drive-integration"}]},{"group":"Tasks","pages":[{"title":"Async AdCP task","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/tasks/{taskId}","href":"/api-reference/buyer/tasks/async-adcp-task"}]},{"group":"Update Proposals","pages":[{"title":"Get update proposal status","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/update-proposals/{id}","href":"/api-reference/buyer/update-proposals/get-update-proposal-status"},{"title":"Cancel a pending update proposal","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml delete /api/v2/buyer/update-proposals/{id}","href":"/api-reference/buyer/update-proposals/cancel-a-pending-update-proposal"}]},{"group":"Webhooks","pages":[{"title":"List webhook subscriptions","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml get /api/v2/buyer/webhook-subscriptions","href":"/api-reference/buyer/webhooks/list-webhook-subscriptions"},{"title":"Register a webhook subscription (discovery.revision). Deliveries are HMAC-SHA256 signed with the provided secret in the X-Webhook-Signature header.","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml post /api/v2/buyer/webhook-subscriptions","href":"/api-reference/buyer/webhooks/register-a-webhook-subscription-discoveryrevision-deliveries-are-hmac-sha256-signed-with-the-provided-secret-in-the-x-webhook-signature-header"},{"title":"Delete a webhook subscription","deprecated":null,"version":null,"openapi":"/openapi/buyer.yaml delete /api/v2/buyer/webhook-subscriptions/{id}","href":"/api-reference/buyer/webhooks/delete-a-webhook-subscription"}]}]},{"group":"Storefront API reference","pages":[{"group":"Storefront","pages":[{"title":"The storefront (singleton)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront","href":"/api-reference/storefront/storefront/the-storefront-singleton"},{"title":"Replace storefront settings","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml put /api/v2/storefront","href":"/api-reference/storefront/storefront/replace-storefront-settings"},{"title":"Create the storefront","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront","href":"/api-reference/storefront/storefront/create-the-storefront"},{"title":"Update storefront settings","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml patch /api/v2/storefront","href":"/api-reference/storefront/storefront/update-storefront-settings"},{"title":"Seller advertiser roster: own advertisers and the buyers transacting with you","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/advertiser-roster","href":"/api-reference/storefront/storefront/seller-advertiser-roster:-own-advertisers-and-the-buyers-transacting-with-you"},{"title":"Seller agents: the hosted sales agent and agents connected as sources","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/agents","href":"/api-reference/storefront/storefront/seller-agents:-the-hosted-sales-agent-and-agents-connected-as-sources"},{"title":"Get the Demo Storefront lease and synthetic profile status (demo=null when none)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/demo","href":"/api-reference/storefront/storefront/get-the-demo-storefront-lease-and-synthetic-profile-status-demo=null-when-none"},{"title":"Create a seven-day Demo Storefront from a versioned synthetic profile (staff only; no external side effects)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/demo","href":"/api-reference/storefront/storefront/create-a-seven-day-demo-storefront-from-a-versioned-synthetic-profile-staff-only;-no-external-side-effects"},{"title":"Delete only the Demo Storefront and its synthetic resources; the account remains","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml delete /api/v2/storefront/demo","href":"/api-reference/storefront/storefront/delete-only-the-demo-storefront-and-its-synthetic-resources;-the-account-remains"},{"title":"Extend the Demo Storefront lease by one to seven days","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/demo/extend","href":"/api-reference/storefront/storefront/extend-the-demo-storefront-lease-by-one-to-seven-days"},{"title":"Rebuild the Demo Storefront from its pinned synthetic profile without extending it","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/demo/reset","href":"/api-reference/storefront/storefront/rebuild-the-demo-storefront-from-its-pinned-synthetic-profile-without-extending-it"},{"title":"List immutable synthetic source recipes and composition presets","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/demo/source-recipes","href":"/api-reference/storefront/storefront/list-immutable-synthetic-source-recipes-and-composition-presets"},{"title":"Attach versioned synthetic sources to the active Demo Storefront","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/demo/sources","href":"/api-reference/storefront/storefront/attach-versioned-synthetic-sources-to-the-active-demo-storefront"},{"title":"Remove an optional synthetic source and its generated inventory","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml delete /api/v2/storefront/demo/sources/{sourceId}","href":"/api-reference/storefront/storefront/remove-an-optional-synthetic-source-and-its-generated-inventory"},{"title":"Seller shell state: merchandising rows, locks, liveness, landing and state line","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/rail-state","href":"/api-reference/storefront/storefront/seller-shell-state:-merchandising-rows-locks-liveness-landing-and-state-line"},{"title":"Readiness checks and liveness","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/readiness","href":"/api-reference/storefront/storefront/readiness-checks-and-liveness"},{"title":"Re-run the compliance check (every agent source, or `agentId`), then readiness","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/readiness/compliance/refresh","href":"/api-reference/storefront/storefront/re-run-the-compliance-check-every-agent-source-or-`agentid`-then-readiness"},{"title":"Resolve brand information from a domain (no persistence)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/resolve-brand","href":"/api-reference/storefront/storefront/resolve-brand-information-from-a-domain-no-persistence"},{"title":"The storefront (singleton)","deprecated":true,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/storefront","href":"/api-reference/storefront/storefront/the-storefront-singleton-1"},{"title":"Replace storefront settings","deprecated":true,"version":null,"openapi":"/openapi/storefront.yaml put /api/v2/storefront/storefront","href":"/api-reference/storefront/storefront/replace-storefront-settings-1"},{"title":"Create the storefront","deprecated":true,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/storefront","href":"/api-reference/storefront/storefront/create-the-storefront-1"},{"title":"Update storefront settings","deprecated":true,"version":null,"openapi":"/openapi/storefront.yaml patch /api/v2/storefront/storefront","href":"/api-reference/storefront/storefront/update-storefront-settings-1"},{"title":"The storefront's agent card at the root of its custom domain","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /card.json","href":"/api-reference/storefront/storefront/the-storefronts-agent-card-at-the-root-of-its-custom-domain"},{"title":"A published storefront's public agent card","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /seller/{platformId}/card.json","href":"/api-reference/storefront/storefront/a-published-storefronts-public-agent-card"}]},{"group":"Business Rules","pages":[{"title":"Acceptance policy versions","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/acceptance-policy","href":"/api-reference/storefront/business-rules/acceptance-policy-versions"},{"title":"Create a version (optionally activate atomically)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/acceptance-policy","href":"/api-reference/storefront/business-rules/create-a-version-optionally-activate-atomically"},{"title":"One version","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/acceptance-policy/{version}","href":"/api-reference/storefront/business-rules/one-version"},{"title":"Reactivate an older version","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/acceptance-policy/{version}/activate","href":"/api-reference/storefront/business-rules/reactivate-an-older-version"},{"title":"The standing rulebook (404 when unset)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/acceptance-policy/active","href":"/api-reference/storefront/business-rules/the-standing-rulebook-404-when-unset"}]},{"group":"Activity","pages":[{"title":"Storefront activity (Calls or Changes: audit rows, briefs, orders, AdCP tasks)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/activity","href":"/api-reference/storefront/activity/storefront-activity-calls-or-changes:-audit-rows-briefs-orders-adcp-tasks"},{"title":"Storefront change history","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/audit-logs","href":"/api-reference/storefront/activity/storefront-change-history"}]},{"group":"Inventory Sources","pages":[{"title":"Start agent OAuth: the authorization URL to send the operator to","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/agents/{agentId}/oauth/authorize","href":"/api-reference/storefront/inventory-sources/start-agent-oauth:-the-authorization-url-to-send-the-operator-to"},{"title":"Inventory sources","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/inventory-sources","href":"/api-reference/storefront/inventory-sources/inventory-sources"},{"title":"Connect a source (credentials write-only)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources","href":"/api-reference/storefront/inventory-sources/connect-a-source-credentials-write-only"},{"title":"Get a source","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/inventory-sources/{id}","href":"/api-reference/storefront/inventory-sources/get-a-source"},{"title":"Update a source","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml put /api/v2/storefront/inventory-sources/{id}","href":"/api-reference/storefront/inventory-sources/update-a-source"},{"title":"Remove a source","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml delete /api/v2/storefront/inventory-sources/{id}","href":"/api-reference/storefront/inventory-sources/remove-a-source"},{"title":"Deactivate a source (its products pause)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources/{id}/deactivate","href":"/api-reference/storefront/inventory-sources/deactivate-a-source-its-products-pause"},{"title":"Source capabilities, health and calls","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/inventory-sources/{id}/diagnostics","href":"/api-reference/storefront/inventory-sources/source-capabilities-health-and-calls"},{"title":"Promote a signed PREVIEW baseline to a COMMITTED revision; 422 STALE_PREVIEW_BASELINE when the head moved","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources/{id}/feed/commit","href":"/api-reference/storefront/inventory-sources/promote-a-signed-preview-baseline-to-a-committed-revision;-422-stale_preview_baseline-when-the-head-moved"},{"title":"Parse and resolve a feed payload into a PREVIEW revision and a signed baseline (HITL)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources/{id}/feed/preview","href":"/api-reference/storefront/inventory-sources/parse-and-resolve-a-feed-payload-into-a-preview-revision-and-a-signed-baseline-hitl"},{"title":"One-shot API push (parse, validate and commit); dryRun validates only. Needs a registered v1-push capability","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources/{id}/feed/push","href":"/api-reference/storefront/inventory-sources/one-shot-api-push-parse-validate-and-commit;-dryrun-validates-only-needs-a-registered-v1-push-capability"},{"title":"Multipart variant of feed/preview: a CSV, XLS or XLSX file as \"file\" plus contractId (HITL)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources/{id}/feed/upload","href":"/api-reference/storefront/inventory-sources/multipart-variant-of-feedpreview:-a-csv-xls-or-xlsx-file-as-\"file\"-plus-contractid-hitl"},{"title":"A source's canonical feed registrations","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/inventory-sources/{id}/feeds","href":"/api-reference/storefront/inventory-sources/a-sources-canonical-feed-registrations"},{"title":"Register an inventory feed capability (idempotent; the canonical key profileId:profileVersion is server-derived). Returns the data-plane paths; never a credential","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources/{id}/feeds","href":"/api-reference/storefront/inventory-sources/register-an-inventory-feed-capability-idempotent;-the-canonical-key-profileid:profileversion-is-server-derived-returns-the-data-plane-paths;-never-a-credential"},{"title":"Canonical identity, capabilities, active head, sync health and the latest attempt (counts, digests, codes; never rows)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/inventory-sources/{id}/feeds/{feedId}","href":"/api-reference/storefront/inventory-sources/canonical-identity-capabilities-active-head-sync-health-and-the-latest-attempt-counts-digests-codes;-never-rows"},{"title":"A modular source's runtime projection: modules, lifecycle stages, active avails, catalog-mapping readiness","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/inventory-sources/{id}/modular","href":"/api-reference/storefront/inventory-sources/a-modular-sources-runtime-projection:-modules-lifecycle-stages-active-avails-catalog-mapping-readiness"},{"title":"Preview avails (csvText, jsonText or avails) or commit accepted rows with confirmed: true (upsert by availId; only activation-ready rows)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources/{id}/modular/avails-feed","href":"/api-reference/storefront/inventory-sources/preview-avails-csvtext-jsontext-or-avails-or-commit-accepted-rows-with-confirmed:-true-upsert-by-availid;-only-activation-ready-rows"},{"title":"Preview a CSV, XLS or XLSX avails file (multipart: file; max 10 MB). Never commits.","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources/{id}/modular/avails-feed/upload","href":"/api-reference/storefront/inventory-sources/preview-a-csv-xls-or-xlsx-avails-file-multipart:-file;-max-10-mb-never-commits"},{"title":"Prepare a held booking for execution: with the manual execution module it opens the booking, creative-sync and final-report work items; the booking stays HELD until the first completes","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources/{id}/modular/bookings/finalize","href":"/api-reference/storefront/inventory-sources/prepare-a-held-booking-for-execution:-with-the-manual-execution-module-it-opens-the-booking-creative-sync-and-final-report-work-items;-the-booking-stays-held-until-the-first-completes"},{"title":"Release a held reservation or cancel a locally booked one, returning capacity to the avail","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources/{id}/modular/bookings/release","href":"/api-reference/storefront/inventory-sources/release-a-held-reservation-or-cancel-a-locally-booked-one-returning-capacity-to-the-avail"},{"title":"Products projected from the source’s committed avails","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/inventory-sources/{id}/modular/products","href":"/api-reference/storefront/inventory-sources/products-projected-from-the-source’s-committed-avails"},{"title":"Hold capacity on one modular avail (productId or availId) for a media buy without overbooking; 409 when the request exceeds the available impressions","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources/{id}/modular/reservations","href":"/api-reference/storefront/inventory-sources/hold-capacity-on-one-modular-avail-productid-or-availid-for-a-media-buy-without-overbooking;-409-when-the-request-exceeds-the-available-impressions"},{"title":"A modular source's work items (defaults to OPEN, IN_PROGRESS and BLOCKED; status is comma-separated)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/inventory-sources/{id}/modular/work-items","href":"/api-reference/storefront/inventory-sources/a-modular-sources-work-items-defaults-to-open-in_progress-and-blocked;-status-is-comma-separated"},{"title":"One modular source work item with its event history","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/inventory-sources/{id}/modular/work-items/{workItemId}","href":"/api-reference/storefront/inventory-sources/one-modular-source-work-item-with-its-event-history"},{"title":"Update assignment, status (not COMPLETED/CANCELLED), notes or intermediate result of a work item","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml patch /api/v2/storefront/inventory-sources/{id}/modular/work-items/{workItemId}","href":"/api-reference/storefront/inventory-sources/update-assignment-status-not-completedcancelled-notes-or-intermediate-result-of-a-work-item"},{"title":"Complete a work item and apply its module side effects (the first completion books the held capacity; the final report delivers it)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources/{id}/modular/work-items/{workItemId}/complete","href":"/api-reference/storefront/inventory-sources/complete-a-work-item-and-apply-its-module-side-effects-the-first-completion-books-the-held-capacity;-the-final-report-delivers-it"},{"title":"Reactivate a deactivated source (an agent is re-tested)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources/{id}/reactivate","href":"/api-reference/storefront/inventory-sources/reactivate-a-deactivated-source-an-agent-is-re-tested"},{"title":"Re-check a source now (agent: discovery; ad server: connection test)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources/{id}/test-connection","href":"/api-reference/storefront/inventory-sources/re-check-a-source-now-agent:-discovery;-ad-server:-connection-test"},{"title":"Run a discovery test against a source","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources/{id}/tests/discovery","href":"/api-reference/storefront/inventory-sources/run-a-discovery-test-against-a-source"},{"title":"Preview a wholesale pricing feed; with confirmed: true commit it (full replacement; refused while any row is rejected)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources/{id}/wholesale-pricing","href":"/api-reference/storefront/inventory-sources/preview-a-wholesale-pricing-feed;-with-confirmed:-true-commit-it-full-replacement;-refused-while-any-row-is-rejected"},{"title":"Attach the wholesale avails \u0026 pricing module to an ad-server source (optional; the first committed upload attaches it), optionally with the minimum line-item spend","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources/{id}/wholesale-pricing/module","href":"/api-reference/storefront/inventory-sources/attach-the-wholesale-avails-\u0026-pricing-module-to-an-ad-server-source-optional;-the-first-committed-upload-attaches-it-optionally-with-the-minimum-line-item-spend"},{"title":"Download a pre-filled CSV template (text/csv): one GLOBAL row per ad-server selector the source's products reference, with the settlement currency, cpm and a quarter-long window filled in","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/inventory-sources/{id}/wholesale-pricing/template","href":"/api-reference/storefront/inventory-sources/download-a-pre-filled-csv-template-textcsv:-one-global-row-per-ad-server-selector-the-sources-products-reference-with-the-settlement-currency-cpm-and-a-quarter-long-window-filled-in"},{"title":"Create a modular source with the avails-feed module, the booking ledger and (by default) manual execution. Merchandising plan only; no secrets.","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/inventory-sources/modular/feed","href":"/api-reference/storefront/inventory-sources/create-a-modular-source-with-the-avails-feed-module-the-booking-ledger-and-by-default-manual-execution-merchandising-plan-only;-no-secrets"},{"title":"OAuth consent callback: stores the tokens and returns to the app","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/oauth/callback","href":"/api-reference/storefront/inventory-sources/oauth-consent-callback:-stores-the-tokens-and-returns-to-the-app"}]},{"group":"Approvals","pages":[{"title":"Get approval routing: primary and fallback audiences, channels, reminder and escalation timing per kind, and the eligible users and roles (admins only)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/approval-routing","href":"/api-reference/storefront/approvals/get-approval-routing:-primary-and-fallback-audiences-channels-reminder-and-escalation-timing-per-kind-and-the-eligible-users-and-roles-admins-only"},{"title":"Replace the primary/fallback routing policy for one approval kind (admins only)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml put /api/v2/storefront/approval-routing/{kind}","href":"/api-reference/storefront/approvals/replace-the-primaryfallback-routing-policy-for-one-approval-kind-admins-only"},{"title":"Reassign an open approval work item to an active user in its snapshotted eligible audience (admins only)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml put /api/v2/storefront/approval-routing/work-items/{workItemId}/assignee","href":"/api-reference/storefront/approvals/reassign-an-open-approval-work-item-to-an-active-user-in-its-snapshotted-eligible-audience-admins-only"},{"title":"Media buy approval queue","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/media-buy-approvals","href":"/api-reference/storefront/approvals/media-buy-approval-queue"},{"title":"Approval detail","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/media-buy-approvals/{mediaBuyId}","href":"/api-reference/storefront/approvals/approval-detail"},{"title":"Approve or reject a media buy","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/media-buy-approvals/{mediaBuyId}/decide","href":"/api-reference/storefront/approvals/approve-or-reject-a-media-buy"},{"title":"Advisory AI evaluation (records no decision)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/media-buy-approvals/{mediaBuyId}/evaluate","href":"/api-reference/storefront/approvals/advisory-ai-evaluation-records-no-decision"}]},{"group":"Proposals","pages":[{"title":"Received AdCP briefs (redacted)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/brief-artifacts","href":"/api-reference/storefront/proposals/received-adcp-briefs-redacted"},{"title":"One brief artifact","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/brief-artifacts/{id}","href":"/api-reference/storefront/proposals/one-brief-artifact"},{"title":"Sent AdCP responses","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/proposal-artifacts","href":"/api-reference/storefront/proposals/sent-adcp-responses"},{"title":"One proposal artifact","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/proposal-artifacts/{id}","href":"/api-reference/storefront/proposals/one-proposal-artifact"},{"title":"Proposal studio draft for one RFP turn (maker-checker)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/proposal-studio","href":"/api-reference/storefront/proposals/proposal-studio-draft-for-one-rfp-turn-maker-checker"},{"title":"Start, edit, submit, approve, reject or discard a studio draft","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/proposal-studio","href":"/api-reference/storefront/proposals/start-edit-submit-approve-reject-or-discard-a-studio-draft"},{"title":"A rendered proposal representation (HTML, JSON or PDF)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/rfp-representations/{id}","href":"/api-reference/storefront/proposals/a-rendered-proposal-representation-html-json-or-pdf"}]},{"group":"Buyers","pages":[{"title":"Buyers with you (sponsored buyer lifecycle)","deprecated":true,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/buyers","href":"/api-reference/storefront/buyers/buyers-with-you-sponsored-buyer-lifecycle"},{"title":"Approve, suspend or reactivate a buyer","deprecated":true,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/buyers/{relationshipId}","href":"/api-reference/storefront/buyers/approve-suspend-or-reactivate-a-buyer"},{"title":"Buyers with you (sponsored buyer lifecycle)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/sponsored-buyers","href":"/api-reference/storefront/buyers/buyers-with-you-sponsored-buyer-lifecycle-1"},{"title":"Approve, suspend or reactivate a sponsored buyer","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/sponsored-buyers/{buyerCustomerId}/{action}","href":"/api-reference/storefront/buyers/approve-suspend-or-reactivate-a-sponsored-buyer"}]},{"group":"Creative Reviews","pages":[{"title":"Creative review queue","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/creative-reviews","href":"/api-reference/storefront/creative-reviews/creative-review-queue"},{"title":"Approve or reject a creative","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/creative-reviews/{creativeId}/decide","href":"/api-reference/storefront/creative-reviews/approve-or-reject-a-creative"},{"title":"Advisory AI evaluation of a creative","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/creative-reviews/{creativeId}/evaluate","href":"/api-reference/storefront/creative-reviews/advisory-ai-evaluation-of-a-creative"}]},{"group":"Demand Inbox","pages":[{"title":"Metrics, starter briefs and the ledger","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/demand-inbox","href":"/api-reference/storefront/demand-inbox/metrics-starter-briefs-and-the-ledger"},{"title":"Record grade, lead and result","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml put /api/v2/storefront/demand-inbox/{rfpId}/ledger","href":"/api-reference/storefront/demand-inbox/record-grade-lead-and-result"},{"title":"RFP performance (REST mirror of get_rfp_performance)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/rfp-performance","href":"/api-reference/storefront/demand-inbox/rfp-performance-rest-mirror-of-get_rfp_performance"},{"title":"One RFP turn","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/rfp-turns/{id}","href":"/api-reference/storefront/demand-inbox/one-rfp-turn"},{"title":"RFPs","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/rfps","href":"/api-reference/storefront/demand-inbox/rfps"},{"title":"RFP actions (REST mirror of save_rfp)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/rfps","href":"/api-reference/storefront/demand-inbox/rfp-actions-rest-mirror-of-save_rfp"},{"title":"An RFP with its turns","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/rfps/{id}","href":"/api-reference/storefront/demand-inbox/an-rfp-with-its-turns"}]},{"group":"Publisher Domains","pages":[{"title":"Agents authorized for a domain: the live adagents.json and, when connected, the AAO registry","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/discover-agents","href":"/api-reference/storefront/publisher-domains/agents-authorized-for-a-domain:-the-live-adagentsjson-and-when-connected-the-aao-registry"},{"title":"The property roster: declared domains, resolved properties and collections, authorization","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/property-roster","href":"/api-reference/storefront/publisher-domains/the-property-roster:-declared-domains-resolved-properties-and-collections-authorization"},{"title":"Declare a property under a declared publisher domain (never invents identity)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/property-roster/properties","href":"/api-reference/storefront/publisher-domains/declare-a-property-under-a-declared-publisher-domain-never-invents-identity"},{"title":"Remove one seller-declared property (409 for publisher-origin properties)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml delete /api/v2/storefront/property-roster/properties/{domain}/{propertyKey}","href":"/api-reference/storefront/publisher-domains/remove-one-seller-declared-property-409-for-publisher-origin-properties"},{"title":"Re-check one publisher's live adagents.json","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/property-roster/publishers/{domain}/refresh","href":"/api-reference/storefront/publisher-domains/re-check-one-publishers-live-adagentsjson"},{"title":"Declared publisher domains with adagents.json status and authorization verdict","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/publishers","href":"/api-reference/storefront/publisher-domains/declared-publisher-domains-with-adagentsjson-status-and-authorization-verdict"},{"title":"Replace the declared publisher domain set as a diff (max 5,000; invalid domains fail the whole request; prefer POST/DELETE for one domain)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml put /api/v2/storefront/publishers","href":"/api-reference/storefront/publisher-domains/replace-the-declared-publisher-domain-set-as-a-diff-max-5000;-invalid-domains-fail-the-whole-request;-prefer-postdelete-for-one-domain"},{"title":"Declare one publisher domain (resolved immediately; a re-declare inside 10 minutes is a no-op)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/publishers","href":"/api-reference/storefront/publisher-domains/declare-one-publisher-domain-resolved-immediately;-a-re-declare-inside-10-minutes-is-a-no-op"},{"title":"Remove one declared publisher domain (204, idempotent; 409 when not seller-declared)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml delete /api/v2/storefront/publishers/{domain}","href":"/api-reference/storefront/publisher-domains/remove-one-declared-publisher-domain-204-idempotent;-409-when-not-seller-declared"}]},{"group":"Library","pages":[{"title":"Library: materials, selling points and library requests","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/materials","href":"/api-reference/storefront/library/library:-materials-selling-points-and-library-requests"},{"title":"Add a material (text or link) or run a library action","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/materials","href":"/api-reference/storefront/library/add-a-material-text-or-link-or-run-a-library-action"},{"title":"Upload a document (multipart: file, kind, title). Text, Markdown, CSV, JSON, HTML and PDF are read; other files wait for pasted text.","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/materials/upload","href":"/api-reference/storefront/library/upload-a-document-multipart:-file-kind-title-text-markdown-csv-json-html-and-pdf-are-read;-other-files-wait-for-pasted-text"}]},{"group":"Media Buys","pages":[{"title":"Every buy on the storefront","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/media-buys","href":"/api-reference/storefront/media-buys/every-buy-on-the-storefront"},{"title":"Delivery for one buy","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/media-buys/{id}/reporting","href":"/api-reference/storefront/media-buys/delivery-for-one-buy"},{"title":"Media buy timeline","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/media-buys/{id}/timeline","href":"/api-reference/storefront/media-buys/media-buy-timeline"},{"title":"Re-send an approved media buy whose forward failed","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/media-buys/{mediaBuyId}/retry-forward","href":"/api-reference/storefront/media-buys/re-send-an-approved-media-buy-whose-forward-failed"},{"title":"Operations summary","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/pending-operations","href":"/api-reference/storefront/media-buys/operations-summary"}]},{"group":"Playbook","pages":[{"title":"Playbook versions","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/operating-instructions","href":"/api-reference/storefront/playbook/playbook-versions"},{"title":"Create a playbook version","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/operating-instructions","href":"/api-reference/storefront/playbook/create-a-playbook-version"},{"title":"One playbook version","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/operating-instructions/{version}","href":"/api-reference/storefront/playbook/one-playbook-version"},{"title":"Reactivate a playbook version","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/operating-instructions/{version}/activate","href":"/api-reference/storefront/playbook/reactivate-a-playbook-version"},{"title":"Active playbook","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/operating-instructions/active","href":"/api-reference/storefront/playbook/active-playbook"}]},{"group":"Products","pages":[{"title":"Aggregated sellable products","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/products","href":"/api-reference/storefront/products/aggregated-sellable-products"}]},{"group":"Reporting","pages":[{"title":"Seller delivery reporting","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/reporting/metrics","href":"/api-reference/storefront/reporting/seller-delivery-reporting"},{"title":"Dashboard analytics","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/seller-analytics","href":"/api-reference/storefront/reporting/dashboard-analytics"}]},{"group":"Test Runs","pages":[{"title":"Sandbox test runs (end-to-end checks with practice briefs)","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml get /api/v2/storefront/test-runs","href":"/api-reference/storefront/test-runs/sandbox-test-runs-end-to-end-checks-with-practice-briefs"},{"title":"Run a sandbox end-to-end check","deprecated":null,"version":null,"openapi":"/openapi/storefront.yaml post /api/v2/storefront/test-runs","href":"/api-reference/storefront/test-runs/run-a-sandbox-end-to-end-check"}]}]},{"group":"v3 API reference","pages":[{"group":"Members","pages":[{"title":"Access requests awaiting an admin","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/access-requests","href":"/api-reference/v3/members/access-requests-awaiting-an-admin"},{"title":"Approve an access request","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/access-requests/{id}/approve","href":"/api-reference/v3/members/approve-an-access-request"},{"title":"Reject an access request","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/access-requests/{id}/reject","href":"/api-reference/v3/members/reject-an-access-request"},{"title":"Pending invitations","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/invitations","href":"/api-reference/v3/members/pending-invitations"},{"title":"Invite members","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/invitations","href":"/api-reference/v3/members/invite-members"},{"title":"Cancel an invitation","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml delete /api/v2/invitations/{id}","href":"/api-reference/v3/members/cancel-an-invitation"},{"title":"Resend an invitation","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/invitations/{id}/resend","href":"/api-reference/v3/members/resend-an-invitation"},{"title":"Members of the active account","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/members","href":"/api-reference/v3/members/members-of-the-active-account"},{"title":"Change a member role","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml put /api/v2/members/{userId}","href":"/api-reference/v3/members/change-a-member-role"},{"title":"Remove a member (guards: last admin/owner, yourself)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml delete /api/v2/members/{userId}","href":"/api-reference/v3/members/remove-a-member-guards:-last-adminowner-yourself"}]},{"group":"Accounts","pages":[{"title":"Accounts the user can switch to","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/accounts","href":"/api-reference/v3/accounts/accounts-the-user-can-switch-to"},{"title":"Delete a child account (organization admins; refused while resources are linked)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml delete /api/v2/accounts/{customerId}","href":"/api-reference/v3/accounts/delete-a-child-account-organization-admins;-refused-while-resources-are-linked"},{"title":"Update an account's registered company domain","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml patch /api/v2/accounts/{customerId}/domain","href":"/api-reference/v3/accounts/update-an-accounts-registered-company-domain"},{"title":"Membership settings (domain auto-join)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/accounts/{customerId}/membership","href":"/api-reference/v3/accounts/membership-settings-domain-auto-join"},{"title":"Update membership settings (domain auto-join)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml patch /api/v2/accounts/{customerId}/membership","href":"/api-reference/v3/accounts/update-membership-settings-domain-auto-join"},{"title":"Create a buyer/seller account under the organization","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/accounts/create-child","href":"/api-reference/v3/accounts/create-a-buyerseller-account-under-the-organization"},{"title":"The active account","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/accounts/current","href":"/api-reference/v3/accounts/the-active-account"},{"title":"Switch the active account","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/accounts/switch","href":"/api-reference/v3/accounts/switch-the-active-account"},{"title":"Request manual review of a registered domain","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/buyer/readiness/operator/verify-request","href":"/api-reference/v3/accounts/request-manual-review-of-a-registered-domain"},{"title":"The organization's single sign-on connection (null until one is set up)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/sso/organization","href":"/api-reference/v3/accounts/the-organizations-single-sign-on-connection-null-until-one-is-set-up"},{"title":"A link to the identity provider setup portal (needs a verified domain)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/sso/setup","href":"/api-reference/v3/accounts/a-link-to-the-identity-provider-setup-portal-needs-a-verified-domain"}]},{"group":"Auth","pages":[{"title":"Ask the organization admins to accept the Terms of Service","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/accounts/notify-tos","href":"/api-reference/v3/auth/ask-the-organization-admins-to-accept-the-terms-of-service"},{"title":"Accept or decline invitations","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/accept-invitations","href":"/api-reference/v3/auth/accept-or-decline-invitations"},{"title":"Accept a Terms of Service version for the organization (admins)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/accept-tos","href":"/api-reference/v3/auth/accept-a-terms-of-service-version-for-the-organization-admins"},{"title":"Email a password reset link","deprecated":true,"version":null,"openapi":"/openapi/v3.yaml post /auth/forgot-password","href":"/api-reference/v3/auth/email-a-password-reset-link"},{"title":"Invitations addressed to the signed-in user's email","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /auth/invitations","href":"/api-reference/v3/auth/invitations-addressed-to-the-signed-in-users-email"},{"title":"Accept or decline invitations","deprecated":true,"version":null,"openapi":"/openapi/v3.yaml post /auth/invitations/respond","href":"/api-reference/v3/auth/accept-or-decline-invitations-1"},{"title":"Send a 6-digit sign-in code","deprecated":true,"version":null,"openapi":"/openapi/v3.yaml post /auth/login/code/start","href":"/api-reference/v3/auth/send-a-6-digit-sign-in-code"},{"title":"Sign in with a 6-digit code","deprecated":true,"version":null,"openapi":"/openapi/v3.yaml post /auth/login/code/verify","href":"/api-reference/v3/auth/sign-in-with-a-6-digit-code"},{"title":"Sign in with email and password","deprecated":true,"version":null,"openapi":"/openapi/v3.yaml post /auth/login/password","href":"/api-reference/v3/auth/sign-in-with-email-and-password"},{"title":"Sign out and clear the session cookie","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/logout","href":"/api-reference/v3/auth/sign-out-and-clear-the-session-cookie"},{"title":"Send a 6-digit sign-in code","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/magic-code","href":"/api-reference/v3/auth/send-a-6-digit-sign-in-code-1"},{"title":"Bootstrap: user, reachable accounts, current account, feature flags","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /auth/me","href":"/api-reference/v3/auth/bootstrap:-user-reachable-accounts-current-account-feature-flags"},{"title":"Finish Google or Microsoft sign-in","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/oauth/callback","href":"/api-reference/v3/auth/finish-google-or-microsoft-sign-in"},{"title":"Start Google or Microsoft sign-in (returns the provider URL)","deprecated":true,"version":null,"openapi":"/openapi/v3.yaml get /auth/oauth/url","href":"/api-reference/v3/auth/start-google-or-microsoft-sign-in-returns-the-provider-url"},{"title":"Sign in with email and password","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/password","href":"/api-reference/v3/auth/sign-in-with-email-and-password-1"},{"title":"Sign-in methods to offer (password, code, social, demo)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /auth/providers","href":"/api-reference/v3/auth/sign-in-methods-to-offer-password-code-social-demo"},{"title":"Rotate the session cookie before expiry","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/refresh","href":"/api-reference/v3/auth/rotate-the-session-cookie-before-expiry"},{"title":"Set a new password with a reset token","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/reset-password","href":"/api-reference/v3/auth/set-a-new-password-with-a-reset-token"},{"title":"Email a password reset link","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/send-password-reset","href":"/api-reference/v3/auth/email-a-password-reset-link-1"},{"title":"Accept a Terms of Service version for the organization (admins)","deprecated":true,"version":null,"openapi":"/openapi/v3.yaml post /auth/tos/accept","href":"/api-reference/v3/auth/accept-a-terms-of-service-version-for-the-organization-admins-1"},{"title":"Ask the organization admins to accept the Terms of Service","deprecated":true,"version":null,"openapi":"/openapi/v3.yaml post /auth/tos/notify-admins","href":"/api-reference/v3/auth/ask-the-organization-admins-to-accept-the-terms-of-service-1"},{"title":"Start Google or Microsoft sign-in (returns the provider URL)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /auth/url","href":"/api-reference/v3/auth/start-google-or-microsoft-sign-in-returns-the-provider-url-1"},{"title":"Sign in with a 6-digit code","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/verify-code","href":"/api-reference/v3/auth/sign-in-with-a-6-digit-code-1"},{"title":"Check a password reset link without consuming it","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/verify-reset-password","href":"/api-reference/v3/auth/check-a-password-reset-link-without-consuming-it"}]},{"group":"AI Usage","pages":[{"title":"AI usage: tokens, estimated cost and calls by model and day","deprecated":true,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/ai-usage","href":"/api-reference/v3/ai-usage/ai-usage:-tokens-estimated-cost-and-calls-by-model-and-day"},{"title":"AI usage: tokens, estimated cost and calls by model and day","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/storefront/usage/by-model","href":"/api-reference/v3/ai-usage/ai-usage:-tokens-estimated-cost-and-calls-by-model-and-day-1"},{"title":"AI usage: tokens, estimated cost and calls by model and day","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/storefront/usage/summary","href":"/api-reference/v3/ai-usage/ai-usage:-tokens-estimated-cost-and-calls-by-model-and-day-2"}]},{"group":"Asks","pages":[{"title":"List my asks","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/asks","href":"/api-reference/v3/asks/list-my-asks"}]},{"group":"Assistant","pages":[{"title":"Per-seller get_products outcomes for the last discovery","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/assistant/agent-debug-calls","href":"/api-reference/v3/assistant/per-seller-get_products-outcomes-for-the-last-discovery"},{"title":"Whether you receive assistant announcements for this account","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/assistant/announcement-preference","href":"/api-reference/v3/assistant/whether-you-receive-assistant-announcements-for-this-account"},{"title":"Turn assistant announcements on or off for this account","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml put /api/v2/assistant/announcement-preference","href":"/api-reference/v3/assistant/turn-assistant-announcements-on-or-off-for-this-account"},{"title":"Reserve an attachment upload","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/assistant/attachments","href":"/api-reference/v3/assistant/reserve-an-attachment-upload"},{"title":"Upload attachment bytes (local blob adapter; R2 uses the presigned URL)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml put /api/v2/assistant/attachments/{attachmentId}/content","href":"/api-reference/v3/assistant/upload-attachment-bytes-local-blob-adapter;-r2-uses-the-presigned-url"},{"title":"Send a turn and wait for the full response","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/assistant/chat","href":"/api-reference/v3/assistant/send-a-turn-and-wait-for-the-full-response"},{"title":"Stop the running turn of a conversation (work already done still applies)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/assistant/chat/stop","href":"/api-reference/v3/assistant/stop-the-running-turn-of-a-conversation-work-already-done-still-applies"},{"title":"Send a turn and stream progress, deltas, widgets, confirmations and done","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/assistant/chat/stream","href":"/api-reference/v3/assistant/send-a-turn-and-stream-progress-deltas-widgets-confirmations-and-done"},{"title":"Confirm or cancel a pending write","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/assistant/confirmations/{uid}/decision","href":"/api-reference/v3/assistant/confirm-or-cancel-a-pending-write"},{"title":"Recent chats","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/assistant/conversations","href":"/api-reference/v3/assistant/recent-chats"},{"title":"Start a chat bound to a scope (immutable)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/assistant/conversations","href":"/api-reference/v3/assistant/start-a-chat-bound-to-a-scope-immutable"},{"title":"A conversation with its messages","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/assistant/conversations/{uid}","href":"/api-reference/v3/assistant/a-conversation-with-its-messages"},{"title":"Delete a chat","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml delete /api/v2/assistant/conversations/{uid}","href":"/api-reference/v3/assistant/delete-a-chat"},{"title":"Conversation feed after a sequence number (SSE fallback)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/assistant/conversations/{uid}/events","href":"/api-reference/v3/assistant/conversation-feed-after-a-sequence-number-sse-fallback"},{"title":"Conversation reply language","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml patch /api/v2/assistant/conversations/{uid}/language","href":"/api-reference/v3/assistant/conversation-reply-language"},{"title":"Post a widget event line or a room message (never invokes the model)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/assistant/conversations/{uid}/messages","href":"/api-reference/v3/assistant/post-a-widget-event-line-or-a-room-message-never-invokes-the-model"},{"title":"Heartbeat presence (and typing) in a shared chat; returns who is here","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/assistant/conversations/{uid}/presence","href":"/api-reference/v3/assistant/heartbeat-presence-and-typing-in-a-shared-chat;-returns-who-is-here"},{"title":"Room sharing toggle","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml patch /api/v2/assistant/conversations/{uid}/sharing","href":"/api-reference/v3/assistant/room-sharing-toggle"},{"title":"Resume a turn stream after a sequence number (Last-Event-ID or ?after=)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/assistant/conversations/{uid}/stream","href":"/api-reference/v3/assistant/resume-a-turn-stream-after-a-sequence-number-last-event-id-or-?after="},{"title":"Rename a chat","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml patch /api/v2/assistant/conversations/{uid}/title","href":"/api-reference/v3/assistant/rename-a-chat"},{"title":"Conversation list feed (SSE fallback)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/assistant/conversations/events","href":"/api-reference/v3/assistant/conversation-list-feed-sse-fallback"},{"title":"Unread digest for the bell badge","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/assistant/digest","href":"/api-reference/v3/assistant/unread-digest-for-the-bell-badge"},{"title":"Assistant availability","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/assistant/health","href":"/api-reference/v3/assistant/assistant-availability"},{"title":"People who can be @mentioned in rooms","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/assistant/mentionable-users","href":"/api-reference/v3/assistant/people-who-can-be-@mentioned-in-rooms"},{"title":"Hero and starter prompts for a route","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/assistant/starter-prompts","href":"/api-reference/v3/assistant/hero-and-starter-prompts-for-a-route"},{"title":"Seller sandbox test runs","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/assistant/test-runs","href":"/api-reference/v3/assistant/seller-sandbox-test-runs"},{"title":"The caller’s 24-hour assistant token usage and limit state","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/assistant/usage","href":"/api-reference/v3/assistant/the-caller’s-24-hour-assistant-token-usage-and-limit-state"},{"title":"Assistant preferences","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/assistant/user-preferences","href":"/api-reference/v3/assistant/assistant-preferences"},{"title":"Update assistant preferences","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml put /api/v2/assistant/user-preferences","href":"/api-reference/v3/assistant/update-assistant-preferences"},{"title":"Set the default language (null returns to auto-detect)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml put /api/v2/assistant/user-preferences/language","href":"/api-reference/v3/assistant/set-the-default-language-null-returns-to-auto-detect"},{"title":"Assistant preferences: response language and sharing default","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/me/preferences","href":"/api-reference/v3/assistant/assistant-preferences:-response-language-and-sharing-default"},{"title":"Update assistant preferences","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml put /api/v2/me/preferences","href":"/api-reference/v3/assistant/update-assistant-preferences-1"}]},{"group":"Billing","pages":[{"title":"Plan \u0026 billing overview for the billing organization","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/billing/account","href":"/api-reference/v3/billing/plan-\u0026-billing-overview-for-the-billing-organization"},{"title":"Create a private 30-minute link to add a card (admins)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/billing/capture-links","href":"/api-reference/v3/billing/create-a-private-30-minute-link-to-add-a-card-admins"},{"title":"Accepted Terms of Service versions and plan history","deprecated":true,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/billing/contracts","href":"/api-reference/v3/billing/accepted-terms-of-service-versions-and-plan-history"},{"title":"Billing details (null until saved)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/billing/info","href":"/api-reference/v3/billing/billing-details-null-until-saved"},{"title":"Save billing details (admins)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml put /api/v2/billing/info","href":"/api-reference/v3/billing/save-billing-details-admins"},{"title":"Invoice activity (latest 100)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/billing/invoice-activity","href":"/api-reference/v3/billing/invoice-activity-latest-100"},{"title":"Choose an IU plan for the billing organization (admins)","deprecated":true,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/billing/iu-plan","href":"/api-reference/v3/billing/choose-an-iu-plan-for-the-billing-organization-admins"},{"title":"Plan choices for the \"Choose an IU plan\" task","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/billing/iu-plan-task","href":"/api-reference/v3/billing/plan-choices-for-the-\"choose-an-iu-plan\"-task"},{"title":"Choose an IU plan for the billing organization (admins)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/billing/iu-rate-card/accept","href":"/api-reference/v3/billing/choose-an-iu-plan-for-the-billing-organization-admins-1"},{"title":"The app-root Rate Card review decision (null when none is due)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/billing/iu-rate-card/login-prompt","href":"/api-reference/v3/billing/the-app-root-rate-card-review-decision-null-when-none-is-due"},{"title":"Record that the Rate Card prompt was shown or deferred","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/billing/iu-rate-card/login-prompt/respond","href":"/api-reference/v3/billing/record-that-the-rate-card-prompt-was-shown-or-deferred"},{"title":"Choose an IU plan for the billing organization (admins)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/billing/iu-rate-card/mcp-app/accept","href":"/api-reference/v3/billing/choose-an-iu-plan-for-the-billing-organization-admins-2"},{"title":"The organization IU commercial document with the catalog-v4 activity schedule","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/billing/iu-rate-card/v4","href":"/api-reference/v3/billing/the-organization-iu-commercial-document-with-the-catalog-v4-activity-schedule"},{"title":"IU account snapshot: buckets, forecast, usage by activity and day","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/billing/iu-usage","href":"/api-reference/v3/billing/iu-account-snapshot:-buckets-forecast-usage-by-activity-and-day"},{"title":"Cards on file","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/billing/payment-methods","href":"/api-reference/v3/billing/cards-on-file"},{"title":"Remove a card (admins)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml delete /api/v2/billing/payment-methods/{id}","href":"/api-reference/v3/billing/remove-a-card-admins"},{"title":"Billing details (null until saved)","deprecated":true,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/billing/profile","href":"/api-reference/v3/billing/billing-details-null-until-saved-1"},{"title":"Save billing details (admins)","deprecated":true,"version":null,"openapi":"/openapi/v3.yaml put /api/v2/billing/profile","href":"/api-reference/v3/billing/save-billing-details-admins-1"},{"title":"The published rate card (activities, plans, setup IUs)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/billing/rate-card","href":"/api-reference/v3/billing/the-published-rate-card-activities-plans-setup-ius"},{"title":"Open a card capture link (the token is the authorization)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/capture-links/{token}","href":"/api-reference/v3/billing/open-a-card-capture-link-the-token-is-the-authorization"},{"title":"Save the card entered on a capture link","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/capture-links/{token}/confirm","href":"/api-reference/v3/billing/save-the-card-entered-on-a-capture-link"},{"title":"Accepted Terms of Service versions and plan history","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/contract","href":"/api-reference/v3/billing/accepted-terms-of-service-versions-and-plan-history-1"}]},{"group":"Connected Apps","pages":[{"title":"Browser origins allowed for MCP OAuth","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/browser-origins","href":"/api-reference/v3/connected-apps/browser-origins-allowed-for-mcp-oauth"},{"title":"Register a browser origin","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/browser-origins","href":"/api-reference/v3/connected-apps/register-a-browser-origin"},{"title":"Remove a browser origin","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml delete /api/v2/browser-origins/{id}","href":"/api-reference/v3/connected-apps/remove-a-browser-origin"},{"title":"Connected apps (MCP OAuth grants)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/me/mcp-grants","href":"/api-reference/v3/connected-apps/connected-apps-mcp-oauth-grants"},{"title":"Disconnect an app (revokes its grant)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml delete /api/v2/me/mcp-grants/{grantId}","href":"/api-reference/v3/connected-apps/disconnect-an-app-revokes-its-grant"}]},{"group":"Buyer Agent Principals","pages":[{"title":"List the account's operator principal and its buyer agents","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/buyer-agent-principals","href":"/api-reference/v3/buyer-agent-principals/list-the-accounts-operator-principal-and-its-buyer-agents"},{"title":"Register a never-used account API key as a buyer agent","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/buyer-agent-principals","href":"/api-reference/v3/buyer-agent-principals/register-a-never-used-account-api-key-as-a-buyer-agent"},{"title":"Replace exact advertiser access for a buyer agent","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml put /api/v2/buyer-agent-principals/{principalId}/access","href":"/api-reference/v3/buyer-agent-principals/replace-exact-advertiser-access-for-a-buyer-agent"},{"title":"Apply a confirmed buyer-agent configuration control","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/buyer-agent-principals/{principalId}/controls","href":"/api-reference/v3/buyer-agent-principals/apply-a-confirmed-buyer-agent-configuration-control"},{"title":"Pause, resume or retire a buyer agent","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/buyer-agent-principals/{principalId}/lifecycle-controls","href":"/api-reference/v3/buyer-agent-principals/pause-resume-or-retire-a-buyer-agent"},{"title":"Test one buyer-agent webhook endpoint","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/buyer-agent-principals/{principalId}/notification-subscriptions/{subscriberId}/test","href":"/api-reference/v3/buyer-agent-principals/test-one-buyer-agent-webhook-endpoint"},{"title":"Issue an identity-only buyer-agent M2M credential (secret shown once)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/buyer-agent-principals/issue","href":"/api-reference/v3/buyer-agent-principals/issue-an-identity-only-buyer-agent-m2m-credential-secret-shown-once"},{"title":"Revoke a buyer-agent credential","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/buyer-agent-principals/revoke","href":"/api-reference/v3/buyer-agent-principals/revoke-a-buyer-agent-credential"},{"title":"Rotate a buyer-agent API-key credential","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/buyer-agent-principals/rotate","href":"/api-reference/v3/buyer-agent-principals/rotate-a-buyer-agent-api-key-credential"}]},{"group":"Demo","pages":[{"title":"Reset the demo world (staff only)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/demo/reset","href":"/api-reference/v3/demo/reset-the-demo-world-staff-only"},{"title":"Read the demo clock (sandbox/demo orgs only)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/demo/sim-clock","href":"/api-reference/v3/demo/read-the-demo-clock-sandboxdemo-orgs-only"},{"title":"Advance the demo clock (sandbox/demo orgs only)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/demo/sim-clock/advance","href":"/api-reference/v3/demo/advance-the-demo-clock-sandboxdemo-orgs-only"}]},{"group":"MCP Apps","pages":[{"title":"Built widget views: resource URIs, tools, argument policies and CSP","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/mcp-apps","href":"/api-reference/v3/mcp-apps/built-widget-views:-resource-uris-tools-argument-policies-and-csp"},{"title":"Widget HTML (authenticated; CSP in the x-mcp-app-csp header)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/mcp-apps/{view}/mcp-app.html","href":"/api-reference/v3/mcp-apps/widget-html-authenticated;-csp-in-the-x-mcp-app-csp-header"},{"title":"Widget tool bridge (allow-listed per resource, exact-key argument policies)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /mcp/{toolName}","href":"/api-reference/v3/mcp-apps/widget-tool-bridge-allow-listed-per-resource-exact-key-argument-policies"},{"title":"Record a widget runtime failure","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /mcp/widget-runtime-failure","href":"/api-reference/v3/mcp-apps/record-a-widget-runtime-failure"}]},{"group":"Onboarding","pages":[{"title":"Seller onboarding: suggested identity and intake status","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/media-company-intake","href":"/api-reference/v3/onboarding/seller-onboarding:-suggested-identity-and-intake-status"},{"title":"Seller onboarding: suggested identity and intake status","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/media-company-intake","href":"/api-reference/v3/onboarding/seller-onboarding:-suggested-identity-and-intake-status-1"},{"title":"Seller onboarding: confirm the media-company identity (admins)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/media-company-intake/confirm","href":"/api-reference/v3/onboarding/seller-onboarding:-confirm-the-media-company-identity-admins"},{"title":"Seller onboarding: suggested identity and intake status","deprecated":true,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/onboarding/media-company-identity","href":"/api-reference/v3/onboarding/seller-onboarding:-suggested-identity-and-intake-status-2"},{"title":"Seller onboarding: confirm the media-company identity (admins)","deprecated":true,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/onboarding/media-company-identity","href":"/api-reference/v3/onboarding/seller-onboarding:-confirm-the-media-company-identity-admins-1"}]},{"group":"Notifications","pages":[{"title":"Notification preference matrix (type × channel)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/notification-preferences","href":"/api-reference/v3/notifications/notification-preference-matrix-type-×-channel"},{"title":"Update notification preferences","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml put /api/v2/notification-preferences","href":"/api-reference/v3/notifications/update-notification-preferences"},{"title":"Notifications for the current user and account","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/notifications","href":"/api-reference/v3/notifications/notifications-for-the-current-user-and-account"},{"title":"Acknowledge notification","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/notifications/{id}/acknowledge","href":"/api-reference/v3/notifications/acknowledge-notification"},{"title":"Mark a notification read","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/notifications/{id}/read","href":"/api-reference/v3/notifications/mark-a-notification-read"},{"title":"Mark every notification read","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/notifications/read-all","href":"/api-reference/v3/notifications/mark-every-notification-read"},{"title":"List personalized release updates","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/release-updates","href":"/api-reference/v3/notifications/list-personalized-release-updates"},{"title":"Advance the user's release-update watermark (forward only)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/release-updates/seen","href":"/api-reference/v3/notifications/advance-the-users-release-update-watermark-forward-only"}]},{"group":"API Keys","pages":[{"title":"Service and member API keys","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/org-api-keys","href":"/api-reference/v3/api-keys/service-and-member-api-keys"},{"title":"Create a service API key (secret shown once)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/org-api-keys","href":"/api-reference/v3/api-keys/create-a-service-api-key-secret-shown-once"},{"title":"Revoke an API key","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml delete /api/v2/org-api-keys/{id}","href":"/api-reference/v3/api-keys/revoke-an-api-key"},{"title":"Your personal API keys","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/user-api-keys","href":"/api-reference/v3/api-keys/your-personal-api-keys"},{"title":"Create a personal API key (secret shown once)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /api/v2/user-api-keys","href":"/api-reference/v3/api-keys/create-a-personal-api-key-secret-shown-once"},{"title":"Revoke a personal API key","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml delete /api/v2/user-api-keys/{id}","href":"/api-reference/v3/api-keys/revoke-a-personal-api-key"}]},{"group":"Realtime","pages":[{"title":"SSE fallback feed of row changes for the requested topics","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/realtime/events","href":"/api-reference/v3/realtime/sse-fallback-feed-of-row-changes-for-the-requested-topics"},{"title":"Authorized Electric shape proxy (tenant filter injected server-side)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /api/v2/realtime/shape","href":"/api-reference/v3/realtime/authorized-electric-shape-proxy-tenant-filter-injected-server-side"}]},{"group":"Signup","pages":[{"title":"Buyer waitlist qualification","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/buyer-signup-intake","href":"/api-reference/v3/signup/buyer-waitlist-qualification"},{"title":"Signup branching for an email address","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/check-email-availability","href":"/api-reference/v3/signup/signup-branching-for-an-email-address"},{"title":"Improve the suggested company name from the brand registry","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/enrich-brand","href":"/api-reference/v3/signup/improve-the-suggested-company-name-from-the-brand-registry"},{"title":"Ask the admins of an existing account for access","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/request-access","href":"/api-reference/v3/signup/ask-the-admins-of-an-existing-account-for-access"},{"title":"Resend the verification code","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/resend-verification","href":"/api-reference/v3/signup/resend-the-verification-code"},{"title":"Create a user and account","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/sign-up","href":"/api-reference/v3/signup/create-a-user-and-account"},{"title":"Seller IU plan choices at signup","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /auth/storefront-rate-card-preview","href":"/api-reference/v3/signup/seller-iu-plan-choices-at-signup"},{"title":"Reject personal email domains","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/validate-email","href":"/api-reference/v3/signup/reject-personal-email-domains"},{"title":"Verify an email address with a 6-digit code","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/verify-email","href":"/api-reference/v3/signup/verify-an-email-address-with-a-6-digit-code"}]},{"group":"OAuth","pages":[{"title":"Complete the MCP connector OAuth handoff after sign-in","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/mcp/authorize","href":"/api-reference/v3/oauth/complete-the-mcp-connector-oauth-handoff-after-sign-in"},{"title":"Describe a pending MCP connector sign-in (client name, resource)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /auth/mcp/session","href":"/api-reference/v3/oauth/describe-a-pending-mcp-connector-sign-in-client-name-resource"},{"title":"Dynamic client registration (RFC 7591)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/register","href":"/api-reference/v3/oauth/dynamic-client-registration-rfc-7591"},{"title":"Revoke a refresh token and its family (RFC 7009; always 200)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/revoke","href":"/api-reference/v3/oauth/revoke-a-refresh-token-and-its-family-rfc-7009;-always-200"},{"title":"Token endpoint: authorization code (PKCE) or refresh token","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml post /auth/token","href":"/api-reference/v3/oauth/token-endpoint:-authorization-code-pkce-or-refresh-token"},{"title":"OAuth authorization endpoint (PKCE S256); redirects to sign-in","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /authorize","href":"/api-reference/v3/oauth/oauth-authorization-endpoint-pkce-s256;-redirects-to-sign-in"},{"title":"Start linking an ads account at an adapter seller (redirects to the seller's consent)","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /oauth/adapters/{slug}","href":"/api-reference/v3/oauth/start-linking-an-ads-account-at-an-adapter-seller-redirects-to-the-sellers-consent"},{"title":"Adapter OAuth callback: stores the tokens, then redirects back to the app","deprecated":null,"version":null,"openapi":"/openapi/v3.yaml get /oauth/adapters/{slug}/callback","href":"/api-reference/v3/oauth/adapter-oauth-callback:-stores-the-tokens-then-redirects-back-to-the-app"}]}]}]}]},"basePath":"","title":"Connect in five minutes - Semicola","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":[],"chunks":[]}