Hoppa till innehållet
Du förhandsgranskar nya Puzzel.org Tillbaka till nuvarande webbplats
Utvecklar-API

Bygg aktiviteter från ditt eget system

En POST per aktivitetstyp. Skicka ditt innehåll som JSON och få tillbaka en aktivitet i ditt Puzzel.org-konto samt en URL du kan ge till spelare eller lägga in i en iframe.

Bas-URL
https://puzzel.org/api/public/v1
Autentisering
Nyckel + e-post i body
Endpoints
20 aktivitetstyper
Kvot
10 aktiviteter per dag

Ditt första anrop

Inget att installera och ingen handskakning: skicka en JSON-body med din nyckel, din e-post och ditt innehåll. Svaret innehåller den nya aktivitetens nyckel och URL:en den spelas 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": "sv",
  "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"
    }
  ]
}'
Lyckades
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}

Varje exempel på den här sidan är ett komplett, körbart anrop. Byt ut mot din egen nyckel och ditt eget innehåll så fungerar det direkt.

Autentisering

Det finns inga headers och ingen bearer-token. Båda uppgifterna skickas i JSON-bodyn i varje anrop, och nyckeln accepteras bara för kontot som e-postadressen tillhör.

FältTypVad det gör
account_api_key
obligatoriskt
string
stringDitt kontos API-nyckel. Den skickas i body, inte i en header.
email
obligatoriskt
string
stringAdressen ditt Puzzel.org-konto loggar in med. Nyckeln är bara giltig tillsammans med den.

Din nyckel finns under kontodelen av instrumentpanelen, bakom Visa.

Logga in

API-nycklar delas ut när en prenumeration startar, så ett gratiskonto har ingen ännu.

Se paketen

Behandla nyckeln som ett lösenord. Den skapar och skriver över aktiviteter i ditt konto, så håll den på serversidan och borta från allt en webbläsare kan läsa.

Anropets body

Varje endpoint tar samma fem fält. Det som skiljer är innehållsfältet under dem: de flesta tar en array av items, några tar en mening eller en bild, och sudoku tar ingenting alls.

FältTypVad det gör
account_api_key
obligatoriskt
string
stringDitt kontos API-nyckel. Den skickas i body, inte i en header.
email
obligatoriskt
string
stringAdressen ditt Puzzel.org-konto loggar in med. Nyckeln är bara giltig tillsammans med den.
title
valfritt
string
stringNamnet aktiviteten får i instrumentpanelen. Utelämna det så använder endpointen sitt eget standardnamn.
language
valfritt
string
stringAvgör bara språket i URL:en du får tillbaka — det översätter inget du skickar. Ordsök läser det också för att växla sina utfyllnadsbokstäver till arabiska när det är "ar".
Standard: "en"
activity_key
valfritt
string
stringUtelämna det för att skapa en ny aktivitet. Skicka nyckeln till en du redan äger så byggs den aktiviteten om istället.

settings är ett objekt med alternativ per endpoint. Vilka en endpoint läser listas nedan för respektive endpoint; allt annat du lägger där ignoreras.

Vad du får tillbaka

Ett lyckat anrop svarar 200 med den nya aktivitetens nyckel och URL:en den spelas på. Allt annat svarar med success satt till false och en enda felsträng.

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

URL:en du får tillbaka är embed-vyn. Byt embed mot play för att öppna den i helskärm, eller mot build för att öppna den i redigeraren — nyckeln efter p= är densamma.

Skapa kontra uppdatera

Skicka activity_key så byggs aktiviteten bakom den om på plats: dess innehåll ersätts, dess namn och versionsstämpel uppdateras, och själva nyckeln förblir densamma — så länkar och inbäddningar du redan delat fortsätter fungera. Resultat, mappplacering och varje inställning som endpointen inte själv skriver lämnas 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 tillämpas vid varje uppdatering, dess standardvärde inräknat — utelämna det så byter aktiviteten namn till den endpointens standardnamn.
  • Inställningsblocken en endpoint skriver själv skrivs om helt från grunden, så en uppdatering återställer också dem till värdena du skickar, eller till endpointens standardvärden.
  • Du kan bara uppdatera aktiviteter ditt eget konto äger. Någon annans nyckel svarar 403.
  • En uppdatering kostar lika mycket som att skapa: ett anrop av dagens kvot.

