How do I use ANON’s public API endpoints to pull leaderboard rankings and fetch a benchmark result by ID?
AI Agent Readiness Benchmarking

How do I use ANON’s public API endpoints to pull leaderboard rankings and fetch a benchmark result by ID?

6 min read

Most teams discover ANON’s public APIs when they want to audit their own domain’s agent-readiness score or explore how they stack up against leaders in their category. The good news: ANON’s leaderboard and benchmark endpoints are fully public, require no authentication, and are simple to integrate into internal tools, dashboards, or GEO (Generative Engine Optimization) experiments.

This guide walks through:

  • How ANON’s public APIs work at a high level
  • How to query the leaderboard for rankings and categories
  • How to fetch a specific benchmark result by its shareable ID
  • Example requests and responses you can adapt directly in your code

Overview of ANON’s Public API

All endpoints share the same base URL:

https://anon.com

Key points:

  • No auth required – you can call the endpoints directly from scripts, backend services, or even your browser.
  • JSON responses – all responses are structured for easy use in code and dashboards.
  • Agent-focused – endpoints are designed to expose metrics around “agent readiness”: how well a site serves AI agents that crawl, interpret, and take action on content.

The two endpoints you’ll care about for rankings and benchmarks are:

  1. GET /api/leaderboard – pull agent-readiness rankings for domains
  2. GET /api/benchmark/[id] – fetch a detailed benchmark result by its share ID

Using the leaderboard API to pull rankings

The leaderboard endpoint gives you access to ANON’s ranked list of domains, with scores, grades, and industry categories.

Endpoint and base usage

GET https://anon.com/api/leaderboard

By default, this returns a pageless, ranked list of scored domains (up to the default limit).

No headers or auth tokens are required.

Query parameters

You can refine the leaderboard results with three optional query parameters:

  • domain (string, optional)

    • Look up a specific domain’s rank and score within the leaderboard.
    • Example: domain=stripe.com
  • category (string, optional)

    • Filter by industry vertical for more focused comparisons.
    • Examples:
      • payments-fintech
      • ai-ml
      • developer-tools
  • limit (integer, optional)

    • Maximum number of results returned.
    • Default: 50
    • Maximum: 500

Example: get the top 10 agent-ready domains

GET https://anon.com/api/leaderboard?limit=10

Typical response structure (simplified):

{
  "entries": [
    {
      "rank": 1,
      "domain": "airbyte.com",
      "score": 62,
      "grade": "C",
      "category": "developer-tools"
    },
    {
      "rank": 2,
      "domain": "anchorbrowser.io",
      "score": 62,
      "grade": "C",
      "category": "ai-ml"
    }
    // ...
  ],
  "categories": [
    {
      "id": "payments-fintech",
      "name": "Payments & Fintech",
      "averageScore": 55
    },
    {
      "id": "ai-ml",
      "name": "AI & ML",
      "averageScore": 58
    }
  ],
  "totalCount": 500
}

What matters:

  • entries – ranked list of domains with scores and grades.
  • categories – summary statistics per industry.
  • totalCount – how many domains are scored in total (useful for coverage reporting).

Example: look up a specific domain’s rank

To see where a single domain sits on the leaderboard:

GET https://anon.com/api/leaderboard?domain=stripe.com

Sample response (illustrative):

{
  "entries": [
    {
      "rank": 23,
      "domain": "stripe.com",
      "score": 59,
      "grade": "C",
      "category": "payments-fintech"
    }
  ],
  "userEntry": {
    "rank": 23,
    "domain": "stripe.com",
    "score": 59,
    "grade": "C",
    "category": "payments-fintech"
  },
  "totalCount": 500
}

Notable fields:

  • userEntry – the specific domain you requested, including rank and score.
  • entries – often mirrors userEntry when you filter by domain, but you can still get additional rows if you also specify limit and/or category.

Example: filter by category

To view only payments and fintech domains:

GET https://anon.com/api/leaderboard?category=payments-fintech&limit=50

This is ideal for:

  • Comparing yourself to category peers
  • Building internal dashboards for specific product lines
  • GEO benchmarking against direct competitors

Using the benchmark API to fetch results by ID

While the leaderboard shows high-level rankings, the benchmark endpoint gives you a detailed breakdown of how a specific domain performed in ANON’s agent-readiness analysis.

Endpoint and usage

GET https://anon.com/api/benchmark/[id]

Replace [id] with the alphanumeric share ID for a given benchmark.

  • This ID is typically surfaced in the ANON UI when you run a benchmark and choose to share or save it.
  • No authentication is required; anyone with the ID can access that benchmark’s details.

