| Entity | Question | How Identified |
|---|---|---|
| Brand | Whose products are advertised? | Brand manifest |
| Account | Who gets billed? What rates apply? | account_id (optional) |
| Agent | Who is placing the buy? | Authentication token |
Core Concepts
Brand
The brand is the advertiser whose products or services are being promoted. Every billable operation requires a brand manifest that identifies the brand and provides context for ad serving. The brand is always explicit in requests—it cannot be inferred.Account
An account represents a billing relationship between a buyer and a seller. The account determines:- Rate card: What prices apply (negotiated discounts, volume tiers)
- Billing entity: Who receives invoices
- Payment terms: Net 30, prepay, etc.
- Credit limit: Maximum outstanding balance
| Account Type | Example | Billing Flow |
|---|---|---|
| Direct | ”Coke” | Publisher → Coke |
| Via agency | ”Coke c/o Publicis” | Publisher → Publicis → Coke |
| Agency principal | ”Publicis” | Publisher → Publicis |
Agent
An agent is the entity operating on an account—placing buys, uploading creatives, monitoring delivery. The agent is identified by the authentication token and may be:- A brand’s internal team
- An agency’s trading desk
- An automated buying system
- An AI agent
Request Context
Required: Brand Manifest
Every billable operation must include the brand manifest:Optional: Account ID
Theaccount_id field specifies which account to bill:
account_id is omitted:
- If the agent has exactly one account, the seller uses that account
- If the agent has multiple accounts, the seller may:
- Apply routing logic (e.g., brand + agent → account)
- Return an
ACCOUNT_REQUIREDerror
Account Routing
Sellers may implement routing logic to determine the account whenaccount_id is omitted:
Response Attribution
Responses for billable operations include account attribution:- Accurate billing and invoicing
- Rate card application based on advertiser relationships
- Tracking which account was used
context or ext fields for audit purposes.
Tasks
list_accounts
Returns accounts the authenticated agent can operate. Request:Error Responses
ACCOUNT_REQUIRED
Returned when the seller cannot determine which account to use:ACCOUNT_NOT_FOUND
The specified account does not exist or the agent does not have access:ACCOUNT_SUSPENDED
The account exists but is not in good standing:BRAND_MANIFEST_REQUIRED
Billable operation attempted without brand manifest:Examples
Coke buying direct
Coke’s internal team buying on their own account:account_id is omitted.
Response attribution:
ext for audit purposes.
Agency buying for Coke, Coke pays
Publicis buying on Coke’s behalf, using Coke’s rates, billed through Publicis:Agency buying for Coke, agency pays
Publicis buying on their own account (agency rates), for Coke’s brand:Account Setup
Account creation is typically a seller-side process involving:- Credit verification
- Rate negotiation
- Legal agreements
- Payment terms setup
- Require out-of-band setup: Sales process before API access
- Auto-provision: Create accounts on first buy with standard terms
- Async setup: Accept requests, provision accounts asynchronously
Authentication
Agents authenticate using OAuth 2.0 bearer tokens. The token identifies the agent; account access is determined by the seller’s authorization system.Summary
| Aspect | Protocol Defines | Seller Implements |
|---|---|---|
| Brand manifest | Required, full object | Validation |
| Account ID | Optional field | Routing policy |
| Agent identity | From auth token | Authentication |
| Response attribution | Required fields | Storage, billing |
| Account creation | Not defined | Sales process |
| Error codes | Standard codes | When to return |