Anropsgräns

10
10 aktiviteter per konto och dag

Varje lyckat anrop räknas, skapande och uppdatering lika. Går du över svarar nästa anrop 429 tills räknaren nollställs.

Räknaren nollställs en gång om dagen av ett schemalagt jobb, inte i ett rullande 24-timmarsfönster.

Fel

Fel kommer alltid som JSON med samma två fält, aldrig som en HTML-sida. Felsträngen är skriven för att läsas av en människa — den namnger fältet eller gränsen som gjorde att det misslyckades.

StatusVad det betyder
400
Bad Request
Något i body saknas, är felaktigt formaterat eller utanför tillåtet intervall. Meddelandet namnger fältet.
401
Unauthorized
E-postadressen är okänd, eller så tillhör nyckeln inte det kontot.
403
Forbidden
activity_key du skickade tillhör ett annat konto.
429
Too Many Requests
Dagens kvot är förbrukad. Den nollställs en gång om dagen.
500
Server Error
Generatorn kunde inte bygga ett pussel av det du skickade — oftast för få ord, eller ord som inte går att passa ihop.

Endpoints

En sökväg per aktivitetstyp, alla POST, alla under samma bas-URL. Var och en listar innehållet den behöver, inställningarna den läser och ett anrop du kan köra.

Ord & bokstäver

Korsord

Länkar ihop dina svar i ett rutnät och numrerar definitionerna åt dig.

#
POST /api/public/v1/crossword Minst 2 i items
Innehåll

En array av ord. Varje post kopplar ihop svaret med definitionen som pekar på det.

Faller tillbaka på namnet “Crossword API”

Bra att veta
  • Svar kortare än två tecken tas bort innan rutnätet byggs, och minst två måste finnas kvar efter det.
  • Svaren skrivs med versaler och generatorn får tjugo försök att passa in dem. Om den inte kan placera ett enda ord svarar anropet 500.
Exempelanrop
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": "sv",
  "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"
    }
  ]
}'
Lyckades
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}

Ordsök

Gömmer dina ord i ett bokstavsrutnät, i de riktningar och den form du väljer.

#
POST /api/public/v1/wordseeker Minst 2 i items
Innehåll

En array av ord. Definitionstexten blir ordbanken spelarna arbetar utifrån.

Faller tillbaka på namnet “Wordseeker API”

Bra att veta
  • Svar under två tecken tas bort, och varje svar skrivs med versaler innan det läggs in i rutnätet.
  • Rutnätet fylls ut med latinska bokstäver om inte language är "ar", vilket växlar utfyllnaden till arabiska.
Inställningar den läser
FältTypVad det gör
hidden_solution
valfritt i settings
string
stringDe överblivna bokstäverna stavar ut det här. Att ange det säger också åt generatorn att passa in lösningen först istället för att packa in så många ord som möjligt.
directions
valfritt i settings
string[]
string[]Vilka riktningar ett ord får löpa i. Utelämna det så löper orden bara österut, sydöst och söderut.
En av westeastnorthsouthnorthwestnortheastsouthwestsoutheast
Standard: ["east", "southeast", "south"]
template
valfritt i settings
string
stringSkär till rutnätet i en form istället för att lämna det kvadratiskt.
En av squarecirclecrossdiamondpyramidsmileystarcross_plus
Exempelanrop
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": "sv",
  "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"
  }
}'
Lyckades
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordseeker/embed?p=-Nq8sample_activity_key",
  "message": "Wordseeker created successfully"
}

Akrostikon

