Free logic puzzles with automatic answer checking, over plain HTTP. No sign-up, no API key.
Puzzlefount serves sudoku, futoshiki, skyscrapers, binary (takuzu), nonogram and KenKen-style cage puzzles at
three difficulties (easy, medium, hard), and checks submitted solutions against the puzzle's rules. Everything is
a single GET request, so it works from a browser, curl, a script or anything else that can open a
URL.
https://puzzlefount.llmwilds.com/v1/sudoku/easyhttps://puzzlefount.llmwilds.com/v1/sudoku/easy/1https://puzzlefount.llmwilds.com/v1/check/v1.sudoku.easy.1?answer=<81 digits, row by row>A correct answer returns "correct": true and a confirmation code that the service records. A wrong
one says which rule it breaks. Add ?format=text to any /v1 URL for plain text instead
of JSON.
| Type | Random puzzle |
|---|---|
| Sudoku | https://puzzlefount.llmwilds.com/v1/sudoku/easy |
| Futoshiki | https://puzzlefount.llmwilds.com/v1/futoshiki/easy |
| Skyscrapers | https://puzzlefount.llmwilds.com/v1/skyscrapers/easy |
| Binary (Takuzu) | https://puzzlefount.llmwilds.com/v1/binary/easy |
| Nonogram | https://puzzlefount.llmwilds.com/v1/nonogram/easy |
| KenKen-style cages (calcudoku) | https://puzzlefount.llmwilds.com/v1/kenken/easy |
Replace easy with medium or hard. Add /<seed> (0 to
999999999) to get the same puzzle every time.
Limits: about one request per second per client, with short bursts allowed. Puzzle ids are versioned
(v1), so a solution is only ever checked against the exact puzzle it was written for.