Authentication
All requests must be authenticated using a bearer token in the standardAuthorization header:
Agents and Accounts
AdCP distinguishes between:- Agent: The authenticated entity making API calls (e.g.,
"pinnacle_trading_desk") - Account: The billing relationship for a media buy (e.g.,
"acme_c/o_pinnacle")
Data Isolation
Authentication provides the foundation for strict data isolation. Sales agents MUST enforce the following rules:- When an object like a
MediaBuyis created, it MUST be permanently associated with the account used for that request. - For any subsequent request to read or modify that object, the server MUST verify that the agent has access to that account.
- If the agent does not have access, the server MUST return a permission denied error.
account_id for an account you don’t have access to will result in an error.
Security Requirements
Required Security Measures
Sales agent implementations MUST:- Validate bearer tokens on every authenticated request
- Enforce account-based data isolation
- Use TLS for all communications
- Log authentication failures for security monitoring
Recommended Security Measures
Sales agent implementations SHOULD:- Implement rate limiting per agent and account
- Support token expiration and refresh
- Provide audit logging for compliance
- Support IP allowlisting for high-security accounts