> ## Documentation Index
> Fetch the complete documentation index at: https://testwebmcp.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get the leaderboard

> The 20 highest-scoring sites, each with its best score. Shows the hostname, never the scanned path.



## OpenAPI

````yaml /openapi.json get /leaderboard
openapi: 3.1.0
info:
  title: Test WebMCP API
  version: 1.0.0
  description: Scan public pages for WebMCP support. Free, no key. Limited per IP address.
servers:
  - url: https://testwebmcp.com/api/v1
security: []
paths:
  /leaderboard:
    get:
      summary: Get the leaderboard
      description: >-
        The 20 highest-scoring sites, each with its best score. Shows the
        hostname, never the scanned path.
      operationId: getLeaderboard
      responses:
        '200':
          description: Ranked sites.
          content:
            application/json:
              schema:
                type: object
                required:
                  - sites
                properties:
                  sites:
                    type: array
                    items:
                      allOf:
                        - type: object
                          properties:
                            rank:
                              type: integer
                              example: 1
                        - $ref: '#/components/schemas/SiteEntry'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    SiteEntry:
      type: object
      properties:
        host:
          type: string
          example: example.com
        score:
          type: number
          example: 94
        grade:
          type: string
          example: A
        tools:
          type: integer
          description: Tools registered.
          example: 4
        scanId:
          type: string
        reportUrl:
          type: string
        scannedAt:
          type: string
          format: date-time
    RateLimitError:
      type: object
      required:
        - error
        - retryAfterSeconds
        - resetAt
      properties:
        error:
          type: string
          example: >-
            The free limit is 1 scan per 24 hours per IP address, shared with
            the website.
        retryAfterSeconds:
          type: integer
          example: 86400
        retryAfterHuman:
          type: string
          example: 24 hours
        resetAt:
          type: string
          format: date-time
  responses:
    RateLimited:
      description: Rate limit reached. See **Limits**.
      headers:
        Retry-After:
          $ref: '#/components/headers/Retry-After'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RateLimitError'
  headers:
    Retry-After:
      description: Seconds to wait before retrying.
      schema:
        type: integer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.