Sudoku: generate, solve, grade
Generate a Sudoku with exactly one solution, or solve and grade a given grid.

Details
Levels are graded by the techniques a person needs: easy and medium need only singles; hard needs locked candidates or naked pairs.
Actions: "generate" (level, optional seed for a repeatable puzzle), "solve" (grid), "grade" (grid: number of solutions, level, techniques).
Price: CHF 0.002 per call (first 100 calls per day free).
Example: {"action":"generate","level":"medium","seed":7} → {"level":"medium","clues":28,"puzzle":["6..2.14..",…],"solution":[…]}.
Call it
RESTcurl -X POST https://api.tausendwerk.xyz/v1/sudoku \
-H "Content-Type: application/json" \
-d '{"action":"generate","level":"medium","seed":7}'MCP tool namesudokuAfter the free 100 calls per day, add a key: Authorization: Bearer tw_live_…. Pricing
Try it
Runs against the live API with the free allowance.
Input schema JSON Schema
{
"type": "object",
"additionalProperties": false,
"required": [
"action"
],
"properties": {
"action": {
"type": "string",
"enum": [
"generate",
"solve",
"grade"
]
},
"level": {
"type": "string",
"enum": [
"easy",
"medium",
"hard"
],
"default": "medium"
},
"seed": {
"type": "integer",
"minimum": 1,
"maximum": 4294967295,
"description": "Same seed and level give the same puzzle."
},
"grid": {
"description": "81 cells as one string, or 9 row strings; \".\" or 0 for empty.",
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
}
},
"examples": [
{
"action": "generate",
"level": "medium",
"seed": 7
},
{
"action": "solve",
"grid": "53..7....6..195....98....6.8...6...34..8.3..17...2...6.6....28....419..5....8..79"
}
]
}