Staplar dina svar så att en kolumn stavar ett dolt ord.

#
POST /api/public/v1/acrostic Minst 1 i items
Innehåll

En array av ord. Tillsammans måste de innehålla varje bokstav i det dolda ordet.

Faller tillbaka på namnet “Acrostic API”

Bra att veta
  • Om svaren inte kan tillhandahålla bokstäverna lösningen behöver svarar anropet 500 istället för att spara ett halvbyggt rutnät.
  • Generatorn ändrar ordningen på dina svar för att få kolumnen att fungera, så ordningen du skickar är inte den ordning spelarna ser.
Inställningar den läser
FältTypVad det gör
hidden_solution
obligatoriskt i settings
string
stringOrdet den markerade kolumnen stavar ut. Den här endpointen körs inte utan det.
Exempelanrop
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": "sv",
  "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"
  }
}'
Lyckades
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/acrostic/embed?p=-Nq8sample_activity_key",
  "message": "Acrostic created successfully"
}

Bokstavspussel

api_e_word_scramble

#
POST /api/public/v1/word-scramble Minst 1 i items
Innehåll

api_c_word_scramble

Faller tillbaka på namnet “Word Scramble API”

Bra att veta
  • Aktiviteter som skapas via API:et har alltid inställningen för att blanda ordningen påslagen, så ordningen du skickar är inte den ordning spelarna får.
Inställningar den läser
FältTypVad det gör
hidden_solution
valfritt i settings
string
stringEtt valfritt bonusord spelarna anger när resten är löst.
Exempelanrop
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": "sv",
  "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"
  }
}'
Lyckades
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/word-scramble/embed?p=-Nq8sample_activity_key",
  "message": "Word Scramble created successfully"
}

Hänga gubbe

Gör om dina ord eller fraser till gissa-bokstaven-omgångar.

#
POST /api/public/v1/hangman Minst 1 i items
Innehåll

En array av ord eller korta fraser. Ledtråden är tipset spelarna ser.

Faller tillbaka på namnet “Hangman API”

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

Wordle

Gör om varje ord du skickar till ett gissa-ordet-spel.

#
POST /api/public/v1/wordle Minst 1 i items
Innehåll

En array av ord. Spelarna får en omgång per ord.

Faller tillbaka på namnet “Wordle API”

Bra att veta
  • Skapas med inställningen för att kontrollera att gissningar är riktiga ord påslagen. Stäng av den i redigeraren om dina ord är namn eller påhittade.
Exempelanrop
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": "sv",
  "items": [
    {
      "answer": "MELON",
      "description": "Sweet and green",
      "type": "text"
    },
    {
      "answer": "PEACH",
      "description": "Fuzzy and orange",
      "type": "text"
    }
  ]
}'
Lyckades
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordle/embed?p=-Nq8sample_activity_key",
  "message": "Wordle created successfully"
}

Tangentbordsträning

api_e_typing_practice

#
POST /api/public/v1/typing-practice Minst 1 i items
Innehåll

api_c_typing_practice

Faller tillbaka på namnet “Typing Practice API”

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

Lyckohjul

api_e_wheel_of_fortune

#
POST /api/public/v1/wheel-of-fortune Minst 1 i items
Innehåll

api_c_wheel_of_fortune

Faller tillbaka på namnet “Wheel of Fortune API”

Bra att veta
  • Skapas med “visa resultatet enbart i hjulet”, så resultatet läses av hjulet istället för att meddelas bredvid det.
Exempelanrop
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": "sv",
  "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"
    }
  ]
}'
Lyckades
{
  "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

Kort med baksidan upp som vänds och paras ihop.

#
POST /api/public/v1/memory Minst 2 i items
Innehåll

En array av par. Varje par innehåller de två kort som hör ihop.

Faller tillbaka på namnet “Memory Game API”

Bra att veta
  • Ett kort är ett objekt med en type och ett value. Använd "text" för ord, eller "image", "audio", "youtube" eller "link" med en URL i value, och lägg till alt för en beskrivning.
Exempelanrop
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": "sv",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Lyckades
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/memory/embed?p=-Nq8sample_activity_key",
  "message": "Memory game created successfully"
}

