Crossword & Word Search Maker (from your word list) avatar

Crossword & Word Search Maker (from your word list)

Pricing

from $50.00 / 1,000 puzzle generateds

Go to Apify Store
Crossword & Word Search Maker (from your word list)

Crossword & Word Search Maker (from your word list)

Word search, crossword (your clues) or word fill-in from your own word lists. Each grid is checked: every word once, no stray words. JSON, SVG, printable PDF or a 6x9 / 8.5x11 paperback book interior, with answer keys.

Pricing

from $50.00 / 1,000 puzzle generateds

Rating

0.0

(0)

Developer

Ars Technis

Ars Technis

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Crossword & Word Search Maker

Give it a word list and get back finished puzzles: a word search, a numbered crossword that uses your own clues, or a word fill-in, which is a crossword grid with no clues where the solver fits in the listed words. Each puzzle comes as JSON, as SVG images, and in one printable PDF (letter or A4, or a 6x9 / 8.5x11 paperback book interior) with the answer keys at the back.

It's built for teachers and tutors making vocabulary sheets, for newsletter and activity-book makers, for apps that need fresh puzzles, and for AI agents. Language models are poor at drawing letter grids correctly, so an agent can call this tool and get a grid that has been checked.

What you get

  • Word search. Every word on your list appears exactly once in the grid. Before a puzzle is delivered, the grid is searched in all 8 directions to confirm this. A word that sits inside another listed word (Kansas in Arkansas) gets its own place too; its other copy is part of the longer word, and the item's alsoInside field says so.
    • Offensive-word screen. The whole finished grid is searched, in all 8 directions, for about 260 slurs, obscenities and sexual or scatological words and their common variants (accents are ignored, so Ü counts as U). The filler letters are redrawn until nothing is spelled, including words formed by filler plus one of your words, or by two of your words in line. Text that lies wholly inside one of your own words (CLASS, SCUNTHORPE) is left alone, because those are your words. The list is our own curated list (src/data/blocklist.txt), not an outside vetted one; tests check 300 grids for zero hits and that every entry is caught.
    • Difficulty:
      • easy: words run right and down only
      • medium: adds two diagonals
      • hard: all 8 directions, including backwards
  • Crossword. Your words are laid out as a connected crossword and numbered Across and Down in the standard way. Each word carries its clue. Every run of two or more letters in the grid is one of your words, so no stray words appear. It is a free-form crossword, not a dense newspaper grid: words cross only where they share a letter, so many cells are blocks. In our tests a quarter to under half of the cells hold letters (a German list of long words gave 25% on an 18x14 grid; lists of 12 short words, 31-44%). If a word shares no letters with the others, you get a clear message saying which word it is, and you are not charged.
  • Word fill-in. This is the same kind of checked, connected grid as the crossword, with no clues needed. The word list is printed below the grid, grouped by length. This is the classic "fill-ins" page from puzzle books. Every fill-in has exactly one solution: a solver tries all ways the words could fit the blank grid, and a layout with two or more fillings is never delivered. If no single-solution grid is found for a list, you get a message and are not charged.
  • Batch. Give many lists in one run (wordLists), and ask for several different versions of each (versions), for example one per student so nobody copies. A list that is refused (say, an emoji in a word) or cannot be built is skipped and named in OUTPUT.problems, the other lists are still made, and only delivered puzzles are charged.
  • Readable print. No printed text is smaller than 6 pt, clue numbers and answer keys included. Large grids get a page of their own, or the word list moves on to the next page, instead of smaller type.
  • Printable PDF. Each puzzle goes on its own page, with the word list or the clues beneath it. The answer keys come at the end.
  • Book interior. Set pageSize to book-6x9 or book-8.5x11 to get a paperback interior for your own puzzle book:
    • a title page (bookTitle), then one puzzle per page starting on a right-hand page, then the answer keys
    • page numbers, embedded fonts (IBM Plex Sans), an even page count, and grey answer highlights that print well in black and white
    • no bleed, with every mark inside the margins: the inside (gutter) margin follows the page-count table in KDP's paperback guidelines (0.375 in up to 150 pages, 0.5 in up to 300, and so on), and the top and outside margins are 0.5 in or more. The page numbers sit in the bottom margin, at least 0.35 in from the bottom edge (KDP asks for 0.25 in); the puzzles and text above them stay 0.5 in or more from it
    • a long title wraps onto several lines, and a word too long for one line is broken, so no title runs off the page
    • OUTPUT.pdfPages gives the page count for your cover's spine. KDP paperbacks need at least 24 pages (give 15 or more word lists with answer keys on, 21 or more without them, or ask for several versions) and allow at most about 828 (black and white, white paper), so split very large batches into several books. The cover is yours to make.
  • Reproducible. The same seed with the same input gives the same puzzles again.
  • Plain code. It uses no AI model and calls no outside service. Your words stay in your own Apify storage.

