Vai al contenuto
API per sviluppatori

Crea attività dal tuo sistema

Invia i tuoi contenuti in formato JSON con una richiesta POST all'endpoint del tipo di attività scelto. L'API crea l'attività nel tuo account Puzzel.org e restituisce un URL da condividere o incorporare in un iframe.

URL di base
https://puzzel.org/api/public/v1
Autenticazione
Chiave + e-mail nel corpo
Endpoint
38 tipi di attività
Quota
10 attività al giorno

La tua prima richiesta

Invia una richiesta con un corpo JSON contenente la chiave API, l'indirizzo e-mail del tuo account e i contenuti. La risposta contiene la chiave della nuova attività e l'URL per aprirla.

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": "it",
  "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"
    }
  ]
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}

Ogni esempio di questa pagina è una richiesta completa e pronta da eseguire. Metti la tua chiave e i tuoi contenuti e funziona così com'è.

Autenticazione

Non serve un header di autenticazione né un bearer token: invia la chiave API e l'indirizzo e-mail nel corpo JSON di ogni richiesta. La chiave è valida solo per l'account associato a quell'indirizzo.

CampoTipoCosa fa
account_api_key
obbligatorio
string
stringLa chiave API del tuo account. Va nel corpo, non in un header.
email
obbligatorio
string
stringL'indirizzo con cui accedi al tuo account Puzzel.org. La chiave è valida solo insieme a esso.

Trovi la chiave API nella sezione account della dashboard: fai clic su Mostra per visualizzarla.

Accedi

Le chiavi API vengono assegnate quando inizia un abbonamento, quindi un account gratuito non ne ha ancora una.

Guarda i piani

Tratta la chiave API come una password: permette di creare e sovrascrivere attività nel tuo account. Conservala sul server e non inserirla nel codice accessibile dal browser.

Il corpo della richiesta

Tutti gli endpoint accettano gli stessi cinque campi comuni. I contenuti richiesti variano: la maggior parte usa un array items, alcuni una frase o un'immagine. Il sudoku non richiede un campo per i contenuti.

CampoTipoCosa fa
account_api_key
obbligatorio
string
stringLa chiave API del tuo account. Va nel corpo, non in un header.
email
obbligatorio
string
stringL'indirizzo con cui accedi al tuo account Puzzel.org. La chiave è valida solo insieme a esso.
title
facoltativo
string
stringIl nome dell'attività nella dashboard. Se ometti questo campo, viene usato il nome predefinito dell'endpoint.
language
facoltativo
string
stringImposta la lingua dell'URL restituito, senza tradurre i contenuti inviati. Per le parole intrecciate, il valore "ar" seleziona anche le lettere arabe con cui riempire le caselle libere.
Predefinito: "en"
activity_key
facoltativo
string
stringOmetterlo crea una nuova attività. Passa la chiave di una che possiedi già e quell'attività viene invece ricostruita.

settings contiene le opzioni specifiche dell'endpoint. Per ogni endpoint sono elencate qui sotto le impostazioni supportate; le altre vengono ignorate.

Cosa ricevi in risposta

Una chiamata riuscita risponde 200 con la chiave della nuova attività e l'URL su cui si gioca. Tutto il resto risponde con success impostato a false e una sola stringa di errore.

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

L'url che ricevi è la vista di incorporamento. Sostituisci embed con play per aprirla a pagina intera, o con build per aprirla nell'editor — la chiave dopo p= resta la stessa.

Creare o aggiornare

Invia activity_key e l'attività corrispondente viene ricostruita sul posto: i contenuti vengono sostituiti, il nome e la marca temporale della versione vengono aggiornati e la chiave resta la stessa — così i link e i codici di incorporamento che hai già condiviso continuano a funzionare. Risultati, posizione nelle cartelle e ogni impostazione che l'endpoint non scrive restano come erano.

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 viene applicato anche agli aggiornamenti. Se lo ometti, il nome dell'attività viene sostituito con quello predefinito dell'endpoint.
  • I blocchi di impostazioni che un endpoint scrive da sé vengono riscritti da zero, quindi anche un aggiornamento li riporta ai valori che invii, o ai valori predefiniti dell'endpoint.
  • Puoi aggiornare solo le attività di cui è proprietario il tuo account. La chiave di qualcun altro risponde 403.
  • Un aggiornamento costa quanto una creazione: una chiamata sulla quota di oggi.

Limite di frequenza

10
10 attività per account al giorno

Ogni richiesta riuscita viene conteggiata nel limite giornaliero, sia per creare sia per aggiornare un'attività. Una volta raggiunto il limite, le richieste successive restituiscono il codice 429 fino all'azzeramento del contatore.

Il contatore viene azzerato una volta al giorno da un processo pianificato, non su una finestra mobile di 24 ore.

Errori

Gli errori arrivano sempre come JSON con gli stessi due campi, mai come pagina HTML. La stringa di errore è scritta per essere letta da una persona: indica il campo o il limite che non ha funzionato.

StatoCosa significa
400
Bad Request
Qualcosa nel corpo manca, è malformato o fuori intervallo. Il messaggio indica il campo.
401
Unauthorized
L'e-mail è sconosciuta, oppure la chiave non appartiene a quell'account.
403
Forbidden
L'activity_key che hai inviato appartiene a un altro account.
429
Too Many Requests
La quota di oggi è esaurita. Si azzera una volta al giorno.
500
Server Error
Il generatore non è riuscito a costruire un rompicapo con quello che hai inviato — di solito troppe poche parole, o parole che non si incastrano tra loro.

Endpoint

Un percorso per ogni tipo di attività, tutti in POST, tutti sotto lo stesso URL di base. Ognuno elenca i contenuti che gli servono, le impostazioni che legge e una richiesta che puoi eseguire.

Parole e lettere

Cruciverba

Incastra le tue risposte in una griglia e numera le definizioni al posto tuo.

