Én POST per aktivitetstype. Send innholdet ditt som JSON, og få tilbake en aktivitet i Puzzel.org-kontoen din og en URL du kan gi til spillere eller sette inn i en iframe.
Base-URL
https://puzzel.org/api/public/v1
Autentisering
Nøkkel og e-post i forespørselsteksten
Endepunkter
43 aktivitetstyper
Kvote
10 aktiviteter om dagen
Din første forespørsel
Ingenting å installere og ingen håndtrykk: send JSON-innhold med nøkkelen din, e-posten din og innholdet ditt. Svaret inneholder nøkkelen til den nye aktiviteten og URL-en den spilles på.
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": "no",
"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"
}
]
}'
Hvert eksempel på denne siden er en komplett forespørsel du kan kjøre direkte. Bytt ut med din egen nøkkel og ditt eget innhold, så fungerer det som det er.
Autentisering
Det er ingen headere og ingen bearer-token. Begge opplysningene sendes som JSON-innhold i hver forespørsel, og nøkkelen godtas bare for kontoen som e-postadressen tilhører.
Felt
Type
Hva det gjør
account_api_key
obligatorisk
string
string
API-nøkkelen til kontoen din. Den skal være i forespørselsteksten, ikke i en header.
email
obligatorisk
string
string
Adressen Puzzel.org-kontoen din logger inn med. Nøkkelen er bare gyldig sammen med den.
Nøkkelen din ligger under kontodelen av dashbordet, bak Vis.
Behandle nøkkelen som et passord. Den oppretter og overskriver aktiviteter i kontoen din, så hold den på serversiden og unna alt en nettleser kan lese.
Forespørselsteksten
Hvert endepunkt tar imot de samme fem feltene. Det som er forskjellig, er innholdsfeltet under dem: de fleste tar imot en liste med items, noen få tar imot én setning eller ett bilde, og sudoku tar imot ingenting i det hele tatt.
Felt
Type
Hva det gjør
account_api_key
obligatorisk
string
string
API-nøkkelen til kontoen din. Den skal være i forespørselsteksten, ikke i en header.
email
obligatorisk
string
string
Adressen Puzzel.org-kontoen din logger inn med. Nøkkelen er bare gyldig sammen med den.
title
valgfritt
string
string
Navnet aktiviteten får i dashbordet ditt. Utelater du det, bruker endepunktet sitt eget standardnavn.
language
valgfritt
string
string
Bestemmer bare språket i URL-en du får tilbake — den oversetter ikke noe av det du sender. Ordsøk bruker den også til å bytte fyllbokstavene til arabisk når den er "ar".
Standard: "en"
activity_key
valgfritt
string
string
Utelat det for å opprette en ny aktivitet. Send inn nøkkelen til en du allerede eier, så bygges den aktiviteten om i stedet.
settings er et objekt med innstillinger som er spesifikke for hvert endepunkt. Hvilke det gjelder for et endepunkt, er listet opp under det; alt annet du legger der, blir ignorert.
Hva du får tilbake
Et vellykket kall svarer 200 med nøkkelen til den nye aktiviteten og URL-en den spilles på. Alt annet svarer med success satt til false og én enkelt feilmelding.
{
"success": false,
"error": "Invalid Email or API Key"
}
URL-en du får tilbake, er innbyggingsvisningen. Bytt ut embed med play for å åpne den på hele siden, eller med build for å åpne den i editoren — nøkkelen etter p= er den samme.
Opprette vs. oppdatere
Send inn activity_key, så bygges aktiviteten bak den om på stedet: innholdet erstattes, navnet og versjonsstempelet oppdateres, og selve nøkkelen forblir den samme — så lenker og innbygginger du allerede har delt, fortsetter å fungere. Resultater, mappeplassering og alle innstillinger endepunktet ikke skriver til selv, forblir som de var.
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 brukes ved hver oppdatering, inkludert standardverdien — utelater du det, blir aktiviteten omdøpt til endepunktets standardnavn.
Innstillingsblokkene et endepunkt skriver til selv, blir skrevet helt på nytt, så en oppdatering nullstiller også disse til verdiene du sender, eller til endepunktets standardverdier.
Du kan bare oppdatere aktiviteter din egen konto eier. En annens nøkkel svarer 403.
En oppdatering koster det samme som en opprettelse: ett kall av dagens kvote.
Hastighetsgrense
10
10 aktiviteter per konto per dag
Hvert vellykkede kall telles, opprettelser og oppdateringer likt. Går du over, svarer neste forespørsel 429 helt til telleren nullstilles.
Telleren nullstilles én gang om dagen av en planlagt jobb, ikke over et rullerende 24-timersvindu.
Feil
Feil kommer alltid som JSON med de samme to feltene, aldri som en HTML-side. Feilmeldingen er skrevet for at et menneske skal kunne lese den — den navngir feltet eller grensen som feilet.
Status
Hva det betyr
400
Bad Request
Noe i forespørselsteksten mangler, er feil formatert eller utenfor gyldig område. Meldingen navngir feltet.
401
Unauthorized
E-postadressen er ukjent, eller nøkkelen tilhører ikke den kontoen.
403
Forbidden
activity_key du sendte, tilhører en annen konto.
429
Too Many Requests
Dagens kvote er brukt opp. Den nullstilles én gang om dagen.
500
Server Error
Generatoren klarte ikke å bygge en oppgave av det du sendte inn — vanligvis for få ord, eller ord som ikke kan settes sammen.
Endepunkter
Én sti per aktivitetstype, alle POST, alle under samme base-URL. Hver av dem lister opp innholdet den trenger, innstillingene den leser og en forespørsel du kan kjøre.
Ord og bokstaver
R
I
S
O
A
S
K
E
A
Kryssord
Fletter svarene dine sammen i et rutenett og nummererer definisjonene for deg.
En liste med ord. Hver oppføring parer svaret med definisjonen som peker på det.
Faller tilbake til navnet “Crossword API”
Verdt å vite
Svar som er kortere enn to tegn, blir fjernet før rutenettet bygges, og minst to må overleve det.
Svarene skrives med store bokstaver, og generatoren får tjue forsøk på å plassere dem. Klarer den ikke å plassere et eneste ord, svarer kallet 500.
Innstillinger den leser
Felt
Type
Hva det gjør
hidden_solution
valgfritti settings
string
string
Et valgfritt bonusord. Bokstavene i det er markert i rutene i det ferdige rutenettet, så spillerne kan samle dem når kryssordet er løst. Derfor må hver bokstav i det finnes i svarene.
crosspatch
valgfritti settings
boolean
boolean
En crosspatch: ingen definisjoner, og svarene står i en liste etter lengde som spillerne skal passe inn i rutenettet. Når den er på, kan en definisjon utelates; ellers trenger hvert svar en.
Standard: false
Eksempelforespørsel
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": "no",
"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"
}
]
}'
Aktiviteter laget gjennom API-et har alltid innstillingen for å stokke rekkefølgen slått på, så rekkefølgen du sender, er ikke rekkefølgen spillerne får.
Innstillinger den leser
Felt
Type
Hva det gjør
hidden_solution
valgfritti settings
string
string
Et valgfritt bonusord spillerne skriver inn når resten er løst.
Eksempelforespørsel
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": "no",
"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"
}
}'
POST/api/public/v1/typing-practice1 til 50 i items
Innhold
api_c_typing_practice
Faller tilbake til navnet “Typing Practice API”
Eksempelforespørsel
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": "no",
"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"
}
]
}'
Vellykket
{
"success": true,
"id": "-Nq8sample_activity_key",
"url": "https://puzzel.org/en/typing-practice/embed?p=-Nq8sample_activity_key",
"message": "Typing Practice created successfully"
}
En liste med temaord. Sammen med spangrammet må bokstavene deres fylle brettet nøyaktig.
Faller tilbake til navnet “Strands API”
Verdt å vite
Bokstavene i alle ordene og spangrammet til sammen må bli nøyaktig 30, 35, 36, 40, 42, 45, 48, 49, 50, 54, 56, 60, 63, 64, 70, 72 eller 80. Ethvert annet antall svarer 400 og sier hvor mange bokstaver du må legge til eller fjerne.
Innstillinger den leser
Felt
Type
Hva det gjør
theme
valgfritti settings
string
string
Gåten som vises over rutenettet. Utelater du den, ser spillerne tittelen.
spangram
valgfritti settings
string
string
Ordet eller frasen som navngir temaet og krysser brettet fra den ene kanten til den andre.
En oppføring er et objekt med en answer, og eventuelt aliases (andre skrivemåter som teller), en description (tipset) og en group. Store bokstaver, aksenter og tegnsetting ignoreres når et navn sjekkes.
Innstillinger den leser
Felt
Type
Hva det gjør
list_match_mode
valgfritti settings
string
string
Om et navn teller i det øyeblikket det skrives, eller først når du trykker Enter.
Én avwhile_typingon_enter
Standard: "while_typing"
list_slot_hint
valgfritti settings
string
string
Hva en tom plass røper: ingenting, lengden på navnet, første bokstav, eller tipset du skrev.
Én avnonelengthfirst_letterhint
Standard: "none"
list_arrange
valgfritti settings
string
string
Én kolonne per gruppe, eller én liste.
Én avgroupsone_list
Standard: "groups"
list_allow_give_up
valgfritti settings
boolean
boolean
Viser en gi opp-knapp som avslutter runden og viser det som ble glemt.
{
"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"
}
En oppføring er et objekt med en letter, en clue og en answer, og eventuelt en rule ("starts", standard, eller "contains") og aliases (andre skrivemåter som teller). Et svar må begynne med bokstaven sin, eller inneholde den under "contains". Store bokstaver, aksenter og tegnsetting ignoreres når et svar sjekkes.
Eksempelforespørsel
POST a-to-z-quiz
curl -X POST https://puzzel.org/api/public/v1/a-to-z-quiz \
-H "Content-Type: application/json" \
-d '{
"account_api_key": "YOUR_API_KEY",
"email": "you@example.com",
"title": "A to Z Quiz",
"language": "no",
"items": [
{
"letter": "A",
"answer": "apple",
"clue": "A red or green fruit that grows on trees"
},
{
"letter": "B",
"answer": "bicycle",
"clue": "Two wheels and pedals",
"aliases": [
"bike"
]
},
{
"letter": "X",
"rule": "contains",
"answer": "fox",
"clue": "A red animal with a bushy tail"
}
]
}'
Vellykket
{
"success": true,
"id": "-Nq8sample_activity_key",
"url": "https://puzzel.org/en/a-to-z-quiz/embed?p=-Nq8sample_activity_key",
"message": "A to Z quiz created successfully"
}
En liste med par. Hvert par inneholder de to kortene som hører sammen.
Faller tilbake til navnet “Memory Game API”
Verdt å vite
Et kort er et objekt med en type og en value. Bruk "text" for ord, eller "image", "audio", "youtube" eller "link" med en URL i value, og legg til alt for en beskrivelse.
Et kort er et objekt med en type og en value. Bruk "text" for ord, eller "image", "audio", "youtube" eller "link" med en URL i value, og legg til alt for en beskrivelse.
Endepunktet lagrer like mange kort som du sender, så send nøyaktig to per oppføring — forside, så bakside.
Et kort er et objekt med en type og en value. Bruk "text" for ord, eller "image", "audio", "youtube" eller "link" med en URL i value, og legg til alt for en beskrivelse.
POST/api/public/v1/categorizeMinst 2 i items · Høyst 60 kort i alt
Innhold
En liste med kategorier, hver med et navn og kortene som hører til i den.
Faller tilbake til navnet “Categorize Game API”
Verdt å vite
En kategori sendt uten navn, lagres som “Kategori uten navn”, så send alltid et navn.
Et kort er et objekt med en type og en value. Bruk "text" for ord, eller "image", "audio", "youtube" eller "link" med en URL i value, og legg til alt for en beskrivelse.
POST/api/public/v1/reorderMinst 1 i items · Høyst 60 kort i alt
Innhold
En liste med rekkefølger. Hver av dem inneholder kortene sine i riktig rekkefølge.
Faller tilbake til navnet “Reorder Game API”
Verdt å vite
Rekkefølgen du sender, lagres som den riktige rekkefølgen — nummer én først.
Et kort er et objekt med en type og en value. Bruk "text" for ord, eller "image", "audio", "youtube" eller "link" med en URL i value, og legg til alt for en beskrivelse.
En liste med items som kortene trekkes fra. Send tydelig flere enn det er ruter på ett kort, så kortene blir forskjellige.
Faller tilbake til navnet “Bingo API”
Verdt å vite
Et item er et objekt med en value, og eventuelt en type ("text", "image" eller "audio" med en URL i value), en description (ledetråden spillederen leser opp i ledetrådmodus) og alt.
Innstillinger den leser
Felt
Type
Hva det gjør
mode
valgfritti settings
string
string
Hva som fyller rutene: dine items, dine items trukket etter ledetråden, eller vanlige tall (som ikke trenger items).
Én avitemscluesnumbers
Standard: "items"
rows
valgfritti settings
number
number
Rader på hvert kort, 2 til 5.
Standard: 3
columns
valgfritti settings
number
number
Kolonner på hvert kort, 2 til 5.
Standard: 3
highest_number
valgfritti settings
number
number
I tallmodus fylles kortene fra 1 og opp til dette tallet, høyst 100. Krever en plan: uten plan forblir det 50.
Standard: 50
Eksempelforespørsel
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": "no",
"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
}
}'
{
"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"
}
En liste med kort. Kortene som er med i koden, angir plassen sin i den.
Faller tilbake til navnet “Keypad API”
Verdt å vite
Et kort er et objekt med en value, og eventuelt en type ("text", "image" eller "audio" med en URL i value), alt og code_position: plassen i koden, 1 først. Et kort kan være med i koden én gang, og minst ett kort må være det.
Innstillinger den leser
Felt
Type
Hva det gjør
instructions
valgfritti settings
string
string
Spørsmålet eller gåten koden svarer på, vist sammen med kortene.
force_solution_in_correct_order
valgfritti settings
boolean
boolean
Kortene må trykkes i rekkefølge. Slått av åpner enhver rekkefølge av de riktige kortene låsen.
En liste med kvartetter. Hver har et navn og nøyaktig fire kort.
Faller tilbake til navnet “Quartets API”
Verdt å vite
Et kort er et navn, eller et objekt med et navn og en description (faktaet som vises på det). Ingen kortnavn kan stå to ganger i spillet: spillerne ber om kort ved navn.
Innstillinger den leser
Felt
Type
Hva det gjør
type
valgfritti settings
string
string
Et vanlig spill, eller et læringsspill der hvert kort viser et faktum. Utelater du den, er det learn når et kort har en description.
Én avnormallearn
Eksempelforespørsel
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": "no",
"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"
}
}'
Vellykket
{
"success": true,
"id": "-Nq8sample_activity_key",
"url": "https://puzzel.org/en/quartets/embed?p=-Nq8sample_activity_key",
"message": "Quartets game created successfully"
}
Et kort er et objekt med et navn, svarene sine ("yes"/"no" for et yes_no-spørsmål, alternativets tekst for et one_of) og eventuelt et faktum som vises på kortet og en image_url med alt.
Innstillinger den leser
Felt
Type
Hva det gjør
question_mode
valgfritti settings
string
string
Hvordan spillerne spør: fixed (de trykker på spørsmålene dine; hvem som svarer, styres av answer_mode), open (de skriver sine egne, og den andre spilleren svarer; ingen spørsmål nødvendig, bare to spillere), both eller aloud (spillere som sitter sammen, spør hverandre høyt og bruker spillet til brettet og den endelige gjetningen; ingen spørsmål nødvendig, bare to spillere).
Én avfixedbothopenaloud
Standard: "fixed"
questions
valgfritti settings
object[]
object[]
Det spillerne kan spørre om: hvert spørsmål har en etikett, en type (yes_no, eller one_of med alternativene) og eventuelt setningen spillerne sender. Ingen spørsmål kan få samme svar fra alle kortene, og ingen to kort kan gi de samme svarene på alle spørsmålene.
secret_card
valgfritti settings
string
string
Hver spiller velger sitt eget hemmelige kort (choose), eller får tildelt et (random).
Én avchooserandom
Standard: "choose"
wrong_guess
valgfritti settings
string
string
En feil endelig gjetning koster en tur, eller taper spillet (den klassiske regelen).
Én avcosts_turnloses
Standard: "costs_turn"
answer_mode
valgfritti settings
string
string
Hvem som svarer på spørsmålene dine i et spill for to: manual (spilleren som har kortet, trykker ja eller nei, og et svar som ikke passer med kortet, blir avvist) eller automatic (besvares umiddelbart ut fra kortene). Når du spiller alene, svarer spillet alltid.
Én avmanualautomatic
Standard: "manual"
Eksempelforespørsel
POST guess-who
curl -X POST https://puzzel.org/api/public/v1/guess-who \
-H "Content-Type: application/json" \
-d '{
"account_api_key": "YOUR_API_KEY",
"email": "you@example.com",
"title": "Guess Who",
"language": "no",
"items": [
{
"name": "Lion",
"fact": "Lions live in groups called prides.",
"answers": [
"yes",
"no",
"meat"
]
},
{
"name": "Zebra",
"fact": "No two zebras have the same stripes.",
"answers": [
"yes",
"yes",
"plants"
]
},
{
"name": "Giraffe",
"fact": "Its tongue is about half a metre long.",
"answers": [
"yes",
"no",
"plants"
]
},
{
"name": "Ostrich",
"fact": "The largest bird, and it cannot fly.",
"answers": [
"no",
"no",
"plants"
]
},
{
"name": "Crocodile",
"fact": "It can go months without eating.",
"answers": [
"no",
"no",
"meat"
]
},
{
"name": "Tiger",
"fact": "The biggest cat of all.",
"answers": [
"yes",
"yes",
"meat"
]
}
],
"settings": {
"questions": [
{
"label": "Mammal",
"kind": "yes_no",
"sentence": "Is it a mammal?"
},
{
"label": "Stripes",
"kind": "yes_no",
"sentence": "Does it have stripes?"
},
{
"label": "Food",
"kind": "one_of",
"options": [
"meat",
"plants"
],
"sentence": "Does it eat {value}?"
}
]
}
}'
Vellykket
{
"success": true,
"id": "-Nq8sample_activity_key",
"url": "https://puzzel.org/en/guess-who/embed?p=-Nq8sample_activity_key",
"message": "Guess who created successfully"
}
En liste med spørsmål. Flervalgsspørsmål har svarene sine med seg; åpne spørsmål har svaret du godtar.
Faller tilbake til navnet “Quiz API”
Verdt å vite
question_type er "multiple_choice", der det riktige alternativet har isCorrect true; "true_false", det samme med nøyaktig to alternativer, true først og false sist; eller "open_answer", som bruker correct_answer i stedet. Hvis feltet utelates, behandles spørsmålet som flervalg.
Quiz-endepunktet sender settings rett gjennom som blokker med aktivitetsinnstillinger, så det er ikke stedet for løse valg — juster quizen i editoren etterpå.
Eksempelforespørsel
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": "no",
"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."
}
]
}'
question_type er "multiple_choice", der det riktige alternativet har isCorrect true; "true_false", det samme med nøyaktig to alternativer, true først og false sist; eller "open_answer", som bruker correct_answer i stedet. Hvis feltet utelates, behandles spørsmålet som flervalg.
Innstillinger den leser
Felt
Type
Hva det gjør
number_of_tiles
valgfritti settings
number
number
Hvor mange ruter brettet har. Mellom 10 og 75.
Standard: 30
game_mode
valgfritti settings
string
string
Om spillerne kappløper til mål eller samler gjenstander underveis.
Én avrace_to_finishcollect_items
Standard: "race_to_finish"
items_to_collect
valgfritti settings
object[]
object[]
Med game_mode collect_items: tingene spillerne samler underveis, fra 1 til 20. Hver av dem har et name, og kan ha en description, points (når spillet spilles på poeng) og et bilde som image_url.
Eksempelforespørsel
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": "no",
"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"
}
}'
Vellykket
{
"success": true,
"id": "-Nq8sample_activity_key",
"url": "https://puzzel.org/en/board-game/embed?p=-Nq8sample_activity_key",
"message": "Board Game created successfully"
}
En liste med flervalgs- eller sant/usant-spørsmål, nøyaktig i den formen quiz-endepunktet tar imot. Åpne spørsmål avvises: en dør trenger et svar skrevet på seg.
Faller tilbake til navnet “Maze API”
Innstillinger den leser
Felt
Type
Hva det gjør
maze_width
valgfritti settings
string
string
Hvordan rommene er lagt ut: én kolonne, et kvadrat eller bredere.
Én avnarrownormalwide
Standard: "normal"
maze_corridors
valgfritti settings
string
string
Hvor mye labyrint det er mellom to spørsmål.
Én avshortnormallong
Standard: "normal"
maze_fog
valgfritti settings
string
string
Vis hele labyrinten, eller bare det spilleren har vært ved siden av.
Én avoffnear
Standard: "off"
maze_wrong_door_pause
valgfritti settings
string
string
Hvor lenge dørene forblir stengt etter en feil dør.
Én avnoneshortlong
Standard: "short"
maze_walk_there
valgfritti settings
boolean
boolean
Viser en knapp som går med figuren til neste rom.
Standard: false
maze_seed
valgfritti settings
string
string
Frøet labyrinten genereres fra. Samme frø og samme spørsmål gir samme labyrint. Utelater du det, trekkes en ny.
Eksempelforespørsel
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": "no",
"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"
}
}'
En liste med kategorier, fra venstre mot høyre. Hver har et navn og ledetrådene sine fra øverste rad og nedover.
Faller tilbake til navnet “Jeopardy API”
Verdt å vite
En ledetråd er et spørsmål slik quiz-endepunktet tar imot det, open_answer med mindre noe annet er angitt, med correct_answer og eventuelt aliases. Den kan også ha value (sin egen verdi) og daily_double. null lar en rute stå tom.
Innstillinger den leser
Felt
Type
Hva det gjør
jeopardy_buzzer_mode
valgfritti settings
string
string
Hvem som spiller hvordan: spillederen styrer det fra konsollen, spillerne bruker summeren fra telefonene sine, eller hver spiller jobber seg gjennom brettet alene.
Én avhostphonessolo
Standard: "host"
jeopardy_contestants
valgfritti settings
string
string
Om konsollen snakker om lag eller om spillere.
Én avteamsplayers
Standard: "teams"
jeopardy_value_step
valgfritti settings
number
number
Hva en rad er verdt: en ledetråd er verdt dette ganger radnummeret. Fra 50 til 500, i trinn på 50.
Standard: 100
jeopardy_answer_time
valgfritti settings
number
number
Sekunder til å svare når en ledetråd er åpnet, opptil 300. 0 betyr ingen klokke.
Standard: 20
jeopardy_wrong_answer_costs
valgfritti settings
boolean
boolean
Et feil svar trekker ledetrådens verdi fra poengsummen.
Standard: false
jeopardy_reveal_on_timeout
valgfritti settings
boolean
boolean
Brettet viser selve svaret når klokken går ut.
Standard: false
jeopardy_require_question_form
valgfritti settings
boolean
boolean
Minner spillerne om å svare i form av et spørsmål.
Standard: false
Eksempelforespørsel
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": "no",
"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
}
}'
POST/api/public/v1/interactive-video1 til 50 i items
Innhold
api_c_interactive_video
Faller tilbake til navnet “Interactive Video API”
Verdt å vite
Et øyeblikk er et objekt med time (sekunder, eller "1:23"), kind ("question" med mindre det står "note", "think" eller "chapter") og description. Et spørsmål er et spørsmål slik quiz-endepunktet tar imot det, og kan ha rewind_to: der et feil svar spilles av på nytt fra.
Innstillinger den leser
Felt
Type
Hva det gjør
video_url
obligatoriski settings
string
string
Videoen: en YouTube-, Vimeo- eller Bunny Stream-side, eller en direkte lenke til en mp4-, webm- eller mov-fil.
video_duration
valgfritti settings
number
number
Lengden på videoen i sekunder. Når den er oppgitt, avvises et øyeblikk etter slutten.
Eksempelforespørsel
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": "no",
"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
}
}'
Vellykket
{
"success": true,
"id": "-Nq8sample_activity_key",
"url": "https://puzzel.org/en/interactive-video/embed?p=-Nq8sample_activity_key",
"message": "Interactive video created successfully"
}
Ingen items: kartet, nivået, stedene og modusen legges i settings.
Faller tilbake til navnet “Map Quiz API”
Verdt å vite
En kartquiz tar ingen items: alt den spør om, ligger i settings.
Innstillinger den leser
Felt
Type
Hva det gjør
map
obligatoriski settings
string
string
Kartet det spilles på: verden, en verdensdel eller et land.
Én avworldeuropeasiaafricanorth-americasouth-americaoceanianlbedefresitplsetrusbraugbhuptatchcamxjpzaariedkczskrogrnofiis
level
valgfritti settings
string
string
Hvilke steder på kartet det spørres om, for et kart med mer enn ett nivå (regionene i et land eller fylkene). Utelat det for kartets første nivå.
Én avcontinentscountriesprovincesstatesregionsdepartmentscommunitiesvoivodeshipscountiesdistrictscantonsprefectures
places
valgfritti settings
string[]
string[]
Stedene det spørres om, med navnet kartet bruker ("France", "Utrecht"), på hvilket som helst språk kartet kan. Utelat det for å spørre om alle stedene på nivået.
rivers
valgfritti settings
string[]
string[]
Elvene som spørres om, ved navn ("Rhine", "Loire"), på et kart som har elver. Uten places spørres det bare om elvene. Elver spørres bare om i modusene find, pick og type: med elver blir enhver annen modus til find.
mode
valgfritti settings
string
string
Hvordan spillerne svarer: finne stedet som nevnes, velge eller skrive navnet på et markert sted, finne et land ut fra flagget eller hovedstaden, navngi en omriss-figur eller sette sammen kartet som et puslespill.
Ingenting. Hele oppgaven kommer fra de to innstillingene.
Faller tilbake til navnet “Sudoku API”
Verdt å vite
Ikke send items eller sentence — size og difficulty er hele inndataen.
Editoren tilbyr bare vanskelighetsgrad for 2x3, 3x3 og 3x4. API-et bruker den på alle størrelser, inkludert 2x2 og 4x4.
Innstillinger den leser
Felt
Type
Hva det gjør
size
valgfritti settings
string
string
Størrelsen på én blokk, skrevet som rader ganger kolonner — 3x3 gir det klassiske 9x9-rutenettet. Endepunktet sjekker bare at det kan tolkes som to tall, så hold deg til størrelsene editoren tilbyr.
Én av2x22x33x33x44x4
Standard: "3x3"
difficulty_level
valgfritti settings
string
string
Hvor mange tall som blir stående igjen i rutenettet som utgangspunkt.
POST/api/public/v1/fill-in-the-gap1 til 50 i items
Innhold
api_c_fill_in_the_gap
Faller tilbake til navnet “Fill in the gap API”
Verdt å vite
Skriv hele setningen og sett stjerner rundt hvert ord som skal utelates: "Water boils at *100* degrees." Flere ord inni ett par er ett hull. En oppføring kan også ha en instruks som vises over setningen.
Eksempelforespørsel
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": "no",
"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."
}
]
}'
Vellykket
{
"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"
}
En liste med setninger. Hvert ord som skal merkes, skrives som [word](label).
Faller tilbake til navnet “Sentence analysis API”
Verdt å vite
Skriv en setning som "The [dog](noun) [barks](verb)." Ord uten tagg vises, men det spørres ikke om dem. Merkelappene noun, verb, adjective og subject vises til hver spiller på deres eget språk.
Innstillinger den leser
Felt
Type
Hva det gjør
categories
valgfritti settings
string[]
string[]
Merkelappene spillerne velger mellom, i rekkefølge. Utelater du den, er det merkelappene som brukes i setningene. Send den for å legge til en merkelapp ingen ord har, eller for å bestemme rekkefølgen.
Eksempelforespørsel
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": "no",
"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"
]
}
}'
Hver kategori trenger like mange items, 3 til 6, alle forskjellige. Én kategori kan markeres som ordnet (priser, tider, aldre) med en valgfri enhet, som lar generatoren skrive ledetråder om mer, mindre og hvor mye.
Innstillinger den leser
Felt
Type
Hva det gjør
story
valgfritti settings
string
string
Bakgrunnshistorien som vises over ledetrådene.
difficulty
valgfritti settings
string
string
Hvilke typer ledetråder generatoren kan bruke.
Én aveasymediumhard
Standard: "easy"
hints
valgfritti settings
boolean
boolean
Viser en knapp som viser neste steg.
Standard: true
auto_cross
valgfritti settings
boolean
boolean
Når du markerer et treff, krysses resten av raden og kolonnen ut.
Standard: true
clue_mode
valgfritti settings
string
string
Hvem som skriver ledetrådene spillerne ser: generert fra tabellen, dine egne setninger i free_clues, eller ingen.
Én avgeneratedfreenone
Standard: "generated"
free_clues
valgfritti settings
string[]
string[]
Dine egne ledetrådsetninger, vist slik de er skrevet, med clue_mode "free". Ingenting sjekker dem.
Eksempelforespørsel
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": "no",
"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"
}
}'
Et trinn er et objekt med title, description, code og eventuelt accepted_codes (andre skrivemåter som teller), url og link_text. En kode sjekkes uten hensyn til store bokstaver og mellomrom. Kartet med nåler kan bare legges til i editoren.
Eksempelforespørsel
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": "no",
"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"
]
}
]
}'
En luke er et objekt med title, surprise (message, picture, video, sound, link eller task) og tilhørende felter: text (meldingen, hva som skal gjøres i en oppgave, eller en bildetekst på opptil 280 tegn), url (en https-adresse til et bilde, en YouTube- eller Vimeo-video, en lyd eller en lenke), alt (for et bilde) og label (navnet på en oppgave eller teksten på en lenkeknapp). Den kan stille noe først: question, med question og enten options (hver med text og correct) eller answer og accepted_answers; eller code med clue og accepted_codes. Det som ligger bak en luke som spør om noe, forblir forseglet til den er besvart.
Med open_mode date åpnes luke 1 ved midnatt på first_day i time_zone, luke 2 en dag senere, og så videre; fram til da kan ingenting bak en luke leses. Med own åpnes hver luke ved midnatt på sin egen opens_on-dato. Med any åpnes hver luke når spilleren vil. Luker utover elementene du sender, er tomme til de fylles ut i editoren.
Innstillinger den leser
Felt
Type
Hva det gjør
door_count
valgfritti settings
number
number
Hvor mange luker, fra 1 til 31. Minst like mange som elementene; standard er det antallet.
first_day
valgfritti settings
string
string
Dagen luke 1 åpnes, skrevet som YYYY-MM-DD. Standard er 1. desember i den kommende sesongen.
open_mode
valgfritti settings
string
string
date: én luke om dagen fra first_day, en nedtelling. own: hver luke åpnes på sin egen opens_on-dato (YYYY-MM-DD), for eksempel én luke i uken; en luke uten dato kan åpnes når som helst. any: alle lukene kan åpnes når som helst.
Én avdateownany
Standard: "date"
scene
valgfritti settings
string
string
Utseendet til veggen: night (en vinternatt), plain (aktivitetens egne farger), pinboard (avrivbare lapper på en korktavle, til alle årstider), lanterns (en lysfest) eller party (gaver, til fødselsdag eller en hvilken som helst feiring). Alle scener unntatt night krever en betalt plan; uten den viser kalenderen night.
Én avnightplainpinboardlanternsparty
Standard: "night"
shuffle
valgfritti settings
boolean
boolean
Tall spredt utover veggen som på en ekte kalender, eller 1, 2, 3 i rekkefølge.
Standard: true
time_zone
valgfritti settings
string
string
Hvem sin midnatt en luke åpnes ved, som en IANA-tidssone.
Standard: "Europe/Amsterdam"
Eksempelforespørsel
POST advent-calendar
curl -X POST https://puzzel.org/api/public/v1/advent-calendar \
-H "Content-Type: application/json" \
-d '{
"account_api_key": "YOUR_API_KEY",
"email": "you@example.com",
"title": "Advent Calendar",
"language": "no",
"items": [
{
"title": "Six arms",
"surprise": "message",
"text": "Every snowflake has six arms: water molecules join in rings of six."
},
{
"title": "Make a snowflake",
"surprise": "task",
"label": "Fold and cut",
"text": "Fold a square of paper three times, cut shapes from the edges and unfold it."
},
{
"title": "Salt on ice",
"surprise": "message",
"text": "Salt water freezes at a lower temperature, so salt melts the ice on the roads.",
"question": {
"question": "At what temperature does fresh water freeze?",
"options": [
{
"text": "0 °C",
"correct": true
},
{
"text": "10 °C",
"correct": false
}
]
}
}
],
"settings": {
"door_count": 24,
"first_day": "2026-12-01",
"open_mode": "date"
}
}'
POST/api/public/v1/spatial-reasoning1 til 50 i items
Innhold
api_c_spatial_reasoning
Faller tilbake til navnet “Spatial Reasoning API”
Verdt å vite
Objekter og mål er square, triangle, circle, hexagon, pentagon, star, diamond eller heart. Relasjoner er inside, outside, behind, in_front_of, right_of, left_of, above, below, same_color_as, different_color_from, larger_than og smaller_than. En regel som aldri kan oppfylles, svarer 400.
En liste med setninger. Hver lister opp ordene som er tegnet som bilder. Alle andre ord står igjen som bokstaver.
Faller tilbake til navnet “Rebus API”
Verdt å vite
Et ord tegnes av deler som til sammen staver det. En del har bokstavene den står for (text), en emoji og shows: ordet for det bildet viser ("broom" for et bilde som står for "room"). Puzzel finner ut bokstavendringene. En del kan i stedet være et symbol, for eksempel 4 for "for".
Innstillinger den leser
Felt
Type
Hva det gjør
rebus_commas
valgfritti settings
boolean
boolean
Tegner en bokstav som er falt bort først eller sist, som et komma ved siden av bildet.
Én bilde-URL, i feltet image. Dette endepunktet tar ikke imot items.
Faller tilbake til navnet “Jigsaw Game API”
Verdt å vite
API-et lager alltid et puslespill på 4 ganger 4. Antall brikker, uregelmessige brikker og rette kanter er innstillinger i editoren — å sende rader eller kolonner her gjør ingenting.
URL-en lagres slik du sendte den, og filen blir aldri kopiert, så den må forbli offentlig tilgjengelig så lenge aktiviteten spilles.
Innstillinger den leser
Felt
Type
Hva det gjør
image
obligatorisk
string
string
Absolutt URL til bildet som skal kuttes opp. Sendes på øverste nivå, ikke inni settings.
POST/api/public/v1/slidingpuzzleTar ikke imot items
Innhold
Én bilde-URL, inni settings. Dette endepunktet tar ikke imot items.
Faller tilbake til navnet “Sliding Puzzle API”
Verdt å vite
I motsetning til puslespillet leser dette endepunktet bildet sitt fra settings.image. Et image-felt på øverste nivå blir ignorert, og kallet svarer 400.
URL-en lagres slik du sendte den, og filen blir aldri kopiert, så den må forbli offentlig tilgjengelig så lenge aktiviteten spilles.
Innstillinger den leser
Felt
Type
Hva det gjør
image
obligatoriski settings
string
string
Absolutt URL til bildet som skal blandes. I motsetning til puslespillets ligger dette inni settings.