Input

FieldMeaning
puzzleTypeword-search (default), crossword or fill-in
wordsOne word or phrase per line. For a crossword, write word: clue (clues up to 150 characters; in a word search anything after a colon is ignored). Spaces, hyphens, apostrophes and periods are dropped in the grid (U.S.A. becomes USA). Latin letters only, accented and extended ones included (é, ü, ł, ř, ş, ğ, œ …). The grid is in capitals, and ß becomes SS there, as in German crosswords (Straße is STRASSE in the grid and stays Straße in the word list and clues).
titlePrinted above the puzzle
wordListsOptional batch: [{"title": "Fruit", "words": ["apple", "pear"]}, …]
versionsDifferent puzzles per list, 1–50 (default 1)
difficultyWord search: easy, medium (default) or hard
gridSizeWord search: the grid width and height, 5–30. Crossword and fill-in: the largest allowed width or height (at most 22 for book-6x9, so clue numbers stay at 6 pt or more). Leave it empty to size the grid automatically.
includeSolution, svg, pdf, pageSize (letter, a4, book-6x9, book-8.5x11), bookTitle, seedOutput options

Limits: 2–60 words per word search and 2–40 per crossword or fill-in, words of up to 30 letters (22 for crosswords and fill-ins on book-6x9), and up to 500 puzzles per run. Titles and clues may use Latin (with accents), Greek or Cyrillic letters, which the embedded PDF font (IBM Plex Sans) can print; not Chinese, Japanese or emoji.

Output

Each puzzle is one dataset item. The PDF is saved to the run's key-value store as puzzles.pdf. The OUTPUT record holds its link (pdfUrl), the page count for book interiors (pdfPages), and names any list that could not be built.

Word search, input {"words": ["cat", "dog", "fish", "bird", "horse", "rabbit"], "title": "Pets", "difficulty": "easy", "seed": 1}:

IHHRGJGH
LOCICYOC
RRRCATSU
ASCHMJBK
BEFKZSFX
BIRDHMIC
IRTOSIST
TCHGHAHZ

When includeSolution is on (the default), the item's solution also lists every word's position, for example {"word": "horse", "row": 0, "col": 1, "direction": "down"}, plus an SVG of the grid and one of the answer key.

Crossword, input {"puzzleType": "crossword", "title": "Instruments", "seed": 2, "words": ["piano: Instrument with 88 keys", "violin: Played with a bow, tucked under the chin", "trumpet: Brass instrument with three valves", "flute: Woodwind held sideways", "harp: Large instrument with strings you pluck", "guitar: Six strings and a sound hole"]}, answer grid (# = block):

#G###HARP
#U######I
#I####F#A
#T#VIOLIN
#A####U#O
TRUMPET##
######E##

Across: 2 Large instrument with strings you pluck (4) · 5 Played with a bow, tucked under the chin (6) · 6 Brass instrument with three valves (7) Down: 1 Six strings and a sound hole (6) · 3 Instrument with 88 keys (5) · 4 Woodwind held sideways (5)

The item holds a blankGrid to print, the across and down clues with their numbers, lengths and positions, and the answers. A fill-in item holds the same blankGrid and solutionGrid, plus wordsByLength, for example {"4": ["DATE", "LIME"], "5": ["APPLE", "GRAPE"]}.

Pricing

You pay per puzzle delivered, once: the Actor charges one puzzle event per puzzle, and Apify's default per-dataset-item event is removed from the pricing, so you are not billed a second time for the same item. (If that default event were ever priced, the Actor would bill each puzzle through it alone and skip its own event.) A list that is refused or cannot be built, such as a word with no letter in common with the rest, is reported in OUTPUT and never charged; the rest of the batch goes ahead. If your maximum cost per run covers fewer puzzles than you asked for, the Actor makes only as many as it covers, and the PDF holds all of them.

Rights

You may use, print, sell and publish the puzzles you generate, including in books, worksheets and apps. The grids are generated for you. The words and clues are yours.