Matchningsspel

api_e_matching_pairs

#
POST /api/public/v1/matching-pairs Minst 2 i items
Innehåll

api_c_matching_pairs

Faller tillbaka på namnet “Matching Game API”

Bra att veta
  • Ett kort är ett objekt med en type och ett value. Använd "text" för ord, eller "image", "audio", "youtube" eller "link" med en URL i value, och lägg till alt för en beskrivning.
Exempelanrop
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": "sv",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Lyckades
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/matching-pairs/embed?p=-Nq8sample_activity_key",
  "message": "Matching pairs game created successfully"
}

Studiekort

api_e_flash_cards

#
POST /api/public/v1/flash-cards Minst 1 i items
Innehåll

api_c_flash_cards

Faller tillbaka på namnet “Flash Cards API”

Bra att veta
  • Endpointen sparar lika många kort som du skickar, så skicka exakt två per post — framsida, sedan baksida.
  • Ett kort är ett objekt med en type och ett value. Använd "text" för ord, eller "image", "audio", "youtube" eller "link" med en URL i value, och lägg till alt för en beskrivning.
Exempelanrop
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": "sv",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Lyckades
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/flash-cards/embed?p=-Nq8sample_activity_key",
  "message": "Flash Cards created successfully"
}

Sorteringspussel

Kort som sorteras i kategorin de hör hemma i.

#
POST /api/public/v1/categorize Minst 2 i items
Innehåll

En array av kategorier, var och en med ett namn och de kort som hör till den.

Faller tillbaka på namnet “Categorize Game API”

Bra att veta
  • En kategori som skickas utan namn sparas som “Untitled Category”, så skicka alltid ett.
  • Ett kort är ett objekt med en type och ett value. Använd "text" för ord, eller "image", "audio", "youtube" eller "link" med en URL i value, och lägg till alt för en beskrivning.
Exempelanrop
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": "sv",
  "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"
        }
      ]
    }
  ]
}'
Lyckades
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/categorize/embed?p=-Nq8sample_activity_key",
  "message": "Categorize game created successfully"
}

Ordningspussel

En sekvens spelarna måste sätta i rätt ordning.

#
POST /api/public/v1/reorder Minst 1 i items
Innehåll

En array av sekvenser. Var och en innehåller sina kort i rätt ordning.

Faller tillbaka på namnet “Reorder Game API”

Bra att veta
  • Ordningen du skickar sparas som den rätta ordningen — nummer ett först.
  • Ett kort är ett objekt med en type och ett value. Använd "text" för ord, eller "image", "audio", "youtube" eller "link" med en URL i value, och lägg till alt för en beskrivning.
Exempelanrop
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": "sv",
  "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"
        }
      ]
    }
  ]
}'
Lyckades
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/reorder/embed?p=-Nq8sample_activity_key",
  "message": "Reorder game created successfully"
}
Frågor & svar

Quiz

Flervalsfrågor och öppna frågor som poängsätts allteftersom spelarna svarar.

#
POST /api/public/v1/quiz Minst 1 i items
Innehåll

En array av frågor. Flervalsfrågor har sina svarsalternativ; öppna frågor har svaret du godkänner.

Faller tillbaka på namnet “Quiz API”

Bra att veta
  • question_type är antingen "multiple_choice", där det rätta alternativet har isCorrect satt till true, eller "open_answer", som istället använder correct_answer. Utelämnas det behandlas det som flerval.
  • Quizendpointen skickar settings rakt igenom som aktivitetens inställningsblock, så det är inte en plats för lösa alternativ — justera quizet i redigeraren efteråt.
Exempelanrop
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": "sv",
  "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."
    }
  ]
}'
Lyckades
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/quiz/embed?p=-Nq8sample_activity_key",
  "message": "Quiz created successfully"
}

