AdCP 3.1.13 · Protocol

get_adcp_capabilities

get_adcp_capabilities is an operation in the Protocol area of AdCP 3.1.13. get_adcp_capabilities is the first call a buyer makes to discover an AdCP seller's supported protocols, auth model, version, and feature capabilities.

get_adcp_capabilities request fields

The required column reflects the top-level required array only. The request schema declares no required array, so none of the 5 request fields carries a top-level required flag. A top-level if, anyOf, oneOf or dependencies block can make an unmarked field mandatory in the mode being called, and a flat table cannot render a rule that fires in one mode only. Those branches are visible in the request schema itself.

get_adcp_capabilities request — 5 fields, 0 required
FieldTypeRequiredDescription
adcp_versionstringRelease-precision AdCP version (VERSION.RELEASE, e.g.
adcp_major_versionintegerDEPRECATED in favor of adcp_version (release-precision string).
protocolsstring[]Specific protocols to query capabilities for. One of: media_buy, signals, governance, sponsored_intelligence, creative.
contextcontextOpaque correlation data that is echoed unchanged in responses.
extextExtension object for platform-specific, vendor-namespaced parameters.

get_adcp_capabilities reads. 30 of the 64 registered operations are flagged x-mutates-state and its request schema is not one of them, so repeating the call is side-effect free. AdCP's release notes describe x-mutates-state as a non-normative tooling hint that agents do not validate, so it is the registry's classification of the operation rather than a contract, and it is the only machine-readable answer in the registry to whether an operation is safe to retry.

get_adcp_capabilities response fields

The first 13 rows are the shared protocol envelope from core/version-envelope.json and core/protocol-envelope.json. Only 22 of the 35 rows below belong to get_adcp_capabilities itself, beginning with adcp, supported_protocols and account. 3 fields in the whole response are marked required: status, adcp, supported_protocols.

get_adcp_capabilities response — 35 fields, 3 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.
contextcontextOpaque correlation data that is echoed unchanged in responses.
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).
adcpobjectrequiredCore AdCP protocol information
supported_protocolsstring[]requiredAdCP protocols this agent supports. One of: media_buy, signals, governance, sponsored_intelligence, creative, brand, measurement.
accountobjectAccount management capabilities.
media_buyobjectMedia-buy protocol capabilities.
signalsobjectSignals protocol capabilities.
governanceobjectGovernance protocol capabilities.
sponsored_intelligenceobjectSponsored Intelligence protocol capabilities.
brandobjectBrand protocol capabilities.
creativeobjectCreative protocol capabilities.
request_signingobjectRFC 9421 HTTP Signatures support for incoming requests.
webhook_signingobjectRFC 9421 webhook-signature support for outbound webhook callbacks (top-level peer of request_signing).
identityobjectOperator identity posture — trust-root pointer (`brand_json_url`) plus key-scoping and compromise-response controls the agent operates.
measurementobjectExperimental measurement capability block.
compliance_testingobjectCompliance testing capabilities.
specialismsspecialism[]Optional — specialized compliance claims this agent supports.
extensions_supportedstring[]Extension namespaces this agent supports.
experimental_featuresstring[]Experimental AdCP surfaces this agent implements.
wholesale_feed_versioningobjectConditional-fetch token capabilities for get_products and get_signals.
last_updatedstringISO 8601 timestamp of when capabilities were last updated.
errorserror[]Task-specific errors and warnings
extextExtension object for platform-specific, vendor-namespaced parameters.
wholesale_feed_webhooksobjectPer-agent wholesale product-feed and wholesale signals-feed webhook capabilities.

The shared protocol envelope

62 of AdCP's 64 registered operations carry every one of the 13 envelope fields. report_plan_outcome and check_governance compose core/version-envelope.json only, so they carry the version pair and none of the task fields.

status resolves to enums/task-status.json, which admits nine values: submitted, working, input-required, completed, canceled, failed, rejected, auth-required, unknown. The envelope marks it required on every response, and a synchronous call emits completed rather than omitting it. When it returns submitted or working instead, task_id is the polling handle and push_notification_config is the webhook the agent echoes back to confirm the callback. Webhooks are A2A and REST only: MCP sends progress notifications and defines no webhook.

payload appears in the response field table typed object. core/protocol-envelope.json describes it as a documentary construct and states that it is not a required wire field. Body fields are siblings of the envelope fields: on MCP at the root of the tool response, on A2A in task.artifacts[0].parts[].DataPart, on REST at the root of the JSON body. An accessor that reads response.payload finds nothing there.

Field lists are not published over the wire

AdCP's integration guide, docs/protocol/calling-an-agent.mdx, states that its MCP servers no longer publish per-tool parameter schemas: a tools/list call returns an empty properties object for every tool, and the guide directs clients not to infer shape from it. A client author reads the schema registry instead of the tool list.

Example get_adcp_capabilities calls

The field tables above come from the 3.1.13 schema release and these blocks come from the documentation tree, which is versioned separately, so the two can disagree.

Example (json) — wire payload — source
{
  "adcp": {
    "major_versions": [3],
    "idempotency": { "supported": true, "replay_ttl_seconds": 86400 }
  }
}
Example (json) — wire payload — source
{
  "adcp": {
    "major_versions": [3],
    "idempotency": { "supported": false }
  }
}
Example (json) — wire payload — source
{
  "adcp": {
    "major_versions": [3],
    "idempotency": { "supported": true, "replay_ttl_seconds": 86400 },
    "capability_changes": {
      "capabilities_version": "rev_20260702_091455",
      "last_modified": "2026-07-02T09:14:55Z",
      "cache_ttl_seconds": 3600,
      "notifications": {
        "supported": true,
        "registration_task": "sync_agent_notification_configs",
        "event_types": ["capabilities.changed"],
        "coalescence_window_seconds": 300
      }
    }
  }
}

Frequently asked

What does get_adcp_capabilities do?
get_adcp_capabilities is the first call a buyer makes to discover an AdCP seller's supported protocols, auth model, version, and feature capabilities.
Which fields does a get_adcp_capabilities request require?
The published 3.1.13 schema declares no required array on the get_adcp_capabilities request. Constraints can still apply: a top-level if, anyOf, oneOf or dependencies rule fires in one mode only, and a flat field table cannot render it.
Which AdCP version do these get_adcp_capabilities field tables describe?
AdCP 3.1.13, the current published release, last updated 2026-08-11. The documentation tree is versioned separately from the schema tree in the same repository, so a doc page and a schema file can describe the same field differently.

Other operations in Protocol

Related