> ## 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.

# Verify an owner-sold supply path

> Joins the owner's and host's cached adagents.json manifests (plus the host's ads.txt/app-ads.txt inventorypartnerdomain lines when needed) and returns the verification state of one owner-sold carriage path, leg by leg. States follow the documented ladder: verified_owner_sold (host adagents.json authorizes the agent for the host property, collection-scoped), host_delegated (ads.txt inventorypartnerdomain + owner-side declarations, policy-gated), owner_attested (owner distribution claim only — discovery, never authorization), unverified. The response is evidence-bearing so callers can reproduce the verdict from the authoritative files; the registry cache is a convenience, not the trust root. For a live-fetch check of a file you just changed, use POST /api/adagents/validate.



## OpenAPI

````yaml https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.2.0-beta.11/static/openapi/registry.yaml post /api/registry/verify/supply-path
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: >-
      Propose, review, 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.
  - name: Property Catalog
    description: >-
      Contribute facts to the property fact-graph: resolve identifiers to stable
      property_rids (which also contributes them, with provenance) and dispute
      catalog claims.
paths:
  /api/registry/verify/supply-path:
    post:
      tags:
        - Authorization Lookups
      summary: Verify an owner-sold supply path
      description: >-
        Joins the owner's and host's cached adagents.json manifests (plus the
        host's ads.txt/app-ads.txt inventorypartnerdomain lines when needed) and
        returns the verification state of one owner-sold carriage path, leg by
        leg. States follow the documented ladder: verified_owner_sold (host
        adagents.json authorizes the agent for the host property,
        collection-scoped), host_delegated (ads.txt inventorypartnerdomain +
        owner-side declarations, policy-gated), owner_attested (owner
        distribution claim only — discovery, never authorization), unverified.
        The response is evidence-bearing so callers can reproduce the verdict
        from the authoritative files; the registry cache is a convenience, not
        the trust root. For a live-fetch check of a file you just changed, use
        POST /api/adagents/validate.
      operationId: verifySupplyPath
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                owner_domain:
                  type: string
                  minLength: 1
                  description: >-
                    Channel owner's publisher domain — where the canonical
                    collection is declared.
                host_domain:
                  type: string
                  minLength: 1
                  description: >-
                    Host publisher domain — where the carrying property (e.g.
                    CTV app) is declared.
                agent_url:
                  type: string
                  minLength: 1
                  description: >-
                    Sales agent URL the buyer would transact with. Canonicalized
                    server-side.
                collection_id:
                  type: string
                  minLength: 1
                  description: >-
                    Owner-assigned collection ID. Omit to verify the path at
                    domain level (bulk deals).
              required:
                - owner_domain
                - host_domain
                - agent_url
      responses:
        '200':
          description: Supply-path verification verdict with per-leg evidence
          content:
            application/json:
              schema:
                type: object
                properties:
                  state:
                    type: string
                    enum:
                      - verified_owner_sold
                      - host_delegated
                      - owner_attested
                      - unverified
                  legs:
                    type: object
                    properties:
                      owner_collection_declared:
                        type: object
                        properties:
                          ok:
                            type: boolean
                          failure:
                            type: string
                            description: >-
                              Machine-readable reason this leg failed. Absent
                              when ok.
                          detail:
                            type: string
                            description: >-
                              Human-readable diagnosis for the failing (or
                              notable) leg.
                        required:
                          - ok
                        additionalProperties: {}
                      owner_distribution_carriage:
                        type: object
                        properties:
                          ok:
                            type: boolean
                          failure:
                            type: string
                            description: >-
                              Machine-readable reason this leg failed. Absent
                              when ok.
                          detail:
                            type: string
                            description: >-
                              Human-readable diagnosis for the failing (or
                              notable) leg.
                        required:
                          - ok
                        additionalProperties: {}
                      owner_agent_declared:
                        type: object
                        properties:
                          ok:
                            type: boolean
                          failure:
                            type: string
                            description: >-
                              Machine-readable reason this leg failed. Absent
                              when ok.
                          detail:
                            type: string
                            description: >-
                              Human-readable diagnosis for the failing (or
                              notable) leg.
                        required:
                          - ok
                        additionalProperties: {}
                      host_authorization:
                        type: object
                        properties:
                          ok:
                            type: boolean
                          failure:
                            type: string
                            description: >-
                              Machine-readable reason this leg failed. Absent
                              when ok.
                          detail:
                            type: string
                            description: >-
                              Human-readable diagnosis for the failing (or
                              notable) leg.
                        required:
                          - ok
                        additionalProperties: {}
                      inventory_partner_domain:
                        type: object
                        properties:
                          ok:
                            type: boolean
                          failure:
                            type: string
                            description: >-
                              Machine-readable reason this leg failed. Absent
                              when ok.
                          detail:
                            type: string
                            description: >-
                              Human-readable diagnosis for the failing (or
                              notable) leg.
                        required:
                          - ok
                        additionalProperties: {}
                    required:
                      - owner_collection_declared
                      - owner_distribution_carriage
                      - owner_agent_declared
                      - host_authorization
                      - inventory_partner_domain
                  owner_domain:
                    type: string
                  host_domain:
                    type: string
                  agent_url:
                    type: string
                  collection_id:
                    type: string
                  sources:
                    type: object
                    properties:
                      owner_adagents_url:
                        type: string
                      host_adagents_url:
                        type: string
                      cached:
                        type: boolean
                        description: >-
                          true: manifests came from the registry's crawl cache.
                          Re-derive from the URLs above for enforcement.
                    required:
                      - owner_adagents_url
                      - host_adagents_url
                      - cached
                  checked_at:
                    type: string
                required:
                  - state
                  - legs
                  - owner_domain
                  - host_domain
                  - agent_url
                  - sources
                  - checked_at
                additionalProperties: {}
        '400':
          description: Invalid request body or uncanonicalizable domain

````