Sari la conținut
API pentru dezvoltatori

Creează activități direct din sistemul tău

Un POST pentru fiecare tip de activitate. Trimiți conținutul ca JSON și primești înapoi o activitate în contul tău Puzzel.org, plus un URL pe care îl poți da jucătorilor sau îl poți pune într-un iframe.

URL de bază
https://puzzel.org/api/public/v1
Autentificare
Cheie + e-mail în corpul cererii
Endpointuri
38 tipuri de activități
Cotă
10 activități pe zi

Prima ta cerere

Nu ai nimic de instalat și nu e nevoie de niciun handshake: trimiți un corp JSON cu cheia ta, e-mailul tău și conținutul tău. Răspunsul conține cheia noii activități și URL-ul la care se joacă.

POST crossword
curl -X POST https://puzzel.org/api/public/v1/crossword \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Crossword",
  "language": "ro",
  "items": [
    {
      "answer": "BANANA",
      "description": "A long yellow fruit",
      "type": "text"
    },
    {
      "answer": "CHERRY",
      "description": "A small red stone fruit",
      "type": "text"
    },
    {
      "answer": "MELON",
      "description": "Big, green outside, sweet inside",
      "type": "text"
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}

Fiecare exemplu de pe această pagină este o cerere completă, care poate fi rulată. Înlocuiește cheia și conținutul cu ale tale și funcționează ca atare.

Autentificare

Nu există anteturi și niciun token bearer. Ambele credențiale călătoresc în corpul JSON al fiecărei cereri, iar cheia este acceptată doar pentru contul căruia îi aparține acel e-mail.

CâmpTipCe face
account_api_key
obligatoriu
string
stringCheia API a contului tău. Se pune în corpul cererii, nu într-un antet.
email
obligatoriu
string
stringAdresa cu care te conectezi la contul tău Puzzel.org. Cheia este valabilă doar împreună cu ea.

Cheia ta se află în secțiunea de cont a tabloului tău de bord, după butonul Arată.

Conectează-te

Cheile API sunt oferite când începe un abonament, așa că un cont gratuit nu are încă una.

Vezi planurile

Tratează cheia ca pe o parolă. Ea creează și suprascrie activități în contul tău, așa că păstreaz-o pe server și departe de orice poate citi un browser.

Corpul cererii

Fiecare endpoint primește aceleași cinci câmpuri. Ce diferă este câmpul de conținut de sub ele: majoritatea primesc un array de elemente, câteva primesc o singură propoziție sau o singură imagine, iar sudoku nu primește nimic.

CâmpTipCe face
account_api_key
obligatoriu
string
stringCheia API a contului tău. Se pune în corpul cererii, nu într-un antet.
email
obligatoriu
string
stringAdresa cu care te conectezi la contul tău Puzzel.org. Cheia este valabilă doar împreună cu ea.
title
opțional
string
stringNumele pe care îl primește activitatea în tabloul tău de bord. Dacă îl omiți, endpointul folosește propriul nume implicit.
language
opțional
string
stringDecide doar limba din URL-ul pe care îl primești înapoi — nu traduce nimic din ce trimiți. Cuvintele ascunse îl citesc și pentru a comuta literele de umplutură la arabă, atunci când valoarea este "ar".
Implicit: "en"
activity_key
opțional
string
stringOmite-l ca să creezi o activitate nouă. Trimite cheia uneia pe care deja o deții și acea activitate este reconstruită în loc.

settings este un obiect cu opțiuni specifice fiecărui endpoint. Care dintre ele sunt citite de un endpoint este listat mai jos, la el; orice altceva pui acolo este ignorat.

Ce primești înapoi

Un apel reușit răspunde cu 200, cu cheia noii activități și URL-ul la care se joacă. Orice altceva răspunde cu success setat pe false și un singur șir de eroare.

Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}
Eșec
{
  "success": false,
  "error": "Invalid Email or API Key"
}

URL-ul primit înapoi este vizualizarea de încorporare. Înlocuiește embed cu play ca să-l deschizi pe pagină întreagă, sau cu build ca să-l deschizi în editor — cheia de după p= rămâne aceeași.

Creare vs. actualizare

Trimite activity_key și activitatea din spatele ei este reconstruită pe loc: conținutul îi este înlocuit, numele și marcajul de versiune sunt reîmprospătate, iar cheia în sine rămâne aceeași — așa că linkurile și încorporările pe care le-ai partajat deja continuă să funcționeze. Rezultatele, plasarea în folder și orice setare pe care endpointul nu o scrie el însuși rămân neschimbate.

activity_key
{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "activity_key": "-Nq8sample_activity_key",
  "title": "Fruit crossword, week 2",
  "items": [
    {
      "answer": "BANANA",
      "description": "A long yellow fruit",
      "type": "text"
    },
    {
      "answer": "CHERRY",
      "description": "A small red stone fruit",
      "type": "text"
    },
    {
      "answer": "MELON",
      "description": "Big, green outside, sweet inside",
      "type": "text"
    }
  ]
}
  • title este aplicat la fiecare actualizare, inclusiv valoarea lui implicită — dacă îl omiți, activitatea este redenumită cu numele implicit al acelui endpoint.
  • Blocurile de setări pe care un endpoint le scrie el însuși sunt rescrise de la zero, așa că o actualizare le resetează și pe acestea la valorile pe care le trimiți, sau la valorile implicite ale endpointului.
  • Poți actualiza doar activități deținute chiar de contul tău. Cheia altcuiva primește răspuns 403.
  • O actualizare costă la fel ca o creare: un apel scăzut din cota de azi.

Limită de trafic

10
10 activități per cont pe zi

Fiecare apel reușit se contorizează, la fel creările ca și actualizările. Dacă depășești limita, următoarea cerere primește răspuns 429 până când contorul este resetat.

Contorul este șters o dată pe zi de un job programat, nu pe o fereastră glisantă de 24 de ore.

Erori

Erorile sosesc întotdeauna ca JSON, cu aceleași două câmpuri, niciodată ca pagină HTML. Șirul de eroare este scris pentru a fi citit de o persoană — numește câmpul sau limita care a eșuat.

StareCe înseamnă
400
Bad Request
Ceva din corpul cererii lipsește, este malformat sau este în afara intervalului permis. Mesajul numește câmpul.
401
Unauthorized
E-mailul este necunoscut, sau cheia nu aparține acelui cont.
403
Forbidden
activity_key pe care l-ai trimis aparține unui alt cont.
429
Too Many Requests
Cota de azi este epuizată. Se resetează o dată pe zi.
500
Server Error
Generatorul nu a putut construi un joc din ce ai trimis — de obicei prea puține cuvinte, sau cuvinte care nu pot fi îmbinate.

Endpointuri

O cale pentru fiecare tip de activitate, toate POST, toate sub același URL de bază. Fiecare listează conținutul de care are nevoie, setările pe care le citește și o cerere pe care o poți rula.

Cuvinte și litere

Cuvintele încrucișate

Îmbină răspunsurile tale într-o grilă și numerotează definițiile pentru tine.

#
POST /api/public/v1/crossword Între 2 și 80 în items
Conținut

Un array de cuvinte. Fiecare intrare asociază răspunsul cu definiția care indică spre el.

Revine implicit la numele “Crossword API”

Bine de știut
  • Răspunsurile mai scurte de două caractere sunt eliminate înainte de construirea grilei, iar cel puțin două trebuie să supraviețuiască acestui pas.
  • Răspunsurile sunt convertite cu majuscule, iar generatorul are douăzeci de încercări să le potrivească. Dacă nu poate plasa niciun cuvânt, apelul răspunde cu 500.
