---
title: "List agents"
method: GET
path: "/api/registry/agents"
tags: ["Agent Discovery"]
---

# List agents

`GET /api/registry/agents`

List all agents in the registry. Optionally enrich with health checks, capabilities, and property summaries via query parameters. Measurement-vendor filters (`metric_id`, `accreditation`, `q`) imply `type=measurement` when `type` is unset; an explicit `type` other than `measurement` returns 400.

## Query parameters

- `type` 'brand' | 'rights' | 'measurement' | 'governance' | 'creative' | 'sales' | 'buying' | 'signals' | 'unknown'
- `health` 'true'
- `capabilities` 'true'
- `properties` 'true'
- `compliance` 'true'
- `metric_id` union — Measurement-vendor filter: exact match on `measurement.metrics[].metric_id`. Repeatable (each value is OR'd within the param, AND'd with other filters). Implies `type=measurement`.
  - string
  - string[]
- `accreditation` union — Measurement-vendor filter: exact match on `measurement.metrics[].accreditations[].accrediting_body` (e.g. `MRC`, `JIC`, `ARF`). Repeatable. Implies `type=measurement`. Accreditation claims are vendor-asserted; AAO does not independently verify (`verified_by_aao` is always `false` in the response).
  - string
  - string[]
- `q` string — Measurement-vendor filter: case-insensitive substring match against `measurement.metrics[].metric_id`. v1 scope: metric_id only (description/standard search is a follow-up). Max 64 chars; SQL wildcard characters are escaped. Implies `type=measurement`.
- `verification_mode` string[] — Filter to agents whose active badge covers the given verification axis. Repeat the parameter for AND semantics: ?verification_mode=spec&verification_mode=live returns only agents verified on both axes.
- `verified` 'true' — When true, filter to agents that hold any active verification badge.

## Response `200`

Agent list

- object
  - `agents` FederatedAgentWithDetails[], required
    - `url` string, required
    - `name` string, required
    - `type` 'brand' | 'rights' | 'measurement' | 'governance' | 'creative' | 'sales' | 'buying' | 'signals' | 'unknown', required
    - `protocol` 'mcp' | 'a2a'
    - `description` string
    - `mcp_endpoint` string
    - `contact` object
      - `name` string, required
      - `email` string, required
      - `website` string, required
    - `added_date` string
    - `member` object — AAO member that owns this agent record. The registry contains only agents that members have explicitly enrolled on their member profile.
      - `slug` string
      - `display_name` string
      - `membership_tier` string — Raw AAO membership tier enum (e.g. `individual_professional`, `company_leader`). Present only when the profile owner has set their member card to public (`is_public=true`) AND the org has a resolvable tier. Absent for private profiles and for orgs without an active tier-bearing subscription.
      - `membership_tier_label` string — Human-readable label for `membership_tier` (e.g. `Professional`, `Partner`, `Leader`). Matches the AAO pricing page. Use this for UI display; the raw enum is for programmatic gating. Presence rules match `membership_tier`.
      - `is_founding_member` boolean — True when the profile owner carries the Founding Member badge (joined before the founding-cohort cutoff). Surfaced when the profile owner has set their member card to public (`is_public=true`). Absent for private profiles. Founding Member is orthogonal to tier — founding orgs typically display both (e.g. Scope3 shows `Partner` + `Founding Member`).
    - `health` AgentHealth
      - `online` boolean, required
      - `checked_at` string, required
      - `response_time_ms` number
      - `tools_count` integer
      - `resources_count` integer
      - `error` string
    - `stats` AgentStats
      - `property_count` integer
      - `publisher_count` integer
      - `publishers` string[]
      - `creative_formats` integer
    - `capabilities` AgentCapabilities
      - `tools_count` integer, required
      - `tools` object[]
        - `name` string, required
        - `description` string, required
      - `standard_operations` object
        - `can_search_inventory` boolean, required
        - `can_get_availability` boolean, required
        - `can_reserve_inventory` boolean, required
        - `can_get_pricing` boolean, required
        - `can_create_order` boolean, required
        - `can_list_properties` boolean, required
      - `creative_capabilities` object
        - `formats_supported` string[], required
        - `can_generate` boolean, required
        - `can_validate` boolean, required
        - `can_preview` boolean, required
      - `signals_capabilities` object
        - `audience_types` string[], required
        - `can_match` boolean, required
        - `can_activate` boolean, required
        - `can_get_signals` boolean, required
      - `measurement_capabilities` object — Vendor-published per-metric catalog for measurement agents. Populated when the crawler successfully fetched and validated `get_adcp_capabilities.measurement` (AdCP 3.x). Mirrors the protocol shape — see the AdCP `get_adcp_capabilities` reference for field semantics.
        - `metrics` object[], required
          - `metric_id` string, required
          - `standard_reference` string
          - `accreditations` object[]
            - `accrediting_body` string, required
            - `certification_id` string
            - `valid_until` string
            - `evidence_url` string
            - `verified_by_aao` false, required — Always `false` — accreditation claims are vendor-asserted. AAO does not independently verify; renderers should mark these as vendor claims.
          - `unit` string
          - `description` string
          - `methodology_url` string
          - `methodology_version` string
    - `compliance` AgentCompliance
      - `status` 'passing' | 'degraded' | 'failing' | 'unknown', required
      - `requested_compliance_target` string, nullable — Requested compliance target before alias resolution, e.g. 3.0 or 3.1-beta.
      - `adcp_version` string, nullable — Concrete AdCP compliance bundle version used for the latest run, e.g. 3.0.12.
      - `lifecycle_stage` 'development' | 'testing' | 'production' | 'deprecated', required
      - `tracks` object, required
      - `track_details` object[] — Latest-run per-track summary. Skipped tracks with has_coverage_gap_skip=true represent selected coverage gaps, such as missing_test_controller.
        - `track` string, required
        - `status` string, required
        - `scenario_count` integer, required
        - `passed_count` integer, required
        - `duration_ms` number, required
        - `has_coverage_gap_skip` boolean
      - `streak_days` integer, required
      - `last_checked_at` string, nullable, required
      - `headline` string, nullable, required
      - `monitoring_paused` boolean
      - `check_interval_hours` integer
      - `verified` boolean
      - `verified_roles` string[] — AdCP protocols the agent is AAO Verified for (e.g. media-buy, creative). Matches enums/adcp-protocol.json.
    - `publisher_domains` string[]
    - `property_summary` PropertySummary
      - `total_count` integer, required
      - `count_by_type` object, required
      - `tags` string[], required
      - `publisher_count` integer, required
  - `count` integer, required

## Other responses

- `400` — Invalid query parameter

---

[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/versions/9ea7fedf54c0/schema)
