Spring til indhold
Du får en forhåndsvisning af det nye Puzzel.org Tilbage til den nuværende side
Udvikler-API

Byg aktiviteter fra dit eget system

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

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.

FeltTypeHvad det gør
account_api_key
påkrævet
string
stringDin kontos API-nøgle. Den bliver sendt i bodyen, ikke i en header.
email
påkrævet
string
stringAdressen, 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.

Log ind

API-nøgler bliver uddelt, når et abonnement starter, så en gratis konto har endnu ikke en.

Se planerne

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.

FeltTypeHvad det gør
account_api_key
påkrævet
string
stringDin kontos API-nøgle. Den bliver sendt i bodyen, ikke i en header.
email
påkrævet
string
stringAdressen, din Puzzel.org-konto logger ind med. Nøglen er kun gyldig sammen med den.
title
valgfri
string
stringNavnet, aktiviteten får på dit dashboard. Udelad det, så bruger endpointet sit eget standardnavn.
language
valgfri
string
stringBestemmer 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
stringUdelad 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.

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

StatusHvad 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

Krydsord

Sammenfletter dine svar i et gitter og nummererer definitionerne for dig.

#
POST /api/public/v1/crossword Mindst 2 i items
Indhold

En liste af ord. Hver post parrer svaret med den clue, der peger på det.

Falder tilbage til navnet “Crossword API”

Værd at vide
  • Svar, der er kortere end to tegn, bliver fjernet, før gitteret bliver bygget, og mindst to skal overleve det.
  • Svar bliver sat med store bogstaver, og generatoren får tyve forsøg til at placere dem. Hvis den ikke kan placere et eneste ord, svarer kaldet 500.
Eksempel på anmodning
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"
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}

Ordsøgning

Gemmer dine ord i et bogstavgitter, i de retninger og den form, du vælger.

#
POST /api/public/v1/wordseeker Mindst 2 i items
Indhold

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
FeltTypeHvad det gør
hidden_solution
valgfri i settings
string
stringDe 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
valgfri i 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 af westeastnorthsouthnorthwestnortheastsouthwestsoutheast
Standard: ["east", "southeast", "south"]
template
valgfri i settings
string
stringSkærer gitteret til i en form i stedet for at lade det være kvadratisk.
En af squarecirclecrossdiamondpyramidsmileystarcross_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"
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordseeker/embed?p=-Nq8sample_activity_key",
  "message": "Wordseeker created successfully"
}

Akrostikon

Stabler dine svar, så én kolonne staver et skjult ord.

#
POST /api/public/v1/acrostic Mindst 1 i items
Indhold

En liste af ord. Tilsammen skal de levere hvert bogstav i det skjulte ord.

Falder tilbage til navnet “Acrostic API”

Værd at vide
  • Hvis svarene ikke kan levere de bogstaver, løsningen har brug for, svarer kaldet 500 i stedet for at gemme et halvfærdigt gitter.
  • Generatoren omarrangerer dine svar, så kolonnen går op, så den rækkefølge, du sender, ikke er den rækkefølge, spillerne ser.
Settings, den læser
FeltTypeHvad det gør
hidden_solution
påkrævet i settings
string
stringOrdet, den fremhævede kolonne staver. Dette endpoint kan ikke køre uden det.
Eksempel på anmodning
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": "da",
  "items": [
    {
      "answer": "PEACH",
      "description": "Fuzzy skin, sweet flesh",
      "type": "text"
    },
    {
      "answer": "BANANA",
      "description": "A long yellow fruit",
      "type": "text"
    },
    {
      "answer": "CHERRY",
      "description": "A small red stone fruit",
      "type": "text"
    },
    {
      "answer": "MELON",
      "description": "Big, green outside, sweet inside",
      "type": "text"
    }
  ],
  "settings": {
    "hidden_solution": "PLUM"
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/acrostic/embed?p=-Nq8sample_activity_key",
  "message": "Acrostic created successfully"
}

Bogstavsalat

api_e_word_scramble

#
POST /api/public/v1/word-scramble Mindst 1 i items
Indhold

api_c_word_scramble

Falder tilbage til navnet “Word Scramble API”

Værd at vide
  • 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
FeltTypeHvad det gør
hidden_solution
valgfri i settings
string
stringEt 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"
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/word-scramble/embed?p=-Nq8sample_activity_key",
  "message": "Word Scramble created successfully"
}

Galgeleg

Gør dine ord eller udtryk til gæt-bogstavet-runder.

#
POST /api/public/v1/hangman Mindst 1 i items
Indhold

En liste af ord eller korte udtryk. Clue er det tip, spillerne ser.

Falder tilbage til navnet “Hangman API”

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

Wordle

Laver et gæt-ordet-spil ud af hvert ord, du sender.

#
POST /api/public/v1/wordle Mindst 1 i items
Indhold

En liste af ord. Spillerne får én runde pr. ord.

Falder tilbage til navnet “Wordle API”

