Overview
By the end of this guide you will have:- Confirmed your buyer account and accepted the platform Terms of Service.
- Created an advertiser, linked to a brand identity.
- Configured measurement and (optionally) registered event sources for performance optimization.
- Run a discovery to find products that match your brief.
- Created, executed, and monitored your first campaign.
Prefer to drive everything through an AI agent? You can do every step below by talking to a connected MCP agent (Claude, ChatGPT, Cursor) — the agent will call these endpoints for you. See the Quick Start for connector setup.
Prerequisites
Pick how you’ll authenticate
Pick one — you don’t need both.OAuth (recommended for AI agents)
Connecting through Claude (Team/Enterprise/Desktop), ChatGPT MCP Connectors, or any OAuth-aware AI tool. Auth is handled automatically via the connector — no API key to manage. See Built for Agents for connector setup.
API key
Required only for CLI tools, Cursor, custom MCP/HTTP clients, or programmatic backend integrations. Generate at interchange.io/user-api-keys; keys start with
scope3_. See Authentication for full details.curl examples with Authorization: Bearer $SCOPE3_API_KEY. If you’re using OAuth via Claude/ChatGPT, replace each step with the equivalent natural-language prompt — the connected agent will call the same endpoints for you.
Optional
1
SSO
If your organization uses SAML SSO, ask your admin to configure it via the SSO Setup guide before inviting team members.
2
Private storefront credentials
Some storefronts gate inventory behind per-source credentials (API key, OAuth, JWT). Register those at the storefront-source level — see the Storefront object guide for the walkthrough.
End-to-End Flow
1
Step 1: Confirm your account
Verify the API key resolves to the account you expect. The current account is the one that will own the advertisers and campaigns you create.Response:
2
Step 2: Accept the Terms of Service
Signed in via the web app? If you registered or signed in at interchange.io, you accepted ToS during that flow — skip this step and go straight to Step 3.
Discovering the current
psaVersion: use the psaVersion returned in the TOS_ACCEPTANCE_REQUIRED error response from any blocked write, or check the most recent agreement posted at scope3.com.3
Step 3: Create an advertiser
An advertiser is the top-level container for campaigns. It carries brand identity, default optimization mode, and (optionally) UTM parameters and frequency caps that flow down to its campaigns.Key fields:
4
Step 4: Configure measurement (recommended)
Measurement configuration lives on the advertiser and is shared across all of its campaigns. You can opt into MMM, incrementality testing, brand lift, and other measurement programs.To optimize campaigns against your own conversion events, register one or more event sources for the advertiser. This pushes ADCP-spec event source definitions into Scope3:Once registered, an event source can be referenced from a campaign’s
Each event source must include a buyer-assigned
event_source_id (1–255 chars). You’ll reference it later when sending conversion events via the Conversion API.performanceConfig.optimizationGoals to drive bid optimization.Full conversion-tagging and measurement setup is covered in the Measurement guide.
5
Step 5: Discover products
Discovery turns a natural-language brief and budget into a session of candidate products from every reachable sales agent.The response contains a
discoveryId (e.g. disc_abc123), grouped products (e.g. prod_xyz789), agent results, and (optionally) curated proposals you can apply directly to a campaign.The full discovery workflow — refinement, proposals, manual product selection — is covered in the Discovery guide.6
Step 6: Create your first campaign
A campaign references an advertiser and a (preselected) discovery session. The
minimum required fields are Response:Capture the
advertiserId, name, flightDates, and budget.
The legacy routingType field is not a campaign input; Interchange derives it
per media buy as compatibility metadata for the current execution path. It does
not determine campaign mode, BYOA, protocol connectivity, or settlement. See
the Campaign guide for details.campaignId from the response — we’ll use this cmp_* id in Steps 7–8.Key choices:The campaign is created in
DRAFT status — nothing has been sent to a sales agent yet.7
Step 7: Add creatives
Before a campaign can launch, every product format selected on the campaign needs at least one creative that satisfies it. The creative endpoint is a single multipart request — a JSON Inspecting
metadata field plus one or more files parts:GET /api/v2/buyer/campaigns/:id returns a creativeFormats summary so you can see which formats are still missing creatives before launch. See the Creatives guide for the full lifecycle.8
Step 8: Execute the campaign
Executing a campaign sends media-buy requests to every selected sales agent and transitions the campaign from Response:If any media buys fail at the sales agent,
DRAFT to ACTIVE.success is false and errors[] lists the per-buy failures. After fixing the issue, you can re-run POST /api/v2/buyer/campaigns/:id/execute while the campaign is still DRAFT. The retry submits the same surviving DRAFT media buy; it does not rebuild the buy from discovery or discard per-buy creatives, flight dates, pacing, or optimization goals you changed after the failure.execute and reactivate are different endpoints. Use POST /api/v2/buyer/campaigns/:id/execute to launch a DRAFT (or COMPLETED) campaign. To resume a PAUSED campaign, use POST /api/v2/buyer/campaigns/:id/reactivate instead.Monitoring
Once a campaign isACTIVE, poll the live status of its media buys:
Sandbox Testing
Setsandbox: true when creating an advertiser to run the entire flow above with no real spend. All downstream ADCP calls are tagged sandbox and routed to test accounts on the storefront’s inventory sources. Sandbox mode is immutable after creation — you cannot promote a sandbox advertiser to production.
See Sandbox mode for the full sandbox capability matrix.
Adding an Account to Your Organization [#adding-a-child-account]
Organizations with multiple brands or business units can split into an organization with accounts under it. An organization admin provisions a new account viaPOST /api/v2/accounts/create-child (or “Add account” in the
UI). The new account inherits the organization’s governing agreement; it does
not accept separate account-level Terms of Service.
How inherited acceptance works
If the parent organization has an active governing agreement, the new account inherits it and is ready to use. If the organization has no active agreement, the account is blocked with it. A direct ADMIN of the parent organization can accept the current ToS on behalf of the organization while scoped to either the organization or one of its accounts.What the response tells you
Account and user-info responses include flags the UI uses to gate the experience when the organization has no active governing agreement:showTosBox: true— the parent organization has no active governing agreement.canAcceptTos: false— the currently authenticated user is not allowed to accept because they are not a direct parent-organization admin. The UI shows a blocking notice in this state.organizationContractMissing: true— the account is blocked by its parent organization’s missing governing agreement.
What the organization admin can still do
While the organization sits unaccepted, its admins can:- Invite members of the account. The
customer_member_inviteMCP tool and the member-management cluster are exempted from the ToS guard so onboarding flows can complete. - Configure the support channel.
/api/v2/customer/communication-channeland the notification-preferences surfaces are exempted for the same reason.
How acceptance happens
If the intended signer is only an account member, invite them to the parent organization asADMIN. Pending organization invitations remain available
before ToS acceptance. After they accept the invitation, their /auth/me
response carries canAcceptTos: true; POST /api/v2/accept-tos writes the
organization’s active contract and unblocks every account that inherits it.
Next Steps
Advertiser object
Linked accounts, brand resolution, UTM templates, and frequency caps.
Campaign object
Performance config, pacing, audience targeting, and execution lifecycle.
Discovery workflow
Briefs, refinement, proposals, and product selection.
Measurement workflow
Conversion events, MMM, incrementality, and brand lift.
Reporting
Delivery, pacing, spend, and performance reporting endpoints.
Storefronts
Browse storefronts and connect credentials per inventory source.