É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
20 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
F
I
G
A
T
R
I
P
M
Kryssord
Fletter svarene dine sammen i et rutenett og nummererer definisjonene for deg.
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"
}
}'
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 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.
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.
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 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 enten "multiple_choice", der det riktige alternativet har isCorrect satt til true, eller "open_answer", som bruker correct_answer i stedet. Utelates det, behandles det 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 enten "multiple_choice", der det riktige alternativet har isCorrect satt til true, eller "open_answer", som bruker correct_answer i stedet. Utelates det, behandles det 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"
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"
}
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.
É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.