Word Search Generator API - Ruby Gem

Word Search Generator creates customizable word search puzzles with configurable grid size, word placement, and difficulty levels.

Installation

Add this line to your application's Gemfile:

gem 'apiverve_wordsearch'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install apiverve_wordsearch

Getting Started

Get your API key at APIVerve

Basic Usage

require 'apiverve_wordsearch'

# Initialize the client
client = APIVerve::Wordsearch::Client.new(api_key: "YOUR_API_KEY")

# Make a request
response = client.execute({
  words: PUZZLE,SEARCH,WORD,GAME,FIND,HIDDEN,LETTERS,
  size: 15,
  difficulty: "medium"
})

# Print the response
puts response

Error Handling

begin
  response = client.execute({ words: PUZZLE,SEARCH,WORD,GAME,FIND,HIDDEN,LETTERS, size: 15, difficulty: "medium" })
  puts response["data"]
rescue APIVerve::Wordsearch::ValidationError => e
  puts "Validation error: #{e.errors.join(', ')}"
rescue APIVerve::Wordsearch::APIError => e
  puts "API error: #{e.message}"
  puts "Status code: #{e.status_code}"
end

Debug Mode

# Enable debug logging
client = APIVerve::Wordsearch::Client.new(
  api_key: "YOUR_API_KEY",
  debug: true
)

Example Response

