openapi: 3.2.0 info: title: Chessigma Public Elo Calculator API version: 1.0.0 description: 'Free, no-auth API for the Chessigma chess analysis platform. Submit games (PGN) for analysis, read analysis results, compute Elo rating changes, and fetch the daily puzzle. Chess engine analysis runs client-side in the browser (Stockfish WebAssembly), so this API is compute-free: GET /game/{gameId} returns analysis only after a user has opened the game page and triggered it. No signup, no API key, no paywall. Global rate limit: 30 requests/minute across all callers.' contact: name: Chessigma url: https://www.chessigma.com/developers license: name: Terms of Service url: https://www.chessigma.com/tos servers: - url: https://www.chessigma.com/public-api/v1 description: Production security: [] tags: - name: Elo Calculator paths: /elo-calculator: get: operationId: calculateElo summary: Compute an Elo rating change for a single game description: Pure arithmetic. Returns the new rating, point change, and expected score. parameters: - name: yourRating in: query required: true schema: type: integer minimum: 100 maximum: 4000 example: 1500 - name: opponentRating in: query required: true schema: type: integer minimum: 100 maximum: 4000 example: 1400 - name: result in: query required: true schema: type: string enum: - win - draw - loss example: win - name: system in: query required: false schema: type: string enum: - fide - chesscom - lichess default: fide - name: kFactor in: query required: false description: Override the default K-factor for the chosen system. schema: type: integer minimum: 1 maximum: 100 responses: '200': description: Computed rating change content: application/json: schema: $ref: '#/components/schemas/EloResponse' example: yourRating: 1500 opponentRating: 1400 result: win system: fide kFactor: 20 expectedScore: 0.6401 newRating: 1507 change: 7 '400': description: Invalid query parameters content: application/json: schema: $ref: '#/components/schemas/Error' '429': description: Rate limit exceeded tags: - Elo Calculator components: schemas: Error: type: object properties: error: type: string details: description: Optional validation detail. required: - error EloResponse: type: object properties: yourRating: type: integer opponentRating: type: integer result: type: string enum: - win - draw - loss system: type: string enum: - fide - chesscom - lichess kFactor: type: integer expectedScore: type: number description: Probability of scoring (0–1). newRating: type: integer change: type: integer