IAB Tech Lab · Schema

Agent

An advertising agent: A2A (agent-to-agent protocol) card plus registry identity. Unifies the seller repo's ``AgentCard`` and ``RegisteredAgent`` (the buyer repo shipped an incompatible card schema; this model is the single replacement for both). ID minting: ``agent_id`` is issued by the AAMP registry (the IAB Tech Lab agent discovery and trust registry) when the agent registers.

CompanyAdvertisingAdTechStandardsProgrammaticReal-Time BiddingConsentPrivacyVideo AdsAgentic AdvertisingNon-Profit

Properties

Name Type Description
agent_id string Registry-issued agent identifier.
agent_type object
audience_capabilities object Audience capability discovery block. Kept as an open object here; the typed model lands with the audience-plan bead.
authentication object
capabilities object
contact object
description string
inventory_types array
name string
organization_id object Registry-issued id of the operating organization.
provider object
skills array
supported_deal_types array DealType wire values the agent supports: 'PG' (Programmatic Guaranteed), 'PD' (Preferred Deal), 'PA' (Private Auction).
tos_url object Terms-of-service URL.
trust_status object Registry-verified trust status. Caps the effective AccessTier; never self-asserted by the agent.
url string A2A service endpoint.
version string
View JSON Schema on GitHub

JSON Schema

iab-tech-lab-agentic-primitive-agent.json Raw ↑
{
  "$defs": {
    "AgentAuthentication": {
      "description": "Authentication requirements for interacting with an agent.",
      "properties": {
        "credentials_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Credentials Url"
        },
        "schemes": {
          "items": {
            "type": "string"
          },
          "title": "Schemes",
          "type": "array"
        }
      },
      "title": "AgentAuthentication",
      "type": "object"
    },
    "AgentCapabilities": {
      "description": "Protocol and feature capabilities of an agent.",
      "properties": {
        "protocols": {
          "items": {
            "type": "string"
          },
          "title": "Protocols",
          "type": "array"
        },
        "push_notifications": {
          "default": false,
          "title": "Push Notifications",
          "type": "boolean"
        },
        "streaming": {
          "default": false,
          "title": "Streaming",
          "type": "boolean"
        }
      },
      "title": "AgentCapabilities",
      "type": "object"
    },
    "AgentProvider": {
      "description": "Organization operating the agent.",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Url"
        }
      },
      "required": [
        "name"
      ],
      "title": "AgentProvider",
      "type": "object"
    },
    "AgentSkill": {
      "description": "A declared capability of an agent.",
      "properties": {
        "description": {
          "title": "Description",
          "type": "string"
        },
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "tags": {
          "items": {
            "type": "string"
          },
          "title": "Tags",
          "type": "array"
        }
      },
      "required": [
        "id",
        "name",
        "description"
      ],
      "title": "AgentSkill",
      "type": "object"
    },
    "AgentType": {
      "description": "Type of agent in the registry.",
      "enum": [
        "buyer",
        "seller",
        "tool_provider",
        "data_provider",
        "other"
      ],
      "title": "AgentType",
      "type": "string"
    },
    "TrustStatus": {
      "description": "Registry-verified trust status of an agent.\n\nDetermines the maximum :class:`AccessTier` an agent can claim. Per the\nremediation plan's registry-native corollary, trust is verified against\nthe AAMP registry (the IAB Tech Lab agent discovery and trust registry),\nnever self-asserted.",
      "enum": [
        "unknown",
        "registered",
        "approved",
        "preferred",
        "blocked"
      ],
      "title": "TrustStatus",
      "type": "string"
    }
  },
  "description": "An advertising agent: A2A (agent-to-agent protocol) card plus registry identity.\n\nUnifies the seller repo's ``AgentCard`` and ``RegisteredAgent`` (the\nbuyer repo shipped an incompatible card schema; this model is the single\nreplacement for both).\n\nID minting: ``agent_id`` is issued by the AAMP registry (the IAB Tech\nLab agent discovery and trust registry) when the agent registers.",
  "properties": {
    "agent_id": {
      "description": "Registry-issued agent identifier.",
      "title": "Agent Id",
      "type": "string"
    },
    "agent_type": {
      "$ref": "#/$defs/AgentType",
      "default": "buyer"
    },
    "audience_capabilities": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audience capability discovery block. Kept as an open object here; the typed model lands with the audience-plan bead.",
      "title": "Audience Capabilities"
    },
    "authentication": {
      "$ref": "#/$defs/AgentAuthentication"
    },
    "capabilities": {
      "$ref": "#/$defs/AgentCapabilities"
    },
    "contact": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Contact"
    },
    "description": {
      "title": "Description",
      "type": "string"
    },
    "inventory_types": {
      "items": {
        "type": "string"
      },
      "title": "Inventory Types",
      "type": "array"
    },
    "name": {
      "title": "Name",
      "type": "string"
    },
    "organization_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Registry-issued id of the operating organization.",
      "title": "Organization Id"
    },
    "provider": {
      "$ref": "#/$defs/AgentProvider"
    },
    "skills": {
      "items": {
        "$ref": "#/$defs/AgentSkill"
      },
      "title": "Skills",
      "type": "array"
    },
    "supported_deal_types": {
      "description": "DealType wire values the agent supports: 'PG' (Programmatic Guaranteed), 'PD' (Preferred Deal), 'PA' (Private Auction).",
      "items": {
        "type": "string"
      },
      "title": "Supported Deal Types",
      "type": "array"
    },
    "tos_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Terms-of-service URL.",
      "title": "Tos Url"
    },
    "trust_status": {
      "$ref": "#/$defs/TrustStatus",
      "default": "unknown",
      "description": "Registry-verified trust status. Caps the effective AccessTier; never self-asserted by the agent."
    },
    "url": {
      "description": "A2A service endpoint.",
      "title": "Url",
      "type": "string"
    },
    "version": {
      "default": "1.0.0",
      "title": "Version",
      "type": "string"
    }
  },
  "required": [
    "agent_id",
    "name",
    "description",
    "url",
    "provider"
  ],
  "title": "Agent",
  "type": "object"
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/iab-tech-lab-agentic-primitive-agent"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.