Setări pe care le citește
CâmpTipCe face
hidden_solution
opțional în settings
string
stringUn cuvânt bonus opțional. Literele lui sunt marcate în căsuțele grilei terminate, ca jucătorii să le adune după ce rezolvă cuvintele încrucișate, așa că fiecare literă a lui trebuie să apară în răspunsuri.
Exemplu de cerere
POST crossword
curl -X POST https://puzzel.org/api/public/v1/crossword \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Crossword",
  "language": "ro",
  "items": [
    {
      "answer": "BANANA",
      "description": "A long yellow fruit",
      "type": "text"
    },
    {
      "answer": "CHERRY",
      "description": "A small red stone fruit",
      "type": "text"
    },
    {
      "answer": "MELON",
      "description": "Big, green outside, sweet inside",
      "type": "text"
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}

Cuvintele ascunse

Ascunde cuvintele tale într-o grilă de litere, în direcțiile și forma pe care le alegi.

#
POST /api/public/v1/wordseeker Între 2 și 40 în items
Conținut

Un array de cuvinte. Textul definiției devine lista de cuvinte de la care pornesc jucătorii.

Revine implicit la numele “Wordseeker API”

Bine de știut
  • Răspunsurile sub două caractere sunt eliminate, iar fiecare răspuns este convertit cu majuscule înainte de a intra în grilă.
  • Grila este completată cu litere latine, cu excepția cazului în care language este "ar", ceea ce comută umplutura la arabă.
Setări pe care le citește
CâmpTipCe face
hidden_solution
opțional în settings
string
stringLiterele rămase formează acest cuvânt. Setarea lui îi spune și generatorului să potrivească mai întâi soluția, în loc să încadreze cât mai multe cuvinte posibil.
directions
opțional în settings
string[]
string[]În ce direcții poate merge un cuvânt. Dacă îl omiți, cuvintele merg doar spre est, sud-est și sud.
Una dintre westeastnorthsouthnorthwestnortheastsouthwestsoutheast
Implicit: ["east", "southeast", "south"]
template
opțional în settings
string
stringDecupează grila într-o formă, în loc să o lase pătrată.
Una dintre squarecirclecrossdiamondpyramidsmileystarcross_plus
Exemplu de cerere
POST wordseeker
curl -X POST https://puzzel.org/api/public/v1/wordseeker \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Wordseeker",
  "language": "ro",
  "items": [
    {
      "answer": "BANANA",
      "description": "A long yellow fruit",
      "type": "text"
    },
    {
      "answer": "CHERRY",
      "description": "A small red stone fruit",
      "type": "text"
    },
    {
      "answer": "MELON",
      "description": "Big, green outside, sweet inside",
      "type": "text"
    }
  ],
  "settings": {
    "hidden_solution": "FRUIT",
    "directions": [
      "east",
      "south",
      "southeast"
    ],
    "template": "square"
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordseeker/embed?p=-Nq8sample_activity_key",
  "message": "Wordseeker created successfully"
}

Acrostihul

Stivuiește răspunsurile tale astfel încât o coloană să formeze un cuvânt ascuns.

#
POST /api/public/v1/acrostic Între 1 și 40 în items
Conținut

Un array de cuvinte. Împreună trebuie să furnizeze fiecare literă a cuvântului ascuns.

Revine implicit la numele “Acrostic API”

Bine de știut
  • Dacă răspunsurile nu pot furniza literele de care are nevoie soluția, apelul răspunde cu 500, în loc să salveze o grilă construită pe jumătate.
  • Generatorul reordonează răspunsurile tale ca să facă să funcționeze coloana, așa că ordinea pe care o trimiți nu este ordinea pe care o văd jucătorii.
Setări pe care le citește
CâmpTipCe face
hidden_solution
obligatoriu în settings
string
stringCuvântul pe care îl formează coloana evidențiată. Acest endpoint nu funcționează fără el.
Exemplu de cerere
POST acrostic
curl -X POST https://puzzel.org/api/public/v1/acrostic \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Acrostic",
  "language": "ro",
  "items": [
    {
      "answer": "PEACH",
      "description": "Fuzzy skin, sweet flesh",
      "type": "text"
    },
    {
      "answer": "BANANA",
      "description": "A long yellow fruit",
      "type": "text"
    },
    {
      "answer": "CHERRY",
      "description": "A small red stone fruit",
      "type": "text"
    },
    {
      "answer": "MELON",
      "description": "Big, green outside, sweet inside",
      "type": "text"
    }
  ],
  "settings": {
    "hidden_solution": "PLUM"
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/acrostic/embed?p=-Nq8sample_activity_key",
  "message": "Acrostic created successfully"
}

Cuvintele amestecate

api_e_word_scramble

#
POST /api/public/v1/word-scramble Între 1 și 40 în items
Conținut

api_c_word_scramble

Revine implicit la numele “Word Scramble API”

Bine de știut
  • Activitățile create prin API au mereu activată setarea de amestecare a ordinii, așa că ordinea pe care o trimiți nu este ordinea pe care o primesc jucătorii.
Setări pe care le citește
CâmpTipCe face
hidden_solution
opțional în settings
string
stringUn cuvânt bonus opțional pe care jucătorii îl introduc după ce rezolvă restul.
Exemplu de cerere
POST word-scramble
curl -X POST https://puzzel.org/api/public/v1/word-scramble \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Word Scramble",
  "language": "ro",
  "items": [
    {
      "answer": "BANANA",
      "description": "A long yellow fruit",
      "type": "text"
    },
    {
      "answer": "CHERRY",
      "description": "A small red stone fruit",
      "type": "text"
    },
    {
      "answer": "MELON",
      "description": "Big, green outside, sweet inside",
      "type": "text"
    }
  ],
  "settings": {
    "hidden_solution": "FRUIT"
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/word-scramble/embed?p=-Nq8sample_activity_key",
  "message": "Word Scramble created successfully"
}

Spânzurătoarea

Transformă cuvintele sau expresiile tale în runde de ghicit litere.

#
POST /api/public/v1/hangman Între 1 și 50 în items
Conținut

Un array de cuvinte sau expresii scurte. Indiciul este sugestia pe care o văd jucătorii.

Revine implicit la numele “Hangman API”

Exemplu de cerere
POST hangman
curl -X POST https://puzzel.org/api/public/v1/hangman \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Hangman",
  "language": "ro",
  "items": [
    {
      "answer": "BANANA",
      "description": "A long yellow fruit",
      "type": "text"
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/hangman/embed?p=-Nq8sample_activity_key",
  "message": "Hangman created successfully"
}

Wordle

Creează un joc de ghicit cuvântul din fiecare cuvânt pe care îl trimiți.

#
POST /api/public/v1/wordle Între 1 și 50 în items
Conținut

Un array de cuvinte. Jucătorii primesc câte o rundă pentru fiecare cuvânt.

Revine implicit la numele “Wordle API”

Bine de știut
  • Creat cu setarea de verificare-că-răspunsurile-sunt-cuvinte-reale activată. Dezactiveaz-o în editor dacă cuvintele tale sunt nume sau inventate.
Exemplu de cerere
POST wordle
curl -X POST https://puzzel.org/api/public/v1/wordle \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Wordle",
  "language": "ro",
  "items": [
    {
      "answer": "MELON",
      "description": "Sweet and green",
      "type": "text"
    },
    {
      "answer": "PEACH",
      "description": "Fuzzy and orange",
      "type": "text"
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordle/embed?p=-Nq8sample_activity_key",
  "message": "Wordle created successfully"
}

Exercițiul de tastare

api_e_typing_practice

#
POST /api/public/v1/typing-practice Între 1 și 50 în items
Conținut

api_c_typing_practice

Revine implicit la numele “Typing Practice API”

Exemplu de cerere
POST typing-practice
curl -X POST https://puzzel.org/api/public/v1/typing-practice \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Typing Practice",
  "language": "ro",
  "items": [
    {
      "answer": "The quick brown fox jumps over the lazy dog",
      "description": "Every letter of the alphabet",
      "type": "text"
    },
    {
      "answer": "Pack my box with five dozen liquor jugs",
      "description": "Another pangram",
      "type": "text"
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/typing-practice/embed?p=-Nq8sample_activity_key",
  "message": "Typing Practice created successfully"
}

Roata norocului

api_e_wheel_of_fortune

#
POST /api/public/v1/wheel-of-fortune Între 1 și 50 în items
Conținut

api_c_wheel_of_fortune

Revine implicit la numele “Wheel of Fortune API”

Bine de știut
  • Creat cu opțiunea “arată rezultatul doar pe roată” activată, așa că rezultatul se citește de pe roată, nu este anunțat lângă ea.
Exemplu de cerere
POST wheel-of-fortune
curl -X POST https://puzzel.org/api/public/v1/wheel-of-fortune \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Wheel of Fortune",
  "language": "ro",
  "items": [
    {
      "answer": "Read a page aloud",
      "description": "Segment 1",
      "type": "text"
    },
    {
      "answer": "Name three fruits",
      "description": "Segment 2",
      "type": "text"
    },
    {
      "answer": "Spell it backwards",
      "description": "Segment 3",
      "type": "text"
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wheel-of-fortune/embed?p=-Nq8sample_activity_key",
  "message": "Wheel of Fortune created successfully"
}

Integrama

Integrama: definițiile stau în interiorul grilei, fiecare cu o săgeată spre răspunsul ei.

#
POST /api/public/v1/arrowword Între 2 și 80 în items
Conținut

Un array de cuvinte. Fiecare intrare asociază răspunsul cu o definiție suficient de scurtă încât să încapă într-o singură căsuță.

Revine implicit la numele “Arrowword API”

Setări pe care le citește
CâmpTipCe face
hidden_solution
opțional în settings
string
stringUn cuvânt bonus opțional. Literele lui sunt marcate în căsuțele grilei terminate, așa că fiecare literă a lui trebuie să apară în răspunsuri.
Exemplu de cerere
POST arrowword
curl -X POST https://puzzel.org/api/public/v1/arrowword \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Arrowword",
  "language": "ro",
  "items": [
    {
      "answer": "Stockholm",
      "description": "Capital of Sweden",
      "type": "text"
    },
    {
      "answer": "Oslo",
      "description": "Capital of Norway",
      "type": "text"
    },
    {
      "answer": "Helsinki",
      "description": "Capital of Finland",
      "type": "text"
    }
  ],
  "settings": {
    "hidden_solution": "North"
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/arrowword/embed?p=-Nq8sample_activity_key",
  "message": "Arrowword created successfully"
}

Strands

O grilă în care fiecare literă aparține unui cuvânt tematic, cu un cuvânt care numește tema și traversează grila de la o margine la cealaltă.

#
POST /api/public/v1/strands Între 2 și 24 în items
Conținut

Un array de cuvinte tematice. Împreună cu spangramul, literele lor trebuie să umple grila exact.

Revine implicit la numele “Strands API”

Bine de știut
  • Literele tuturor cuvintelor și ale spangramului luate împreună trebuie să însumeze exact 30, 35, 36, 40, 42, 45, 48, 49, 50, 54, 56, 60, 63, 64, 70, 72 sau 80. Orice alt număr răspunde cu 400 și spune câte litere trebuie adăugate sau eliminate.
Setări pe care le citește
CâmpTipCe face
theme
opțional în settings
string
stringGhicitoarea afișată deasupra grilei. Dacă o omiți, jucătorii văd titlul.
spangram
opțional în settings
string
stringCuvântul sau expresia care numește tema și traversează grila de la o margine la cealaltă.
Exemplu de cerere
POST strands
curl -X POST https://puzzel.org/api/public/v1/strands \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Strands",
  "language": "ro",
  "items": [
    {
      "answer": "whisk",
      "type": "text"
    },
    {
      "answer": "ladle",
      "type": "text"
    },
    {
      "answer": "spatula",
      "type": "text"
    },
    {
      "answer": "grater",
      "type": "text"
    },
    {
      "answer": "peeler",
      "type": "text"
    },
    {
      "answer": "skillet",
      "type": "text"
    }
  ],
  "settings": {
    "theme": "What the cook reaches for",
    "spangram": "Kitchen tools"
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/strands/embed?p=-Nq8sample_activity_key",
  "message": "Strands created successfully"
}

Enumerarea

api_e_name_them_all

#
POST /api/public/v1/name-them-all Între 1 și 250 în items
Conținut

api_c_name_them_all

Revine implicit la numele “Name Them All API”

Bine de știut
  • O intrare este un obiect cu un answer și, opțional, aliases (alte variante de scriere care contează), o description (sugestia) și un group. Majusculele, diacriticele și punctuația sunt ignorate când se verifică un nume.
Setări pe care le citește
CâmpTipCe face
list_match_mode
opțional în settings
string
stringDacă un nume contează în clipa în care este tastat sau doar la Enter.
Una dintre while_typingon_enter
Implicit: "while_typing"
list_slot_hint
opțional în settings
string
stringCe dă de gol un spațiu gol: nimic, lungimea numelui, prima lui literă sau sugestia pe care ai scris-o.
Una dintre nonelengthfirst_letterhint
Implicit: "none"
list_arrange
opțional în settings
string
stringO coloană pentru fiecare grup sau o singură listă.
Una dintre groupsone_list
Implicit: "groups"
list_allow_give_up
opțional în settings
boolean
booleanAfișează un buton de renunțare care încheie runda și dezvăluie ce a rămas neenumerat.
Implicit: false
Exemplu de cerere
POST name-them-all
curl -X POST https://puzzel.org/api/public/v1/name-them-all \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Name Them All",
  "language": "ro",
  "items": [
    {
      "answer": "United Kingdom",
      "aliases": [
        "UK",
        "Great Britain",
        "Britain"
      ],
      "group": "Islands"
    },
    {
      "answer": "Ireland",
      "aliases": [
        "Éire"
      ],
      "group": "Islands"
    },
    {
      "answer": "Côte d'Azur's neighbour Monaco",
      "aliases": [
        "Monaco"
      ],
      "description": "The smallest one",
      "group": "Mainland"
    }
  ],
  "settings": {
    "list_slot_hint": "first_letter",
    "list_match_mode": "on_enter",
    "list_allow_give_up": true
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/name-them-all/embed?p=-Nq8sample_activity_key",
  "message": "Name them all list created successfully"
}
Cartonașe și perechi

Memory

Cartonașe cu fața în jos, de întors și potrivit în perechi.

#
POST /api/public/v1/memory Între 2 și 30 în items
Conținut

Un array de perechi. Fiecare pereche conține cele două cartonașe care merg împreună.

Revine implicit la numele “Memory Game API”

Bine de știut
  • Un cartonaș este un obiect cu un type și o value. Folosește "text" pentru cuvinte, sau "image", "audio", "youtube" ori "link" cu un URL în value, și adaugă alt pentru o descriere.
Exemplu de cerere
POST memory
curl -X POST https://puzzel.org/api/public/v1/memory \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Memory Game",
  "language": "ro",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/memory/embed?p=-Nq8sample_activity_key",
  "message": "Memory game created successfully"
}

Potrivește-le

api_e_matching_pairs

#
POST /api/public/v1/matching-pairs Între 2 și 30 în items
Conținut

api_c_matching_pairs

Revine implicit la numele “Matching Game API”

Bine de știut
  • Un cartonaș este un obiect cu un type și o value. Folosește "text" pentru cuvinte, sau "image", "audio", "youtube" ori "link" cu un URL în value, și adaugă alt pentru o descriere.
Exemplu de cerere
POST matching-pairs
curl -X POST https://puzzel.org/api/public/v1/matching-pairs \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Matching Game",
  "language": "ro",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/matching-pairs/embed?p=-Nq8sample_activity_key",
  "message": "Matching pairs game created successfully"
}

Cartonașele de învățare

api_e_flash_cards

#
POST /api/public/v1/flash-cards Între 1 și 150 în items
Conținut

api_c_flash_cards

Revine implicit la numele “Flash Cards API”

Bine de știut
  • Endpointul stochează exact atâtea cartonașe câte trimiți, așa că trimite exact două per intrare — fața, apoi spatele.
  • Un cartonaș este un obiect cu un type și o value. Folosește "text" pentru cuvinte, sau "image", "audio", "youtube" ori "link" cu un URL în value, și adaugă alt pentru o descriere.
Exemplu de cerere
POST flash-cards
curl -X POST https://puzzel.org/api/public/v1/flash-cards \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Flash Cards",
  "language": "ro",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/flash-cards/embed?p=-Nq8sample_activity_key",
  "message": "Flash Cards created successfully"
}

Sortarea pe categorii

Cartonașe de sortat în categoria din care fac parte.

#
POST /api/public/v1/categorize Cel puțin 2 în items · cel mult 60 cartonașe în total
Conținut

Un array de categorii, fiecare cu un nume și cartonașele care fac parte din ea.

Revine implicit la numele “Categorize Game API”

Bine de știut
  • O categorie trimisă fără nume este salvată ca “Categorie fără titlu”, așa că trimite mereu unul.
  • Un cartonaș este un obiect cu un type și o value. Folosește "text" pentru cuvinte, sau "image", "audio", "youtube" ori "link" cu un URL în value, și adaugă alt pentru o descriere.
Exemplu de cerere
POST categorize
curl -X POST https://puzzel.org/api/public/v1/categorize \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Categorize Game",
  "language": "ro",
  "items": [
    {
      "name": "Red fruits",
      "cards": [
        {
          "type": "text",
          "value": "Strawberry"
        },
        {
          "type": "text",
          "value": "Cherry"
        }
      ]
    },
    {
      "name": "Yellow fruits",
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "Lemon"
        }
      ]
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/categorize/embed?p=-Nq8sample_activity_key",
  "message": "Categorize game created successfully"
}

Ordonarea

O secvență pe care jucătorii trebuie să o pună din nou în ordine.

#
POST /api/public/v1/reorder Cel puțin 1 în items · cel mult 60 cartonașe în total
Conținut

Un array de secvențe. Fiecare conține cartonașele sale în ordinea corectă.

Revine implicit la numele “Reorder Game API”

Bine de știut
  • Ordinea pe care o trimiți este stocată ca ordine corectă — numărul unu primul.
  • Un cartonaș este un obiect cu un type și o value. Folosește "text" pentru cuvinte, sau "image", "audio", "youtube" ori "link" cu un URL în value, și adaugă alt pentru o descriere.
Exemplu de cerere
POST reorder
curl -X POST https://puzzel.org/api/public/v1/reorder \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Reorder Game",
  "language": "ro",
  "items": [
    {
      "name": "From seed to fruit",
      "cards": [
        {
          "type": "text",
          "value": "Plant the seed"
        },
        {
          "type": "text",
          "value": "Water it"
        },
        {
          "type": "text",
          "value": "Watch it grow"
        },
        {
          "type": "text",
          "value": "Pick the fruit"
        }
      ]
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/reorder/embed?p=-Nq8sample_activity_key",
  "message": "Reorder game created successfully"
}

Bingo

Un bingo pentru clasă, cu extrageri făcute live de gazdă: fiecare jucător primește un cartonaș alcătuit din items-urile tale.

#
POST /api/public/v1/bingo Nu primește items
Conținut

Un array de items din care se alcătuiesc cartonașele. Trimite clar mai multe decât are căsuțe un cartonaș, ca să difere cartonașele între ele.

Revine implicit la numele “Bingo API”

Bine de știut
  • Un item este un obiect cu o value și, opțional, un type ("text", "image" sau "audio" cu un URL în value), o description (indiciul pe care gazda îl citește în modul clues) și alt.
Setări pe care le citește
CâmpTipCe face
mode
opțional în settings
string
stringCe umple căsuțele: items-urile tale, items-urile tale extrase după indiciul lor sau simple numere (care nu au nevoie de items).
Una dintre itemscluesnumbers
Implicit: "items"
rows
opțional în settings
number
numberRânduri pe fiecare cartonaș, de la 2 la 5.
Implicit: 3
columns
opțional în settings
number
numberColoane pe fiecare cartonaș, de la 2 la 5.
Implicit: 3
highest_number
opțional în settings
number
numberÎn modul numere, cartonașele se umplu de la 1 până la acest număr, cel mult 100. O funcție care ține de un plan: fără plan rămâne 50.
Implicit: 50
Exemplu de cerere
POST bingo
curl -X POST https://puzzel.org/api/public/v1/bingo \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Bingo",
  "language": "ro",
  "items": [
    {
      "type": "text",
      "value": "Paris",
      "description": "The capital of France"
    },
    {
      "type": "text",
      "value": "Berlin",
      "description": "The capital of Germany"
    },
    {
      "type": "text",
      "value": "Madrid",
      "description": "The capital of Spain"
    }
  ],
  "settings": {
    "mode": "clues",
    "rows": 3,
    "columns": 4,
    "highest_number": 75
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/bingo/embed?p=-Nq8sample_activity_key",
  "message": "Bingo created successfully"
}

Eu am, cine are

api_e_i_have_who_has

#
POST /api/public/v1/i-have-who-has Între 3 și 40 în items
Conținut

api_c_i_have_who_has

Revine implicit la numele “I Have, Who Has API”

Bine de știut
  • Nicio întrebare și niciun răspuns nu pot apărea de două ori: un elev care ține răspunsul n-ar putea ști cărei întrebări îi aparține.
Setări pe care le citește
CâmpTipCe face
chain_shape
opțional în settings
string
stringO buclă se închide pe ea însăși, așa că orice cartonaș poate începe; o linie se deschide cu un cartonaș Start și se termină cu un cartonaș Sfârșit.
Una dintre loopline
Implicit: "loop"
Exemplu de cerere
POST i-have-who-has
curl -X POST https://puzzel.org/api/public/v1/i-have-who-has \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "I Have, Who Has",
  "language": "ro",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "3 × 4"
        },
        {
          "type": "text",
          "value": "12"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "6 × 7"
        },
        {
          "type": "text",
          "value": "42"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "9 × 9"
        },
        {
          "type": "text",
          "value": "81"
        }
      ]
    }
  ],
  "settings": {
    "chain_shape": "line"
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/i-have-who-has/embed?p=-Nq8sample_activity_key",
  "message": "I have, who has created successfully"
}

