{
  "name": "SAIR Competition Public API",
  "description": "Reference for SAIR competition automation, Playground workflows, submissions, API keys, scopes, and contributor tools.",
  "version": "0.1.0",
  "baseUrl": "https://docs.sair.foundation",
  "llmsTxt": "https://docs.sair.foundation/llms.txt",
  "llmsFullTxt": "https://docs.sair.foundation/llms-full.txt",
  "sitemap": "https://docs.sair.foundation/sitemap.xml",
  "markdownRoot": "https://docs.sair.foundation/docs-md/README.md",
  "examples": {
    "python": "https://docs.sair.foundation/examples/python/README.md",
    "pythonClient": "https://docs.sair.foundation/examples/python/sair/client.py",
    "typescript": "https://docs.sair.foundation/examples/typescript/README.md",
    "typescriptClient": "https://docs.sair.foundation/examples/typescript/src/client.ts"
  },
  "documents": [
    {
      "slug": "",
      "sourcePath": "docs/README.md",
      "markdownPath": "/docs-md/README.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/README.md",
      "htmlPath": "/docs/",
      "htmlUrl": "https://docs.sair.foundation/docs/",
      "title": "SAIR Competition Public API",
      "description": "Use the SAIR Competition Public API for competition automation: CLIs, scripts, CI pipelines, and training jobs.",
      "section": "Getting started"
    },
    {
      "slug": "authentication",
      "sourcePath": "docs/authentication.md",
      "markdownPath": "/docs-md/authentication.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/authentication.md",
      "htmlPath": "/docs/authentication/",
      "htmlUrl": "https://docs.sair.foundation/docs/authentication/",
      "title": "Authentication",
      "description": "Every documented API key call authenticates with a personal API key. There is no application-level credential and no anonymous access for these endpoints.",
      "section": "Getting started"
    },
    {
      "slug": "guides/quick-start",
      "sourcePath": "docs/guides/quick-start.md",
      "markdownPath": "/docs-md/guides/quick-start.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/guides/quick-start.md",
      "htmlPath": "/docs/guides/quick-start/",
      "htmlUrl": "https://docs.sair.foundation/docs/guides/quick-start/",
      "title": "Quick start",
      "description": "From an API key to a first submission, using only curl.",
      "section": "Getting started"
    },
    {
      "slug": "conventions",
      "sourcePath": "docs/conventions.md",
      "markdownPath": "/docs-md/conventions.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/conventions.md",
      "htmlPath": "/docs/conventions/",
      "htmlUrl": "https://docs.sair.foundation/docs/conventions/",
      "title": "Request & response",
      "description": "These conventions apply to every documented API key endpoint under /api/public/v1.",
      "section": "Conventions"
    },
    {
      "slug": "pagination",
      "sourcePath": "docs/pagination.md",
      "markdownPath": "/docs-md/pagination.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/pagination.md",
      "htmlPath": "/docs/pagination/",
      "htmlUrl": "https://docs.sair.foundation/docs/pagination/",
      "title": "Pagination",
      "description": "Every list endpoint is cursor-paginated.",
      "section": "Conventions"
    },
    {
      "slug": "rate-limiting",
      "sourcePath": "docs/rate-limiting.md",
      "markdownPath": "/docs-md/rate-limiting.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/rate-limiting.md",
      "htmlPath": "/docs/rate-limiting/",
      "htmlUrl": "https://docs.sair.foundation/docs/rate-limiting/",
      "title": "Rate limiting",
      "description": "Several buckets protect the service. They are advertised by response headers so clients can pace themselves before hitting the limit.",
      "section": "Conventions"
    },
    {
      "slug": "errors",
      "sourcePath": "docs/errors.md",
      "markdownPath": "/docs-md/errors.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/errors.md",
      "htmlPath": "/docs/errors/",
      "htmlUrl": "https://docs.sair.foundation/docs/errors/",
      "title": "Errors",
      "description": "All errors use the envelope from Conventions. error.code is stable; error.message may change.",
      "section": "Conventions"
    },
    {
      "slug": "endpoints/account",
      "sourcePath": "docs/endpoints/account.md",
      "markdownPath": "/docs-md/endpoints/account.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/account.md",
      "htmlPath": "/docs/endpoints/account/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/account/",
      "title": "Account",
      "description": "Introspect the API key used for the request.",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/competitions",
      "sourcePath": "docs/endpoints/competitions.md",
      "markdownPath": "/docs-md/endpoints/competitions.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/competitions.md",
      "htmlPath": "/docs/endpoints/competitions/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/competitions/",
      "title": "Competitions",
      "description": "Browse competitions, check eligibility, read leaderboards, submit entries, and retrieve stored submission bodies.",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/competitions/mathematics-distillation-stage1",
      "sourcePath": "docs/endpoints/competitions/mathematics-distillation-stage1.md",
      "markdownPath": "/docs-md/endpoints/competitions/mathematics-distillation-stage1.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/competitions/mathematics-distillation-stage1.md",
      "htmlPath": "/docs/endpoints/competitions/mathematics-distillation-stage1/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/competitions/mathematics-distillation-stage1/",
      "title": "Mathematics Distillation Challenge: Equational Theories - Stage 1",
      "description": "Competition ID: mathematics-distillation-challenge-equational-theories-stage1",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/competitions/mathematics-distillation-stage2",
      "sourcePath": "docs/endpoints/competitions/mathematics-distillation-stage2.md",
      "markdownPath": "/docs-md/endpoints/competitions/mathematics-distillation-stage2.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/competitions/mathematics-distillation-stage2.md",
      "htmlPath": "/docs/endpoints/competitions/mathematics-distillation-stage2/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/competitions/mathematics-distillation-stage2/",
      "title": "Mathematics Distillation Challenge: Equational Theories - Stage 2",
      "description": "Competition ID: mathematics-distillation-challenge-equational-theories-stage2",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/competitions/modular-arithmetic-challenge",
      "sourcePath": "docs/endpoints/competitions/modular-arithmetic-challenge.md",
      "markdownPath": "/docs-md/endpoints/competitions/modular-arithmetic-challenge.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/competitions/modular-arithmetic-challenge.md",
      "htmlPath": "/docs/endpoints/competitions/modular-arithmetic-challenge/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/competitions/modular-arithmetic-challenge/",
      "title": "Modular Arithmetic Challenge",
      "description": "Competition ID: modular-arithmetic-challenge",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/competitions/igp24",
      "sourcePath": "docs/endpoints/competitions/igp24.md",
      "markdownPath": "/docs-md/endpoints/competitions/igp24.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/competitions/igp24.md",
      "htmlPath": "/docs/endpoints/competitions/igp24/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/competitions/igp24/",
      "title": "Inverse Galois Problem (IGP24)",
      "description": "Competition ID: igp24",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/playground",
      "sourcePath": "docs/endpoints/playground.md",
      "markdownPath": "/docs-md/endpoints/playground.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/playground.md",
      "htmlPath": "/docs/endpoints/playground/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/playground/",
      "title": "Playground",
      "description": "Use Playground endpoints to discover available models and problem sets and to run practice evaluations for a competition, before sending a formal entry through POST /api/public/...",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/playground/mathematics-distillation-stage1",
      "sourcePath": "docs/endpoints/playground/mathematics-distillation-stage1.md",
      "markdownPath": "/docs-md/endpoints/playground/mathematics-distillation-stage1.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/playground/mathematics-distillation-stage1.md",
      "htmlPath": "/docs/endpoints/playground/mathematics-distillation-stage1/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/playground/mathematics-distillation-stage1/",
      "title": "Mathematics Distillation Stage 1 Playground",
      "description": "Competition ID: mathematics-distillation-challenge-equational-theories-stage1",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/playground/mathematics-distillation-stage2",
      "sourcePath": "docs/endpoints/playground/mathematics-distillation-stage2.md",
      "markdownPath": "/docs-md/endpoints/playground/mathematics-distillation-stage2.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/playground/mathematics-distillation-stage2.md",
      "htmlPath": "/docs/endpoints/playground/mathematics-distillation-stage2/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/playground/mathematics-distillation-stage2/",
      "title": "Mathematics Distillation Stage 2 Playground",
      "description": "Competition ID: mathematics-distillation-challenge-equational-theories-stage2",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/playground/modular-arithmetic-challenge",
      "sourcePath": "docs/endpoints/playground/modular-arithmetic-challenge.md",
      "markdownPath": "/docs-md/endpoints/playground/modular-arithmetic-challenge.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/playground/modular-arithmetic-challenge.md",
      "htmlPath": "/docs/endpoints/playground/modular-arithmetic-challenge/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/playground/modular-arithmetic-challenge/",
      "title": "Modular Arithmetic Challenge Playground",
      "description": "Competition ID: modular-arithmetic-challenge",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/contributor-network",
      "sourcePath": "docs/endpoints/contributor-network.md",
      "markdownPath": "/docs-md/endpoints/contributor-network.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/contributor-network.md",
      "htmlPath": "/docs/endpoints/contributor-network/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/contributor-network/",
      "title": "Contributor Network",
      "description": "Browse, publish, favorite, comment on, and view lineage for shared cheatsheets, Lean 4 solver templates, and model references. Benchmark data is available for platform-benchmark...",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/competitions/api/list-competitions",
      "sourcePath": "docs/endpoints/competitions/api/list-competitions.md",
      "markdownPath": "/docs-md/endpoints/competitions/api/list-competitions.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/competitions/api/list-competitions.md",
      "htmlPath": "/docs/endpoints/competitions/api/list-competitions/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/competitions/api/list-competitions/",
      "title": "List competitions",
      "description": "Scope: competition.read.",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/competitions/api/get-competition",
      "sourcePath": "docs/endpoints/competitions/api/get-competition.md",
      "markdownPath": "/docs-md/endpoints/competitions/api/get-competition.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/competitions/api/get-competition.md",
      "htmlPath": "/docs/endpoints/competitions/api/get-competition/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/competitions/api/get-competition/",
      "title": "Get competition detail",
      "description": "Scope: competition.read.",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/competitions/api/get-my-participation",
      "sourcePath": "docs/endpoints/competitions/api/get-my-participation.md",
      "markdownPath": "/docs-md/endpoints/competitions/api/get-my-participation.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/competitions/api/get-my-participation.md",
      "htmlPath": "/docs/endpoints/competitions/api/get-my-participation/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/competitions/api/get-my-participation/",
      "title": "Get my competition participation",
      "description": "Scope: competition.read.",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/competitions/api/get-leaderboard",
      "sourcePath": "docs/endpoints/competitions/api/get-leaderboard.md",
      "markdownPath": "/docs-md/endpoints/competitions/api/get-leaderboard.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/competitions/api/get-leaderboard.md",
      "htmlPath": "/docs/endpoints/competitions/api/get-leaderboard/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/competitions/api/get-leaderboard/",
      "title": "Get competition leaderboard",
      "description": "Scope: competition.read.",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/competitions/api/get-my-standing",
      "sourcePath": "docs/endpoints/competitions/api/get-my-standing.md",
      "markdownPath": "/docs-md/endpoints/competitions/api/get-my-standing.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/competitions/api/get-my-standing.md",
      "htmlPath": "/docs/endpoints/competitions/api/get-my-standing/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/competitions/api/get-my-standing/",
      "title": "Get my leaderboard standing",
      "description": "Scope: competition.read.",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/competitions/api/get-team-placements",
      "sourcePath": "docs/endpoints/competitions/api/get-team-placements.md",
      "markdownPath": "/docs-md/endpoints/competitions/api/get-team-placements.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/competitions/api/get-team-placements.md",
      "htmlPath": "/docs/endpoints/competitions/api/get-team-placements/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/competitions/api/get-team-placements/",
      "title": "Get IGP24 team placements",
      "description": "Scope: competition.read.",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/competitions/api/search-leaderboard",
      "sourcePath": "docs/endpoints/competitions/api/search-leaderboard.md",
      "markdownPath": "/docs-md/endpoints/competitions/api/search-leaderboard.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/competitions/api/search-leaderboard.md",
      "htmlPath": "/docs/endpoints/competitions/api/search-leaderboard/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/competitions/api/search-leaderboard/",
      "title": "Search the IGP24 leaderboard",
      "description": "Scope: competition.read.",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/competitions/api/submit",
      "sourcePath": "docs/endpoints/competitions/api/submit.md",
      "markdownPath": "/docs-md/endpoints/competitions/api/submit.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/competitions/api/submit.md",
      "htmlPath": "/docs/endpoints/competitions/api/submit/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/competitions/api/submit/",
      "title": "Submit a competition entry",
      "description": "Scope: competition.write.",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/competitions/api/get-submission-batch-status",
      "sourcePath": "docs/endpoints/competitions/api/get-submission-batch-status.md",
      "markdownPath": "/docs-md/endpoints/competitions/api/get-submission-batch-status.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/competitions/api/get-submission-batch-status.md",
      "htmlPath": "/docs/endpoints/competitions/api/get-submission-batch-status/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/competitions/api/get-submission-batch-status/",
      "title": "Get IGP24 submission batch status",
      "description": "Scope: competition.read.",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/competitions/api/list-my-submissions",
      "sourcePath": "docs/endpoints/competitions/api/list-my-submissions.md",
      "markdownPath": "/docs-md/endpoints/competitions/api/list-my-submissions.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/competitions/api/list-my-submissions.md",
      "htmlPath": "/docs/endpoints/competitions/api/list-my-submissions/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/competitions/api/list-my-submissions/",
      "title": "List my submissions",
      "description": "Scope: competition.read.",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/competitions/api/get-my-submission-legacy",
      "sourcePath": "docs/endpoints/competitions/api/get-my-submission-legacy.md",
      "markdownPath": "/docs-md/endpoints/competitions/api/get-my-submission-legacy.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/competitions/api/get-my-submission-legacy.md",
      "htmlPath": "/docs/endpoints/competitions/api/get-my-submission-legacy/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/competitions/api/get-my-submission-legacy/",
      "title": "Get my submission (legacy)",
      "description": "Scope: competition.read.",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/competitions/api/get-submission",
      "sourcePath": "docs/endpoints/competitions/api/get-submission.md",
      "markdownPath": "/docs-md/endpoints/competitions/api/get-submission.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/competitions/api/get-submission.md",
      "htmlPath": "/docs/endpoints/competitions/api/get-submission/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/competitions/api/get-submission/",
      "title": "Get a submission by ID",
      "description": "Scope: competition.read.",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/competitions/api/download-submission",
      "sourcePath": "docs/endpoints/competitions/api/download-submission.md",
      "markdownPath": "/docs-md/endpoints/competitions/api/download-submission.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/competitions/api/download-submission.md",
      "htmlPath": "/docs/endpoints/competitions/api/download-submission/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/competitions/api/download-submission/",
      "title": "Download a submission body",
      "description": "Scope: competition.read.",
      "section": "Endpoints"
    },
    {
      "slug": "reference/submission-spec",
      "sourcePath": "docs/reference/submission-spec.md",
      "markdownPath": "/docs-md/reference/submission-spec.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/reference/submission-spec.md",
      "htmlPath": "/docs/reference/submission-spec/",
      "htmlUrl": "https://docs.sair.foundation/docs/reference/submission-spec/",
      "title": "Submission spec",
      "description": "Every competition declares one submissionSpec in its detail response. It is the only source of truth for how to construct a submission for that competition — fields, validation,...",
      "section": "Reference"
    },
    {
      "slug": "reference/submission-kinds",
      "sourcePath": "docs/reference/submission-kinds.md",
      "markdownPath": "/docs-md/reference/submission-kinds.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/reference/submission-kinds.md",
      "htmlPath": "/docs/reference/submission-kinds/",
      "htmlUrl": "https://docs.sair.foundation/docs/reference/submission-kinds/",
      "title": "Submission kinds and DTOs",
      "description": "A competition's submissionSpec.kind selects the DTOs used by the submission endpoints:",
      "section": "Reference"
    },
    {
      "slug": "endpoints/cheatsheets",
      "sourcePath": "docs/endpoints/cheatsheets.md",
      "markdownPath": "/docs-md/endpoints/cheatsheets.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/cheatsheets.md",
      "htmlPath": "/docs/endpoints/cheatsheets/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/cheatsheets/",
      "title": "Cheatsheets",
      "description": "Manage your private Playground cheatsheet library. A cheatsheet can be referenced from a Playground run (configurations[].cheatsheet) and submitted to a cheatsheet-kind competit...",
      "section": "Endpoints"
    },
    {
      "slug": "endpoints/solver-templates",
      "sourcePath": "docs/endpoints/solver-templates.md",
      "markdownPath": "/docs-md/endpoints/solver-templates.md",
      "markdownUrl": "https://docs.sair.foundation/docs-md/endpoints/solver-templates.md",
      "htmlPath": "/docs/endpoints/solver-templates/",
      "htmlUrl": "https://docs.sair.foundation/docs/endpoints/solver-templates/",
      "title": "Solver templates & Lean problems",
      "description": "Manage your private Playground Lean 4 solver snippets and custom problems for solver-participation competitions. Solver templates can be copied into a Playground run and submitt...",
      "section": "Endpoints"
    }
  ]
}
