{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://brandedcontent.dev/schema/agents.json",
  "title": "Agentic Branded Content — known AI agents",
  "description": "Reference list of AI-agent User-Agent markers, by vendor family and purpose. The publisher's edge matches a request's User-Agent against these markers (word-boundary, case-insensitive); a match is treated as an AI agent and triggers a card request. Markers are HTTP User-Agent strings that actually appear in request headers — not robots.txt control tokens (e.g. Google-Extended, Applebot-Extended) that never identify a live fetch. Conservative by design: only well-known, vendor-published markers. purpose drives differentiated pricing: query > search > training by intent.",
  "version": "0.1",
  "updated": "2026-06-10",
  "purposes": {
    "training": "Bulk crawl building a training corpus (low intent).",
    "query": "Real-time fetch on behalf of a user asking now (high intent).",
    "search": "Building or refreshing an AI search index (medium intent).",
    "unknown": "Mixed-purpose or undocumented."
  },
  "agents": [
    { "marker": "GPTBot",               "family": "openai",      "purpose": "training" },
    { "marker": "ChatGPT-User",         "family": "openai",      "purpose": "query" },
    { "marker": "OAI-SearchBot",        "family": "openai",      "purpose": "search" },
    { "marker": "ClaudeBot",            "family": "anthropic",   "purpose": "training" },
    { "marker": "Claude-User",          "family": "anthropic",   "purpose": "query" },
    { "marker": "Claude-SearchBot",     "family": "anthropic",   "purpose": "search" },
    { "marker": "Google-CloudVertexBot","family": "google",      "purpose": "search" },
    { "marker": "PerplexityBot",        "family": "perplexity",  "purpose": "search" },
    { "marker": "Perplexity-User",      "family": "perplexity",  "purpose": "query" },
    { "marker": "CCBot",                "family": "commoncrawl", "purpose": "training" },
    { "marker": "Meta-ExternalAgent",   "family": "meta",        "purpose": "training" },
    { "marker": "meta-externalfetcher", "family": "meta",        "purpose": "query" },
    { "marker": "Bytespider",           "family": "bytedance",   "purpose": "training" },
    { "marker": "YouBot",               "family": "you",         "purpose": "search" },
    { "marker": "Diffbot",              "family": "diffbot",     "purpose": "training" },
    { "marker": "MistralAI-User",       "family": "mistral",     "purpose": "query" },
    { "marker": "Amazonbot",            "family": "amazon",      "purpose": "unknown" }
  ]
}
