v3 is available to every authenticated buyer and seller account. The account
selected by your credential determines which tools appear; existing v2 APIs
remain supported.
Before you connect
You need:- an Apostra account;
- an OAuth login or API key with the permissions your work needs; and
- an MCP client that supports remote streamable HTTP servers.
Add the endpoint
The v3 endpoint is:- Codex
- Claude Code
- Claude Desktop
- Other MCP clients
Verify the connection
Ask the client:Hosts without a widget surface
For commercial operator domains, advertiser branding and supported human verification, follow Identity and brands. That flow returns current state, previews and proof status in text. Some tools open an interactive page in hosts that support MCP apps. A host that cannot render them, such as Claude Code or a plain MCP client, still receives the tool’s text result. When a buyer account opens the Creative Library withopen_creative_library, or the Campaigns Page for an advertiser
with open_campaigns_page, that text includes an Open in the browser: link
that opens the same Page in Apostra chat for the account your API key
belongs to, with the chat input below it. The link addresses the advertiser
(and the focused campaign, when there is one), so it stays valid outside the
conversation that produced it. The same URL is available as openInBrowserUrl
in the structured result. A seller account that opens the Campaigns Page for
its own-supply or sponsored-buyer scope gets no link: the buyer hosted chat
does not model those scopes.
To open a campaign’s Creative composer, call open_creative_library with
lens: "composer", campaignId, and optionally sessionId for an editable
Creative Session to resume. campaignId is required for this lens. Its browser
link uses creativeAction=compose with the same campaign and optional session
state, so a host without a widget surface opens the Composer Task in
Apostra chat instead of losing the draft. The buyer-only composer lens
creates a durable draft when no session is supplied, using the campaign’s
configured Creative Engine. If the campaign does not declare exactly one
composer-supported format, the draft starts as Snap Story and the Task directs
the buyer to change the format in chat.
Switch accounts
Use anaccountId returned by get_status:
switch_account, call get_status again. A principal who can reach both
Buyer and Seller Accounts already receives both tool families at connection
time, but the status read confirms which selected account can authorize each
account-specific tool. v3 also emits notifications/tools/list_changed, though
clients do not all refresh the same way.
Omit accountId only when you intend to return to the credential’s home
account:
Make a first read
Choose a noun that belongs to the active account:- Buyer account
- Seller account
search and get input schemas from
tools/list; do not copy a kind from a different account’s stale catalog.
Safe first-write checklist
Before a write:- Read the object and retain its current ID and revision when provided.
- Use the typed
save_<noun>tool shown in the current catalog. - Send only fields you intend to change.
- Supply
expectedRevisionwhen the schema offers it. - Reuse an idempotency key only for the same logical attempt.
- Read the object again and confirm the reported outcome.