Skip to main content
Discover creative formats supported by a creative agent. Returns full format specifications including asset requirements and technical constraints. Response Time: ~1 second (database lookup) Authentication: None required (public endpoint for format discovery) Request Schema: /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 serve list_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
Sales agents implementing only Media Buy Protocol (like 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
Sales agents implementing both protocols — return their own self-hosted format definitions alongside referenced formats. See Creative capabilities on sales agents. See list_creative_formats (Sales Agent) for sales agent-specific behavior.

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:
Buyers can recursively query creative_agents. Track visited URLs to avoid infinite loops.

Catalog requirements

Formats declare catalog needs as catalog asset types in their assets array. This tells buyers which catalogs to sync before submitting creatives for that format.
Catalog assets use 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 via output_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 input
  • output_format_ids — concrete output formats this format can produce
These filters are ANDed — a format must match all specified filters. Within each filter, matching is OR (any ID in the array matches). A bare format ID (no dimension parameters) matches all parameterized variants of that format; a parameterized ID is an exact match. Note: 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 visual
  • hero_video - Primary video content
  • logo - Brand logo
  • headline - Primary text
  • body_text - Secondary text
  • call_to_action - CTA button text

Asset Types Filter Logic

The asset_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”
To find formats requiring specific combinations, filter results after retrieval:
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
Dimension filters match if at least one render fits:
test=false

Implementation Requirements

When implementing list_creative_formats for a creative agent:
  1. Return authoritative formats - Include full specifications for formats you define
  2. Reference other agents - Use creative_agents to delegate to other creative agents
  3. Include capabilities - Indicate what operations you support (validation, assembly, generation, preview)
  4. 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 by get_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:
  1. Build Creatives: Use build_creative to assemble assets into format
  2. Preview: Use preview_creative to see visual output
  3. Validate: Use sync_creatives with dry_run: true
  4. Upload: Use sync_creatives to upload to an agent-hosted creative library

Learn More