Verifiability Layer

Public data API

Three open JSON endpoints back every visible statistic on grow.contact. Each response carries an inline $schema URL and validates against a published JSON Schema (Draft 2020-12). All datasets are released under CC BY 4.0.

Quickstart

Every dataset is a single GET with no auth required. CORS is open (*). Responses are cached at the edge so AI crawlers get sub-100ms TTFB.

# Live verifiable claims
curl https://grow.contact/api/public/data/claims.json

# Headline stats (re-derived per request)
curl https://grow.contact/api/public/data/stats.json

# Leaderboard, filtered + paginated
curl 'https://grow.contact/api/public/data/leaderboard.json?category=models&limit=25'

# Validate against schema
curl https://grow.contact/api/public/data/schemas/claims.schema.json | jq .

Verifiable claims registry

Array of claim objects keyed by stable fragment id (e.g. home-stat-83). Each claim maps a visible value on the site to a source URL, observation date, and the page anchors where it renders.

Live
/api/public/data/claims.json
Q2 2026 archive
/data/q2-2026/claims.json (frozen, immutable cache)
JSON Schema
/api/public/data/schemas/claims.schema.json
Cache
max-age=300, s-maxage=900, stale-while-revalidate=86400
License
CC BY 4.0

Sample response

{
  "$schema": "https://grow.contact/api/public/data/schemas/claims.schema.json",
  "standard": "geo-standard@2026.07",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "count": 11,
  "claims": [
    {
      "id": "home-stat-83",
      "value": "83%",
      "label": "Share of AI Overview citations from pages outside the organic top 10",
      "source": "BrightEdge AI Overview tracking study, 2025",
      "source_url": "https://www.brightedge.com/resources/research-reports/ai-overviews",
      "date_observed": "2025-12-01",
      "unit": "PERCENT",
      "page_anchors": ["https://grow.contact/#home-stat-83"]
    }
  ]
}

Headline stats

Recomputes on every request from the live Agent Readability Leaderboard. All percentages are integers 0–100; scores are integers 0–100.

Live
/api/public/data/stats.json
Q2 2026 archive
/data/q2-2026/stats.json (frozen, immutable cache)
JSON Schema
/api/public/data/schemas/stats.schema.json
Cache
max-age=300, s-maxage=900, stale-while-revalidate=86400
License
CC BY 4.0

Sample response

{
  "$schema": "https://grow.contact/api/public/data/schemas/stats.schema.json",
  "sample_size": 390,
  "stats": {
    "total": 390,
    "avg_score": 62,
    "median_score": 64,
    "agent_native_pct": 18,
    "opaque_pct": 23,
    "missing_llms_txt_pct": 71,
    "weak_jsonld_pct": 44,
    "top5": [{ "name": "Anthropic", "domain": "anthropic.com", "score": 94 }],
    "citable_headlines": ["71% of 390 AI companies are missing or under-serving llms.txt."]
  }
}

Agent Readability Leaderboard

Ranked entries with the five geo-standard sub-signals. Supports ?category=infra|models|agents|devtools and ?limit=1..1000.

Live
/api/public/data/leaderboard.json
Q2 2026 archive
/data/q2-2026/leaderboard.json (frozen, immutable cache)
JSON Schema
/api/public/data/schemas/leaderboard.schema.json
Cache
max-age=300, s-maxage=900, stale-while-revalidate=86400
License
CC BY 4.0

Sample response

{
  "$schema": "https://grow.contact/api/public/data/schemas/leaderboard.schema.json",
  "counts": { "total": 390, "returned": 390 },
  "entries": [
    {
      "rank": 1,
      "name": "Anthropic",
      "domain": "anthropic.com",
      "category": "models",
      "score": 94,
      "signals": { "semantic": 24, "json_ld": 19, "llms_txt": 15, "citability": 18, "speed": 18 },
      "verify_url": "https://grow.contact/verify/anthropic.com",
      "badge_url": "https://grow.contact/badge/anthropic.com.svg"
    }
  ]
}

Versioning & stability

  • Stable identifiers. Claim id values never change once published; they double as page anchors (e.g. #home-stat-83).
  • Additive schemas. New fields may be added without a version bump. Removed or renamed fields trigger a new standard tag (e.g. geo-standard@2026.07 2027.01).
  • Archives are immutable. Anything under /data/<quarter>/ is frozen at publication and served with a one-year immutable cache.
  • Attribution. When citing, include the source URL and “grow.contact Agent Readability — CC BY 4.0”.