#
POST /api/public/v1/crossword Da 2 a 80 in items
Contenuti

Un array di parole. Ogni voce abbina la risposta alla definizione che la indica.

Ripiega sul nome “Crossword API”

Da sapere
  • Le risposte con meno di due caratteri vengono escluse prima di generare la griglia. Devono restare almeno due risposte valide.
  • Le risposte vengono convertite in maiuscolo e il generatore ha venti tentativi per incastrarle. Se non riesce a piazzare nemmeno una parola, la chiamata risponde 500.
Impostazioni che legge
CampoTipoCosa fa
hidden_solution
facoltativo in settings
string
stringUna parola bonus facoltativa. Le sue lettere vengono segnate in alcune caselle della griglia completata, perché i giocatori le raccolgano una volta risolto il cruciverba, quindi ogni sua lettera deve comparire nelle risposte.
Richiesta di esempio
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": "it",
  "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"
    }
  ]
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}

Parole intrecciate

Nasconde le tue parole in una griglia di lettere, nelle direzioni e nella forma che scegli.

#
POST /api/public/v1/wordseeker Da 2 a 40 in items
Contenuti

Un array di parole. Il testo della definizione diventa la lista di parole da cui lavorano i giocatori.

Ripiega sul nome “Wordseeker API”

Da sapere
  • Le risposte sotto i due caratteri vengono scartate, e ogni risposta viene convertita in maiuscolo prima di finire nella griglia.
  • La griglia viene riempita con lettere latine, a meno che language non sia "ar", che passa il riempimento all'arabo.
Impostazioni che legge
CampoTipoCosa fa
hidden_solution
facoltativo in settings
string
stringLe lettere rimaste dopo aver trovato tutte le parole formano questa soluzione nascosta. Se la imposti, il generatore dà priorità alla soluzione rispetto al numero di parole da inserire nella griglia.
directions
facoltativo in settings
string[]
string[]Le direzioni in cui possono essere inserite le parole. Se ometti questa impostazione, vengono usate solo est, sud-est e sud.
Uno tra westeastnorthsouthnorthwestnortheastsouthwestsoutheast
Predefinito: ["east", "southeast", "south"]
template
facoltativo in settings
string
stringRitaglia la griglia in una forma invece di lasciarla quadrata.
Uno tra squarecirclecrossdiamondpyramidsmileystarcross_plus
Richiesta di esempio
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": "it",
  "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"
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordseeker/embed?p=-Nq8sample_activity_key",
  "message": "Wordseeker created successfully"
}

Acrostico

Impila le tue risposte in modo che una colonna componga una parola nascosta.

#
POST /api/public/v1/acrostic Da 1 a 40 in items
Contenuti

Un array di parole. Tutte insieme devono fornire ogni lettera della parola nascosta.

Ripiega sul nome “Acrostic API”

Da sapere
  • Se le risposte non forniscono le lettere che servono alla soluzione, la chiamata risponde 500 invece di salvare una griglia a metà.
  • Il generatore riordina le tue risposte perché la colonna funzioni, quindi l'ordine che invii non è l'ordine che vedono i giocatori.
Impostazioni che legge
CampoTipoCosa fa
hidden_solution
obbligatorio in settings
string
stringLa parola composta dalla colonna evidenziata. Senza, questo endpoint non funziona.
Richiesta di esempio
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": "it",
  "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"
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/acrostic/embed?p=-Nq8sample_activity_key",
  "message": "Acrostic created successfully"
}

Anagrammi

api_e_word_scramble

#
POST /api/public/v1/word-scramble Da 1 a 40 in items
Contenuti

api_c_word_scramble

Ripiega sul nome “Word Scramble API”

Da sapere
  • Le attività create tramite API hanno sempre attiva l'impostazione che mescola l'ordine, quindi l'ordine che invii non è quello che ricevono i giocatori.
Impostazioni che legge
CampoTipoCosa fa
hidden_solution
facoltativo in settings
string
stringUna parola bonus facoltativa che i giocatori inseriscono quando hanno risolto il resto.
Richiesta di esempio
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": "it",
  "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"
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/word-scramble/embed?p=-Nq8sample_activity_key",
  "message": "Word Scramble created successfully"
}

Impiccato

Trasforma le tue parole o frasi in partite in cui si indovinano le lettere.

#
POST /api/public/v1/hangman Da 1 a 50 in items
Contenuti

Un array di parole o frasi brevi. L'indizio è il suggerimento che vedono i giocatori.

Ripiega sul nome “Hangman API”

Richiesta di esempio
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": "it",
  "items": [
    {
      "answer": "BANANA",
      "description": "A long yellow fruit",
      "type": "text"
    }
  ]
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/hangman/embed?p=-Nq8sample_activity_key",
  "message": "Hangman created successfully"
}

Wordle

Trasforma ogni parola che invii in una partita in cui indovinare la parola.

#
POST /api/public/v1/wordle Da 1 a 50 in items
Contenuti

Un array di parole. I giocatori fanno un round per ogni parola.

Ripiega sul nome “Wordle API”

Da sapere
  • Il controllo delle parole nel dizionario è attivo nelle attività create dall'API. Disattivalo nell'editor se usi nomi propri o parole inventate.
Richiesta di esempio
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": "it",
  "items": [
    {
      "answer": "MELON",
      "description": "Sweet and green",
      "type": "text"
    },
    {
      "answer": "PEACH",
      "description": "Fuzzy and orange",
      "type": "text"
    }
  ]
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordle/embed?p=-Nq8sample_activity_key",
  "message": "Wordle created successfully"
}

Esercizio di digitazione

api_e_typing_practice

#
POST /api/public/v1/typing-practice Da 1 a 50 in items
Contenuti

api_c_typing_practice

Ripiega sul nome “Typing Practice API”

