curl --request GET \
--url https://agenticadvertising.org/api/registry/publisher{
"domain": "voxmedia.com",
"member": {
"slug": "<string>",
"display_name": "<string>",
"membership_tier": "<string>",
"membership_tier_label": "<string>",
"is_founding_member": true
},
"adagents_valid": true,
"hosting": {
"expected_url": "<string>",
"hosted_url": "<string>",
"resolved_url": "<string>",
"last_validated": "<string>",
"last_http_status": 349,
"last_bytes": 1,
"origin_verified_at": "<string>",
"origin_last_checked_at": "<string>"
},
"properties": [
{
"id": "<string>",
"type": "<string>",
"name": "<string>",
"identifiers": [
{
"type": "domain",
"value": "examplepub.com"
}
],
"tags": [
"<string>"
]
}
],
"authorized_agents": [
{
"url": "<string>",
"authorized_for": "<string>",
"properties_authorized": 1,
"properties_total": 1,
"publisher_wide": true
}
],
"manager_domain": "<string>",
"files": {
"adagents_json": {
"expected_url": "<string>",
"registry_url": "<string>"
},
"brand_json": {
"name": "<string>"
}
},
"brand": {
"name": "<string>",
"description": "<string>",
"logo_url": "<string>",
"colors": [
"<string>"
],
"industries": [
"<string>"
]
},
"formats": [
{
"display_name": "<string>",
"format_kind": "<string>",
"format_option_id": "<string>",
"params": {},
"applies_to_property_ids": [
"<string>"
],
"applies_to_property_tags": [
"<string>"
],
"seller_preference": "<string>",
"experimental": true
}
],
"rollup_truncated": {
"cap": 123,
"total_agents": 1
},
"auto_crawl_triggered": true
}Publisher lookup
Given a domain, returns the inventory this entity publishes and which agents it authorizes.
This endpoint is unauthenticated and returns the same response shape for every caller. Compare to /api/registry/operator, where AAO membership tier and profile ownership unlock additional agent visibility (members_only, private). AAO membership does not change the /publisher response today.
Property source precedence: publisher-attested adagents.json properties win first. When no publisher-attested adagents properties exist for the domain, brand.json properties supplement and override lower-trust rows, followed by approved community catalogs, then crawler-discovered rows. Each property carries a source field (adagents_json / brand_json / community / discovered).
Per-agent rollup: each entry in authorized_agents may carry properties_authorized + properties_total + publisher_wide. The rollup is suppressed (fields absent) when (a) properties are entirely brand.json-hydrated — no adagents.json claim has been made — or (b) the publisher has more than 50 authorized agents (above-cap entries are returned without rollup; rollup_truncated is set with { cap, total_agents }). Use /api/registry/publisher/authorization?domain=X&agent=Y for the per-agent count when the index rollup is absent.
curl --request GET \
--url https://agenticadvertising.org/api/registry/publisher{
"domain": "voxmedia.com",
"member": {
"slug": "<string>",
"display_name": "<string>",
"membership_tier": "<string>",
"membership_tier_label": "<string>",
"is_founding_member": true
},
"adagents_valid": true,
"hosting": {
"expected_url": "<string>",
"hosted_url": "<string>",
"resolved_url": "<string>",
"last_validated": "<string>",
"last_http_status": 349,
"last_bytes": 1,
"origin_verified_at": "<string>",
"origin_last_checked_at": "<string>"
},
"properties": [
{
"id": "<string>",
"type": "<string>",
"name": "<string>",
"identifiers": [
{
"type": "domain",
"value": "examplepub.com"
}
],
"tags": [
"<string>"
]
}
],
"authorized_agents": [
{
"url": "<string>",
"authorized_for": "<string>",
"properties_authorized": 1,
"properties_total": 1,
"publisher_wide": true
}
],
"manager_domain": "<string>",
"files": {
"adagents_json": {
"expected_url": "<string>",
"registry_url": "<string>"
},
"brand_json": {
"name": "<string>"
}
},
"brand": {
"name": "<string>",
"description": "<string>",
"logo_url": "<string>",
"colors": [
"<string>"
],
"industries": [
"<string>"
]
},
"formats": [
{
"display_name": "<string>",
"format_kind": "<string>",
"format_option_id": "<string>",
"params": {},
"applies_to_property_ids": [
"<string>"
],
"applies_to_property_tags": [
"<string>"
],
"seller_preference": "<string>",
"experimental": true
}
],
"rollup_truncated": {
"cap": 123,
"total_agents": 1
},
"auto_crawl_triggered": true
}Query Parameters
"voxmedia.com"
Response
Publisher lookup result
"voxmedia.com"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
How the publisher's adagents.json was discovered on the most recent successful crawl or registry write. direct: publisher's own /.well-known/ served the document. authoritative_location: publisher's stub redirected to a canonical URL. ads_txt_managerdomain: manifest was discovered via ads.txt MANAGERDOMAIN delegation. adagents_authoritative: manager file named this publisher through publisher_properties fan-out. community_catalog: moderator-approved community catalog. Null until first crawl after migration 470.
direct, authoritative_location, ads_txt_managerdomain, adagents_authoritative, community_catalog, null The manager domain whose adagents.json was used to authorize this publisher's agents. Non-null only when discovery_method is ads_txt_managerdomain. Matches the MANAGERDOMAIN value from the publisher's ads.txt.
Plain-English summary of what AAO has found at the publisher's origin. The publisher page leads with this — you have a valid adagents.json is the primary signal, not mode === self. Optional in the schema for backwards compatibility; the handler always populates it.
Show child attributes
Show child attributes
Display-oriented brand identity summary from brand.json. The full raw document remains available from the publisher's /.well-known/brand.json or hosted registry URL.
Show child attributes
Show child attributes
Display-oriented summary of top-level adagents.json formats[], normalized for publisher pages and agent discovery clients. Each entry preserves format_kind, format_option_id, and canonical params.
Show child attributes
Show child attributes
Set when the publisher has more authorized agents than the per-agent rollup cap. Above the cap, agents beyond cap are returned without properties_authorized / properties_total / publisher_wide; call /api/registry/publisher/authorization?domain=X&agent=Y for the per-agent count. Lets a caller decide whether to fan out individual calls or stop reading.
Show child attributes
Show child attributes
Set to true when this request triggered a background crawl of the publisher's origin (we hadn't crawled before). The client should refetch in ~3-5s to pick up fresh data. Debounced per-domain so a tight refresh loop won't keep firing crawls.
Was this page helpful?