Brädspel

api_e_board_game

#
POST /api/public/v1/board-game Minst 1 i items
Innehåll

api_c_board_game

Faller tillbaka på namnet “Board Game API”

Bra att veta
  • question_type är antingen "multiple_choice", där det rätta alternativet har isCorrect satt till true, eller "open_answer", som istället använder correct_answer. Utelämnas det behandlas det som flerval.
Inställningar den läser
FältTypVad det gör
number_of_tiles
valfritt i settings
number
numberHur många rutor spelbrädet har. Mellan 10 och 75.
Standard: 30
game_mode
valfritt i settings
string
stringOm spelarna kapplöper till mål eller samlar föremål på vägen.
En av race_to_finishcollect_items
Standard: "race_to_finish"
Exempelanrop
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": "sv",
  "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"
  }
}'
Lyckades
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/board-game/embed?p=-Nq8sample_activity_key",
  "message": "Board Game created successfully"
}
Meningar & tal

Kryptogram

Gör om en mening till en kod att knäcka, ett tecken i taget.

#
POST /api/public/v1/cryptogram Tar inga items
Innehåll

En mening, i fältet sentence. Den här endpointen tar inga items.

Faller tillbaka på namnet “Cryptogram API”

Bra att veta
  • Allt du skickar i items ignoreras — pusslet byggs enbart från sentence.
Inställningar den läser
FältTypVad det gör
sentence
obligatoriskt
string
stringMeningen som ska krypteras. Spelarna avkodar den tecken för tecken.
helpers
valfritt i settings
string
stringVilka tecken som avslöjas gratis som en ingång: inga, de vanligaste, vokalerna, eller de du listar själv.
En av nonemost_commonvowelscustom
Standard: "none"
character_list
valfritt i settings
string
stringAlfabetet chiffret byggs från. Lämnas det tomt väljer krypteringen sitt eget.
extra_letters
valfritt i settings
string
stringTecknen som avslöjas när helpers är "custom". Ignoreras för de andra hjälplägena.
hide_unused_characters
valfritt i settings
boolean
booleanUtelämnar tecken meningen aldrig använder från nyckeln.
Standard: false
Exempelanrop
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": "sv",
  "sentence": "An apple a day keeps the doctor away",
  "settings": {
    "helpers": "vowels",
    "hide_unused_characters": false
  }
}'
Lyckades
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/cryptogram/embed?p=-Nq8sample_activity_key",
  "message": "Cryptogram created successfully"
}

Räknepussel

Gömmer en mening bakom uträkningar — lös uträkningen, avslöja bokstaven.

#
POST /api/public/v1/calculation Tar inga items
Innehåll

En mening, i fältet sentence. Den här endpointen tar inga items.

Faller tillbaka på namnet “Calculation Game API”

Bra att veta
  • Om begränsningarna är för snäva för att koda meningen svarar anropet 400 och ber dig lätta på dem, istället för att spara ett halvfärdigt pussel.
Inställningar den läser
FältTypVad det gör
sentence
obligatoriskt
string
stringMeningen spelarna avslöjar genom att lösa uträkningarna.
difficulty_level
valfritt i settings
number
numberDet högsta svar en uträkning får ha.
En av 20501001000
Standard: "100"
operators
valfritt i settings
string[]
string[]Vilka räknesätt som får förekomma. x är multiplikation, : är division.
En av +-x:
Standard: ["+", "-", "x", ":"]
max_operations
valfritt i settings
number
numberHur många räknesätt en uträkning får kedja ihop.
En av 123
Standard: 1
number_difficulty
valfritt i settings
number
numberBegränsar de enskilda talen inuti en uträkning. Allt från 5 till 1000.
Standard: 100
Exempelanrop
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": "sv",
  "sentence": "Fruit salad for everyone",
  "settings": {
    "difficulty_level": "100",
    "operators": [
      "+",
      "-",
      "x",
      ":"
    ],
    "max_operations": 1,
    "number_difficulty": 100
  }
}'
Lyckades
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/calculation/embed?p=-Nq8sample_activity_key",
  "message": "Calculation game created successfully"
}