Richiesta di esempio
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": "it",
  "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"
    }
  ]
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/typing-practice/embed?p=-Nq8sample_activity_key",
  "message": "Typing Practice created successfully"
}

Ruota della fortuna

api_e_wheel_of_fortune

#
POST /api/public/v1/wheel-of-fortune Da 1 a 50 in items
Contenuti

api_c_wheel_of_fortune

Ripiega sul nome “Wheel of Fortune API”

Da sapere
  • Creata con “mostra il risultato solo nella ruota”, così il risultato si legge sulla ruota invece di essere annunciato accanto.
Richiesta di esempio
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": "it",
  "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"
    }
  ]
}'
Successo
{
  "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"
}

Cruciverba a schema libero

Un cruciverba a schema libero: le definizioni stanno dentro la griglia, ognuna con una freccia verso la sua risposta.

#
POST /api/public/v1/arrowword Da 2 a 80 in items
Contenuti

Un array di parole. Ogni voce abbina la risposta a una definizione abbastanza breve da stare in una sola casella.

Ripiega sul nome “Arrowword API”

Impostazioni che legge
CampoTipoCosa fa
hidden_solution
facoltativo in settings
string
stringUna parola bonus facoltativa. Le sue lettere vengono segnate in alcune caselle della griglia completata, quindi ogni sua lettera deve comparire nelle risposte.
Richiesta di esempio
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": "it",
  "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"
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/arrowword/embed?p=-Nq8sample_activity_key",
  "message": "Arrowword created successfully"
}

Strands

Una griglia in cui ogni lettera appartiene a una parola a tema, con una parola che dà il nome al tema e va da un bordo all'altro.

#
POST /api/public/v1/strands Da 2 a 24 in items
Contenuti

Un array di parole a tema. Insieme allo spangram, le loro lettere devono riempire esattamente il tabellone.

Ripiega sul nome “Strands API”

Da sapere
  • Le lettere di tutte le parole e dello spangram insieme devono essere esattamente 30, 35, 36, 40, 42, 45, 48, 49, 50, 54, 56, 60, 63, 64, 70, 72 o 80. Con qualsiasi altro numero la chiamata risponde 400 e indica quante lettere aggiungere o togliere.
Impostazioni che legge
CampoTipoCosa fa
theme
facoltativo in settings
string
stringL'indovinello mostrato sopra la griglia. Se lo ometti, i giocatori vedono il titolo.
spangram
facoltativo in settings
string
stringLa parola o la frase che dà il nome al tema e attraversa il tabellone da un bordo all'altro.
Richiesta di esempio
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": "it",
  "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"
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/strands/embed?p=-Nq8sample_activity_key",
  "message": "Strands created successfully"
}

Elenco a memoria

api_e_name_them_all

#
POST /api/public/v1/name-them-all Da 1 a 250 in items
Contenuti

api_c_name_them_all

Ripiega sul nome “Name Them All API”

Da sapere
  • Una voce è un oggetto con una answer e, facoltativamente, aliases (altre grafie valide), una description (il suggerimento) e un group. Maiuscole, accenti e punteggiatura vengono ignorati quando si controlla un nome.
Impostazioni che legge
CampoTipoCosa fa
list_match_mode
facoltativo in settings
string
stringSe un nome conta nel momento in cui viene scritto, oppure solo premendo Invio.
Uno tra while_typingon_enter
Predefinito: "while_typing"
list_slot_hint
facoltativo in settings
string
stringCosa svela una casella vuota: niente, la lunghezza del nome, la sua prima lettera o il suggerimento che hai scritto.
Uno tra nonelengthfirst_letterhint
Predefinito: "none"
list_arrange
facoltativo in settings
string
stringUna colonna per gruppo, oppure un unico elenco.
Uno tra groupsone_list
Predefinito: "groups"
list_allow_give_up
facoltativo in settings
boolean
booleanMostra un pulsante per arrendersi che termina il tentativo e rivela ciò che è mancato.
Predefinito: false
Richiesta di esempio
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": "it",
  "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
  }
}'
Successo
{
  "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"
}
Carte e coppie

Memory

Carte coperte da girare e abbinare a coppie.

#
POST /api/public/v1/memory Da 2 a 30 in items
Contenuti

Un array di coppie. Ogni coppia contiene le due carte che vanno insieme.

Ripiega sul nome “Memory Game API”

Da sapere
  • Una carta è un oggetto con un type e un value. Usa "text" per le parole, oppure "image", "audio", "youtube" o "link" con un URL in value, e aggiungi alt per una descrizione.
Richiesta di esempio
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": "it",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/memory/embed?p=-Nq8sample_activity_key",
  "message": "Memory game created successfully"
}

Gioco dei collegamenti

api_e_matching_pairs

#
POST /api/public/v1/matching-pairs Da 2 a 30 in items
Contenuti

api_c_matching_pairs

Ripiega sul nome “Matching Game API”

Da sapere
  • Una carta è un oggetto con un type e un value. Usa "text" per le parole, oppure "image", "audio", "youtube" o "link" con un URL in value, e aggiungi alt per una descrizione.
Richiesta di esempio
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": "it",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/matching-pairs/embed?p=-Nq8sample_activity_key",
  "message": "Matching pairs game created successfully"
}

Flashcard

api_e_flash_cards

#
POST /api/public/v1/flash-cards Da 1 a 150 in items
Contenuti

api_c_flash_cards

Ripiega sul nome “Flash Cards API”

Da sapere
  • L'endpoint salva tutte le carte che invii, quindi inviane esattamente due per voce — prima il fronte, poi il retro.
  • Una carta è un oggetto con un type e un value. Usa "text" per le parole, oppure "image", "audio", "youtube" o "link" con un URL in value, e aggiungi alt per una descrizione.
Richiesta di esempio
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": "it",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/flash-cards/embed?p=-Nq8sample_activity_key",
  "message": "Flash Cards created successfully"
}

