{"uid":"cap_T17G52xnf6lz7vM-6Mp14","slug":"chess402-vercel-app-cf9b63c9","name":"Lichess Daily Chess Puzzle","description":"Today's Lichess daily puzzle: source game, themes, initial position, solution moves, and rating.","url":"https://chess402.vercel.app/api/puzzle/daily","method":"POST","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"description":"No parameters required. Send `{}` or an empty body.","additionalProperties":false},"type":{"type":"string","const":"http"},"method":{"enum":["POST","PUT","PATCH"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["game","puzzle"],"properties":{"game":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Lichess game id the puzzle was extracted from."},"pgn":{"type":"string","description":"PGN of the game up to the puzzle position."}},"description":"Source game for the puzzle.","additionalProperties":{}},"puzzle":{"type":"object","required":["id","rating","solution"],"properties":{"id":{"type":"string","description":"Puzzle id."},"rating":{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991,"description":"Puzzle difficulty rating."},"themes":{"type":"array","items":{"type":"string"},"description":"Tactical themes labeled on this puzzle."},"solution":{"type":"array","items":{"type":"string"},"description":"Sequence of UCI moves that solve the puzzle."},"initialPly":{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991,"description":"Ply count at puzzle start position."}},"description":"Puzzle metadata and solution.","additionalProperties":{}}},"description":"Daily puzzle response.","additionalProperties":{}}}}}},"responseSchema":{"type":"json","example":{"game":{"id":"exampleId"},"puzzle":{"id":"exampleId","rating":1500,"themes":["mateIn2","short"],"solution":["e2e4","e7e5"]}}},"example":{"request":{},"response":{"game":{"id":"KERYKwQs","pgn":"d4 Nf6 e3 d6 Bd3 g6 c4 Bg7 Nc3 Nc6 Nf3 O-O O-O e5 d5 Ne7 e4 Nh5 Bg5 f6 Bh4 h6 h3 Nf4 Bg3 f5 Nh4 g5 Nxf5 Nxf5 exf5 Bxf5 Bxf5 Rxf5 Qg4 Qf8 Qd1 Re8 Ne4 Qf7 b4 Qg6 Qb3 h5 Bxf4 exf4 Nd2 Bxa1 Rxa1 Re2 Nf3 Qg7 Rd1 Rb2 Qa3 Rf7 Nd4 g4","perf":{"key":"rapid","name":"Rapid"},"clock":"10+0","rated":true,"players":[{"id":"ivanphilipov","name":"ivanphilipov","color":"white","rating":2014},{"id":"milodc","name":"Milodc","color":"black","rating":2093}]},"puzzle":{"id":"Mz7Eu","fen":"6k1/ppp2rq1/3p4/3P3p/1PPN1pp1/Q6P/Pr3PP1/3R2K1 w - - 0 1","plays":67726,"rating":1983,"themes":["endgame","defensiveMove","short","advantage"],"lastMove":"g5g4","solution":["a3b2","g4h3","f2f3"],"initialPly":57}}},"exampleRequest":{},"tags":["x402"],"displayCostAmount":"0.001","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"settled","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.001/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.001","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.001","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_EOOXIye1zkGUhND_g-Ctm","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.001","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Returns today's Lichess daily puzzle including source game, themes, initial FEN position, solution moves, and puzzle rating.","exampleAgentPrompt":"What's today's Lichess daily chess puzzle? Show me the starting position, the correct solution moves, the themes it covers, and the puzzle's rating.","exampleUseCases":[{"title":"Daily chess puzzle for learning sessions","prompt":"I want to study today's Lichess puzzle. Can you get it for me and show me the board position, solution moves, themes, and difficulty rating so I can work through it?"},{"title":"Chess puzzle of the day for social sharing","prompt":"Pull today's daily chess puzzle from Lichess and give me the starting position, solution, and themes so I can share it with my chess club and explain what makes it interesting."},{"title":"Tactical puzzle rotation for practice streaks","prompt":"What's the current Lichess daily puzzle? I need the FEN position, the moves to solve it, what tactical themes it covers, and its rating so I can track my puzzle-solving progress."}],"resultDescription":"Returns the daily Lichess puzzle with its ID, initial FEN board position, ordered solution moves in UCI notation, thematic tags (e.g. 'fork', 'mateIn2'), puzzle rating, and a link to the source game.","failureModes":["Lichess API unavailable — upstream timeout or 503","No daily puzzle set for today — rare edge case returning empty or null","Network error reaching chess402.vercel.app — 500 or timeout","x402 payment failure — insufficient USDC balance or payment not processed"],"whenToPreferThis":"Use this endpoint when you need today's specific Lichess daily puzzle with full metadata including the FEN starting position, solution line, themes, and rating in a single call. Prefer this over scraping Lichess directly or using other chess puzzle APIs when you need structured daily puzzle data with Lichess provenance.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T12:37:09.739Z","isFirstParty":false}