Lacătul cu cod

Un lacăt cu cod: un set de cartonașe, dintre care unele alcătuiesc împreună codul.

#
POST /api/public/v1/keypad Între 1 și 30 în items
Conținut

Un array de cartonașe. Cartonașele din cod își poartă locul în el.

Revine implicit la numele “Keypad API”

Bine de știut
  • Un cartonaș este un obiect cu o value și, opțional, un type ("text", "image" sau "audio" cu un URL în value), alt și code_position: locul lui în cod, 1 fiind primul. Un cartonaș poate apărea în cod o singură dată, iar cel puțin unul trebuie să fie în cod.
Setări pe care le citește
CâmpTipCe face
instructions
opțional în settings
string
stringÎntrebarea sau ghicitoarea la care răspunde codul, afișată împreună cu cartonașele.
force_solution_in_correct_order
opțional în settings
boolean
booleanCartonașele trebuie apăsate în ordine. Dezactivat, orice ordine a cartonașelor corecte deschide lacătul.
Implicit: false
randomize_order
opțional în settings
boolean
booleanFiecare jucător primește cartonașele într-o ordine amestecată.
Implicit: true
Exemplu de cerere
POST keypad
curl -X POST https://puzzel.org/api/public/v1/keypad \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Keypad",
  "language": "ro",
  "items": [
    {
      "type": "text",
      "value": "4"
    },
    {
      "type": "text",
      "value": "7",
      "code_position": 2
    },
    {
      "type": "text",
      "value": "9"
    },
    {
      "type": "text",
      "value": "2",
      "code_position": 1
    }
  ],
  "settings": {
    "instructions": "Press the prime numbers, smallest first.",
    "force_solution_in_correct_order": true,
    "randomize_order": false
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/keypad/embed?p=-Nq8sample_activity_key",
  "message": "Keypad created successfully"
}