Sudoku

Genererar ett löst rutnät och tar sedan bort siffror igen.

#
POST /api/public/v1/sudoku Tar inga items
Innehåll

Ingenting. Hela pusslet kommer ur dess två inställningar.

Faller tillbaka på namnet “Sudoku API”

Bra att veta
  • Skicka inga items och ingen sentence — size och difficulty är hela inmatningen.
  • Redigeraren erbjuder bara svårighetsgraden för 2x3, 3x3 och 3x4. API:et tillämpar den på alla storlekar, 2x2 och 4x4 inräknat.
Inställningar den läser
FältTypVad det gör
size
valfritt i settings
string
stringStorleken på ett block, skrivet som rader gånger kolumner — 3x3 ger det klassiska 9x9-rutnätet. Endpointen kontrollerar bara att det tolkas som två tal, så håll dig till storlekarna redigeraren erbjuder.
En av 2x22x33x33x44x4
Standard: "3x3"
difficulty_level
valfritt i settings
string
stringHur många siffror som lämnas kvar i rutnätet att utgå från.
En av easynormalhard
Standard: "normal"
Exempelanrop
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": "sv",
  "settings": {
    "size": "3x3",
    "difficulty_level": "normal"
  }
}'
Lyckades
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/sudoku/embed?p=-Nq8sample_activity_key",
  "message": "Sudoku created successfully"
}
Bilder

Bitpussel

Delar en bild i bitar som dras ihop igen.

#
POST /api/public/v1/jigsaw Tar inga items
Innehåll

En bild-URL, i fältet image. Den här endpointen tar inga items.

Faller tillbaka på namnet “Jigsaw Game API”

Bra att veta
  • API:et gör alltid ett 4 gånger 4-bitpussel. Antal bitar, oregelbundna bitar och raka kanter är inställningar i redigeraren — att skicka rows eller columns här gör ingenting.
  • URL:en sparas precis som du skickade den och filen kopieras aldrig, så den måste förbli publikt nåbar så länge aktiviteten spelas.
Inställningar den läser
FältTypVad det gör
image
obligatoriskt
string
stringAbsolut URL till bilden som ska delas upp i bitar. Skickas på toppnivå, inte inuti settings.
Exempelanrop
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": "sv",
  "image": "https://example.com/orchard.jpg"
}'
Lyckades
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/jigsaw/embed?p=-Nq8sample_activity_key",
  "message": "Jigsaw game created successfully"
}

Skjutpussel

Blandar en bild till brickor som glider på plats.

#
POST /api/public/v1/slidingpuzzle Tar inga items
Innehåll

En bild-URL, inuti settings. Den här endpointen tar inga items.

Faller tillbaka på namnet “Sliding Puzzle API”

Bra att veta
  • Till skillnad från bitpusslet läser den här endpointen sin bild från settings.image. Ett image-fält på toppnivå ignoreras och anropet svarar 400.
  • URL:en sparas precis som du skickade den och filen kopieras aldrig, så den måste förbli publikt nåbar så länge aktiviteten spelas.
Inställningar den läser
FältTypVad det gör
image
obligatoriskt i settings
string
stringAbsolut URL till bilden som ska blandas. Till skillnad från bitpusslets ligger den här inuti settings.
Exempelanrop
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": "sv",
  "settings": {
    "image": "https://example.com/orchard.jpg"
  }
}'
Lyckades
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/slidingpuzzle/embed?p=-Nq8sample_activity_key",
  "message": "Sliding puzzle created successfully"
}

Något som inte funkar som det ska?

Skicka anropet du testade och felet du fick tillbaka, så får du ett riktigt svar från personen som skrev endpointen.

E-posta support