---
title: "Verify an owner-sold supply path"
method: POST
path: "/api/registry/verify/supply-path"
tags: ["Authorization Lookups"]
---

# Verify an owner-sold supply path

`POST /api/registry/verify/supply-path`

## Request

- Base URL: `https://agenticadvertising.org`
- URL: `https://agenticadvertising.org/api/registry/verify/supply-path`
- Auth: none required

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.

## Request body

- object
  - `owner_domain` string, required: Channel owner's publisher domain — where the canonical collection is declared.
  - `host_domain` string, required: Host publisher domain — where the carrying property (e.g. CTV app) is declared.
  - `agent_url` string, required: Sales agent URL the buyer would transact with. Canonicalized server-side.
  - `collection_id` string: Owner-assigned collection ID. Omit to verify the path at domain level (bulk deals).

## Response `200`

Supply-path verification verdict with per-leg evidence

- object
  - `semantics_version` '1', required: Canonical supply-path evaluator semantics; pinned by the shared supply-path golden vectors.
  - `resolved_collection_id` string: Concrete collection chosen for the complete path, including domain-level inquiries.
  - `state` 'verified_owner_sold' | 'host_delegated' | 'owner_attested' | 'unverified', required
  - `legs` object, required
    - `owner_collection_declared` object, required
      - `ok` boolean, required
      - `failure` string: Machine-readable reason this leg failed. Absent when ok.
      - `detail` string: Human-readable diagnosis for the failing (or notable) leg.
    - `owner_distribution_carriage` object, required
      - `ok` boolean, required
      - `failure` string: Machine-readable reason this leg failed. Absent when ok.
      - `detail` string: Human-readable diagnosis for the failing (or notable) leg.
    - `owner_agent_declared` object, required
      - `ok` boolean, required
      - `failure` string: Machine-readable reason this leg failed. Absent when ok.
      - `detail` string: Human-readable diagnosis for the failing (or notable) leg.
    - `host_authorization` object, required
      - `ok` boolean, required
      - `failure` string: Machine-readable reason this leg failed. Absent when ok.
      - `detail` string: Human-readable diagnosis for the failing (or notable) leg.
    - `inventory_partner_domain` object, required
      - `ok` boolean, required
      - `failure` string: Machine-readable reason this leg failed. Absent when ok.
      - `detail` string: Human-readable diagnosis for the failing (or notable) leg.
  - `owner_domain` string, required
  - `host_domain` string, required
  - `agent_url` string, required
  - `collection_id` string
  - `sources` object, required
    - `owner_fetched_at` string, date-time, nullable, required
    - `host_fetched_at` string, date-time, nullable, required
    - `owner_resolved_url` string, nullable, required
    - `host_resolved_url` string, nullable, required
    - `owner_adagents_url` string, required
    - `host_adagents_url` string, required
    - `cached` boolean, required: true: manifests came from the registry's crawl cache. Re-derive from the URLs above for enforcement.
  - `checked_at` string, required

## Other responses

- `400`: Invalid request body or uncanonicalizable domain

## Changes

- **2026-09-15** `038429fe414f`: 1 warning, 6 info
  - the `collection_id` request property's maxLength was set to `256`
  - added the optional property `resolved_collection_id` to the response with the `200` status
  - added the required property `semantics_version` to the response with the `200` status
  - added the required property `sources/host_fetched_at` to the response with the `200` status
  - …3 more
- **2026-08-30** `4c2e59a07a5b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/adcontextprotocol/apis/agenticadvertising-org-registry-api/changes/api/registry/verify/supply-path/post.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)
