# Word Search Maker (Any Language) > Printable word searches from your own words, in any language and script. Turn your own word list into a printable word search: grid size automatic or fixed, diagonal and backwards words optional, shared letters allowed or not. Works letter by letter in every script — accents, Cyrillic, Greek, Devanagari, Chinese and right-to-left Arabic — and adds an answer key with every word circled. Part of usefulweb.site (https://usefulweb.site/). Part of [Printshop](https://printshop.usefulweb.site/) (ownerApp: printshop). Results are deterministic calculations from the inputs and the listed assumptions; the API returns exactly what the web page shows. ## Use it - Human interface: https://printshopwordsearch.usefulweb.site/ (interactive tool at https://printshopwordsearch.usefulweb.site/tool) - JSON API: POST https://printshopwordsearch.usefulweb.site/api/v1/calculate with a JSON object of inputs (schema: https://printshopwordsearch.usefulweb.site/api/v1/tool) - OpenAPI: https://printshopwordsearch.usefulweb.site/openapi.json - MCP (Streamable HTTP): https://printshopwordsearch.usefulweb.site/mcp - tool `printshop_word_search` ## Inputs - words (textarea): Words - One word per line or separated by commas. Spaces and hyphens are dropped in the grid. Up to 60 words. - size (integer): Grid size (0 = automatic) - diagonal (boolean): Diagonal words - backwards (boolean): Backwards words - overlap (boolean): Words may share letters - uppercase (boolean): Capital letters - lang (select): Language (for capital letters) - seed (text): Seed - The same seed and settings always give the same puzzles. Change it for new ones. - title (text): Title on the page (optional) - answers (boolean): Answer-key pages - header (boolean): Name and date line - paper (select): Paper size - orientation (select): Orientation ## Method - Words are normalised (Unicode NFC, spaces and punctuation removed, optional capitals with the language’s rules, e.g. Turkish İ) and split into user-perceived characters (Unicode grapheme clusters, UAX #29): one character per cell. - Longest words are placed first at random allowed positions (right and down, optionally the two diagonals and all reversed directions); shared letters are preferred when allowed. With automatic size the grid grows from about √(letters × 2) until every word fits. - Empty cells get random letters taken from your words, so the filler matches the script. Any word that appears a second time by accident gets its filler letters redrawn, so each word can be found exactly once. Right-to-left word lists are mirrored so “forwards” reads right to left. ## Limits - Chinese, Japanese and Korean grids print only characters in Printshop’s font subsets; missing characters are reported as a warning.