Word search generator
Make a word-search grid from your words, with the answer key. Every word appears exactly once, also after the random fill.

Details
Words run in 8 directions (or only right, down and diagonal with "backwards": false). Filler letters follow the letter frequency of the language.
Limits: 3 to 40 words, 3 to 20 letters each, grid 8 to 25. Spaces and hyphens are removed; ß becomes SS.
Price: CHF 0.002 per call (first 100 calls per day free).
Example: {"words":["apple","pear","plum"],"size":8,"language":"en","seed":3} → {"grid":["EFHHMAOR",…],"answers":[{"word":"APPLE","start":[6,3],"direction":"up"},…]}.
Call it
RESTcurl -X POST https://api.tausendwerk.xyz/v1/word-search \
-H "Content-Type: application/json" \
-d '{"words":["apple","pear","plum","cherry"],"size":10,"language":"en","seed":3}'MCP tool nameword_searchAfter 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": [
"words"
],
"properties": {
"words": {
"type": "array",
"minItems": 3,
"maxItems": 40,
"items": {
"type": "string",
"minLength": 3,
"maxLength": 24
}
},
"size": {
"type": "integer",
"minimum": 8,
"maximum": 25,
"description": "Default: fits the longest word, at least 12."
},
"language": {
"type": "string",
"enum": [
"en",
"de",
"fr",
"it"
],
"default": "en"
},
"backwards": {
"type": "boolean",
"default": true
},
"seed": {
"type": "integer",
"minimum": 1,
"maximum": 4294967295
}
},
"examples": [
{
"words": [
"apple",
"pear",
"plum",
"cherry"
],
"size": 10,
"language": "en",
"seed": 3
}
]
}