---
title: "AAO directory inverse-lookup"
method: GET
path: "/api/v1/agents/{encodedUrl}/publishers"
tags: ["Authorization Lookups"]
---

# AAO directory inverse-lookup

`GET /api/v1/agents/{encodedUrl}/publishers`

Given a percent-encoded `agent_url`, returns the publishers whose adagents.json authorizes that agent, with provenance (`discovery_method`, `manager_domain`), per-publisher property counts (`properties_authorized`, `properties_total`, scoped to this publisher only — never network-wide), signing-key pin status, and lifecycle state (`authorized` / `revoked`).

Spec: [docs/aao/directory-api.mdx](/docs/aao/directory-api) (adcp#4823). This endpoint is the spec-compliant richer-shape replacement for the legacy `/api/registry/lookup/agent/{agentUrl}/domains`, which returns domain strings only.

## Path parameters

- `encodedUrl` string, required — Percent-encoded agent_url

## Query parameters

- `since` string, date-time — ISO 8601 — return only publishers with last_verified_at ≥ since
- `cursor` string — Opaque pagination cursor returned by a prior response
- `status` string[] — Lifecycle status filter — repeat the key once per value (?status=authorized&status=revoked). Default: authorized. The comma-separated single-value form is rejected with 400.
- `include` string[] — Opt into expanded per-row fields — repeat the key once per value. v1: `properties` adds `property_ids[]` to each PublisherEntry so consumers can run full set-diff against a federated fetch (count-equality is not set-equality). Unknown values return 400. The comma-separated form is rejected with 400.
- `limit` integer — Page size, default 200, max 1000

## Response `200`

Publishers authorizing the agent

- object
  - `agent_url` string, required
  - `directory_indexed_at` string, date-time, nullable, required — Most recent per-publisher refresh in this page. Null on empty pages (no anchor).
  - `publishers` object[], required
    - `publisher_domain` string, required
    - `discovery_method` 'direct' | 'authoritative_location' | 'ads_txt_managerdomain' | 'adagents_authoritative' | 'community_catalog', required
    - `manager_domain` string, nullable, required
    - `properties_authorized` integer, required
    - `properties_total` integer, required
    - `property_ids` string[] — Canonical list of property_id strings the agent is authorized for under this publisher. Present iff the request included `?include=properties`. Same population as `properties_authorized` but surfaced as IDs for set-diff comparison.
    - `signing_keys_pinned` boolean, required
    - `status` 'authorized' | 'revoked', required
    - `last_verified_at` string, date-time, required
  - `next_cursor` string, nullable, required

## Other responses

- `304` — Not modified (If-None-Match matched)
- `400` — Invalid agent_url, cursor, since, or status
- `404` — Directory has never indexed any publisher referencing this agent_url. Distinct from 200 + empty.

---

[API](https://skmtc.net/adcontextprotocol/apis/agenticadvertising-org-registry-api.md) · [All operations](https://skmtc.net/adcontextprotocol/apis/agenticadvertising-org-registry-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/adcontextprotocol/agenticadvertising-org-registry-api/revisions/9ea7fedf54c0/schema)
