POST /api/nytimes/games
Price: 1 credit
Get the published solution to a New York Times puzzle for one day: the Wordle answer, the four Connections groups with their sixteen tiles and board positions, the Spelling Bee letters with every accepted word and its pangrams, the Strands theme words, spangram, clue, letter grid and the grid cells each theme word and the spangram occupy, or the three Pips boards with their dominoes, regions and placements. Every day back to each game's first is available.
Read one day of a New York Times puzzle, answers included. Which fields are filled depends on game: wordle fills solution and days_since_launch; connections fills categories with their cards; spelling-bee fills center_letter, outer_letters, pangrams and answers; strands fills theme_words, spangram, clue, starting_board, valid_words, theme_word_positions and spangram_positions; pips fills levels, one per difficulty. A strands position is a [row, column] pair indexing starting_board, so the words can be drawn on the grid without solving the puzzle. editor and print_date are filled for every game. Ask for a day before a game started, or later than today, and the call fails.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)game string required — Which New York Times puzzle to read (one of: "wordle", "connections", "spelling-bee", "strands", "pips")date string required — Puzzle day as YYYY-MM-DD; each game has its own first day and nothing is published beyond today (examples: "2026-08-01", "2021-06-19"; minLength: 1)@type string (default: "NytimesPuzzle")game string requiredprint_date string requiredpuzzle_id string nullableeditor string nullableconstructors string nullabledays_since_launch integer nullablesolution string nullablecategories array (default: [])@type string (default: "NytimesPuzzleCategory")category_title string requiredcards array (default: [])@type string (default: "NytimesPuzzleCard")content string requiredposition integer nullablecenter_letter string nullableouter_letters array (default: [])pangrams array (default: [])answers array (default: [])theme_words array (default: [])theme_word_positions array (default: [])@type string (default: "NytimesPuzzleThemeWord")word string requiredpositions array (default: [])spangram string nullablespangram_positions array (default: [])clue string nullablestarting_board array (default: [])valid_words array (default: [])levels array (default: [])@type string (default: "NytimesPuzzleLevel")difficulty string requiredpuzzle_id string nullableconstructors string nullabledominoes array (default: [])regions array (default: [])@type string (default: "NytimesPuzzleRegion")region_type string requiredindices array (default: [])target integer nullablesolution array (default: [])422 — The request body did not validate Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — This game published no puzzle on that day Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.