When Authentication is Required
Public Operations (No Authentication Required)
These operations work without credentials to enable discovery and evaluation:get_adcp_capabilities- Discover agent capabilities, portfolio, and supported featureslist_creative_formats- Browse available creative formatsget_products- Discover inventory (returns limited results without auth)
get_products may return:
- Partial catalog (standard products only)
- No pricing information or CPM details
- No custom product offerings
- Generic format support only
Authenticated Operations (Credentials Required)
These operations require valid credentials:get_products(full access) - Complete catalog with pricing and custom productscreate_media_buy- Create advertising campaignsupdate_media_buy- Modify existing campaignssync_creatives- Upload creative assetslist_creatives- View your creative libraryget_media_buy_delivery- Monitor campaign performance and metricsprovide_performance_feedback- Submit optimization signals
Authentication Method
AdCP uses Bearer token authentication, consistent with the MCP specification:- Opaque tokens: Server-validated strings mapped to agents
- JWT tokens: Self-contained tokens with embedded claims
JWT Token Claims
When using JWT tokens, include these standard claims:Agents and Accounts
AdCP distinguishes between the agent (who is making requests) and the account (who gets billed):- Agent: The authenticated entity making API calls (identified by the token)
- Account: The billing relationship determining rates and invoicing
account.json.
Protocol Configuration
Both MCP and A2A protocols use the same authentication header. Configure your client with:Authorization: Bearer <token> header to requests.
MCP Client Configuration
When using the MCP protocol, authentication is handled by the transport layer, not by adding HTTP headers manually.Using MCP Client Libraries
The recommended approach is to use an MCP client library:Common Mistake: Raw HTTP Headers
A common mistake is trying to add authentication headers to raw HTTP requests:Troubleshooting Authentication
If you’re getting “authentication required” errors:- Verify you’re using an MCP client library - not making raw HTTP calls
- Check the token format - should be passed to the transport configuration
- Test with the public test agent - verify your setup works before testing custom agents
- Check protocol version - ensure client and server protocol versions are compatible
Obtaining Credentials
Account Setup Process
To access authenticated operations, you must establish an account with each sales agent:- Identify Sales Agents: Discover sales agents via publisher
adagents.jsonfiles - Contact Sales Team: Reach out to the agent’s sales or partnerships team
- Complete Onboarding: Provide business information, sign agreements, configure billing
- Receive Credentials: Get API keys or OAuth client credentials
Dynamic Registration (Optional)
Some sales agents support OAuth 2.0 dynamic client registration:adagents.json for dynamic registration support.
Aggregation Platforms
Consider using aggregation platforms (like Scope3) that manage credentials and relationships with multiple sales agents on your behalf. This simplifies:- Credential management
- Financial relationships
- Legal agreements
- Compliance monitoring
Error Responses
Unauthenticated Request to Protected Operation
Invalid or Expired Credentials
Insufficient Permissions
Best Practices
- Secure Storage: Store credentials securely (environment variables, secret managers)
- Rotation: Implement credential rotation policies
- Scope Limitation: Request minimum required permissions
- Token Refresh: Implement automatic token refresh for JWT tokens
- Error Handling: Handle authentication errors gracefully with retry logic