Jocul cvartetelor

Jocul de cărți: jucătorii își cer unii altora cartonașe ca să adune seturi de câte patru.

#
POST /api/public/v1/quartets Între 2 și 16 în items
Conținut

Un array de seturi. Fiecare are un nume și exact patru cartonașe.

Revine implicit la numele “Quartets API”

Bine de știut
  • Un cartonaș este un nume sau un obiect cu un name și o description (faptul afișat pe el). Niciun nume de cartonaș nu poate apărea de două ori în joc: jucătorii cer cartonașele pe nume.
Setări pe care le citește
CâmpTipCe face
type
opțional în settings
string
stringUn joc simplu sau un joc de învățare în care fiecare cartonaș arată un fapt. Dacă îl omiți, este learn când vreun cartonaș are o description.
Una dintre normallearn
Exemplu de cerere
POST quartets
curl -X POST https://puzzel.org/api/public/v1/quartets \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Quartets",
  "language": "ro",
  "items": [
    {
      "name": "Birds",
      "cards": [
        {
          "name": "Owl",
          "description": "Hunts at night and turns its head three quarters of the way round."
        },
        {
          "name": "Robin",
          "description": "Sings through the winter."
        },
        {
          "name": "Woodpecker",
          "description": "Drums on trees up to twenty times a second."
        },
        {
          "name": "Jay",
          "description": "Buries thousands of acorns each autumn."
        }
      ]
    },
    {
      "name": "Mammals",
      "cards": [
        {
          "name": "Hedgehog",
          "description": "Carries about five thousand spines."
        },
        {
          "name": "Fox",
          "description": "Hears a mouse under the snow."
        },
        {
          "name": "Badger",
          "description": "Lives in a sett with its clan."
        },
        {
          "name": "Otter",
          "description": "Sleeps holding hands so it does not drift off."
        }
      ]
    }
  ],
  "settings": {
    "type": "learn"
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/quartets/embed?p=-Nq8sample_activity_key",
  "message": "Quartets game created successfully"
}
Întrebări și răspunsuri

