Search for licensable rights across a brand agent’s roster. Returns matches with pricing options. Discovery is natural-language-first — no taxonomy, LLMs interpret intent from the query.
Schema
Response time
Typically 2-10 seconds. The agent may perform compatibility checks against the buyer’s brand.json, which adds latency.
Quick start
{
"query": "Dutch athlete for restaurant brand in Amsterdam, budget 400 EUR/month",
"uses": ["likeness", "voice"],
"buyer_brand": { "domain": "bistro-oranje.nl" },
"include_excluded": true
}
Parameters
Request
| Field | Type | Required | Description |
|---|
query | string | Yes | Natural language description of desired rights. Include budget, geography, use case. |
uses | string[] | Yes | Rights uses being requested (likeness, voice, name, endorsement, etc.) |
buyer_brand | brand-ref | No | Buyer’s brand. Agent fetches buyer’s brand.json for compatibility filtering. |
countries | string[] | No | Countries where rights are needed (ISO 3166-1 alpha-2) |
brand_id | string | No | Search within a specific brand’s rights |
right_type | string | No | Filter by rights type (talent, music, stock_media, etc.) |
include_excluded | boolean | No | Include filtered-out results in the excluded array with reasons. Defaults to false. |
pagination | object | No | Pagination parameters for large result sets |
Response
| Field | Type | Description |
|---|
rights | object[] | Matching rights with pricing, ranked by relevance |
rights[].rights_id | string | Identifier for this offering — referenced in acquire_rights |
rights[].brand_id | string | Brand identifier |
rights[].name | string | Display name |
rights[].match_score | number | Relevance score (0-1) |
rights[].match_reasons | string[] | Why this result matches |
rights[].available_uses | string[] | Rights uses available |
rights[].countries | string[] | Countries where available |
rights[].excluded_countries | string[] | Countries excluded from availability |
rights[].exclusivity_status | object | Current exclusivity availability (available, existing_exclusives) |
rights[].pricing_options | object[] | Pricing options (see below) |
rights[].description | string | Description of the rights subject |
rights[].right_type | string | Type of rights (talent, music, stock_media, etc.) |
rights[].content_restrictions | string[] | Content restrictions or approval requirements |
rights[].preview_assets | object[] | Preview-only assets for evaluation |
excluded | object[] | Filtered results with reasons (only when include_excluded: true) |
excluded[].suggestions | string[] | Actionable alternatives if the exclusion is fixable. Absent if the exclusion is final. |
Rights pricing options
Pricing options are specific to rights — they include period, impression caps, overage rates, and use-type scoping:
| Field | Type | Required | Description |
|---|
pricing_option_id | string | Yes | Referenced in acquire_rights and report_usage |
model | string | Yes | Pricing model (cpm, flat_rate, etc.) |
price | number | Yes | Price amount |
currency | string | Yes | ISO 4217 currency code |
uses | string[] | Yes | Rights uses covered by this option |
period | string | No | Billing period (monthly, quarterly, etc.) |
impression_cap | integer | No | Max impressions included per period |
overage_cpm | number | No | CPM for impressions exceeding the cap |
Composite rights
Request multiple uses (e.g., ["likeness", "voice"]) and the agent bundles them into a single pricing option. One call, one price.
Buyer brand filtering
When buyer_brand is provided, the agent fetches the buyer’s brand.json and uses it for compatibility filtering. For example, a vegetarian athlete would be excluded from steakhouse campaigns. Set include_excluded: true to see filtered results with reasons.
Music licensing and DDEX
This section is for implementers building music rights agents. If you’re a buyer using the brand protocol, the standard get_rights and acquire_rights flow works identically for music — you don’t need to know DDEX.
The rights protocol supports music licensing alongside talent rights. Music sync platforms implement get_rights with right_type: "music" and return pricing options for sync/background use.
AdCP’s rights model draws from the DDEX Party Information Exchange (PIE) pattern — each get_rights response is a stateless snapshot of current availability rather than a delta against previous state. Key mappings for implementers familiar with DDEX:
| AdCP concept | DDEX equivalent | Notes |
|---|
rights_id | ISRC / ISWC | AdCP uses agent-scoped IDs; include standard identifiers in ext |
available_uses | Use types (sync, background, etc.) | AdCP uses right-use enum values |
pricing_options | License offers | Same concept, different structure |
content_restrictions | Territorial/usage restrictions | AdCP is less granular than DDEX |
acquire_rights | License grant | Returns generation credentials for AI music production |
Music rights agents should include standard identifiers (ISRC, ISWC) in the ext field of rights responses for interoperability with existing music licensing systems.
Next steps
After selecting a rights offering:
- Call
get_brand_identity for the selected brand’s full identity data
- Call
acquire_rights with the rights_id and pricing_option_id