> ## Documentation Index
> Fetch the complete documentation index at: https://agenticadvertisingorg-snap-format-preview-links.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Operator lookup

> Given a domain, returns the agents this entity operates and which publishers trust them.

**Response shape is auth-aware.** Anonymous callers see only `public` agents. Authenticated callers on an AAO membership tier with API access also see `members_only` agents. Profile owners (callers whose org owns the queried domain) additionally see `private` agents. This is the primary mechanism by which AAO membership unlocks deeper registry visibility.

**`scope` bucket filter.** Callers can opt INTO a single visibility bucket (or the full union) regardless of what their auth would otherwise unlock — useful for picker UIs that want exactly one slice (e.g. anonymous-equivalent, members-only catalog, owner's private drafts). `scope` only narrows; it never escalates (e.g. `scope=member` on an explorer or anonymous caller silently returns public only).

**Member level visibility.** When the profile owner has set their member card to public (`is_public=true`), the `member` object additionally carries `is_founding_member` (boolean) plus `membership_tier` (raw enum) and `membership_tier_label` (e.g. `Professional`, `Partner`, `Leader`) when the org has a resolvable tier. Founding Member is orthogonal to tier — founding orgs typically display both. For private profiles these fields are absent.



## OpenAPI

````yaml /static/openapi/registry.yaml get /api/registry/operator
openapi: 3.1.0
info:
  title: AgenticAdvertising.org Registry API
  description: >-
    REST API for the AgenticAdvertising.org registry. Resolve brands,

    discover properties, look up agents, and validate authorization in the

    AdCP ecosystem.


    Most endpoints are public and require no authentication. Endpoints marked

    with a lock icon accept either an organization API key or a user JWT

    obtained via the OAuth 2.1 flow — see
    [Authentication](https://agenticadvertising.org/docs/registry/index#authentication).


    **Base URL:** `https://agenticadvertising.org`
  version: 1.0.0
  contact:
    name: AgenticAdvertising.org
    url: https://agenticadvertising.org
servers:
  - url: https://agenticadvertising.org
    description: Production
security: []
tags:
  - name: Onboarding
    description: >-
      Explicitly bootstrap a third-party integration into the AAO registry. Most
      callers don't need this tag — `POST /api/me/agents` auto-creates the org
      (for fresh users) and the member profile (for first-time agent
      registration) without a separate round trip. Use `POST /api/organizations`
      only when you need to override the auto-derived org name / company_type /
      revenue_tier. Tier transitions happen via the billing flow only; the
      Stripe webhook is the sole writer of `organizations.membership_tier`.
  - name: Member Agents
    description: >-
      Register, list, update, and remove agents on the caller's organization
      member profile. Authenticated programmatic surface for CI / scripts that
      don't want to round-trip the full member profile.
  - name: Brand Resolution
    description: Resolve advertiser domains to canonical brand identities.
  - name: Property Resolution
    description: >-
      Resolve publisher domains to their property configurations and authorized
      agents.
  - name: Agent Discovery
    description: >-
      Browse the federated agent network, search agent inventory profiles,
      publisher index, and registry statistics.
  - name: Change Feed
    description: Poll cursor-based registry change events for local sync.
  - name: Lookups & Authorization
    description: >-
      Look up agents by domain or property, and validate ad-serving
      authorization.
  - name: Validation Tools
    description: >-
      Validate publisher adagents.json files and generate compliant
      configurations.
  - name: Community Mirrors
    description: >-
      Publish, fetch, list, and retire catalog-only adagents.json mirrors for
      platforms that have not adopted AdCP.
  - name: Search
    description: Cross-entity search across brands, publishers, agents, and properties.
  - name: Agent Probing
    description: >-
      Connect to live agents and inspect their capabilities, formats, and
      inventory.
  - name: Brand Discovery
    description: Discover and crawl brand.json files across domains.
  - name: Agent Compliance
    description: Agent compliance status, storyboard test results, and compliance history.
  - name: Policy Registry
    description: >-
      Browse, resolve, and contribute governance policies for campaign
      compliance.
paths:
  /api/registry/operator:
    get:
      tags:
        - Authorization Lookups
      summary: Operator lookup
      description: >-
        Given a domain, returns the agents this entity operates and which
        publishers trust them.


        **Response shape is auth-aware.** Anonymous callers see only `public`
        agents. Authenticated callers on an AAO membership tier with API access
        also see `members_only` agents. Profile owners (callers whose org owns
        the queried domain) additionally see `private` agents. This is the
        primary mechanism by which AAO membership unlocks deeper registry
        visibility.


        **`scope` bucket filter.** Callers can opt INTO a single visibility
        bucket (or the full union) regardless of what their auth would otherwise
        unlock — useful for picker UIs that want exactly one slice (e.g.
        anonymous-equivalent, members-only catalog, owner's private drafts).
        `scope` only narrows; it never escalates (e.g. `scope=member` on an
        explorer or anonymous caller silently returns public only).


        **Member level visibility.** When the profile owner has set their member
        card to public (`is_public=true`), the `member` object additionally
        carries `is_founding_member` (boolean) plus `membership_tier` (raw enum)
        and `membership_tier_label` (e.g. `Professional`, `Partner`, `Leader`)
        when the org has a resolvable tier. Founding Member is orthogonal to
        tier — founding orgs typically display both. For private profiles these
        fields are absent.
      operationId: lookupOperator
      parameters:
        - schema:
            type: string
            example: pubmatic.com
          required: true
          name: domain
          in: query
        - schema:
            type: string
            enum:
              - public
              - member
              - private
              - all
            description: >-
              Visibility bucket filter for returned agents. One value per
              agent-visibility enum value plus a catch-all. Each bucket is still
              gated by auth — `scope` can only narrow, never escalate.


              - `public` → only `visibility=public` agents.

              - `member` → public + members_only (members_only is gated on
              caller's tier; anonymous or explorer-tier callers silently fall
              through to public-only rather than 403).

              - `private` → only `visibility=private`. Private agents are
              visible only to the profile owner; non-owners get an empty list.

              - Omitted or `all` → tier-aware full unlock: public + members_only
              for API-tier members + private for the profile owner.


              Unknown values return 400 — a silent coerce to `all` could leak
              data the caller explicitly tried to scope away from.
            example: member
          required: false
          description: >-
            Visibility bucket filter for returned agents. One value per
            agent-visibility enum value plus a catch-all. Each bucket is still
            gated by auth — `scope` can only narrow, never escalate.


            - `public` → only `visibility=public` agents.

            - `member` → public + members_only (members_only is gated on
            caller's tier; anonymous or explorer-tier callers silently fall
            through to public-only rather than 403).

            - `private` → only `visibility=private`. Private agents are visible
            only to the profile owner; non-owners get an empty list.

            - Omitted or `all` → tier-aware full unlock: public + members_only
            for API-tier members + private for the profile owner.


            Unknown values return 400 — a silent coerce to `all` could leak data
            the caller explicitly tried to scope away from.
          name: scope
          in: query
      responses:
        '200':
          description: Operator lookup result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperatorLookupResult'
        '400':
          description: Missing or invalid domain, or unknown scope value
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    OperatorLookupResult:
      type: object
      properties:
        domain:
          type: string
          example: pubmatic.com
        member:
          type:
            - object
            - 'null'
          properties:
            slug:
              type: string
            display_name:
              type: string
            membership_tier:
              type: string
              description: >-
                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:
              type: string
              description: >-
                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:
              type: boolean
              description: >-
                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`).
        agents:
          type: array
          items:
            type: object
            properties:
              url:
                type: string
              name:
                type: string
              type:
                type: string
                enum:
                  - brand
                  - rights
                  - measurement
                  - governance
                  - creative
                  - sales
                  - buying
                  - signals
                  - unknown
              authorized_by:
                type: array
                items:
                  type: object
                  properties:
                    publisher_domain:
                      type: string
                    authorized_for:
                      type: string
                    source:
                      type: string
                      enum:
                        - adagents_json
                        - agent_claim
                  required:
                    - publisher_domain
                    - source
            required:
              - url
              - name
              - type
              - authorized_by
      required:
        - domain
        - member
        - agents
    Error:
      type: object
      properties:
        error:
          type: string
      required:
        - error

````