AdCP 3.1.13

AdCP Brand Protocol

AdCP Brand Protocol is a schema group of the Ad Context Protocol holding 6 of the 64 operations in release 3.1.13, covering brand identity retrieval, claim verification, and rights discovery, acquisition and update.

The brand protocol splits in two. get_brand_identity, verify_brand_claim and verify_brand_claims read from a brand agent: a claim comes back owned, pending, disputed or licensed, and the plural form verifies many claims against one brand agent in a single round trip. get_rights, acquire_rights and update_rights cover licensable talent, music and stock media, and all three are experimental.

brand appears in the negotiation layer as a schema group holding no operations; the operations listed here are registered under brand-protocol, which the layer list does not name. None of the 6 ships with a bundled/ copy.

What the 6 brand protocol operations do

Brand Protocol — 6 operations
Operation Request fields Response fields What it does
acquire_rights 12 13 acquire_rights is the AdCP task for binding rights acquisition.
get_brand_identity 7 13 get_brand_identity is the AdCP task for retrieving brand data from a brand agent.
get_rights 12 13 get_rights is the AdCP task for discovering licensable talent, music, and stock media.
update_rights 12 13 update_rights is the AdCP task for modifying active rights grants.
verify_brand_claim 2 13 verify_brand_claim is the unified AdCP brand-protocol task for asking a brand-agent whether a specific claim about its identity is owned, pending, disputed, or licensed.
verify_brand_claims 3 13 verify_brand_claims is the bulk variant of verify_brand_claim — verify many claims against one brand-agent in a single round-trip.

acquire_rights

acquire_rights is the AdCP task for binding rights acquisition.

acquire_rights request — 12 fields, 6 required
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
rights_idstringrequiredRights offering identifier from get_rights response
pricing_option_idstringrequiredSelected pricing option from the rights offering
buyerbrand-refrequiredThe buyer's brand identity
accountaccount-refAccount context for this acquisition.
campaignobjectrequiredCampaign details for rights clearance
revocation_webhookpush-notification-configrequiredWebhook for rights revocation notifications.
push_notification_configpush-notification-configWebhook for async status updates if the acquisition requires approval.
idempotency_keystringrequiredClient-generated key for safe retries.
contextcontextOpaque correlation data that is echoed unchanged in responses.
extextExtension object for platform-specific, vendor-namespaced parameters.
acquire_rights response — 13 fields, 1 required
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
context_idstringSession/conversation identifier for tracking related operations across multiple task invocations.
contextcontextPer-request opaque caller-supplied correlation object echoed unchanged in the response.
task_idstringUnique identifier for tracking asynchronous operations.
statustask-statusrequiredCurrent task execution state. One of: submitted, working, input-required, completed, canceled, failed, rejected, auth-required, unknown.
messagestringHuman-readable summary of the task result.
timestampstringISO 8601 timestamp when the response was generated.
replayedbooleanSet to true when this response was returned from the idempotency cache rather than from a fresh execution.
adcp_errorerrorTransport-envelope error signal for fatal task failures.
push_notification_configpush-notification-configPush notification configuration for async task updates (A2A and REST protocols).
governance_contextstringGovernance context token issued by the account's governance agent during check_governance.
payloadobjectConceptual grouping for the task-specific response data defined by individual task response schemas (e.g., get-products-response.json, create-media-buy-response.json).
acquire_rights — Example (json) — source
{
  "rights_id": "janssen_likeness_voice",
  "pricing_option_id": "monthly_exclusive",
  "buyer": {
    "domain": "bistro-oranje.nl",
    "brand_id": "bistro_oranje"
  },
  "campaign": {
    "description": "AI-generated video ads for Bistro Oranje steakhouse featuring Daan Janssen",
    "uses": ["likeness", "voice"],
    "countries": ["NL"],
    "format_kinds": ["video_hosted"],
    "estimated_impressions": 50000,
    "start_date": "2026-04-01",
    "end_date": "2026-06-30"
  },
  "revocation_webhook": {
    "url": "https://buyer.bistro-oranje.nl/webhooks/revocation",
    "authentication": {
      "schemes": ["HMAC-SHA256"],
      "credentials": "whsk_bo_abc123...shared_secret_min_32_chars"
    }
  },
  "idempotency_key": "acq_bo_janssen_2026q2_001",
  "push_notification_config": {
    "url": "https://buyer.bistro-oranje.nl/webhooks/adcp/acquire_rights/op_abc123",
    "authentication": {
      "schemes": ["HMAC-SHA256"],
      "credentials": "whsk_bo_xyz789...shared_secret_min_32_chars"
    }
  }
}

get_brand_identity

get_brand_identity is the AdCP task for retrieving brand data from a brand agent.

