> ## Documentation Index
> Fetch the complete documentation index at: https://docs.adcontextprotocol.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Search agent inventory profiles

> Search agents by inventory profile — channels, markets, content categories, property types, and more. Filters use AND across dimensions and OR within a dimension. Results are ranked by relevance score.



## OpenAPI

````yaml /static/openapi/registry.yaml get /api/registry/agents/search
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/agents/search:
    get:
      tags:
        - Agent Discovery
      summary: Search agent inventory profiles
      description: >-
        Search agents by inventory profile — channels, markets, content
        categories, property types, and more. Filters use AND across dimensions
        and OR within a dimension. Results are ranked by relevance score.
      operationId: searchAgentProfiles
      parameters:
        - schema:
            type: string
            description: Comma-separated channel filter
            example: ctv,olv
          required: false
          description: Comma-separated channel filter
          name: channels
          in: query
        - schema:
            type: string
            description: Comma-separated property type filter
            example: ctv_app,website
          required: false
          description: Comma-separated property type filter
          name: property_types
          in: query
        - schema:
            type: string
            description: Comma-separated market/country code filter
            example: US,GB
          required: false
          description: Comma-separated market/country code filter
          name: markets
          in: query
        - schema:
            type: string
            description: Comma-separated IAB content category filter
            example: IAB-7,IAB-7-1
          required: false
          description: Comma-separated IAB content category filter
          name: categories
          in: query
        - schema:
            type: string
            description: Comma-separated tag filter
            example: premium
          required: false
          description: Comma-separated tag filter
          name: tags
          in: query
        - schema:
            type: string
            description: Comma-separated delivery type filter
            example: guaranteed,programmatic
          required: false
          description: Comma-separated delivery type filter
          name: delivery_types
          in: query
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
            description: Require TMP support
          required: false
          description: Require TMP support
          name: has_tmp
          in: query
        - schema:
            type:
              - integer
              - 'null'
            minimum: 0
            description: Minimum number of properties in inventory
          required: false
          description: Minimum number of properties in inventory
          name: min_properties
          in: query
        - schema:
            type: string
            description: Pagination cursor from a previous response
          required: false
          description: Pagination cursor from a previous response
          name: cursor
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 200
            description: Max results per page (default 50, max 200)
          required: false
          description: Max results per page (default 50, max 200)
          name: limit
          in: query
      responses:
        '200':
          description: Search results ranked by relevance
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        agent_url:
                          type: string
                          format: uri
                        channels:
                          type: array
                          items:
                            type: string
                        property_types:
                          type: array
                          items:
                            type: string
                        markets:
                          type: array
                          items:
                            type: string
                        categories:
                          type: array
                          items:
                            type: string
                        tags:
                          type: array
                          items:
                            type: string
                        delivery_types:
                          type: array
                          items:
                            type: string
                        format_ids:
                          type: array
                          items: {}
                          description: Creative format identifiers supported by this agent
                        property_count:
                          type: integer
                        publisher_count:
                          type: integer
                        has_tmp:
                          type: boolean
                        category_taxonomy:
                          type:
                            - string
                            - 'null'
                        relevance_score:
                          type: number
                        matched_filters:
                          type: array
                          items:
                            type: string
                        updated_at:
                          type: string
                          format: date-time
                      required:
                        - agent_url
                        - channels
                        - property_types
                        - markets
                        - categories
                        - tags
                        - delivery_types
                        - format_ids
                        - property_count
                        - publisher_count
                        - has_tmp
                        - category_taxonomy
                        - relevance_score
                        - matched_filters
                        - updated_at
                  cursor:
                    type:
                      - string
                      - 'null'
                  has_more:
                    type: boolean
                required:
                  - results
                  - cursor
                  - has_more
        '400':
          description: Invalid cursor or parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearerAuth: []
        - oauth2: []
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Bearer token in the `Authorization` header. Two token types are
        accepted:


        - **Organization API key** (`sk_...`) issued via the dashboard.
        Org-scoped, long-lived, for server-to-server use.

        - **User JWT** obtained via the OAuth 2.1 authorization code flow with
        PKCE. User-scoped, short-lived. Discover the authorization server at
        `/.well-known/oauth-authorization-server` and the protected-resource
        metadata at `/.well-known/oauth-protected-resource/api`.
    oauth2:
      type: oauth2
      description: >-
        OAuth 2.1 authorization code flow with PKCE. Users authenticate via
        AuthKit and clients receive a Bearer JWT that authorizes both the MCP
        endpoint and this REST API. Dynamic client registration is supported at
        `/register`.
      flows:
        authorizationCode:
          authorizationUrl: https://agenticadvertising.org/authorize
          tokenUrl: https://agenticadvertising.org/token
          refreshUrl: https://agenticadvertising.org/token
          scopes:
            openid: User identifier
            profile: User profile information
            email: User email address

````