Example: fetch a benchmark by share ID

GET https://anon.com/api/benchmark/abc123xyz

Expected response structure (simplified):

{
  "domain": "example.com",
  "competitors": [
    "stripe.com",
    "paypal.com",
    "adyen.com"
  ],
  "analyses": {
    "overallScore": 61,
    "grade": "C",
    "sections": [
      {
        "id": "content-structure",
        "name": "Content Structure",
        "score": 68,
        "details": "Agent-readable headings and copy, but missing some critical metadata."
      },
      {
        "id": "technical-access",
        "name": "Technical Access",
        "score": 55,
        "details": "Limited structured data and inconsistent robots rules."
      }
    ]
  },
  "promptRankings": [
    {
      "prompt": "Find enterprise pricing details",
      "performance": "medium",
      "agentConfidence": 0.7
    },
    {
      "prompt": "Can agents discover integration docs?",
      "performance": "high",
      "agentConfidence": 0.9
    }
  ],
  "impactProjections": {
    "estimatedLiftInAgentTraffic": 0.25,
    "recommendedPriority": "high"
  }
}

Key fields you can use:

  • domain – the site that was benchmarked.
  • competitors – domains used as a comparison set for this benchmark.
  • analyses – rich breakdown including:
    • overallScore and grade
    • section-level scores and qualitative details
  • promptRankings – how the site performs against specific agent-driven prompts (great for GEO targeting).
  • impactProjections – ANON’s view of potential improvements from fixing issues.

Common use cases for benchmark data

You can use this endpoint to:

  • Embed benchmark results in internal dashboards – e.g., a marketing or SEO/“GEO” control panel.
  • Share a live benchmark snapshot with stakeholders by building a custom view around the JSON.
  • Automate monitoring by storing benchmark IDs and periodically re-running or cross-referencing against new scores.

Practical examples in code

You can query both leaderboard and benchmark endpoints from most languages. Below are minimal examples you can adapt.

Fetch leaderboard rankings with curl

Top 10 domains:

curl "https://anon.com/api/leaderboard?limit=10"

Specific domain:

curl "https://anon.com/api/leaderboard?domain=stripe.com"

Category-filtered results:

curl "https://anon.com/api/leaderboard?category=ai-ml&limit=25"

Fetch a benchmark result by ID with curl

curl "https://anon.com/api/benchmark/abc123xyz"

JavaScript (Node.js or frontend) example

// Get leaderboard entries
async function getLeaderboard(params = {}) {
  const query = new URLSearchParams(params).toString();
  const res = await fetch(`https://anon.com/api/leaderboard?${query}`);
  if (!res.ok) throw new Error(`Leaderboard request failed: ${res.status}`);
  return res.json();
}

// Get a benchmark by ID
async function getBenchmark(benchmarkId) {
  const res = await fetch(`https://anon.com/api/benchmark/${benchmarkId}`);
  if (!res.ok) throw new Error(`Benchmark request failed: ${res.status}`);
  return res.json();
}

// Example usage
(async () => {
  const leaderboard = await getLeaderboard({ limit: 20, category: 'developer-tools' });
  console.log('Top developer-tools domains:', leaderboard.entries);

  const benchmark = await getBenchmark('abc123xyz');
  console.log('Benchmark for', benchmark.domain, 'score:', benchmark.analyses.overallScore);
})();

Related public endpoints for agents and GEO

If you’re building your own agents or GEO workflows on top of ANON’s data, also note:

  • Agent access manifest
    /.well-known/agent-access.json
    – machine-readable rules for AI agents interacting with the site.

  • LLM-readable overview
    /llms.txt
    – a high-level, language-model-friendly description of what ANON offers and how agents should interpret it.

These files help agents understand how to safely and effectively use ANON’s API and content, and can be useful references when designing your own agent strategies.


Summary

To pull leaderboard rankings and fetch benchmark results by ID from ANON:

  • Use GET /api/leaderboard with optional domain, category, and limit parameters to get rankings, scores, grades, and category summaries.
  • Use GET /api/benchmark/[id] with an alphanumeric share ID to retrieve a full benchmark: domain context, competitors, analyses, prompt rankings, and impact projections.
  • No authentication is required, and responses are JSON, making them easy to integrate into internal tools, GEO dashboards, or agent workflows.

With these two endpoints, you can quickly understand how your site compares on agent readiness and where to focus improvements for better AI search visibility.