Puzzle REST API Reference
Use a Bearer API key. Creation saves the complete result to My Puzzles and returns browser pages, not generated file bytes.
Authentication
Pass Authorization: Bearer YOUR_API_KEY. Cookies are not accepted by external endpoints. Keep the key on your server.
Example request
curl -X POST https://puzzlegenio.com/api/v1/puzzles \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Idempotency-Key: task-000000000001' \
-H 'Content-Type: application/json' \
-d '{ "type": "wordsearch", "preset": "word-search-for-kids", "title": "Animal word search", "input": { "words": [ "CAT", "DOG", "LION", "TIGER" ] }, "options": { "gridSize": 10, "allowDiagonal": false } }'Example success response
{
"data": {
"savedId": "123456789",
"shareId": "AbCdEfGhIjKlMnOpQrStUvWxYz012345",
"type": "wordsearch",
"preset": "word-search-for-kids",
"viewUrl": "https://puzzlegenio.com/puzzles/AbCdEfGhIjKlMnOpQrStUvWxYz012345",
"exportPageUrl": "https://puzzlegenio.com/puzzles/AbCdEfGhIjKlMnOpQrStUvWxYz012345",
"editUrl": "https://puzzlegenio.com/word-search-for-kids?id=123456789",
"playUrl": "https://puzzlegenio.com/word-search-maker/play/AbCdEfGhIjKlMnOpQrStUvWxYz012345",
"expiresAt": "2026-11-01T00:00:00.000Z",
"shareState": "active",
"savedCount": 1,
"limit": 20,
"formats": [
"pdf",
"answer-pdf"
],
"itemCount": 1,
"warnings": []
},
"requestId": "00000000-0000-4000-8000-000000000000"
}Example IDs and dates illustrate the response shape. The data object contains the saved result; requestId identifies this HTTP request.
- viewUrl
- Public preview page; anyone with the link can also view answers.
- exportPageUrl
- Browser page where the visitor chooses an available download format. It may equal viewUrl and is not a file URL.
- editUrl
- Owner-only editing page; sign-in and ownership are checked.
- playUrl
- Playable game page only for supported modes; otherwise null.
REST endpoints
| POST | /api/v1/puzzles |
|---|---|
| GET | /api/v1/puzzles |
| GET | /api/v1/puzzles/{savedId} |
| DELETE | /api/v1/puzzles/{savedId} |
| POST | /api/v1/puzzles/{savedId}/share |
| GET | /api/v1/capabilities |
| GET | /api/v1/results/{shareId} |
| POST | /api/v1/assets |
| POST | /api/v1/assets/import |
| GET | /api/v1/openapi.json |
Idempotency and responses
Idempotency-Key is required for creation. Retry with the same key and body to receive the same saved puzzle. Reusing a key with a different body returns 409. A newly created puzzle returns 201; a replay returns 200.
Errors
Errors use {error:{code,message,details},requestId}. 400 is malformed JSON or request key; 401 authentication; 403 quota or entitlement; 404 unknown or unowned item; 409 key conflict; 410 deleted or unavailable share; 413 size; 415 media type; 422 invalid or unsatisfiable input; 429 rate limit with Retry-After; 503 creation unavailable.
