{"openapi":"3.1.0","info":{"title":"Cryptex API","version":"0.1.0","description":"A fully local, hand-curated general puzzle-solving technique reference covering 10 puzzle types: jigsaw strategy, sudoku solving techniques (naked/hidden singles and pairs, pointing pairs, box-line reduction, X-Wing), cryptic-crossword clue-type mechanics with original example clues, a logic-grid puzzle solving method with a worked example, nonogram/picross basics, kakuro, kenken, word search and cryptogram guidance, plus a cross-puzzle glossary and mood-based suggestions. Keyless; fully local; original content only, no reproduced copyrighted puzzles.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://cryptex.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/cryptex/docs"},"termsOfService":"https://connectorbay.com/cryptex/terms"},"servers":[{"url":"https://cryptex.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/cryptex/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/puzzle_type_info":{"post":{"operationId":"puzzle_type_info","summary":"Full detail for one puzzle type: category, a plain-language how-it-works method, its typical difficulty","description":"Full detail for one puzzle type: category, a plain-language how-it-works method, its typical difficulty\n    range, and mood tags. Omit the name to list all 10 puzzle types covered (jigsaw, sudoku, cryptic crossword,\n    standard crossword, logic grid puzzle, nonogram/picross, kakuro, kenken, word search, cryptogram). Use for\n    \"how do jigsaw puzzles work\", \"explain kakuro\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A puzzle type's name or alias; omit to list every puzzle type covered.","examples":["sudoku","jigsaw","nonogram","cryptic crossword"],"title":"Name"}},"title":"puzzle_type_infoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/sudoku_technique":{"post":{"operationId":"sudoku_technique","summary":"Explains one specific sudoku solving technique — naked single, hidden single, naked pair, hidden pair,","description":"Explains one specific sudoku solving technique — naked single, hidden single, naked pair, hidden pair,\n    naked triple, pointing pair, box-line reduction, or X-Wing — with a worked example and guidance on when to\n    reach for it. Omit the name to list all eight, ordered from beginner to advanced. Use for \"what's a naked\n    pair\", \"how does X-Wing work\", \"how do I solve hidden singles\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A sudoku technique's name or alias; omit to list all eight.","examples":["naked pair","hidden single","x-wing","pointing pair"],"title":"Name"}},"title":"sudoku_techniqueArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/cryptic_clue_type":{"post":{"operationId":"cryptic_clue_type","summary":"Explains one cryptic-crossword clue-type mechanic — anagram, hidden word, double definition, charade,","description":"Explains one cryptic-crossword clue-type mechanic — anagram, hidden word, double definition, charade,\n    container/insertion, reversal, homophone, or deletion — including its common indicator words and an\n    original example clue fully broken down into definition and wordplay. Omit the name to list all eight. Use\n    for \"what's an anagram clue\", \"how does a container clue work\", \"give me an example of a charade clue\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A cryptic-crossword clue type's name or alias; omit to list all eight.","examples":["anagram","charade","hidden word","double definition"],"title":"Name"}},"title":"cryptic_clue_typeArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/logic_grid_howto":{"post":{"operationId":"logic_grid_howto","summary":"Explains the general method for solving a logic-grid puzzle, defines its four common clue types (direct,","description":"Explains the general method for solving a logic-grid puzzle, defines its four common clue types (direct,\n    negative, conditional, comparative) with short examples, and walks through a fully worked 3-clue example\n    from clues to solution. Use for \"how do I solve a logic grid puzzle\", \"what's a negative clue\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"logic_grid_howtoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/term_glossary":{"post":{"operationId":"term_glossary","summary":"Definitions of puzzle-solving vocabulary spanning every puzzle type in this reference — candidate,","description":"Definitions of puzzle-solving vocabulary spanning every puzzle type in this reference — candidate,\n    naked/hidden, unit, givens, fodder, enumeration, surface reading, run, overlap technique, cage, direct/\n    negative/conditional/comparative clue, and more. Use for \"what does fodder mean in a crossword clue\",\n    \"what's a naked technique in sudoku\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific term to look up; omit to list all.","title":"Term"}},"title":"term_glossaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/difficulty_tip":{"post":{"operationId":"difficulty_tip","summary":"Explains specifically what makes a given puzzle type harder or easier — which levers matter (grid size,","description":"Explains specifically what makes a given puzzle type harder or easier — which levers matter (grid size,\n    clue mix, technique requirements) and which don't. Use for \"what makes a sudoku hard\", \"how do I make a\n    nonogram more challenging\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"puzzle_type":{"description":"A puzzle type's name or alias.","examples":["sudoku","nonogram","cryptic crossword"],"minLength":1,"title":"Puzzle Type","type":"string"}},"required":["puzzle_type"],"title":"difficulty_tipArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/find_puzzle_for_mood":{"post":{"operationId":"find_puzzle_for_mood","summary":"Suggests 2-4 puzzle types matching a stated mood or situation, keyword-matched against each puzzle","description":"Suggests 2-4 puzzle types matching a stated mood or situation, keyword-matched against each puzzle\n    type's tagged moods. Use for \"what puzzle should I do if I'm tired of reading\", \"I want something relaxing\n    and visual\", \"quick puzzle for a coffee break\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"description":{"description":"A mood or situation, in plain language.","examples":["something visual with no reading","a quick five-minute logic puzzle","relaxing and repetitive","wordplay that makes me think"],"minLength":1,"title":"Description","type":"string"}},"required":["description"],"title":"find_puzzle_for_moodArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/beginner_tips":{"post":{"operationId":"beginner_tips","summary":"An ordered shortlist of practical tips for getting started with a given puzzle type. Use for \"tips for","description":"An ordered shortlist of practical tips for getting started with a given puzzle type. Use for \"tips for\n    a sudoku beginner\", \"how do I get better at cryptic crosswords\", \"beginner tips for jigsaw puzzles\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"puzzle_type":{"description":"A puzzle type's name or alias.","examples":["sudoku","jigsaw","cryptic crossword"],"minLength":1,"title":"Puzzle Type","type":"string"},"count":{"default":5,"description":"How many tips to return.","maximum":10,"minimum":1,"title":"Count","type":"integer"}},"required":["puzzle_type"],"title":"beginner_tipsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}