Gioco delle categorie

Carte da smistare nella categoria a cui appartengono.

#
POST /api/public/v1/categorize Almeno 2 in items · Al massimo 60 carte in tutto
Contenuti

Un array di categorie, ognuna con un nome e le carte che le appartengono.

Ripiega sul nome “Categorize Game API”

Da sapere
  • Una categoria inviata senza nome viene salvata come “Untitled Category”, quindi inviane sempre uno.
  • Una carta è un oggetto con un type e un value. Usa "text" per le parole, oppure "image", "audio", "youtube" o "link" con un URL in value, e aggiungi alt per una descrizione.
Richiesta di esempio
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": "it",
  "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"
        }
      ]
    }
  ]
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/categorize/embed?p=-Nq8sample_activity_key",
  "message": "Categorize game created successfully"
}

Riordino

Una sequenza che i giocatori devono rimettere in ordine.

#
POST /api/public/v1/reorder Almeno 1 in items · Al massimo 60 carte in tutto
Contenuti

Un array di sequenze. Ognuna contiene le sue carte nell'ordine corretto.

Ripiega sul nome “Reorder Game API”

Da sapere
  • L'ordine che invii viene salvato come ordine corretto — il numero uno per primo.
  • Una carta è un oggetto con un type e un value. Usa "text" per le parole, oppure "image", "audio", "youtube" o "link" con un URL in value, e aggiungi alt per una descrizione.
Richiesta di esempio
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": "it",
  "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"
        }
      ]
    }
  ]
}'
Successo
{
  "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 per la classe che il conduttore estrae dal vivo: ogni giocatore riceve una carta composta dai tuoi items.

#
POST /api/public/v1/bingo Non accetta items
Contenuti

Un array di items da cui vengono composte le carte. Inviane chiaramente più di quante ne abbia una carta, così le carte risultano diverse.

Ripiega sul nome “Bingo API”

Da sapere
  • Un item è un oggetto con un value e, facoltativamente, un type ("text", "image" o "audio" con un URL in value), una description (l'indizio che il conduttore legge ad alta voce nella modalità a indizi) e alt.
Impostazioni che legge
CampoTipoCosa fa
mode
facoltativo in settings
string
stringCosa riempie le caselle: i tuoi items, i tuoi items estratti tramite il loro indizio, oppure semplici numeri (che non richiedono items).
Uno tra itemscluesnumbers
Predefinito: "items"
rows
facoltativo in settings
number
numberLe righe di ogni carta, da 2 a 5.
Predefinito: 3
columns
facoltativo in settings
number
numberLe colonne di ogni carta, da 2 a 5.
Predefinito: 3
highest_number
facoltativo in settings
number
numberNella modalità a numeri, le carte si riempiono da 1 fino a questo numero, al massimo 100. È una funzione dei piani a pagamento: senza un piano resta 50.
Predefinito: 50
Richiesta di esempio
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": "it",
  "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
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/bingo/embed?p=-Nq8sample_activity_key",
  "message": "Bingo created successfully"
}

Io ho, chi ha

api_e_i_have_who_has

#
POST /api/public/v1/i-have-who-has Da 3 a 40 in items
Contenuti

api_c_i_have_who_has

Ripiega sul nome “I Have, Who Has API”

Da sapere
  • Nessuna domanda e nessuna risposta può comparire due volte: uno studente con la risposta in mano non saprebbe a quale domanda appartiene.
Impostazioni che legge
CampoTipoCosa fa
chain_shape
facoltativo in settings
string
stringUn anello si chiude su sé stesso, quindi qualsiasi carta può iniziare; una linea si apre con una carta Start e finisce con una carta End.
Uno tra loopline
Predefinito: "loop"
Richiesta di esempio
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": "it",
  "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"
  }
}'
Successo
{
  "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"
}

Lucchetto a combinazione

Un lucchetto a combinazione: un tastierino di tasti, alcuni dei quali insieme formano il codice.

#
POST /api/public/v1/keypad Da 1 a 30 in items
Contenuti

Un array di tasti. I tasti che fanno parte del codice indicano la propria posizione al suo interno.

Ripiega sul nome “Keypad API”

Da sapere
  • Un tasto è un oggetto con un value e, facoltativamente, un type ("text", "image" o "audio" con un URL in value), alt e code_position: la sua posizione nel codice, 1 per il primo. Un tasto può comparire nel codice una sola volta, e almeno un tasto deve farne parte.
Impostazioni che legge
CampoTipoCosa fa
instructions
facoltativo in settings
string
stringLa domanda o l'indovinello a cui risponde il codice, mostrato insieme al tastierino.
force_solution_in_correct_order
facoltativo in settings
boolean
booleanI tasti vanno premuti in ordine. Disattivato, qualsiasi ordine dei tasti giusti apre il lucchetto.
Predefinito: false
randomize_order
facoltativo in settings
boolean
booleanOgni giocatore riceve i tasti disposti in ordine mescolato.
Predefinito: true
Richiesta di esempio
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": "it",
  "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
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/keypad/embed?p=-Nq8sample_activity_key",
  "message": "Keypad created successfully"
}

Gioco dei quartetti

Il gioco di carte: i giocatori se le chiedono a vicenda per formare dei quartetti.

#
POST /api/public/v1/quartets Da 2 a 16 in items
Contenuti

Un array di quartetti. Ognuno ha un nome ed esattamente quattro carte.

Ripiega sul nome “Quartets API”

Da sapere
  • Una carta è un nome, oppure un oggetto con un name e una description (l'informazione mostrata sulla carta). Nessun nome di carta può comparire due volte nel gioco: i giocatori chiedono le carte per nome.
Impostazioni che legge
CampoTipoCosa fa
type
facoltativo in settings
string
stringUn gioco semplice, oppure un gioco didattico in cui ogni carta mostra un'informazione. Se lo ometti, è learn quando una qualsiasi carta ha una description.
Uno tra normallearn
Richiesta di esempio
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": "it",
  "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"
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/quartets/embed?p=-Nq8sample_activity_key",
  "message": "Quartets game created successfully"
}
Domande e risposte