Værd at vide
  • Lavet med indstillingen tjek-at-gæt-er-rigtige-ord slået til. Slå den fra i editoren, hvis dine ord er navne eller opdigtede.
Eksempel på anmodning
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": "da",
  "items": [
    {
      "answer": "MELON",
      "description": "Sweet and green",
      "type": "text"
    },
    {
      "answer": "PEACH",
      "description": "Fuzzy and orange",
      "type": "text"
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordle/embed?p=-Nq8sample_activity_key",
  "message": "Wordle created successfully"
}

Tastetræning

api_e_typing_practice

#
POST /api/public/v1/typing-practice Mindst 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"
}

Lykkehjul

api_e_wheel_of_fortune

#
POST /api/public/v1/wheel-of-fortune Mindst 1 i items
Indhold

api_c_wheel_of_fortune

Falder tilbage til navnet “Wheel of Fortune API”

Værd at vide
  • Lavet med "vis kun udfaldet på hjulet", så resultatet bliver aflæst på hjulet i stedet for annonceret ved siden af det.
Eksempel på anmodning
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": "da",
  "items": [
    {
      "answer": "Read a page aloud",
      "description": "Segment 1",
      "type": "text"
    },
    {
      "answer": "Name three fruits",
      "description": "Segment 2",
      "type": "text"
    },
    {
      "answer": "Spell it backwards",
      "description": "Segment 3",
      "type": "text"
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wheel-of-fortune/embed?p=-Nq8sample_activity_key",
  "message": "Wheel of Fortune created successfully"
}
Kort & par

Memory

Vendte kort, der skal vendes om og parres.

#
POST /api/public/v1/memory Mindst 2 i items
Indhold

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.
Eksempel på anmodning
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": "da",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/memory/embed?p=-Nq8sample_activity_key",
  "message": "Memory game created successfully"
}

Parspil

api_e_matching_pairs

#
POST /api/public/v1/matching-pairs Mindst 2 i items
Indhold

api_c_matching_pairs

Falder tilbage til navnet “Matching 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.
Eksempel på anmodning
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": "da",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/matching-pairs/embed?p=-Nq8sample_activity_key",
  "message": "Matching pairs game created successfully"
}

Huskekort

api_e_flash_cards

#
POST /api/public/v1/flash-cards Mindst 1 i items
Indhold

api_c_flash_cards

Falder tilbage til navnet “Flash Cards API”

Værd at vide
  • 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.
Eksempel på anmodning
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": "da",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/flash-cards/embed?p=-Nq8sample_activity_key",
  "message": "Flash Cards created successfully"
}

Sorteringsopgave

Kort, der skal sorteres i den kategori, de hører til i.

#
POST /api/public/v1/categorize Mindst 2 i items
Indhold

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.
Eksempel på anmodning
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": "da",
  "items": [
    {
      "name": "Red fruits",
      "cards": [
        {
          "type": "text",
          "value": "Strawberry"
        },
        {
          "type": "text",
          "value": "Cherry"
        }
      ]
    },
    {
      "name": "Yellow fruits",
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "Lemon"
        }
      ]
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/categorize/embed?p=-Nq8sample_activity_key",
  "message": "Categorize game created successfully"
}

Rækkefølgeopgave

En sekvens, spillerne skal sætte i rækkefølge igen.

#
POST /api/public/v1/reorder Mindst 1 i items
Indhold

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.
Eksempel på anmodning
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": "da",
  "items": [
    {
      "name": "From seed to fruit",
      "cards": [
        {
          "type": "text",
          "value": "Plant the seed"
        },
        {
          "type": "text",
          "value": "Water it"
        },
        {
          "type": "text",
          "value": "Watch it grow"
        },
        {
          "type": "text",
          "value": "Pick the fruit"
        }
      ]
    }
  ]
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/reorder/embed?p=-Nq8sample_activity_key",
  "message": "Reorder game created successfully"
}
Spørgsmål & svar

Quiz

Multiple choice og åbne spørgsmål, der bliver bedømt undervejs.

#
POST /api/public/v1/quiz Mindst 1 i items
Indhold

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

Brætspil

api_e_board_game

#
POST /api/public/v1/board-game Mindst 1 i items
Indhold

api_c_board_game

Falder tilbage til navnet “Board Game 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.
Settings, den læser
FeltTypeHvad det gør
number_of_tiles
valgfri i settings
number
numberHvor mange felter brættet har. Mellem 10 og 75.
Standard: 30
game_mode
valgfri i settings
string
stringOm spillerne kapløber til mål, eller om de samler genstande undervejs.
En af race_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"
}
Sætninger & tal

Kryptogram

Gør en sætning til en kode, der skal knækkes, ét tegn ad gangen.

#
POST /api/public/v1/cryptogram Tager ingen items
Indhold

Én sætning, i sentence-feltet. Dette endpoint tager ingen items.

Falder tilbage til navnet “Cryptogram API”