get_brand_identity request — 7 fields, 1 required
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
brand_idstringrequiredBrand identifier from brand.json brands array
fieldsstring[]Optional identity sections to include in the response. One of: description, industries, keller_type, logos, colors, fonts, visual_guidelines, tone, tagline, voice_synthesis, assets, rights.
use_casestringIntended use case, so the agent can tailor the response.
contextcontextOpaque correlation data that is echoed unchanged in responses.
extextExtension object for platform-specific, vendor-namespaced parameters.
get_brand_identity response — 13 fields, 1 required
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
context_idstringSession/conversation identifier for tracking related operations across multiple task invocations.
contextcontextPer-request opaque caller-supplied correlation object echoed unchanged in the response.
task_idstringUnique identifier for tracking asynchronous operations.
statustask-statusrequiredCurrent task execution state. One of: submitted, working, input-required, completed, canceled, failed, rejected, auth-required, unknown.
messagestringHuman-readable summary of the task result.
timestampstringISO 8601 timestamp when the response was generated.
replayedbooleanSet to true when this response was returned from the idempotency cache rather than from a fresh execution.
adcp_errorerrorTransport-envelope error signal for fatal task failures.
push_notification_configpush-notification-configPush notification configuration for async task updates (A2A and REST protocols).
governance_contextstringGovernance context token issued by the account's governance agent during check_governance.
payloadobjectConceptual grouping for the task-specific response data defined by individual task response schemas (e.g., get-products-response.json, create-media-buy-response.json).
get_brand_identity — Example (json) — source
{
  "brand_id": "daan_janssen",
  "house": { "domain": "lotientertainment.com", "name": "Loti Entertainment" },
  "names": [{"en": "Daan Janssen"}],
  "description": "Dutch Olympic speed skater, 2x gold medalist",
  "industries": ["sports_fitness"],
  "keller_type": "independent",
  "logos": [
    { "url": "https://cdn.lotientertainment.com/janssen/headshot.jpg", "variant": "primary" }
  ],
  "tagline": [{"en-US": "Speed is a choice"}, {"nl-NL": "Snelheid is een keuze"}],
  "available_fields": ["tone", "voice_synthesis", "assets", "rights"]
}

get_rights

get_rights is the AdCP task for discovering licensable talent, music, and stock media.

get_rights request — 12 fields, 2 required
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
querystringrequiredNatural language description of desired rights.
usesright-use[]requiredRights uses being requested.
buyer_brandbrand-refThe buyer's brand.
countriesstring[]Countries where rights are needed (ISO 3166-1 alpha-2).
brand_idstringSearch within a specific brand's rights.
right_typeright-typeFilter by type of rights (talent, music, stock_media, etc.) One of: talent, character, brand_ip, music, stock_media.
include_excludedbooleanInclude filtered-out results in the excluded array with reasons.
paginationpagination-requestPagination parameters for large result sets
contextcontextOpaque correlation data that is echoed unchanged in responses.
extextExtension object for platform-specific, vendor-namespaced parameters.
get_rights response — 13 fields, 1 required
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
context_idstringSession/conversation identifier for tracking related operations across multiple task invocations.
contextcontextPer-request opaque caller-supplied correlation object echoed unchanged in the response.
task_idstringUnique identifier for tracking asynchronous operations.
statustask-statusrequiredCurrent task execution state. One of: submitted, working, input-required, completed, canceled, failed, rejected, auth-required, unknown.
messagestringHuman-readable summary of the task result.
timestampstringISO 8601 timestamp when the response was generated.
replayedbooleanSet to true when this response was returned from the idempotency cache rather than from a fresh execution.
adcp_errorerrorTransport-envelope error signal for fatal task failures.
push_notification_configpush-notification-configPush notification configuration for async task updates (A2A and REST protocols).
governance_contextstringGovernance context token issued by the account's governance agent during check_governance.
payloadobjectConceptual grouping for the task-specific response data defined by individual task response schemas (e.g., get-products-response.json, create-media-buy-response.json).
get_rights — Example (json) — source
{
  "query": "Dutch athlete for restaurant brand in Amsterdam, budget 400 EUR/month",
  "uses": ["likeness", "voice"],
  "buyer_brand": { "domain": "bistro-oranje.nl" },
  "include_excluded": true
}

update_rights

update_rights is the AdCP task for modifying active rights grants.