Quiz

Domande a scelta multipla e aperte, con il punteggio calcolato mentre si gioca.

#
POST /api/public/v1/quiz Da 1 a 100 in items
Contenuti

Un array di domande. Ogni domanda a scelta multipla include le opzioni di risposta; ogni domanda aperta include la risposta accettata.

Ripiega sul nome “Quiz API”

Da sapere
  • question_type è "multiple_choice", dove l'opzione giusta ha isCorrect true; "true_false", lo stesso ma con esattamente due opzioni, la prima vera e la seconda falsa; oppure "open_answer", che usa invece correct_answer. Se lo ometti, viene trattata come scelta multipla.
  • L'endpoint quiz passa settings direttamente come blocchi di impostazioni dell'attività, quindi non è il posto per opzioni sparse — regola il quiz nell'editor dopo.
Richiesta di esempio
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": "it",
  "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."
    }
  ]
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/quiz/embed?p=-Nq8sample_activity_key",
  "message": "Quiz created successfully"
}

Gioco da tavolo

api_e_board_game

#
POST /api/public/v1/board-game Da 1 a 100 in items
Contenuti

api_c_board_game

Ripiega sul nome “Board Game API”

Da sapere
  • question_type è "multiple_choice", dove l'opzione giusta ha isCorrect true; "true_false", lo stesso ma con esattamente due opzioni, la prima vera e la seconda falsa; oppure "open_answer", che usa invece correct_answer. Se lo ometti, viene trattata come scelta multipla.
Impostazioni che legge
CampoTipoCosa fa
number_of_tiles
facoltativo in settings
number
numberQuante caselle ha il tabellone. Tra 10 e 75.
Predefinito: 30
game_mode
facoltativo in settings
string
stringSe i giocatori corrono al traguardo o raccolgono oggetti lungo il percorso.
Uno tra race_to_finishcollect_items
Predefinito: "race_to_finish"
Richiesta di esempio
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": "it",
  "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"
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/board-game/embed?p=-Nq8sample_activity_key",
  "message": "Board Game created successfully"
}

Labirinto

Un labirinto da attraversare: ogni domanda è una sala e le sue risposte sono le porte.

#
POST /api/public/v1/maze Almeno 1 in items
Contenuti

Un array di domande a scelta multipla o vero o falso, esattamente nella forma che accetta l'endpoint quiz. Le domande aperte vengono rifiutate: una porta ha bisogno di una risposta scritta sopra.

Ripiega sul nome “Maze API”

Impostazioni che legge
CampoTipoCosa fa
maze_width
facoltativo in settings
string
stringCome sono disposte le sale: in una colonna, in un quadrato o in una forma più larga.
Uno tra narrownormalwide
Predefinito: "normal"
maze_corridors
facoltativo in settings
string
stringQuanto labirinto c'è tra una domanda e l'altra.
Uno tra shortnormallong
Predefinito: "normal"
maze_fog
facoltativo in settings
string
stringMostra tutto il labirinto, oppure solo ciò che il giocatore ha già incontrato.
Uno tra offnear
Predefinito: "off"
maze_wrong_door_pause
facoltativo in settings
string
stringPer quanto tempo le porte restano chiuse dopo averne scelta una sbagliata.
Uno tra noneshortlong
Predefinito: "short"
maze_walk_there
facoltativo in settings
boolean
booleanOffre un pulsante che porta la pedina nella sala successiva.
Predefinito: false
maze_seed
facoltativo in settings
string
stringIl seme da cui viene generato il labirinto. Lo stesso seme con le stesse domande dà lo stesso labirinto; se lo ometti, ne viene estratto uno nuovo.
Richiesta di esempio
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": "it",
  "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"
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/maze/embed?p=-Nq8sample_activity_key",
  "message": "Maze created successfully"
}

Jeopardy

Un tabellone da quiz televisivo: le categorie in alto e, sotto, gli indizi che valgono di più quanto più in basso si trovano.

#
POST /api/public/v1/jeopardy Almeno 2 in items
Contenuti

Un array di categorie, da sinistra a destra. Ognuna ha un nome e i suoi indizi, dalla riga in alto in giù.

Ripiega sul nome “Jeopardy API”

Da sapere
  • Un indizio è una domanda nella forma che accetta l'endpoint quiz, open_answer se non indicato altrimenti, con correct_answer e, facoltativamente, aliases. Può avere anche value (il suo valore) e daily_double. null lascia vuota una casella.
Impostazioni che legge
CampoTipoCosa fa
jeopardy_buzzer_mode
facoltativo in settings
string
stringChi gioca e come: il conduttore gestisce il tabellone dalla console, i giocatori premono il buzzer dal telefono, oppure ogni giocatore gioca il tabellone da solo.
Uno tra hostphonessolo
Predefinito: "host"
jeopardy_contestants
facoltativo in settings
string
stringSe la console parla di squadre o di giocatori.
Uno tra teamsplayers
Predefinito: "teams"
jeopardy_value_step
facoltativo in settings
number
numberQuanto vale una riga: un indizio vale questa cifra moltiplicata per il numero della sua riga. Da 50 a 500, a passi di 50.
Predefinito: 100
jeopardy_answer_time
facoltativo in settings
number
numberI secondi per rispondere una volta aperto un indizio, fino a 300. Con 0 non c'è il timer.
Predefinito: 20
jeopardy_wrong_answer_costs
facoltativo in settings
boolean
booleanUna risposta sbagliata toglie dal punteggio il valore dell'indizio.
Predefinito: false
jeopardy_reveal_on_timeout
facoltativo in settings
boolean
booleanIl tabellone mostra la risposta da solo quando il tempo scade.
Predefinito: false
jeopardy_require_question_form
facoltativo in settings
boolean
booleanRicorda ai giocatori di rispondere sotto forma di domanda.
Predefinito: false
Richiesta di esempio
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": "it",
  "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
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/jeopardy/embed?p=-Nq8sample_activity_key",
  "message": "Jeopardy board created successfully"
}

