API de génération de Sudoku
Un point d'accès JSON gratuit qui renvoie un Sudoku à la demande. Sans inscription, sans clé, 60 requêtes par heure et par IP.
Démarrage rapide
Une requête GET. La réponse contient le puzzle et sa solution sous forme de chaînes de 81 caractères, plus la graine utilisée.
curl 'https://api.sudokumountain.com/v1/generate?mode=classic&difficulty=easy'Points d'accès
- GET /v1/generate
- Générer un puzzle.
- GET /v1/health
- Vérification de disponibilité.
Paramètres
- mode
- Requis. En v1, uniquement `classic`.
- difficulty
- Requis. easy, medium, hard, expert, master ou extreme.
- seed
- Optionnel. Entier non négatif jusqu'à 4 294 967 295.
Réponse
Le puzzle et la solution sont des chaînes de 81 caractères, lues de gauche à droite et de haut en bas. Chaque caractère est un chiffre 1–9 ; dans le puzzle, '0' marque une case vide.
{
"puzzle": "530070000600195000098000060800060003400803001700020006060000280000419005000080079",
"solution": "534678912672195348198342567859761423426853791713924856961537284287419635345286179",
"mode": "classic",
"difficulty": "easy",
"seed": 1734567890
}- puzzle
- Chaîne de 81 caractères. '0' = case vide.
- solution
- Chaîne de 81 caractères. La solution unique.
- mode
- Reflète le mode de la requête.
- difficulty
- Reflète la difficulté de la requête.
- seed
- La graine utilisée.
JavaScript
const res = await fetch(
'https://api.sudokumountain.com/v1/generate?mode=classic&difficulty=medium',
);
const puzzle = await res.json();
console.log(puzzle.puzzle); // 81-char string, '0' = empty
console.log(puzzle.solution); // 81-char string, all 1–9Python
import urllib.request, json
url = "https://api.sudokumountain.com/v1/generate?mode=classic&difficulty=hard"
with urllib.request.urlopen(url) as r:
puzzle = json.load(r)
print(puzzle["puzzle"]) # 81-char string, '0' = empty
print(puzzle["solution"]) # 81-char string, all 1–9curl — health
curl 'https://api.sudokumountain.com/v1/health'Limites de requête
60 requêtes par heure et par IP. Chaque réponse inclut X-RateLimit-Limit, X-RateLimit-Remaining et X-RateLimit-Reset.
Erreurs
Les erreurs renvoient application/json avec un code `error` et un `message` lisible.
- 400
- invalid-mode, invalid-difficulty ou invalid-seed. Le message décrit le problème.
- 429
- rate-limit-exceeded. Réessayer après le délai en Retry-After.
- 500
- generation-failed. Rare. Réessayer avec une graine différente.
- 503
- rate-limit-unavailable. Le compteur est hors ligne.
Versionnage
v1 est stable. Les changements cassants seront publiés sous v2, v1 reste indéfiniment.
Utilisation
Gratuit pour tout usage. Mention bienvenue mais non requise.