/schemas/3.0.19/creative/list-creative-formats-request.json
Response Schema: /schemas/3.0.19/creative/list-creative-formats-response.json
Behavior by agent type
Any agent implementing the Creative Protocol can servelist_creative_formats. The response varies based on what the agent does:
Dedicated creative agents (like https://creative.adcontextprotocol.org):
- Return authoritative format definitions they own
- Provide full specifications for building and validating creatives
https://test-agent.adcontextprotocol.org):
- Return only formats used by active products
- Reference creative agents for authoritative format specifications
- Filter results based on what’s actually purchasable
Request Parameters
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
See Format schema for complete format object structure.
Recursive Discovery
Creative agents may reference other creative agents that provide additional formats:Catalog requirements
Formats declare catalog needs ascatalog asset types in their assets array. This tells buyers which catalogs to sync before submitting creatives for that format.
asset_type: "catalog" with a requirements object containing:
When catalog assets are present, buyers should sync the required catalogs via
sync_catalogs before submitting creatives. See Catalogs for the full lifecycle.
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
Discover Build Capabilities
Some formats declare the output formats they can produce viaoutput_format_ids. A creative builder (like a multi-publisher template tool) may accept one asset group and produce many publisher-specific formats. A format transformer may accept an existing creative and reformat it.
The format schema expresses both sides of the relationship:
input_format_ids— existing creative formats this format accepts as inputoutput_format_ids— concrete output formats this format can produce
asset_types and these filters target different things. A format that takes only creative manifests as input will have no entries in its assets array, so combining asset_types with input_format_ids will typically return no results.
Serve-time dynamic creative (DCO platforms that render from data feeds at ad serving time) is not expressed through these fields — those platforms describe their inputs via assets and their output via the format itself.
Given output formats I need, what inputs are accepted?
Given an input format I have, what outputs can it produce?
Format Structure
Each format includes: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
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 an agent-hosted creative library
Learn More
- Format Schema - Complete format structure
- Asset Types - Asset specification details
- Standard Formats - IAB-compatible reference formats