Video interattivo

api_e_interactive_video

#
POST /api/public/v1/interactive-video Da 1 a 50 in items
Contenuti

api_c_interactive_video

Ripiega sul nome “Interactive Video API”

Da sapere
  • Un popup è un oggetto con time (secondi, oppure "1:23"), kind ("question", a meno che indichi "note", "think" o "chapter") e description. Una domanda è una domanda nella forma che accetta l'endpoint quiz e può avere rewind_to: il punto da cui riparte il video dopo una risposta sbagliata.
Impostazioni che legge
CampoTipoCosa fa
video_url
obbligatorio in settings
string
stringIl video: una pagina di YouTube, Vimeo o Bunny Stream, oppure un link diretto a un file mp4, webm o mov.
video_duration
facoltativo in settings
number
numberLa durata del video in secondi. Se la indichi, un popup oltre la fine viene rifiutato.
Richiesta di esempio
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": "it",
  "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
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/interactive-video/embed?p=-Nq8sample_activity_key",
  "message": "Interactive video created successfully"
}
Frasi e numeri

Crittogramma

Trasforma una frase in un codice da decifrare, un carattere alla volta.

#
POST /api/public/v1/cryptogram Non accetta items
Contenuti

Una sola frase, nel campo sentence. Questo endpoint non accetta items.

Ripiega sul nome “Cryptogram API”

Da sapere
  • Tutto quello che invii in items viene ignorato — il rompicapo si costruisce solo dalla frase.
Impostazioni che legge
CampoTipoCosa fa
sentence
obbligatorio
string
stringLa frase da cifrare. I giocatori la decodificano carattere per carattere.
helpers
facoltativo in settings
string
stringLe lettere da rivelare all'inizio per aiutare i giocatori: nessuna, le più frequenti, le vocali oppure una selezione personalizzata.
Uno tra nonemost_commonvowelscustom
Predefinito: "none"
character_list
facoltativo in settings
string
stringL'alfabeto su cui si basa il cifrario. Se lo lasci vuoto, la cifratura ne sceglie uno da sé.
extra_letters
facoltativo in settings
string
stringI caratteri svelati quando helpers è "custom". Ignorato con le altre modalità di aiuto.
hide_unused_characters
facoltativo in settings
boolean
booleanTiene fuori dalla chiave di cifratura i caratteri che la frase non usa mai.
Predefinito: false
Richiesta di esempio
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": "it",
  "sentence": "An apple a day keeps the doctor away",
  "settings": {
    "helpers": "vowels",
    "hide_unused_characters": false
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/cryptogram/embed?p=-Nq8sample_activity_key",
  "message": "Cryptogram created successfully"
}

Esercizio di calcolo

Nasconde una frase dietro dei calcoli — risolvi il calcolo, scopri la lettera.

#
POST /api/public/v1/calculation Non accetta items
Contenuti

Una sola frase, nel campo sentence. Questo endpoint non accetta items.

Ripiega sul nome “Calculation Game API”

Da sapere
  • Se i vincoli sono troppo stretti per codificare la frase, la chiamata risponde 400 e ti chiede di allentarli, invece di salvare un rompicapo a metà.
Impostazioni che legge
CampoTipoCosa fa
sentence
obbligatorio
string
stringLa frase che i giocatori scoprono risolvendo i calcoli.
difficulty_level
facoltativo in settings
number
numberIl risultato più alto che un calcolo può avere.
Uno tra 20501001000
Predefinito: "100"
operators
facoltativo in settings
string[]
string[]Quali operazioni possono comparire. x è la moltiplicazione, : la divisione.
Uno tra +-x:
Predefinito: ["+", "-", "x", ":"]
max_operations
facoltativo in settings
number
numberQuante operazioni può concatenare un singolo calcolo.
Uno tra 123
Predefinito: 1
number_difficulty
facoltativo in settings
number
numberLimita i singoli numeri all'interno di un calcolo. Da 5 a 1000.
Predefinito: 100
Richiesta di esempio
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": "it",
  "sentence": "Fruit salad for everyone",
  "settings": {
    "difficulty_level": "100",
    "operators": [
      "+",
      "-",
      "x",
      ":"
    ],
    "max_operations": 1,
    "number_difficulty": 100
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/calculation/embed?p=-Nq8sample_activity_key",
  "message": "Calculation game created successfully"
}

Sudoku

Genera una griglia risolta, poi ne toglie di nuovo dei numeri.

#
POST /api/public/v1/sudoku Non accetta items
Contenuti

Niente. L'intero rompicapo nasce dalle sue due impostazioni.

Ripiega sul nome “Sudoku API”

Da sapere
  • Non inviare né items né sentence — dimensione e difficoltà sono tutto l'input.
  • L'editor offre la difficoltà solo per 2x3, 3x3 e 3x4. L'API la applica a ogni dimensione, 2x2 e 4x4 comprese.
Impostazioni che legge
CampoTipoCosa fa
size
facoltativo in settings
string
stringLa dimensione di un blocco, scritta come righe per colonne — 3x3 dà la classica griglia 9x9. L'endpoint verifica solo che sia leggibile come due numeri, quindi resta sulle dimensioni che offre l'editor.
Uno tra 2x22x33x33x44x4
Predefinito: "3x3"
difficulty_level
facoltativo in settings
string
stringQuanti numeri restano sulla griglia come punto di partenza.
Uno tra easynormalhard
Predefinito: "normal"
Richiesta di esempio
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": "it",
  "settings": {
    "size": "3x3",
    "difficulty_level": "normal"
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/sudoku/embed?p=-Nq8sample_activity_key",
  "message": "Sudoku created successfully"
}