Værd at vide
  • Alt, du sender i items, bliver ignoreret — opgaven bliver bygget ud fra sentence alene.
Settings, den læser
FeltTypeHvad det gør
sentence
påkrævet
string
stringSætningen, der skal krypteres. Spillerne afkoder den tegn for tegn.
helpers
valgfri i settings
string
stringHvilke tegn der bliver givet gratis som en indgang: ingen, de mest almindelige, vokalerne, eller dem, du selv angiver i en liste.
En af nonemost_commonvowelscustom
Standard: "none"
character_list
valgfri i settings
string
stringAlfabetet, chifferet bliver bygget ud fra. Efterlades det tomt, vælger krypteringen sit eget.
extra_letters
valgfri i settings
string
stringDe tegn, der bliver givet væk, når helpers er "custom". Ignoreres for de andre hjælpetilstande.
hide_unused_characters
valgfri i settings
boolean
booleanUdelader tegn, som sætningen aldrig bruger, fra nøglen.
Standard: false
Eksempel på anmodning
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": "da",
  "sentence": "An apple a day keeps the doctor away",
  "settings": {
    "helpers": "vowels",
    "hide_unused_characters": false
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/cryptogram/embed?p=-Nq8sample_activity_key",
  "message": "Cryptogram created successfully"
}

Regneopgave

Gemmer en sætning bag regnestykker — løs regnestykket, afslør bogstavet.

#
POST /api/public/v1/calculation Tager ingen items
Indhold

Én sætning, i sentence-feltet. Dette endpoint tager ingen items.

Falder tilbage til navnet “Calculation Game API”

Værd at vide
  • Hvis begrænsningerne er for stramme til at indkode sætningen, svarer kaldet 400 og beder dig løsne dem i stedet for at gemme en halvfærdig opgave.
Settings, den læser
FeltTypeHvad det gør
sentence
påkrævet
string
stringSætningen, spillerne afslører ved at løse regnestykkerne.
difficulty_level
valgfri i settings
number
numberDet højeste svar, et regnestykke må have.
En af 20501001000
Standard: "100"
operators
valgfri i settings
string[]
string[]Hvilke regnearter der må optræde. x er gange, : er division.
En af +-x:
Standard: ["+", "-", "x", ":"]
max_operations
valgfri i settings
number
numberHvor mange regnearter ét regnestykke må kæde sammen.
En af 123
Standard: 1
number_difficulty
valgfri i settings
number
numberSætter loft over de enkelte tal inde i et regnestykke. Alt fra 5 til 1000.
Standard: 100
Eksempel på anmodning
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": "da",
  "sentence": "Fruit salad for everyone",
  "settings": {
    "difficulty_level": "100",
    "operators": [
      "+",
      "-",
      "x",
      ":"
    ],
    "max_operations": 1,
    "number_difficulty": 100
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/calculation/embed?p=-Nq8sample_activity_key",
  "message": "Calculation game created successfully"
}

Sudoku

Genererer et løst gitter og fjerner derefter tal igen.

#
POST /api/public/v1/sudoku Tager ingen items
Indhold

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
FeltTypeHvad det gør
size
valgfri i settings
string
stringStø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 af 2x22x33x33x44x4
Standard: "3x3"
difficulty_level
valgfri i settings
string
stringHvor mange tal der bliver stående i gitteret til at starte ud fra.
En af easynormalhard
Standard: "normal"
Eksempel på anmodning
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": "da",
  "settings": {
    "size": "3x3",
    "difficulty_level": "normal"
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/sudoku/embed?p=-Nq8sample_activity_key",
  "message": "Sudoku created successfully"
}
Billeder

Puslespil

Skærer et billede i brikker, der skal trækkes sammen igen.

#
POST /api/public/v1/jigsaw Tager ingen items
Indhold

É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
FeltTypeHvad det gør
image
påkrævet
string
stringAbsolut URL til billedet, der skal skæres op. Sendes på øverste niveau, ikke inde i settings.
Eksempel på anmodning
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": "da",
  "image": "https://example.com/orchard.jpg"
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/jigsaw/embed?p=-Nq8sample_activity_key",
  "message": "Jigsaw game created successfully"
}

Skydepuslespil

Blander et billede til felter, der glider på plads.

#
POST /api/public/v1/slidingpuzzle Tager ingen items
Indhold

É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
FeltTypeHvad det gør
image
påkrævet i settings
string
stringAbsolut URL til billedet, der skal blandes. I modsætning til puslespillets ligger denne inde i settings.
Eksempel på anmodning
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": "da",
  "settings": {
    "image": "https://example.com/orchard.jpg"
  }
}'
Succes
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/slidingpuzzle/embed?p=-Nq8sample_activity_key",
  "message": "Sliding puzzle created successfully"
}

Opfører noget sig ikke, som det skal?

Send den anmodning, du prøvede, og den fejl, du fik tilbage, så får du et rigtigt svar — fra den person, der skrev endpointet.

Skriv til support