Ét POST-kald pr. aktivitetstype. Send dit indhold som JSON, og få en aktivitet i din Puzzel.org-konto og en URL, du kan give til spillerne eller sætte ind i et iframe.
Base-URL
https://puzzel.org/api/public/v1
Godkendelse
Nøgle + e-mail i JSON-bodyen
Endpoints
20 aktivitetstyper
Kvote
10 aktiviteter om dagen
Din første anmodning
Intet at installere og intet håndtryk: send en JSON-body med din nøgle, din e-mail og dit indhold. Svaret indeholder den nye aktivitets nøgle og den URL, 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": "da",
"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 side er en komplet anmodning, du kan køre direkte. Sæt din egen nøgle og dit eget indhold ind, og det virker uden ændringer.
Godkendelse
Der er ingen headers og ingen bearer-token. Begge oplysninger sendes i JSON-bodyen for hver anmodning, og nøglen bliver kun accepteret for den konto, som e-mailen tilhører.
Felt
Type
Hvad det gør
account_api_key
påkrævet
string
string
Din kontos API-nøgle. Den bliver sendt i bodyen, ikke i en header.
email
påkrævet
string
string
Adressen, din Puzzel.org-konto logger ind med. Nøglen er kun gyldig sammen med den.
Din nøgle ligger under kontoafsnittet på dit dashboard, bag Vis.
Behandl nøglen som en adgangskode. Den opretter og overskriver aktiviteter på din konto, så hold den på serversiden og væk fra alt, en browser kan læse.
Anmodningens body
Hvert endpoint tager de samme fem felter. Det, der adskiller dem, er content-feltet nedenunder: de fleste tager en liste af items, nogle få tager én sentence eller ét image, og sudoku tager slet intet.
Felt
Type
Hvad det gør
account_api_key
påkrævet
string
string
Din kontos API-nøgle. Den bliver sendt i bodyen, ikke i en header.
email
påkrævet
string
string
Adressen, din Puzzel.org-konto logger ind med. Nøglen er kun gyldig sammen med den.
title
valgfri
string
string
Navnet, aktiviteten får på dit dashboard. Udelad det, så bruger endpointet sit eget standardnavn.
language
valgfri
string
string
Bestemmer kun locale i den URL, du får tilbage — den oversætter ikke noget af det, du sender. Ordsøgning bruger den også til at skifte fyldbogstaverne til arabisk, når den er "ar".
Standard: "en"
activity_key
valgfri
string
string
Udelad det for at oprette en ny aktivitet. Angiv nøglen til en, du allerede ejer, så bliver den aktivitet genopbygget i stedet.
settings er et objekt med indstillinger for det enkelte endpoint. Hvilke indstillinger et endpoint læser, står angivet under det; alt andet, du putter der, bliver ignoreret.
Hvad du får tilbage
Et vellykket kald svarer 200 med den nye aktivitets nøgle og den URL, den spilles på. Alt andet svarer med success sat til false og en enkelt error-streng.
{
"success": false,
"error": "Invalid Email or API Key"
}
Den url, du får tilbage, er embed-visningen. Skift embed ud med play for at åbne den i fuld side, eller med build for at åbne den i editoren — nøglen efter p= er den samme.
Oprettelse vs. opdatering
Send activity_key, så bliver aktiviteten bag den genopbygget på stedet: dens indhold bliver udskiftet, dens navn og versionsstempel bliver opdateret, og selve nøglen forbliver den samme — så links og indlejringer, du allerede har delt, bliver ved med at virke. Resultater, mappeplacering og alle indstillinger, som endpointet ikke selv skriver til, forbliver 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 bliver anvendt ved hver opdatering, også dens standardværdi — udelad det, så bliver aktiviteten omdøbt til det pågældende endpoints standardnavn.
De indstillingsblokke, et endpoint selv skriver til, bliver skrevet helt om, så en opdatering også nulstiller dem til de værdier, du sender, eller til endpointets standardværdier.
Du kan kun opdatere aktiviteter, din egen konto ejer. En andens nøgle svarer 403.
En opdatering koster det samme som en oprettelse: ét kald af dagens kvote.
Kaldegrænse
10
10 aktiviteter pr. konto pr. dag
Hvert vellykket kald tæller, oprettelser og opdateringer på lige fod. Går du over grænsen, svarer den næste anmodning 429, indtil tælleren bliver nulstillet.
Tælleren bliver nulstillet én gang om dagen af et planlagt job, ikke over et glidende 24-timers vindue.
Fejl
Fejl kommer altid som JSON med de samme to felter, aldrig som en HTML-side. Error-strengen er skrevet, så et menneske kan læse den — den navngiver det felt eller den grænse, der fejlede.
Status
Hvad det betyder
400
Bad Request
Noget i bodyen mangler, er forkert formet eller ligger uden for det tilladte område. Beskeden navngiver feltet.
401
Unauthorized
E-mailen er ukendt, eller nøglen hører ikke til den konto.
403
Forbidden
Den activity_key, du sendte, hører til en anden konto.
429
Too Many Requests
Dagens kvote er brugt op. Den nulstilles én gang om dagen.
500
Server Error
Generatoren kunne ikke bygge en opgave ud fra det, du sendte — som regel for få ord, eller ord, der ikke kan passes sammen.
Endpoints
Én sti pr. aktivitetstype, alle er POST, alle under samme base-URL. Hver enkelt lister det indhold, den skal bruge, de settings, den læser, og en anmodning, du kan køre.
Ord & bogstaver
F
I
G
A
T
R
I
P
M
Krydsord
Sammenfletter dine svar i et gitter og nummererer definitionerne for dig.
En liste af ord. Clue-teksten bliver den ordbeholdning, spillerne arbejder ud fra.
Falder tilbage til navnet “Wordseeker API”
Værd at vide
Svar under to tegn bliver fjernet, og hvert svar bliver sat med store bogstaver, før det kommer ind i gitteret.
Gitteret bliver fyldt op med latinske bogstaver, medmindre language er "ar", hvilket skifter fyldbogstaverne til arabisk.
Settings, den læser
Felt
Type
Hvad det gør
hidden_solution
valgfrii settings
string
string
De resterende bogstaver staver dette. Når du angiver den, fortæller det også generatoren, at den skal placere løsningen først i stedet for at proppe så mange ord ind, den kan.
directions
valgfrii settings
string[]
string[]
Hvilke retninger et ord må løbe i. Udelad det, og ord løber kun mod øst, sydøst og syd.
En afwesteastnorthsouthnorthwestnortheastsouthwestsoutheast
Standard: ["east", "southeast", "south"]
template
valgfrii settings
string
string
Skærer gitteret til i en form i stedet for at lade det være kvadratisk.
En afsquarecirclecrossdiamondpyramidsmileystarcross_plus
Eksempel på anmodning
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": "da",
"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"
}
}'
Aktiviteter, der bliver lavet via API'en, har altid indstillingen bland-rækkefølgen slået til, så den rækkefølge, du sender, ikke er den rækkefølge, spillerne får.
Settings, den læser
Felt
Type
Hvad det gør
hidden_solution
valgfrii settings
string
string
Et valgfrit bonusord, spillerne indtaster, når resten er løst.
Eksempel på anmodning
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": "da",
"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-practiceMindst 1 i items
Indhold
api_c_typing_practice
Falder tilbage til navnet “Typing Practice API”
Eksempel på anmodning
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": "da",
"items": [
{
"answer": "The quick brown fox jumps over the lazy dog",
"description": "Every letter of the alphabet",
"type": "text"
},
{
"answer": "Pack my box with five dozen liquor jugs",
"description": "Another pangram",
"type": "text"
}
]
}'
Succes
{
"success": true,
"id": "-Nq8sample_activity_key",
"url": "https://puzzel.org/en/typing-practice/embed?p=-Nq8sample_activity_key",
"message": "Typing Practice created successfully"
}
En liste af par. Hvert par indeholder de to kort, der hører sammen.
Falder tilbage til navnet “Memory Game API”
Værd at vide
Et kort er et objekt med en type og en value. Brug "text" til ord, eller "image", "audio", "youtube" eller "link" med en URL i value, og tilføj alt for en beskrivelse.
Et kort er et objekt med en type og en value. Brug "text" til ord, eller "image", "audio", "youtube" eller "link" med en URL i value, og tilføj alt for en beskrivelse.
Endpointet gemmer lige så mange kort, som du sender, så send præcis to pr. post — forside, så bagside.
Et kort er et objekt med en type og en value. Brug "text" til ord, eller "image", "audio", "youtube" eller "link" med en URL i value, og tilføj alt for en beskrivelse.
En liste af kategorier, hver med et navn og de kort, der hører til i den.
Falder tilbage til navnet “Categorize Game API”
Værd at vide
En kategori, der bliver sendt uden navn, bliver gemt som "Untitled Category", så send altid ét.
Et kort er et objekt med en type og en value. Brug "text" til ord, eller "image", "audio", "youtube" eller "link" med en URL i value, og tilføj alt for en beskrivelse.
En liste af sekvenser. Hver indeholder sine kort i den rigtige rækkefølge.
Falder tilbage til navnet “Reorder Game API”
Værd at vide
Den rækkefølge, du sender, bliver gemt som den rigtige rækkefølge — nummer et først.
Et kort er et objekt med en type og en value. Brug "text" til ord, eller "image", "audio", "youtube" eller "link" med en URL i value, og tilføj alt for en beskrivelse.
En liste af spørgsmål. Multiple choice-spørgsmål indeholder deres svarmuligheder; åbne spørgsmål indeholder det svar, du accepterer.
Falder tilbage til navnet “Quiz API”
Værd at vide
question_type er enten "multiple_choice", hvor den rigtige svarmulighed har isCorrect true, eller "open_answer", som i stedet bruger correct_answer. Udelades det, bliver det behandlet som multiple choice.
Quiz-endpointet sender settings direkte videre som aktivitetens indstillingsblokke, så det er ikke stedet til løse valgmuligheder — justér quizzen i editoren bagefter.
Eksempel på anmodning
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": "da",
"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", hvor den rigtige svarmulighed har isCorrect true, eller "open_answer", som i stedet bruger correct_answer. Udelades det, bliver det behandlet som multiple choice.
Settings, den læser
Felt
Type
Hvad det gør
number_of_tiles
valgfrii settings
number
number
Hvor mange felter brættet har. Mellem 10 og 75.
Standard: 30
game_mode
valgfrii settings
string
string
Om spillerne kapløber til mål, eller om de samler genstande undervejs.
En afrace_to_finishcollect_items
Standard: "race_to_finish"
Eksempel på anmodning
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": "da",
"items": [
{
"question_type": "multiple_choice",
"description": "Which fruit is yellow?",
"answers": [
{
"type": "text",
"description": "Banana",
"isCorrect": true
},
{
"type": "text",
"description": "Cherry",
"isCorrect": false
}
]
},
{
"question_type": "open_answer",
"description": "What colour is a lemon?",
"correct_answer": "Yellow",
"explanation": "Lemons ripen from green to yellow."
}
],
"settings": {
"number_of_tiles": 30,
"game_mode": "race_to_finish"
}
}'
Succes
{
"success": true,
"id": "-Nq8sample_activity_key",
"url": "https://puzzel.org/en/board-game/embed?p=-Nq8sample_activity_key",
"message": "Board Game created successfully"
}
Intet. Hele opgaven kommer ud af dens to settings.
Falder tilbage til navnet “Sudoku API”
Værd at vide
Send ingen items og ingen sentence — size og difficulty er hele input.
Editoren tilbyder kun difficulty for 2x3, 3x3 og 3x4. API'en anvender den på enhver size, inklusive 2x2 og 4x4.
Settings, den læser
Felt
Type
Hvad det gør
size
valgfrii settings
string
string
Størrelsen på én blok, skrevet som rækker gange kolonner — 3x3 giver det klassiske 9x9-gitter. Endpointet tjekker kun, at det kan tolkes som to tal, så hold dig til de størrelser, editoren tilbyder.
En af2x22x33x33x44x4
Standard: "3x3"
difficulty_level
valgfrii settings
string
string
Hvor mange tal der bliver stående i gitteret til at starte ud fra.
Én billed-URL, i image-feltet. Dette endpoint tager ingen items.
Falder tilbage til navnet “Jigsaw Game API”
Værd at vide
API'en laver altid et puslespil på 4 gange 4. Antal brikker, uregelmæssige brikker og lige kanter er indstillinger i editoren — det gør ingen forskel at sende rows eller columns her.
URL'en bliver gemt, som du sendte den, og filen bliver aldrig kopieret, så den skal blive ved med at være offentligt tilgængelig, så længe aktiviteten bliver spillet.
Settings, den læser
Felt
Type
Hvad det gør
image
påkrævet
string
string
Absolut URL til billedet, der skal skæres op. Sendes på øverste niveau, ikke inde i settings.
Én billed-URL, inde i settings. Dette endpoint tager ingen items.
Falder tilbage til navnet “Sliding Puzzle API”
Værd at vide
I modsætning til puslespillet læser dette endpoint sit billede fra settings.image. Et image-felt på øverste niveau bliver ignoreret, og kaldet svarer 400.
URL'en bliver gemt, som du sendte den, og filen bliver aldrig kopieret, så den skal blive ved med at være offentligt tilgængelig, så længe aktiviteten bliver spillet.
Settings, den læser
Felt
Type
Hvad det gør
image
påkræveti settings
string
string
Absolut URL til billedet, der skal blandes. I modsætning til puslespillets ligger denne inde i settings.