---
title: "Get community mirror proposal"
method: GET
path: "/api/registry/mirror-proposals/{id}"
tags: ["Community Mirrors"]
---

# Get community mirror proposal

`GET /api/registry/mirror-proposals/{id}`

## Request

- Base URL: `https://agenticadvertising.org`
- URL: `https://agenticadvertising.org/api/registry/mirror-proposals/{id}`
- Auth: one of:
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://agenticadvertising.org/authorize`
    - Token URL: `https://agenticadvertising.org/token`

Fetch a proposal owned by the caller. Registry moderators and AgenticAdvertising.org administrators may fetch any proposal.

## Path parameters

- `id` string, uuid, required

## Response `200`

Community mirror proposal

- CommunityMirrorProposalGetResponse
  - `proposal` CommunityMirrorProposal, required
    - `id` string, uuid, required: Opaque identifier for the proposal.
    - `platform` string, required: Lowercase platform identifier, normalized by the service.
    - `adagents_json` CommunityMirrorAdagentsJson, required
      - `$schema` string, uri
      - `authorized_agents` AdagentsAuthorizedAgent[], required: Always empty for community mirrors; these catalogs never assert sales authorization.
        - `url` string, uri, required: Agent endpoint URL.
        - `authorized_for` string
        - `authorization_type` 'property_ids' | 'property_tags' | 'inline_properties' | 'publisher_properties' | 'signal_ids' | 'signal_tags'
        - `property_ids` string[]
        - `property_tags` string[]
        - `properties` object[]
        - `publisher_properties` object[]
          - `publisher_domain` string
          - `publisher_domains` string[]
          - `selection_type` 'all' | 'by_id' | 'by_tag', required
          - `property_ids` string[]
          - `property_tags` string[]
        - `collections` object[]
          - `publisher_domain` string, required
          - `collection_ids` string[]
        - `placement_ids` string[]
        - `placement_tags` string[]
        - `delegation_type` 'direct' | 'delegated' | 'ad_network'
        - `exclusive` boolean
        - `countries` string[]
        - `effective_from` string
        - `effective_until` string
        - `signal_ids` string[]
        - `signal_tags` string[]
        - `signing_keys` object[]
      - `properties` object[]
      - `catalog_etag` string
      - `formats` object[]
      - `placements` object[]
      - `placement_tags` object
      - `collections` object[]
      - `signals` object[]
      - `signal_tags` object
      - `contact` unknown
      - `superseded_by` string: HTTPS URL for the canonical successor adagents.json document. Clients should re-fetch the successor and update cached mirror references before retiring use of this mirror.
      - `last_updated` string, date-time
    - `catalog_etag` string, nullable, required
    - `superseded_by` string, nullable, required: HTTPS URL.
    - `proposal_digest` string, required: SHA-256 digest that reviewers must echo when approving or rejecting this exact revision.
    - `base_mirror_digest` string, nullable, required: Digest of the public mirror state this proposal was reviewed against, or null when none existed.
    - `status` 'pending' | 'approved' | 'rejected', required
    - `proposed_by_organization_id` string, nullable, required
    - `proposed_by_email` string, email, nullable: Contributor email, returned only to registry moderators and AgenticAdvertising.org administrators.
    - `proposed_at` string, date-time, required
    - `reviewed_at` string, date-time, nullable, required
    - `review_notes` string, nullable, required
    - `published_at` string, date-time, nullable, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required

## Other responses

- `400`: Invalid proposal identifier
- `401`: Authentication required
- `404`: Proposal not found or not visible to the caller
- `429`: Rate limit exceeded
- `500`: Failed to read proposal

## Changes

- **2026-08-30** `4c2e59a07a5b`: 1 breaking
  - the response property `proposal/adagents_json/authorized_agents/items/collections/items/collection_ids` became optional for the status `200`
- **2026-07-31** `eddfd3283c11`: 1 info
  - added the optional property `proposal/proposed_by_email` to the response with the `200` status
- **2026-07-30** `66d4004ebb4c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/adcontextprotocol/apis/agenticadvertising-org-registry-api/changes/api/registry/mirror-proposals/:id/get.md)

---

[API](https://skmtc.dev/adcontextprotocol/apis/agenticadvertising-org-registry-api.md) - [All operations](https://skmtc.dev/adcontextprotocol/apis/agenticadvertising-org-registry-api/llms.txt) - [OpenAPI document](https://skmtc.dev/adcontextprotocol/apis/agenticadvertising-org-registry-api/revisions/d8f6af89f253?raw)