update_rights request — 12 fields, 2 required
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
rights_idstringrequiredRights grant identifier from acquire_rights response
accountaccount-refAccount context for this update.
end_datestringNew end date for the rights grant (must be >= current end_date).
impression_capintegerNew impression cap for the grant.
pricing_option_idstringSwitch to a different pricing option from the original get_rights offering.
pausedbooleanPause or resume the rights grant.
push_notification_configpush-notification-configWebhook for async update notifications if the update requires approval
idempotency_keystringrequiredClient-generated idempotency key for safe retries.
contextcontextOpaque correlation data that is echoed unchanged in responses.
extextExtension object for platform-specific, vendor-namespaced parameters.
update_rights response — 13 fields, 1 required
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
context_idstringSession/conversation identifier for tracking related operations across multiple task invocations.
contextcontextPer-request opaque caller-supplied correlation object echoed unchanged in the response.
task_idstringUnique identifier for tracking asynchronous operations.
statustask-statusrequiredCurrent task execution state. One of: submitted, working, input-required, completed, canceled, failed, rejected, auth-required, unknown.
messagestringHuman-readable summary of the task result.
timestampstringISO 8601 timestamp when the response was generated.
replayedbooleanSet to true when this response was returned from the idempotency cache rather than from a fresh execution.
adcp_errorerrorTransport-envelope error signal for fatal task failures.
push_notification_configpush-notification-configPush notification configuration for async task updates (A2A and REST protocols).
governance_contextstringGovernance context token issued by the account's governance agent during check_governance.
payloadobjectConceptual grouping for the task-specific response data defined by individual task response schemas (e.g., get-products-response.json, create-media-buy-response.json).
update_rights — Example (json) — source
{
  "rights_id": "janssen_likeness_voice",
  "end_date": "2026-09-30"
}

verify_brand_claim

verify_brand_claim is the unified AdCP brand-protocol task for asking a brand-agent whether a specific claim about its identity is owned, pending, disputed, or licensed.

verify_brand_claim request — 2 fields, 0 required
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
verify_brand_claim response — 13 fields, 1 required
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
context_idstringSession/conversation identifier for tracking related operations across multiple task invocations.
contextcontextPer-request opaque caller-supplied correlation object echoed unchanged in the response.
task_idstringUnique identifier for tracking asynchronous operations.
statustask-statusrequiredCurrent task execution state. One of: submitted, working, input-required, completed, canceled, failed, rejected, auth-required, unknown.
messagestringHuman-readable summary of the task result.
timestampstringISO 8601 timestamp when the response was generated.
replayedbooleanSet to true when this response was returned from the idempotency cache rather than from a fresh execution.
adcp_errorerrorTransport-envelope error signal for fatal task failures.
push_notification_configpush-notification-configPush notification configuration for async task updates (A2A and REST protocols).
governance_contextstringGovernance context token issued by the account's governance agent during check_governance.
payloadobjectConceptual grouping for the task-specific response data defined by individual task response schemas (e.g., get-products-response.json, create-media-buy-response.json).
verify_brand_claim — Example (json) — source
{
  "supported_protocols": ["brand"],
  "supported_tasks": [
    "get_brand_identity",
    "verify_brand_claim"
  ],
  "brand": {
    "verify_brand_claim": {
      "supported_claim_types": ["subsidiary", "parent", "trademark"]
    }
  }
}

verify_brand_claims

verify_brand_claims is the bulk variant of verify_brand_claim — verify many claims against one brand-agent in a single round-trip.

verify_brand_claims request — 3 fields, 1 required
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
claimsclaim_entry[]requiredOrdered list of verification claims.
verify_brand_claims response — 13 fields, 1 required
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
context_idstringSession/conversation identifier for tracking related operations across multiple task invocations.
contextcontextPer-request opaque caller-supplied correlation object echoed unchanged in the response.
task_idstringUnique identifier for tracking asynchronous operations.
statustask-statusrequiredCurrent task execution state. One of: submitted, working, input-required, completed, canceled, failed, rejected, auth-required, unknown.
messagestringHuman-readable summary of the task result.
timestampstringISO 8601 timestamp when the response was generated.
replayedbooleanSet to true when this response was returned from the idempotency cache rather than from a fresh execution.
adcp_errorerrorTransport-envelope error signal for fatal task failures.
push_notification_configpush-notification-configPush notification configuration for async task updates (A2A and REST protocols).
governance_contextstringGovernance context token issued by the account's governance agent during check_governance.
payloadobjectConceptual grouping for the task-specific response data defined by individual task response schemas (e.g., get-products-response.json, create-media-buy-response.json).
verify_brand_claims — Example (json) — source
{
  "supported_protocols": ["brand"],
  "supported_tasks": [
    "get_brand_identity",
    "verify_brand_claim",
    "verify_brand_claims"
  ],
  "brand": {
    "verify_brand_claim": {
      "supported_claim_types": ["subsidiary", "parent", "property", "trademark"]
    }
  }
}

The other 9 AdCP areas

Related