/schemas/v2/media-buy/list-creative-formats-request.json
Response Schema: /schemas/v2/media-buy/list-creative-formats-response.json
Sales Agent vs Creative Agent Behavior
Both sales agents and creative agents implementlist_creative_formats, but with different behaviors:
Creative agents (like https://creative.adcontextprotocol.org):
- Return authoritative format definitions they own
- May reference other creative agents for additional formats
- Provide full specifications for building and validating creatives
https://test-agent.adcontextprotocol.org):
- Return only formats used by active products
- Reference creative agents for format specifications
- Filter results based on what’s actually purchasable
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
format_ids | FormatID[] | No | Return only specific format IDs (from get_products response) |
type | string | No | Filter by type: audio, video, display, dooh |
asset_types | string[] | No | Filter to formats accepting these asset types: image, video, audio, text, html, javascript, url. Uses OR logic. |
max_width | integer | No | Maximum width in pixels (inclusive) - matches if ANY render fits |
max_height | integer | No | Maximum height in pixels (inclusive) - matches if ANY render fits |
min_width | integer | No | Minimum width in pixels (inclusive) |
min_height | integer | No | Minimum height in pixels (inclusive) |
is_responsive | boolean | No | Filter for responsive formats (adapt to container size) |
name_search | string | No | Search formats by name (case-insensitive partial match) |
Multi-Render Dimension Filtering
Formats may produce multiple rendered pieces (e.g., video + companion banner). Dimension filters use “any render fits” logic:max_width: 300, max_height: 250- Returns formats where AT LEAST ONE render is ≤ 300×250- Use case: “Find formats that can render into my 300×250 ad slot”
- Example: Format with primary video (1920×1080) + companion banner (300×250) matches because companion fits
Response
| Field | Description |
|---|---|
formats | Array of full format definitions (format_id, name, type, requirements, assets_required, renders) |
creative_agents | Optional array of other creative agents providing additional formats |
Recursive Discovery
Creative agents may reference other creative agents that provide additional formats:Common Scenarios
Get Specs for Product Format IDs
Find Formats by Asset Types
Find Third-Party Tag Formats
Filter by Type and Dimensions
Search by Name
Responsive Formats
Format Structure
Each format includes:| Field | Description |
|---|---|
format_id | Structured identifier with agent_url and id |
name | Human-readable format name |
type | Format type (audio, video, display, dooh) |
requirements | Technical requirements (duration, file types, bitrate, etc.) |
assets_required | Array of required assets with specifications |
renders | Array of rendered output pieces (dimensions, role) |
Asset Roles
Common asset roles help identify asset purposes:hero_image- Primary visualhero_video- Primary video contentlogo- Brand logoheadline- Primary textbody_text- Secondary textcall_to_action- CTA button text
Asset Types Filter Logic
Theasset_types parameter uses OR logic - formats matching ANY specified asset type are returned.
Example: asset_types: ['html', 'javascript', 'image']
- Returns formats accepting html OR javascript OR image
- Use case: “Show me formats I can use with any of my available asset types”
test=false
Dimension Filtering for Multi-Render Formats
Some formats produce multiple rendered pieces:- Video with companion banner - Primary video (1920×1080) + banner (300×250)
- Adaptive displays - Desktop (728×90) + mobile (320×50)
- DOOH installations - Multiple screens with different dimensions
test=false
Implementation Requirements
When implementinglist_creative_formats for a creative agent:
- Return authoritative formats - Include full specifications for formats you define
- Reference other agents - Use
creative_agentsto delegate to other creative agents - Include capabilities - Indicate what operations you support (validation, assembly, generation, preview)
- Support filtering - Implement filter parameters (type, asset_types, dimensions, etc.)
Error Handling
| Error Code | Description | Resolution |
|---|---|---|
FORMAT_NOT_FOUND | Requested format_id doesn’t exist | Verify format_id from get_products response |
INVALID_REQUEST | Invalid filter parameters | Check parameter types and values |
AGENT_NOT_FOUND | Referenced creative agent unavailable | Format may be from deprecated agent |
Best Practices
1. Use format_ids Parameter Most efficient way to get specs for formats returned byget_products.
2. Cache Format Specifications
Format specs rarely change - cache by format_id to reduce API calls.
3. Filter by Asset Types for Third-Party Tags
Search for asset_types: ['html'] or ['javascript'] to find tag-accepting formats.
4. Consider Multi-Render Formats
Check renders array length - some formats produce multiple pieces requiring multiple placements.
5. Validate Asset Requirements
Ensure your creative assets match format specifications before building creatives.
Next Steps
After discovering formats:- Build Creatives: Use
build_creativeto assemble assets into format - Preview: Use
preview_creativeto see visual output - Validate: Use
sync_creativeswithdry_run: true - Upload: Use
sync_creativesto upload to media buy
Learn More
- Format Schema - Complete format structure
- Asset Types - Asset specification details
- Standard Formats - IAB-compatible reference formats