Frase caduta

api_e_fallen_phrase

#
POST /api/public/v1/fallen-phrase Non accetta items
Contenuti

api_c_fallen_phrase

Ripiega sul nome “Fallen Phrase API”

Impostazioni che legge
CampoTipoCosa fa
sentence
obbligatorio
string
stringLa frase da nascondere: una citazione, un proverbio, una frase chiave. Al massimo 120 tra lettere e cifre.
columns
facoltativo in settings
number
numberLa larghezza del tabellone, da 8 a 18. Meno colonne significano più lettere impilate in ciascuna e un livello più difficile.
Predefinito: 14
helpers
facoltativo in settings
string
stringQuali lettere restano nella griglia come punto d'ingresso: nessuna, le più frequenti, le vocali oppure quelle che elenchi tu.
Uno tra nonemost_commonvowelscustom
Predefinito: "none"
extra_letters
facoltativo in settings
string
stringLe lettere svelate quando helpers è "custom".
Richiesta di esempio
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": "it",
  "sentence": "Don't count your chickens before they hatch.",
  "settings": {
    "columns": 12,
    "helpers": "custom",
    "extra_letters": "ky"
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/fallen-phrase/embed?p=-Nq8sample_activity_key",
  "message": "Fallen phrase created successfully"
}

Tabelline

api_e_times_tables

#
POST /api/public/v1/times-tables Non accetta items
Contenuti

api_c_times_tables

Ripiega sul nome “Times Tables API”

Impostazioni che legge
CampoTipoCosa fa
tables
facoltativo in settings
number[]
number[]Le tabelline da esercitare. Se ometti questa impostazione, vanno da 1 a 10; con un 11 o un 12 la griglia diventa 12 per 12.
Uno tra 123456789101112
order
facoltativo in settings
string
stringSe le righe e le colonne seguono l'ordine o sono mescolate.
Uno tra ascendingshuffled
Predefinito: "ascending"
picture
facoltativo in settings
string
stringL'immagine che le risposte giuste dipingono.
Uno tra sailboatheartrockettreecatfishflowerhouse
Predefinito: "sailboat"
players_choose_tables
facoltativo in settings
boolean
booleanPermette a ogni giocatore di scegliere quali tabelline esercitare.
Predefinito: false
fill_same_sums
facoltativo in settings
boolean
booleanUna risposta giusta riempie tutte le caselle con la stessa operazione.
Predefinito: true
Richiesta di esempio
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": "it",
  "settings": {
    "tables": [
      7,
      3,
      4
    ],
    "order": "shuffled",
    "seed": "k3x9q2ab",
    "picture": "rocket",
    "players_choose_tables": true,
    "fill_same_sums": false
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/times-tables/embed?p=-Nq8sample_activity_key",
  "message": "Times tables created successfully"
}

Testo da completare

api_e_fill_in_the_gap

#
POST /api/public/v1/fill-in-the-gap Da 1 a 50 in items
Contenuti

api_c_fill_in_the_gap

Ripiega sul nome “Fill in the gap API”

Da sapere
  • Scrivi la frase per intero e metti degli asterischi attorno a ogni parola da togliere: "Water boils at *100* degrees." Più parole dentro la stessa coppia formano un unico spazio vuoto. Una voce può anche avere un'istruzione mostrata sopra la frase.
Richiesta di esempio
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": "it",
  "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."
    }
  ]
}'
Successo
{
  "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"
}

Analisi grammaticale

Frasi in cui i giocatori assegnano un'etichetta alle parole: parti del discorso, parti della frase o etichette tue.

#
POST /api/public/v1/deconstruct Da 1 a 50 in items
Contenuti

Un array di frasi. Ogni parola da etichettare si scrive come [word](label).

Ripiega sul nome “Sentence analysis API”

Da sapere
  • Scrivi una frase come "The [dog](noun) [barks](verb)." Le parole senza tag vengono mostrate ma non richieste. Le etichette noun, verb, adjective e subject vengono mostrate a ogni giocatore nella sua lingua.
Impostazioni che legge
CampoTipoCosa fa
categories
facoltativo in settings
string[]
string[]Le etichette tra cui scelgono i giocatori, in ordine. Se ometti questa impostazione, sono le etichette usate nelle frasi. Inviala per aggiungere un'etichetta che nessuna parola ha, o per sistemare l'ordine.
Richiesta di esempio
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": "it",
  "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"
    ]
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/deconstruct/embed?p=-Nq8sample_activity_key",
  "message": "Sentence analysis created successfully"
}

Griglia logica

api_e_logic_puzzle

#
POST /api/public/v1/logic-puzzle Almeno 3 in items
Contenuti

api_c_logic_puzzle

Ripiega sul nome “Logic Puzzle API”

Da sapere
  • Ogni categoria deve avere lo stesso numero di elementi, da 3 a 6, tutti diversi. Una categoria può essere contrassegnata come ordered (prezzi, orari, età) con un unit facoltativo, che permette al generatore di scrivere indizi su più, meno e quanto.
Impostazioni che legge
CampoTipoCosa fa
story
facoltativo in settings
string
stringLa storia di sfondo mostrata sopra gli indizi.
difficulty
facoltativo in settings
string
stringQuali tipi di indizio può usare il generatore.
Uno tra easymediumhard
Predefinito: "easy"
hints
facoltativo in settings
boolean
booleanOffre un pulsante che mostra il passaggio successivo.
Predefinito: true
auto_cross
facoltativo in settings
boolean
booleanSegnare un abbinamento barra il resto della sua riga e della sua colonna.
Predefinito: true
clue_mode
facoltativo in settings
string
stringChi scrive gli indizi che vedono i giocatori: generati dalla tabella, le tue frasi in free_clues, oppure nessuno.
Uno tra generatedfreenone
Predefinito: "generated"
free_clues
facoltativo in settings
string[]
string[]Le tue frasi come indizi, mostrate così come sono scritte, con clue_mode "free". Nessun controllo le verifica.
Richiesta di esempio
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": "it",
  "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"
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/logic-puzzle/embed?p=-Nq8sample_activity_key",
  "message": "Logic puzzle created successfully"
}