Quizul

Întrebări cu variante multiple și întrebări deschise, punctate pe măsură ce jucătorii avansează.

#
POST /api/public/v1/quiz Între 1 și 100 în items
Conținut

Un array de întrebări. Întrebările cu variante multiple conțin răspunsurile lor; întrebările deschise conțin răspunsul pe care îl accepți.

Revine implicit la numele “Quiz API”

Bine de știut
  • question_type este "multiple_choice", caz în care opțiunea corectă are isCorrect true; "true_false", la fel, dar cu exact două opțiuni, prima adevărat și a doua fals; sau "open_answer", care folosește în schimb correct_answer. Dacă îl omiți, este tratat ca variante multiple.
  • Endpointul quiz transmite settings direct, ca blocuri de setări ale activității, așa că nu e locul pentru opțiuni disparate — ajustează quizul ulterior în editor.
Exemplu de cerere
POST quiz
curl -X POST https://puzzel.org/api/public/v1/quiz \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Quiz",
  "language": "ro",
  "items": [
    {
      "question_type": "multiple_choice",
      "description": "Which fruit is yellow?",
      "answers": [
        {
          "type": "text",
          "description": "Banana",
          "isCorrect": true
        },
        {
          "type": "text",
          "description": "Cherry",
          "isCorrect": false
        }
      ]
    },
    {
      "question_type": "open_answer",
      "description": "What colour is a lemon?",
      "correct_answer": "Yellow",
      "explanation": "Lemons ripen from green to yellow."
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/quiz/embed?p=-Nq8sample_activity_key",
  "message": "Quiz created successfully"
}

Jocul de societate

api_e_board_game

#
POST /api/public/v1/board-game Între 1 și 100 în items
Conținut

api_c_board_game

Revine implicit la numele “Board Game API”

Bine de știut
  • question_type este "multiple_choice", caz în care opțiunea corectă are isCorrect true; "true_false", la fel, dar cu exact două opțiuni, prima adevărat și a doua fals; sau "open_answer", care folosește în schimb correct_answer. Dacă îl omiți, este tratat ca variante multiple.
Setări pe care le citește
CâmpTipCe face
number_of_tiles
opțional în settings
number
numberCâte căsuțe are jocul de societate. Între 10 și 75.
Implicit: 30
game_mode
opțional în settings
string
stringDacă jucătorii se întrec spre final sau colectează obiecte pe parcurs.
Una dintre race_to_finishcollect_items
Implicit: "race_to_finish"
Exemplu de cerere
POST board-game
curl -X POST https://puzzel.org/api/public/v1/board-game \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Board Game",
  "language": "ro",
  "items": [
    {
      "question_type": "multiple_choice",
      "description": "Which fruit is yellow?",
      "answers": [
        {
          "type": "text",
          "description": "Banana",
          "isCorrect": true
        },
        {
          "type": "text",
          "description": "Cherry",
          "isCorrect": false
        }
      ]
    },
    {
      "question_type": "open_answer",
      "description": "What colour is a lemon?",
      "correct_answer": "Yellow",
      "explanation": "Lemons ripen from green to yellow."
    }
  ],
  "settings": {
    "number_of_tiles": 30,
    "game_mode": "race_to_finish"
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/board-game/embed?p=-Nq8sample_activity_key",
  "message": "Board Game created successfully"
}

Labirintul

Un labirint de străbătut: fiecare întrebare este o cameră, iar răspunsurile ei sunt ușile.

#
POST /api/public/v1/maze Cel puțin 1 în items
Conținut

Un array de întrebări cu variante multiple sau adevărat-fals, exact în forma pe care o primește endpointul quiz. Întrebările deschise sunt refuzate: o ușă are nevoie de un răspuns scris pe ea.

Revine implicit la numele “Maze API”

Setări pe care le citește
CâmpTipCe face
maze_width
opțional în settings
string
stringCum sunt dispuse camerele: într-o singură coloană, ca un pătrat sau mai late.
Una dintre narrownormalwide
Implicit: "normal"
maze_corridors
opțional în settings
string
stringCât de mult labirint se află între două întrebări.
Una dintre shortnormallong
Implicit: "normal"
maze_fog
opțional în settings
string
stringArată tot labirintul sau doar ce a văzut jucătorul pe lângă drumul lui.
Una dintre offnear
Implicit: "off"
maze_wrong_door_pause
opțional în settings
string
stringCât timp rămân ușile închise după una greșită.
Una dintre noneshortlong
Implicit: "short"
maze_walk_there
opțional în settings
boolean
booleanPune un buton care duce jetonul în camera următoare.
Implicit: false
maze_seed
opțional în settings
string
stringSeed-ul din care este generat labirintul. Același seed și aceleași întrebări dau același labirint; dacă îl omiți, se generează unul nou.
Exemplu de cerere
POST maze
curl -X POST https://puzzel.org/api/public/v1/maze \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Maze",
  "language": "ro",
  "items": [
    {
      "question_type": "multiple_choice",
      "description": "What is it called when water vapour turns back into liquid droplets?",
      "answers": [
        {
          "type": "text",
          "description": "Evaporation",
          "isCorrect": false
        },
        {
          "type": "text",
          "description": "Condensation",
          "isCorrect": true
        },
        {
          "type": "text",
          "description": "Transpiration",
          "isCorrect": false
        }
      ],
      "explanation": "Cooling vapour condenses into the droplets that make clouds."
    },
    {
      "question_type": "true_false",
      "description": "Most of the water on Earth is fresh water.",
      "answers": [
        {
          "type": "text",
          "description": "True",
          "isCorrect": false
        },
        {
          "type": "text",
          "description": "False",
          "isCorrect": true
        }
      ]
    }
  ],
  "settings": {
    "maze_width": "wide",
    "maze_corridors": "short",
    "maze_seed": "water123",
    "maze_fog": "near"
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/maze/embed?p=-Nq8sample_activity_key",
  "message": "Maze created successfully"
}

Jeopardy

O grilă ca într-un show televizat: categoriile sus, iar dedesubt indicii care valorează mai mult cu cât stau mai jos.

#
POST /api/public/v1/jeopardy Cel puțin 2 în items
Conținut

Un array de categorii, de la stânga la dreapta. Fiecare are un nume și indiciile ei, de la rândul de sus în jos.

Revine implicit la numele “Jeopardy API”

Bine de știut
  • Un indiciu este o întrebare în forma pe care o primește endpointul quiz, open_answer dacă nu se spune altfel, cu correct_answer și, opțional, aliases. Poate conține și value (valoarea lui proprie) și daily_double. null lasă o căsuță goală.
Setări pe care le citește
CâmpTipCe face
jeopardy_buzzer_mode
opțional în settings
string
stringCine joacă cum: gazda o conduce din consolă, jucătorii apasă soneria de pe telefoane sau fiecare jucător parcurge grila singur.
Una dintre hostphonessolo
Implicit: "host"
jeopardy_contestants
opțional în settings
string
stringDacă în consolă se vorbește despre echipe sau despre jucători.
Una dintre teamsplayers
Implicit: "teams"
jeopardy_value_step
opțional în settings
number
numberCât valorează un rând: un indiciu valorează această sumă înmulțită cu numărul rândului lui. De la 50 la 500, din 50 în 50.
Implicit: 100
jeopardy_answer_time
opțional în settings
number
numberSecunde pentru răspuns după ce un indiciu este deschis, cel mult 300. 0 înseamnă fără cronometru.
Implicit: 20
jeopardy_wrong_answer_costs
opțional în settings
boolean
booleanUn răspuns greșit scade valoarea indiciului din scor.
Implicit: false
jeopardy_reveal_on_timeout
opțional în settings
boolean
booleanGrila arată singură răspunsul când expiră timpul.
Implicit: false
jeopardy_require_question_form
opțional în settings
boolean
booleanLe reamintește jucătorilor să răspundă sub formă de întrebare.
Implicit: false
Exemplu de cerere
POST jeopardy
curl -X POST https://puzzel.org/api/public/v1/jeopardy \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Jeopardy",
  "language": "ro",
  "items": [
    {
      "name": "Planets",
      "questions": [
        {
          "question_type": "open_answer",
          "description": "The planet closest to the Sun.",
          "correct_answer": "Mercury"
        },
        {
          "question_type": "open_answer",
          "description": "It is known as the red planet.",
          "correct_answer": "Mars",
          "explanation": "Iron oxide in its soil gives it the colour."
        },
        {
          "question_type": "multiple_choice",
          "description": "This planet has the most confirmed moons.",
          "answers": [
            {
              "description": "Jupiter",
              "isCorrect": false
            },
            {
              "description": "Saturn",
              "isCorrect": true
            },
            {
              "description": "Neptune",
              "isCorrect": false
            }
          ],
          "daily_double": true
        }
      ]
    },
    {
      "name": "Moons",
      "questions": [
        {
          "question_type": "open_answer",
          "description": "The only world besides Earth that people have walked on.",
          "correct_answer": "The Moon",
          "aliases": [
            "Luna"
          ]
        },
        null,
        {
          "question_type": "name_them_all",
          "description": "Name the four Galilean satellites.",
          "answers": [
            {
              "description": "Io"
            },
            {
              "description": "Europa"
            },
            {
              "description": "Ganymede",
              "aliases": [
                "Ganymedes"
              ]
            },
            {
              "description": "Callisto"
            }
          ],
          "required_count": 3,
          "value": 500
        }
      ]
    }
  ],
  "settings": {
    "jeopardy_buzzer_mode": "solo",
    "jeopardy_value_step": 200,
    "jeopardy_wrong_answer_costs": true
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/jeopardy/embed?p=-Nq8sample_activity_key",
  "message": "Jeopardy board created successfully"
}

Videoclipul interactiv

api_e_interactive_video

#
POST /api/public/v1/interactive-video Între 1 și 50 în items
Conținut

api_c_interactive_video

Revine implicit la numele “Interactive Video API”

Bine de știut
  • O fereastră pop-up este un obiect cu time (secunde sau "1:23"), kind ("question", dacă nu se spune "note", "think" sau "chapter") și description. O întrebare este o întrebare în forma pe care o primește endpointul quiz și poate conține rewind_to: momentul de la care se reia după un răspuns greșit.
Setări pe care le citește
CâmpTipCe face
video_url
obligatoriu în settings
string
stringVideoclipul: o pagină YouTube, Vimeo sau Bunny Stream sau un link direct către un fișier mp4, webm sau mov.
video_duration
opțional în settings
number
numberLungimea videoclipului în secunde. Dacă este dată, o fereastră pop-up de după final este refuzată.
Exemplu de cerere
POST interactive-video
curl -X POST https://puzzel.org/api/public/v1/interactive-video \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Interactive Video",
  "language": "ro",
  "items": [
    {
      "time": 5,
      "kind": "chapter",
      "description": "Evaporation"
    },
    {
      "time": 42.5,
      "kind": "question",
      "question_type": "multiple_choice",
      "description": "What turns liquid water into vapour?",
      "answers": [
        {
          "type": "text",
          "description": "Heat from the sun",
          "isCorrect": true
        },
        {
          "type": "text",
          "description": "Wind from the north",
          "isCorrect": false
        },
        {
          "type": "text",
          "description": "Salt in the sea",
          "isCorrect": false
        }
      ],
      "explanation": "The sun warms the surface and the water evaporates.",
      "rewind_to": 20
    }
  ],
  "settings": {
    "video_url": "https://www.youtube.com/watch?v=al-do-HGuIk",
    "video_duration": 180,
    "video_allow_skipping": true
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/interactive-video/embed?p=-Nq8sample_activity_key",
  "message": "Interactive video created successfully"
}
Propoziții și numere

Criptograma

Transformă o propoziție într-un cod de spart, un caracter pe rând.

#
POST /api/public/v1/cryptogram Nu primește items
Conținut

O singură propoziție, în câmpul sentence. Acest endpoint nu primește items.

Revine implicit la numele “Cryptogram API”

Bine de știut
  • Orice trimiți în items este ignorat — jocul este construit doar din sentence.
Setări pe care le citește
CâmpTipCe face
sentence
obligatoriu
string
stringPropoziția de criptat. Jucătorii o decodează literă cu literă.
helpers
opțional în settings
string
stringCe caractere sunt dezvăluite gratuit ca punct de plecare: niciunul, cele mai frecvente, vocalele, sau cele pe care le listezi tu însuți.
Una dintre nonemost_commonvowelscustom
Implicit: "none"
character_list
opțional în settings
string
stringAlfabetul din care este construit cifrul. Lăsat gol, criptarea își alege propriul alfabet.
extra_letters
opțional în settings
string
stringCaracterele dezvăluite când helpers este "custom". Ignorat pentru celelalte moduri.
hide_unused_characters
opțional în settings
boolean
booleanLasă în afara cheii caracterele pe care propoziția nu le folosește niciodată.
Implicit: false
Exemplu de cerere
POST cryptogram
curl -X POST https://puzzel.org/api/public/v1/cryptogram \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Cryptogram",
  "language": "ro",
  "sentence": "An apple a day keeps the doctor away",
  "settings": {
    "helpers": "vowels",
    "hide_unused_characters": false
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/cryptogram/embed?p=-Nq8sample_activity_key",
  "message": "Cryptogram created successfully"
}

Exercițiul de calcul

Ascunde o propoziție în spatele unor calcule — rezolvi calculul, dezvălui litera.

#
POST /api/public/v1/calculation Nu primește items
Conținut

O singură propoziție, în câmpul sentence. Acest endpoint nu primește items.

Revine implicit la numele “Calculation Game API”

Bine de știut
  • Dacă restricțiile sunt prea stricte pentru a coda propoziția, apelul răspunde cu 400 și te roagă să le relaxezi, în loc să salveze un joc parțial.
Setări pe care le citește
CâmpTipCe face
sentence
obligatoriu
string
stringPropoziția pe care jucătorii o descoperă rezolvând calculele.
difficulty_level
opțional în settings
number
numberCel mai mare rezultat pe care îl poate avea un calcul.
Una dintre 20501001000
Implicit: "100"
operators
opțional în settings
string[]
string[]Ce operații pot apărea. x înseamnă înmulțire, : înseamnă împărțire.
Una dintre +-x:
Implicit: ["+", "-", "x", ":"]
max_operations
opțional în settings
number
numberCâte operații poate înlănțui un calcul.
Una dintre 123
Implicit: 1
number_difficulty
opțional în settings
number
numberLimitează numerele individuale din interiorul unui calcul. Undeva între 5 și 1000.
Implicit: 100
Exemplu de cerere
POST calculation
curl -X POST https://puzzel.org/api/public/v1/calculation \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Calculation Game",
  "language": "ro",
  "sentence": "Fruit salad for everyone",
  "settings": {
    "difficulty_level": "100",
    "operators": [
      "+",
      "-",
      "x",
      ":"
    ],
    "max_operations": 1,
    "number_difficulty": 100
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/calculation/embed?p=-Nq8sample_activity_key",
  "message": "Calculation game created successfully"
}

Sudoku

Generează o grilă rezolvată, apoi scoate din nou numerele.

#
POST /api/public/v1/sudoku Nu primește items
Conținut

Nimic. Tot jocul rezultă din cele două setări ale sale.

Revine implicit la numele “Sudoku API”

Bine de știut
  • Nu trimite items și nici sentence — size și difficulty sunt toată intrarea.
  • Editorul oferă dificultatea doar pentru 2x3, 3x3 și 3x4. API-ul o aplică pentru fiecare dimensiune, inclusiv 2x2 și 4x4.
Setări pe care le citește
CâmpTipCe face
size
opțional în settings
string
stringDimensiunea unui bloc, scrisă ca rânduri pe coloane — 3x3 dă grila clasică 9x9. Endpointul verifică doar că se poate interpreta ca două numere, așa că rămâi la dimensiunile oferite de editor.
Una dintre 2x22x33x33x44x4
Implicit: "3x3"
difficulty_level
opțional în settings
string
stringCâte numere rămân pe grilă ca punct de plecare.
Una dintre easynormalhard
Implicit: "normal"
Exemplu de cerere
POST sudoku
curl -X POST https://puzzel.org/api/public/v1/sudoku \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Sudoku",
  "language": "ro",
  "settings": {
    "size": "3x3",
    "difficulty_level": "normal"
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/sudoku/embed?p=-Nq8sample_activity_key",
  "message": "Sudoku created successfully"
}

Fraza căzută

api_e_fallen_phrase

#
POST /api/public/v1/fallen-phrase Nu primește items
Conținut

api_c_fallen_phrase

Revine implicit la numele “Fallen Phrase API”

Setări pe care le citește
CâmpTipCe face
sentence
obligatoriu
string
stringFraza de ascuns: un citat, un proverb, o propoziție-cheie. Cel mult 120 de litere și cifre.
columns
opțional în settings
number
numberCât de lată este grila, de la 8 la 18. Mai îngustă înseamnă mai multe litere în fiecare coloană și e mai greu.
Implicit: 14
helpers
opțional în settings
string
stringCe litere rămân în grilă ca punct de plecare: niciuna, cele mai frecvente, vocalele sau cele pe care le listezi tu însuți.
Una dintre nonemost_commonvowelscustom
Implicit: "none"
extra_letters
opțional în settings
string
stringLiterele oferite gratuit când helpers este "custom".
Exemplu de cerere
POST fallen-phrase
curl -X POST https://puzzel.org/api/public/v1/fallen-phrase \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Fallen Phrase",
  "language": "ro",
  "sentence": "Don't count your chickens before they hatch.",
  "settings": {
    "columns": 12,
    "helpers": "custom",
    "extra_letters": "ky"
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/fallen-phrase/embed?p=-Nq8sample_activity_key",
  "message": "Fallen phrase created successfully"
}

Tabla înmulțirii

api_e_times_tables

#
POST /api/public/v1/times-tables Nu primește items
Conținut

api_c_times_tables

Revine implicit la numele “Times Tables API”

Setări pe care le citește
CâmpTipCe face
tables
opțional în settings
number[]
number[]Tablele de exersat. Dacă îl omiți, sunt de la 1 la 10; un 11 sau un 12 face grila de 12 pe 12.
Una dintre 123456789101112
order
opțional în settings
string
stringDacă rândurile și coloanele merg în ordine sau amestecate.
Una dintre ascendingshuffled
Implicit: "ascending"
picture
opțional în settings
string
stringImaginea pe care o colorează răspunsurile corecte.
Una dintre sailboatheartrockettreecatfishflowerhouse
Implicit: "sailboat"
players_choose_tables
opțional în settings
boolean
booleanLasă fiecare jucător să aleagă pe care dintre table să le exerseze.
Implicit: false
fill_same_sums
opțional în settings
boolean
booleanUn răspuns corect umple fiecare căsuță cu aceeași înmulțire.
Implicit: true
Exemplu de cerere
POST times-tables
curl -X POST https://puzzel.org/api/public/v1/times-tables \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Times Tables",
  "language": "ro",
  "settings": {
    "tables": [
      7,
      3,
      4
    ],
    "order": "shuffled",
    "seed": "k3x9q2ab",
    "picture": "rocket",
    "players_choose_tables": true,
    "fill_same_sums": false
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/times-tables/embed?p=-Nq8sample_activity_key",
  "message": "Times tables created successfully"
}

Textul lacunar

api_e_fill_in_the_gap

#
POST /api/public/v1/fill-in-the-gap Între 1 și 50 în items
Conținut

api_c_fill_in_the_gap

Revine implicit la numele “Fill in the gap API”

Bine de știut
  • Scrie propoziția întreagă și pune asteriscuri în jurul fiecărui cuvânt de omis: "Water boils at *100* degrees." Mai multe cuvinte într-o singură pereche formează o singură lacună. O intrare poate conține și o instrucțiune afișată deasupra propoziției.
Exemplu de cerere
POST fill-in-the-gap
curl -X POST https://puzzel.org/api/public/v1/fill-in-the-gap \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Fill in the gap",
  "language": "ro",
  "items": [
    {
      "sentence": "The capital of France is *Paris*, and the river that runs through it is the *Seine*."
    },
    {
      "sentence": "*Amsterdam* is the capital of the Netherlands, but the government sits in *The Hague*.",
      "instruction": "Two cities, one of them two words."
    },
    {
      "sentence": "The *Danube* flows through Vienna, Bratislava, *Budapest* and Belgrade."
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/fill-in-the-gap/embed?p=-Nq8sample_activity_key",
  "message": "Fill in the gap created successfully"
}

Analiza propoziției

Propoziții în care jucătorii etichetează cuvintele: părți de vorbire, părți de propoziție sau etichete ale tale.

#
POST /api/public/v1/deconstruct Între 1 și 50 în items
Conținut

Un array de propoziții. Fiecare cuvânt de etichetat este scris ca [word](label).

Revine implicit la numele “Sentence analysis API”

Bine de știut
  • Scrie o propoziție astfel: "The [dog](noun) [barks](verb)." Cuvintele fără etichetă sunt afișate, dar nu sunt cerute. Etichetele noun, verb, adjective și subject sunt afișate fiecărui jucător în propria lui limbă.
Setări pe care le citește
CâmpTipCe face
categories
opțional în settings
string[]
string[]Etichetele dintre care aleg jucătorii, în ordine. Dacă îl omiți, sunt etichetele folosite în propoziții. Trimite-l ca să adaugi o etichetă pe care nu o poartă niciun cuvânt sau ca să stabilești ordinea.
Exemplu de cerere
POST deconstruct
curl -X POST https://puzzel.org/api/public/v1/deconstruct \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Sentence analysis",
  "language": "ro",
  "items": [
    {
      "sentence": "The [old](adjective) [farmer](noun) [feeds](verb) the [hungry](adjective) [chickens](noun) [early](adverb).",
      "instruction": "Label the nouns, verbs, adjectives and adverbs."
    },
    {
      "sentence": "A [brown](adjective) [horse](noun) [jumped](verb) [quickly](adverb) over the [fence](noun)."
    },
    {
      "sentence": "[Two small lambs](subject) [sleep](verb) in the [barn](noun), and the [dog](noun) [watches](verb) [quietly](adverb)."
    }
  ],
  "settings": {
    "categories": [
      "noun",
      "verb",
      "adjective",
      "adverb",
      {
        "name": "subject",
        "color": "#224466"
      },
      "preposition"
    ]
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/deconstruct/embed?p=-Nq8sample_activity_key",
  "message": "Sentence analysis created successfully"
}

Problemă de logică

api_e_logic_puzzle

#
POST /api/public/v1/logic-puzzle Cel puțin 3 în items
Conținut

api_c_logic_puzzle

Revine implicit la numele “Logic Puzzle API”

Bine de știut
  • Fiecare categorie are nevoie de același număr de elemente, de la 3 la 6, toate diferite. O categorie poate fi marcată ordered (prețuri, ore, vârste), cu un unit opțional, ceea ce îi permite generatorului să scrie indicii despre mai mult, mai puțin și cu cât mai mult.
Setări pe care le citește
CâmpTipCe face
story
opțional în settings
string
stringPovestea de fundal afișată deasupra indiciilor.
difficulty
opțional în settings
string
stringCe fel de indicii poate folosi generatorul.
Una dintre easymediumhard
Implicit: "easy"
hints
opțional în settings
boolean
booleanPune un buton care arată pasul următor.
Implicit: true
auto_cross
opțional în settings
boolean
booleanMarcarea unei potriviri taie restul rândului și al coloanei ei.
Implicit: true
clue_mode
opțional în settings
string
stringCine scrie indiciile pe care le văd jucătorii: generate din tabel, propriile tale propoziții din free_clues sau niciunul.
Una dintre generatedfreenone
Implicit: "generated"
free_clues
opțional în settings
string[]
string[]Propriile tale propoziții-indiciu, afișate exact cum le-ai scris, cu clue_mode "free". Nimic nu le verifică.
Exemplu de cerere
POST logic-puzzle
curl -X POST https://puzzel.org/api/public/v1/logic-puzzle \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Logic Puzzle",
  "language": "ro",
  "items": [
    {
      "name": "Baker",
      "items": [
        "Amira",
        "Jonas",
        "Priya",
        "Tobias"
      ]
    },
    {
      "name": "Cake",
      "items": [
        "Lemon drizzle",
        "Carrot cake",
        "Brownies",
        "Apple pie"
      ]
    },
    {
      "name": "Price",
      "items": [
        "$2",
        "$4",
        "$6",
        "$8"
      ],
      "ordered": true,
      "unit": "dollars"
    }
  ],
  "settings": {
    "story": "Four friends each baked one thing for the school bake sale and each set a different price. Who baked what, and what did it cost?",
    "difficulty": "medium"
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/logic-puzzle/embed?p=-Nq8sample_activity_key",
  "message": "Logic puzzle created successfully"
}

Vânătoarea de comori

api_e_scavenger_hunt

#
POST /api/public/v1/scavenger-hunt Între 1 și 50 în items
Conținut

api_c_scavenger_hunt

Revine implicit la numele “Scavenger Hunt API”

Bine de știut
  • Un pas este un obiect cu title, description, code și, opțional, accepted_codes (alte variante de scriere care contează), url și link_text. Un cod este verificat fără a ține cont de majuscule și de spații. Harta cu pini poate fi adăugată doar în editor.
Exemplu de cerere
POST scavenger-hunt
curl -X POST https://puzzel.org/api/public/v1/scavenger-hunt \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Scavenger Hunt",
  "language": "ro",
  "items": [
    {
      "title": "Start at the front desk",
      "description": "Which year is carved above the entrance?",
      "code": "1897",
      "accepted_codes": [
        "eighteen ninety-seven"
      ]
    },
    {
      "title": "The quiet corner",
      "description": "Find the atlas shelf. What colour is the biggest atlas?",
      "code": "crimson",
      "accepted_codes": [
        "dark red"
      ]
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/scavenger-hunt/embed?p=-Nq8sample_activity_key",
  "message": "Scavenger hunt created successfully"
}

Raționamentul spațial

api_e_spatial_reasoning

#
POST /api/public/v1/spatial-reasoning Între 1 și 50 în items
Conținut

api_c_spatial_reasoning

Revine implicit la numele “Spatial Reasoning API”

Bine de știut
  • Obiectele și țintele sunt square, triangle, circle, hexagon, pentagon, star, diamond sau heart. Relațiile sunt inside, outside, behind, in_front_of, right_of, left_of, above, below, same_color_as, different_color_from, larger_than și smaller_than. O regulă care nu poate fi îndeplinită niciodată răspunde cu 400.
Setări pe care le citește
CâmpTipCe face
clue_mode
opțional în settings
string
stringReguli afișate ca imagini sau ca propoziții.
Una dintre visualtext
Implicit: "visual"
unique_object_picks
opțional în settings
boolean
booleanFiecare formă poate fi plasată o singură dată.
Implicit: false
hide_color_picker
opțional în settings
boolean
booleanJucătorii nu pot recolora formele.
Implicit: false
Exemplu de cerere
POST spatial-reasoning
curl -X POST https://puzzel.org/api/public/v1/spatial-reasoning \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Spatial Reasoning",
  "language": "ro",
  "items": [
    {
      "rules": [
        {
          "object": "square",
          "relation": "inside",
          "target": "circle"
        }
      ]
    },
    {
      "rules": [
        {
          "object": "triangle",
          "relation": "above",
          "target": "square"
        },
        {
          "object": "star",
          "relation": "left_of",
          "target": "triangle"
        }
      ]
    }
  ],
  "settings": {
    "clue_mode": "text",
    "unique_object_picks": true,
    "hide_color_picker": false
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/spatial-reasoning/embed?p=-Nq8sample_activity_key",
  "message": "Spatial reasoning activity created successfully"
}

Rebus cu imagini

Propoziții scrise cu imagini: jucătorii citesc imaginile și schimbările de litere și le transformă înapoi în cuvinte.

#
POST /api/public/v1/rebus Între 1 și 30 în items
Conținut

Un array de propoziții. Fiecare enumeră cuvintele desenate ca imagini; orice alt cuvânt rămâne cu literele lui.

Revine implicit la numele “Rebus API”

Bine de știut
  • Un cuvânt este desenat din părți care împreună îl compun. O parte are literele pe care le reprezintă (text), un emoji și shows: cuvântul pentru ce arată imaginea ("broom" pentru o imagine care stă pentru "room"). Puzzel calculează singur schimbările de litere. O parte poate fi în schimb un simbol, cum ar fi 4 pentru "for".
Setări pe care le citește
CâmpTipCe face
rebus_commas
opțional în settings
boolean
booleanDesenează o primă sau o ultimă literă eliminată ca o virgulă lângă imagine.
Implicit: false
Exemplu de cerere
POST rebus
curl -X POST https://puzzel.org/api/public/v1/rebus \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Rebus",
  "language": "ro",
  "items": [
    {
      "sentence": "I sweep the room before the sunflower wilts.",
      "words": [
        {
          "word": "I",
          "parts": [
            {
              "text": "I",
              "kind": "sound",
              "emoji": "👁️"
            }
          ]
        },
        {
          "word": "room",
          "parts": [
            {
              "text": "room",
              "kind": "picture",
              "shows": "broom",
              "emoji": "🧹"
            }
          ]
        },
        {
          "word": "before",
          "parts": [
            {
              "text": "be",
              "kind": "picture",
              "shows": "bee",
              "emoji": "🐝"
            },
            {
              "text": "for",
              "kind": "sound",
              "glyph": "4"
            },
            {
              "text": "e",
              "kind": "letters"
            }
          ]
        },
        {
          "word": "the",
          "position": 6,
          "parts": [
            {
              "text": "the",
              "kind": "picture",
              "shows": "tree",
              "emoji": "🌳"
            }
          ]
        },
        {
          "word": "sunflower",
          "parts": [
            {
              "text": "sun",
              "kind": "picture",
              "shows": "sun",
              "emoji": "☀️"
            },
            {
              "text": "flower",
              "kind": "picture",
              "shows": "flower",
              "emoji": "🌸"
            }
          ]
        }
      ]
    }
  ],
  "settings": {
    "rebus_commas": true
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/rebus/embed?p=-Nq8sample_activity_key",
  "message": "Rebus created successfully"
}
Imagini

Puzzle-ul

Taie o imagine în piese, de tras înapoi la un loc.

#
POST /api/public/v1/jigsaw Nu primește items
Conținut

Un URL de imagine, în câmpul image. Acest endpoint nu primește items.

Revine implicit la numele “Jigsaw Game API”

Bine de știut
  • API-ul creează întotdeauna un puzzle de 4 pe 4. Numărul de piese, piesele neregulate și marginile drepte sunt setări din editor — trimiterea de rows sau columns aici nu are niciun efect.
  • URL-ul este stocat exact așa cum l-ai trimis, iar fișierul nu este copiat niciodată, așa că trebuie să rămână accesibil public atât timp cât activitatea este jucată.
Setări pe care le citește
CâmpTipCe face
image
obligatoriu
string
stringURL absolut al imaginii de tăiat în bucăți. Se trimite la nivelul de sus, nu în interiorul settings.
Exemplu de cerere
POST jigsaw
curl -X POST https://puzzel.org/api/public/v1/jigsaw \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Jigsaw Game",
  "language": "ro",
  "image": "https://example.com/orchard.jpg"
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/jigsaw/embed?p=-Nq8sample_activity_key",
  "message": "Jigsaw game created successfully"
}

Puzzle-ul glisant

Amestecă o imagine în piese care alunecă la locul lor.

#
POST /api/public/v1/slidingpuzzle Nu primește items
Conținut

Un URL de imagine, în interiorul settings. Acest endpoint nu primește items.

Revine implicit la numele “Sliding Puzzle API”

Bine de știut
  • Spre deosebire de puzzle, acest endpoint își citește imaginea din settings.image. Un câmp image la nivelul de sus este ignorat, iar apelul răspunde cu 400.
  • URL-ul este stocat exact așa cum l-ai trimis, iar fișierul nu este copiat niciodată, așa că trebuie să rămână accesibil public atât timp cât activitatea este jucată.
Setări pe care le citește
CâmpTipCe face
image
obligatoriu în settings
string
stringURL absolut al imaginii de amestecat. Spre deosebire de cel de la puzzle, acesta se află în interiorul settings.
Exemplu de cerere
POST slidingpuzzle
curl -X POST https://puzzel.org/api/public/v1/slidingpuzzle \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Sliding Puzzle",
  "language": "ro",
  "settings": {
    "image": "https://example.com/orchard.jpg"
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/slidingpuzzle/embed?p=-Nq8sample_activity_key",
  "message": "Sliding puzzle created successfully"
}

Ceva nu funcționează cum trebuie?

Trimite cererea pe care ai încercat-o și eroarea pe care ai primit-o înapoi și vei primi un răspuns real, de la persoana care a scris endpointul.

Trimite un e-mail suportului