{
  "openapi": "3.1.0",
  "info": {
    "title": "Agent Readiness Index public data",
    "version": "1.0",
    "description": "Read only data behind the Agent Readiness Index by Encore AI: scores, reports, leaderboards and method. No sign in. Please keep to about 300 requests a minute and link to the report when you quote a score.",
    "contact": {
      "name": "Encore AI",
      "url": "https://gainencore.ai",
      "email": "dvir@gainencore.ai"
    }
  },
  "servers": [
    {
      "url": "https://readyindex.ai"
    }
  ],
  "externalDocs": {
    "description": "For AI agents",
    "url": "https://readyindex.ai/agents"
  },
  "paths": {
    "/api/reports": {
      "get": {
        "operationId": "listReports",
        "summary": "Every scored organization, highest score first",
        "responses": {
          "200": {
            "description": "A summary per scored organization",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/reports/{id}": {
      "get": {
        "operationId": "getReport",
        "summary": "One full report: checks, evidence and fixes",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "A report id such as chase_com (the web address with dots turned into underscores)",
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9_]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The report",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "No such report",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/stats": {
      "get": {
        "operationId": "getStats",
        "summary": "Group statistics: spread, levels, areas, most failed checks",
        "responses": {
          "200": {
            "description": "Statistics",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/meta": {
      "get": {
        "operationId": "getMethod",
        "summary": "Areas, levels and the check catalog",
        "responses": {
          "200": {
            "description": "The method",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/content/leaderboards.json": {
      "get": {
        "operationId": "getLeaderboardLists",
        "summary": "The organizations on each of the ten leaderboards",
        "responses": {
          "200": {
            "description": "The lists",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/{id}.md": {
      "get": {
        "operationId": "getReportMarkdown",
        "summary": "A report as markdown",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "A report id such as chase_com (the web address with dots turned into underscores)",
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9_]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Markdown",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "No such report",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/llms.txt": {
      "get": {
        "operationId": "getLlmsTxt",
        "summary": "A short guide to the site for language models",
        "responses": {
          "200": {
            "description": "Text",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/llms-full.txt": {
      "get": {
        "operationId": "getLlmsFull",
        "summary": "The method and every score in one text file",
        "responses": {
          "200": {
            "description": "Text",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/mcp": {
      "post": {
        "operationId": "mcp",
        "summary": "Model Context Protocol server (Streamable HTTP, JSON RPC 2.0, read only)",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A JSON RPC response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "202": {
            "description": "Notification accepted"
          }
        }
      }
    }
  }
}