Caccia al tesoro

api_e_scavenger_hunt

#
POST /api/public/v1/scavenger-hunt Da 1 a 50 in items
Contenuti

api_c_scavenger_hunt

Ripiega sul nome “Scavenger Hunt API”

Da sapere
  • Un passaggio è un oggetto con title, description, code e, facoltativamente, accepted_codes (altre grafie valide), url e link_text. Un codice viene controllato senza distinguere maiuscole e spazi. La mappa con i segnaposto si può aggiungere solo nell'editor.
Richiesta di esempio
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": "it",
  "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"
      ]
    }
  ]
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/scavenger-hunt/embed?p=-Nq8sample_activity_key",
  "message": "Scavenger hunt created successfully"
}

Ragionamento spaziale

api_e_spatial_reasoning

#
POST /api/public/v1/spatial-reasoning Da 1 a 50 in items
Contenuti

api_c_spatial_reasoning

Ripiega sul nome “Spatial Reasoning API”

Da sapere
  • Gli oggetti e le destinazioni sono square, triangle, circle, hexagon, pentagon, star, diamond o heart. Le relazioni sono inside, outside, behind, in_front_of, right_of, left_of, above, below, same_color_as, different_color_from, larger_than e smaller_than. Una regola che non può mai essere soddisfatta risponde 400.
Impostazioni che legge
CampoTipoCosa fa
clue_mode
facoltativo in settings
string
stringRegole mostrate come immagini o come frasi.
Uno tra visualtext
Predefinito: "visual"
unique_object_picks
facoltativo in settings
boolean
booleanOgni forma può essere posizionata una sola volta.
Predefinito: false
hide_color_picker
facoltativo in settings
boolean
booleanI giocatori non possono cambiare il colore delle forme.
Predefinito: false
Richiesta di esempio
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": "it",
  "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
  }
}'
Successo
{
  "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

Frasi scritte come immagini: i giocatori leggono le immagini e i cambi di lettera che le riportano a parole.

#
POST /api/public/v1/rebus Da 1 a 30 in items
Contenuti

Un array di frasi. Ognuna elenca le parole disegnate come immagini; ogni altra parola resta con le sue lettere.

Ripiega sul nome “Rebus API”

Da sapere
  • Una parola viene disegnata con parti che, insieme, la compongono. Una parte ha le lettere che rappresenta (text), un emoji e shows: la parola che indica ciò che mostra l'immagine ("broom" per un'immagine che rappresenta "room"). Puzzel calcola i cambi di lettera. Una parte può anche essere un simbolo, come 4 per "for".
Impostazioni che legge
CampoTipoCosa fa
rebus_commas
facoltativo in settings
boolean
booleanDisegna una lettera iniziale o finale tolta come una virgola accanto all'immagine.
Predefinito: false
Richiesta di esempio
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": "it",
  "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
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/rebus/embed?p=-Nq8sample_activity_key",
  "message": "Rebus created successfully"
}
Immagini

Puzzle

Taglia un'immagine in pezzi da ricomporre trascinandoli.

#
POST /api/public/v1/jigsaw Non accetta items
Contenuti

Un solo URL di immagine, nel campo image. Questo endpoint non accetta items.

Ripiega sul nome “Jigsaw Game API”

Da sapere
  • L'API crea sempre un puzzle 4 per 4. Il numero di pezzi, i pezzi irregolari e i bordi dritti sono impostazioni dell'editor — inviare qui rows o columns non fa niente.
  • L'URL viene salvato così come lo hai inviato e il file non viene mai copiato, quindi deve restare pubblicamente raggiungibile per tutto il tempo in cui l'attività viene giocata.
Impostazioni che legge
CampoTipoCosa fa
image
obbligatorio
string
stringURL assoluto dell'immagine da tagliare. Va inviato al primo livello, non dentro settings.
Richiesta di esempio
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": "it",
  "image": "https://example.com/orchard.jpg"
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/jigsaw/embed?p=-Nq8sample_activity_key",
  "message": "Jigsaw game created successfully"
}

Gioco del 15

Mescola un'immagine in tessere che scorrono al loro posto.

#
POST /api/public/v1/slidingpuzzle Non accetta items
Contenuti

Un solo URL di immagine, dentro settings. Questo endpoint non accetta items.

Ripiega sul nome “Sliding Puzzle API”

Da sapere
  • A differenza del puzzle, questo endpoint legge la sua immagine da settings.image. Un campo image di primo livello viene ignorato e la chiamata risponde 400.
  • L'URL viene salvato così come lo hai inviato e il file non viene mai copiato, quindi deve restare pubblicamente raggiungibile per tutto il tempo in cui l'attività viene giocata.
Impostazioni che legge
CampoTipoCosa fa
image
obbligatorio in settings
string
stringURL assoluto dell'immagine da mescolare. A differenza di quella del puzzle, questa sta dentro settings.
Richiesta di esempio
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": "it",
  "settings": {
    "image": "https://example.com/orchard.jpg"
  }
}'
Successo
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/slidingpuzzle/embed?p=-Nq8sample_activity_key",
  "message": "Sliding puzzle created successfully"
}

Qualcosa non funziona come dovrebbe?

Inviaci la richiesta che hai provato, senza la chiave API, e il messaggio di errore ricevuto. Ti risponderà direttamente chi ha sviluppato l'endpoint.

Scrivi all'assistenza