- Authorization discovery - which publishers does this agent represent?
- Single source of truth - property definitions come from publisher’s adagents.json
- One-time discovery to cache publisher-agent relationships
/schemas/v2/media-buy/list-authorized-properties-request.json
Response Schema: /schemas/v2/media-buy/list-authorized-properties-response.json
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
publisher_domains | string[] | No | Filter to specific publisher domains (e.g., ["cnn.com", "espn.com"]) |
Response
| Field | Description |
|---|---|
publisher_domains | Array of publisher domains this agent represents |
primary_channels | Optional main advertising channels (ctv, display, video, audio, dooh, etc.) |
primary_countries | Optional main countries (ISO 3166-1 alpha-2 codes) |
portfolio_description | Optional markdown description of portfolio and capabilities |
last_updated | Optional ISO 8601 timestamp of last publisher list update |
Authorization Workflow
This tool is the first step in understanding what a sales agent represents:- Discovery: Buyer calls
list_authorized_properties()to get publisher domains - Fetch Details: Buyer fetches each publisher’s
https://publisher.com/.well-known/adagents.json - Validate: Buyer verifies agent is in publisher’s
authorized_agentsarray - Resolve Scope: Buyer resolves authorization scope (property_ids, property_tags, or all properties)
- Cache: Buyer caches properties for future product validation
Key Insight: Publishers Own Property Definitions
Unlike traditional SSPs:- Publishers define properties in their own
adagents.jsonfile - Sales agents reference those definitions via domain list
- Buyers fetch property details from publishers, not agents
- This ensures single source of truth and prevents property definition drift
Common Scenarios
Discover Agent Portfolio
Filter by Publisher
Fetch Publisher Property Definitions
Check Authorization Scope
Cache Validation with last_updated
Portfolio Metadata
Optional fields provide high-level portfolio information for quick filtering:primary_channels
Main advertising channels in portfolio:- Values:
display,video,dooh,ctv,podcast,retail, etc. - See Channels enum
- Use case: Filter “Do you have DOOH?” before examining properties
primary_countries
Main countries (ISO 3166-1 alpha-2):- Where bulk of properties are concentrated
- Use case: Filter “Do you have US inventory?“
portfolio_description
Markdown description:- Inventory types and characteristics
- Audience profiles
- Special features or capabilities
Example Portfolios
DOOH Network:Use Cases
Third-Party Sales Networks
CTV network representing multiple publishers:- Returns list of publisher domains
- Buyers fetch property details from each publisher
- No duplication of property data across agents
Publisher Direct Sales
Publisher selling own inventory:- Returns own domain
- Buyers fetch from publisher’s adagents.json
- Consistent with third-party agent flow
Authorization Validation
Buyer validating seller authorization:- Discover which publishers agent claims to represent
- Fetch each publisher’s adagents.json to verify
- Check agent URL in authorized_agents list
- Cache validated relationships
Error Handling
| Error Code | Description | Resolution |
|---|---|---|
AUTH_REQUIRED | Authentication needed | Provide credentials |
INVALID_REQUEST | Invalid publisher_domains parameter | Check domain format |
NO_PUBLISHERS | Agent represents no publishers | Agent may be misconfigured |
Best Practices
1. Cache Publisher Property Definitions Fetch once and cache - properties rarely change. Uselast_updated to detect staleness.
2. Validate Authorization from Publisher
Always verify agent is in publisher’s authorized_agents array - don’t trust agent claims alone.
3. Resolve Authorization Scope
Check property_ids, property_tags, or assume all properties based on publisher’s authorization entry.
4. Use Portfolio Metadata for Filtering
Check primary_channels and primary_countries before fetching detailed properties.
5. Handle Fetch Failures Gracefully
Publishers may be temporarily unavailable - cache and retry with backoff.
Next Steps
After discovering authorized properties:- Fetch Properties: GET
https://publisher.com/.well-known/adagents.json - Validate Authorization: Find agent in publisher’s
authorized_agentsarray - Cache Properties: Store for use in product validation
- Discover Products: Use
get_productswith cached property context
Learn More
- adagents.json Specification - Publisher authorization file format
- Property Schema - Property definition structure
- Authorization Guide - How authorization works in AdCP