{
  "status": "ok",
  "error": null,
  "data": {
    "grid": [
      [
        "P",
        "C",
        "R",
        "J",
        "W",
        "R",
        "D",
        "K",
        "G",
        "D",
        "V",
        "F",
        "J",
        "B",
        "Q"
      ],
      [
        "J",
        "F",
        "O",
        "J",
        "E",
        "B",
        "X",
        "I",
        "A",
        "A",
        "S",
        "S",
        "H",
        "X",
        "G"
      ],
      [
        "L",
        "N",
        "N",
        "Q",
        "L",
        "X",
        "G",
        "E",
        "M",
        "X",
        "F",
        "Q",
        "X",
        "V",
        "B"
      ],
      [
        "S",
        "J",
        "Y",
        "L",
        "X",
        "Z",
        "T",
        "X",
        "E",
        "A",
        "K",
        "M",
        "X",
        "C",
        "Y"
      ],
      [
        "S",
        "G",
        "F",
        "O",
        "E",
        "J",
        "F",
        "X",
        "M",
        "W",
        "V",
        "E",
        "I",
        "M",
        "X"
      ],
      [
        "W",
        "D",
        "V",
        "Y",
        "D",
        "T",
        "T",
        "N",
        "F",
        "U",
        "K",
        "L",
        "P",
        "C",
        "T"
      ],
      [
        "E",
        "R",
        "H",
        "M",
        "B",
        "N",
        "T",
        "B",
        "M",
        "A",
        "D",
        "Z",
        "X",
        "A",
        "D"
      ],
      [
        "D",
        "O",
        "G",
        "S",
        "Y",
        "E",
        "B",
        "E",
        "T",
        "H",
        "I",
        "Z",
        "K",
        "D",
        "P"
      ],
      [
        "F",
        "W",
        "S",
        "E",
        "A",
        "R",
        "C",
        "H",
        "R",
        "G",
        "X",
        "U",
        "B",
        "Y",
        "D"
      ],
      [
        "H",
        "C",
        "G",
        "E",
        "N",
        "B",
        "K",
        "E",
        "L",
        "S",
        "E",
        "P",
        "O",
        "E",
        "N"
      ],
      [
        "P",
        "A",
        "D",
        "W",
        "D",
        "D",
        "K",
        "A",
        "T",
        "E",
        "A",
        "A",
        "G",
        "R",
        "I"
      ],
      [
        "C",
        "T",
        "C",
        "E",
        "Q",
        "W",
        "S",
        "Q",
        "O",
        "W",
        "X",
        "R",
        "O",
        "E",
        "F"
      ],
      [
        "P",
        "E",
        "S",
        "I",
        "F",
        "L",
        "G",
        "E",
        "N",
        "V",
        "X",
        "I",
        "V",
        "K",
        "I"
      ],
      [
        "T",
        "G",
        "G",
        "Z",
        "X",
        "A",
        "D",
        "A",
        "F",
        "S",
        "U",
        "D",
        "N",
        "S",
        "P"
      ],
      [
        "Z",
        "J",
        "T",
        "L",
        "N",
        "E",
        "D",
        "D",
        "I",
        "H",
        "Z",
        "O",
        "A",
        "A",
        "A"
      ]
    ],
    "words": [
      {
        "word": "LETTERS",
        "start": {
          "row": 3,
          "col": 3
        },
        "direction": "diagonal-down-right"
      },
      {
        "word": "PUZZLE",
        "start": {
          "row": 9,
          "col": 11
        },
        "direction": "up"
      },
      {
        "word": "SEARCH",
        "start": {
          "row": 8,
          "col": 2
        },
        "direction": "right"
      },
      {
        "word": "HIDDEN",
        "start": {
          "row": 14,
          "col": 9
        },
        "direction": "left"
      },
      {
        "word": "WORD",
        "start": {
          "row": 8,
          "col": 1
        },
        "direction": "up"
      },
      {
        "word": "GAME",
        "start": {
          "row": 0,
          "col": 8
        },
        "direction": "down"
      },
      {
        "word": "FIND",
        "start": {
          "row": 11,
          "col": 14
        },
        "direction": "up"
      }
    ],
    "wordCount": 7,
    "size": 15,
    "difficulty": "medium",
    "html": "<html><head><title>Word Search Puzzle</title><style>body {font-family: Arial, sans-serif; padding: 20px;}.container {display: flex; gap: 40px;}table {border-collapse: collapse;}td {width: 30px; height: 30px; text-align: center; font-size: 18px; font-weight: bold; border: 1px solid #ccc;}.word-list {font-size: 16px;}.word-list h3 {margin-bottom: 10px;}.word-list ul {list-style: none; padding: 0;}.word-list li {margin: 5px 0;}</style></head><body><div class='container'><div><table><tr><td>P</td><td>C</td><td>R</td><td>J</td><td>W</td><td>R</td><td>D</td><td>K</td><td>G</td><td>D</td><td>V</td><td>F</td><td>J</td><td>B</td><td>Q</td></tr><tr><td>J</td><td>F</td><td>O</td><td>J</td><td>E</td><td>B</td><td>X</td><td>I</td><td>A</td><td>A</td><td>S</td><td>S</td><td>H</td><td>X</td><td>G</td></tr><tr><td>L</td><td>N</td><td>N</td><td>Q</td><td>L</td><td>X</td><td>G</td><td>E</td><td>M</td><td>X</td><td>F</td><td>Q</td><td>X</td><td>V</td><td>B</td></tr><tr><td>S</td><td>J</td><td>Y</td><td>L</td><td>X</td><td>Z</td><td>T</td><td>X</td><td>E</td><td>A</td><td>K</td><td>M</td><td>X</td><td>C</td><td>Y</td></tr><tr><td>S</td><td>G</td><td>F</td><td>O</td><td>E</td><td>J</td><td>F</td><td>X</td><td>M</td><td>W</td><td>V</td><td>E</td><td>I</td><td>M</td><td>X</td></tr><tr><td>W</td><td>D</td><td>V</td><td>Y</td><td>D</td><td>T</td><td>T</td><td>N</td><td>F</td><td>U</td><td>K</td><td>L</td><td>P</td><td>C</td><td>T</td></tr><tr><td>E</td><td>R</td><td>H</td><td>M</td><td>B</td><td>N</td><td>T</td><td>B</td><td>M</td><td>A</td><td>D</td><td>Z</td><td>X</td><td>A</td><td>D</td></tr><tr><td>D</td><td>O</td><td>G</td><td>S</td><td>Y</td><td>E</td><td>B</td><td>E</td><td>T</td><td>H</td><td>I</td><td>Z</td><td>K</td><td>D</td><td>P</td></tr><tr><td>F</td><td>W</td><td>S</td><td>E</td><td>A</td><td>R</td><td>C</td><td>H</td><td>R</td><td>G</td><td>X</td><td>U</td><td>B</td><td>Y</td><td>D</td></tr><tr><td>H</td><td>C</td><td>G</td><td>E</td><td>N</td><td>B</td><td>K</td><td>E</td><td>L</td><td>S</td><td>E</td><td>P</td><td>O</td><td>E</td><td>N</td></tr><tr><td>P</td><td>A</td><td>D</td><td>W</td><td>D</td><td>D</td><td>K</td><td>A</td><td>T</td><td>E</td><td>A</td><td>A</td><td>G</td><td>R</td><td>I</td></tr><tr><td>C</td><td>T</td><td>C</td><td>E</td><td>Q</td><td>W</td><td>S</td><td>Q</td><td>O</td><td>W</td><td>X</td><td>R</td><td>O</td><td>E</td><td>F</td></tr><tr><td>P</td><td>E</td><td>S</td><td>I</td><td>F</td><td>L</td><td>G</td><td>E</td><td>N</td><td>V</td><td>X</td><td>I</td><td>V</td><td>K</td><td>I</td></tr><tr><td>T</td><td>G</td><td>G</td><td>Z</td><td>X</td><td>A</td><td>D</td><td>A</td><td>F</td><td>S</td><td>U</td><td>D</td><td>N</td><td>S</td><td>P</td></tr><tr><td>Z</td><td>J</td><td>T</td><td>L</td><td>N</td><td>E</td><td>D</td><td>D</td><td>I</td><td>H</td><td>Z</td><td>O</td><td>A</td><td>A</td><td>A</td></tr></table></div><div class='word-list'><h3>Find these words:</h3><ul><li>LETTERS</li><li>PUZZLE</li><li>SEARCH</li><li>HIDDEN</li><li>WORD</li><li>GAME</li><li>FIND</li></ul></div></div></body></html>",
    "image": {
      "imageName": "0ce84c70-c791-40f9-adfa-2ad3823667f7_puzzle.png",
      "format": ".png",
      "downloadURL": "https://storage.googleapis.com/apiverve/APIData/wordsearch/0ce84c70-c791-40f9-adfa-2ad3823667f7_puzzle.png?GoogleAccessId=635500398038-compute%40developer.gserviceaccount.com&Expires=1766010772&Signature=QOHSnr40T1DxKtie7xCSTwnqNwfgaur%2BUZDwPf8xhgiaynJPDQjvrVJwZBlkuSFXQFyd212HYyui%2BMUjHIVhMvL8TaGUucqOvXhsaXXl9p5vzQhGsGP2crtP8U94NpXonrL0GjnmFmFFaQOJELbcCqMLfTl5XjArtNsMTp0%2Bj3b8DeL6ljMZe09sRgL5i7cslA%2BLljRRX20Dbd2%2BuqR1r2aGY6pMZEqr7djDDF3uLNnyPq8M2wKPX243FASrcl3URyXZMkVduPYvkwIxvGkcOoeE7GrZo%2FnpOElZgbwevDCklXJ3fS6Ij2ffkLlYSrDNM11VSYUrU1fzgfHX2w%2F5ew%3D%3D",
      "expires": 1766010772936
    },
    "solutionImage": {
      "imageName": "b4dc1d71-86e4-4331-af3b-01295373b772_solution.png",
      "format": ".png",
      "downloadURL": "https://storage.googleapis.com/apiverve/APIData/wordsearch/b4dc1d71-86e4-4331-af3b-01295373b772_solution.png?GoogleAccessId=635500398038-compute%40developer.gserviceaccount.com&Expires=1766010773&Signature=j8897QcmWY1g4fKyE4JUEL4RZ6OCXJCCRmB04DFCpjFOW4vUDfgc62cwJDIBZsCcnbFzTfShMekQJFvrie8MHR59VtbYD58XXI7RPRbxjjEdfZ6exdiRgN%2BXZ%2B%2Ff5L7DksaYC%2Bf6FL80REs4Vb7C%2B0PBlRa%2FBpqo%2FcHXL4An5dIsUKyzXLNrDE6AvYXIyiKNYRcsfTN8g7ekXxqM4uI5XYYF3Kl4KlORrVs395S421Bk1j9Qpet04lI7vTe7dwQIDimuOshA56LfhjN5OK%2FGCxyC0IAJ4cTZcN52ggkeEQSX%2BOgX8Sy%2B6%2BsM7YmkBOVeB%2FKlO7CIX1rKcO5oFOzN8Q%3D%3D",
      "expires": 1766010773937
    }
  }
}

Documentation

For more information, visit the API Documentation.

Support

License

This gem is available under the MIT License.