Siirry sisältöön
Kehittäjä-API

Rakenna aktiviteetteja omasta järjestelmästäsi

Yksi POST-pyyntö per aktiviteettityyppi. Lähetä sisältösi JSON-muodossa ja saat vastauksena aktiviteetin Puzzel.org-tilillesi sekä URL-osoitteen, jonka voit antaa pelaajille tai upottaa iframeen.

Perus-URL
https://puzzel.org/api/public/v1
Todennus
Avain + sähköposti rungossa
Päätepisteet
38 aktiviteettityyppiä
Kiintiö
10 aktiviteettia päivässä

Ensimmäinen pyyntösi

Ei asennettavaa eikä kättelyä: lähetä JSON-runko, jossa on avaimesi, sähköpostisi ja sisältösi. Vastaus sisältää uuden aktiviteetin avaimen ja URL-osoitteen, jossa sitä pelataan.

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

Jokainen tämän sivun esimerkki on täydellinen, suoraan ajettava pyyntö. Vaihda tilalle oma avaimesi ja sisältösi, niin se toimii sellaisenaan.

Todennus

Otsikkokenttiä tai bearer-tokenia ei tarvita. Molemmat tunnistetiedot kulkevat jokaisen pyynnön JSON-rungossa, ja avain hyväksytään vain sille tilille, johon kyseinen sähköposti kuuluu.

KenttäTyyppiMitä se tekee
account_api_key
pakollinen
string
stringTilisi API-avain. Se annetaan rungossa, ei otsikkokentässä.
email
pakollinen
string
stringOsoite, jolla Puzzel.org-tilisi kirjautuu sisään. Avain on voimassa vain yhdessä sen kanssa.

Avaimesi löytyy hallintapaneelisi tili-osiosta Näytä-painikkeen takaa.

Kirjaudu sisään

API-avaimia jaetaan tilauksen alkaessa, joten ilmaisella tilillä ei vielä ole sellaista.

Katso paketit

Käsittele avainta kuin salasanaa. Se luo ja korvaa aktiviteetteja tililläsi, joten pidä se palvelinpuolella ja poissa kaikesta, mitä selain voi lukea.

Pyynnön runko

Jokainen päätepiste ottaa vastaan samat viisi kenttää. Niiden alla oleva sisältökenttä vaihtelee: useimmat ottavat vastaan taulukollisen items-kohteita, muutamat yhden lauseen tai yhden kuvan, ja sudoku ei ota vastaan mitään.

KenttäTyyppiMitä se tekee
account_api_key
pakollinen
string
stringTilisi API-avain. Se annetaan rungossa, ei otsikkokentässä.
email
pakollinen
string
stringOsoite, jolla Puzzel.org-tilisi kirjautuu sisään. Avain on voimassa vain yhdessä sen kanssa.
title
valinnainen
string
stringNimi, jonka aktiviteetti saa hallintapaneelissasi. Jätä se pois, niin päätepiste käyttää omaa oletusnimeään.
language
valinnainen
string
stringMäärittää vain kielialueen palautettavassa URL-osoitteessa — se ei käännä mitään lähettämästäsi. Sanasokkelo lukee sen myös vaihtaakseen täytekirjaimensa arabiaksi, kun arvo on "ar".
Oletus: "en"
activity_key
valinnainen
string
stringJätä pois, jos haluat luoda uuden aktiviteetin. Anna jo omistamasi aktiviteetin avain, niin kyseinen aktiviteetti rakennetaan sen sijaan uudelleen.

settings on objekti, joka sisältää päätepistekohtaiset asetukset. Mitkä niistä kukin päätepiste lukee, on lueteltu sen kohdalla alla; kaikki muu, mitä sinne laitat, jätetään huomiotta.

Mitä vastauksena tulee

Onnistunut kutsu vastaa koodilla 200 ja palauttaa uuden aktiviteetin avaimen sekä URL-osoitteen, jossa sitä pelataan. Kaikki muu vastaa siten, että success on false, ja mukana on yksi virhemerkkijono.

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

Saamasi url on upotusnäkymä. Vaihda embed sanaan play, niin se avautuu koko sivun näkymässä, tai sanaan build, niin se avautuu editorissa — p=-parametrin jälkeinen avain pysyy samana.

Luominen vs. päivittäminen

Lähetä activity_key, niin sen takana oleva aktiviteetti rakennetaan uudelleen paikallaan: sen sisältö korvataan, sen nimi ja versioleima päivitetään, ja itse avain pysyy samana — joten jo jakamasi linkit ja upotukset toimivat edelleen. Tulokset, kansiosijoitus ja jokainen asetus, jota päätepiste ei itse kirjoita, jätetään ennalleen.

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 otetaan käyttöön joka päivityksessä, myös sen oletusarvo — jätä se pois, niin aktiviteetti nimetään uudelleen kyseisen päätepisteen oletusnimeksi.
  • Asetuslohkot, joita päätepiste itse kirjoittaa, kirjoitetaan kokonaan uudelleen, joten päivitys palauttaa myös ne lähettämiisi arvoihin tai päätepisteen oletusarvoihin.
  • Voit päivittää vain aktiviteetteja, jotka oma tilisi omistaa. Toisen tilin avain vastaa koodilla 403.
  • Päivitys maksaa saman verran kuin luominen: yhden kutsun tämän päivän kiintiöstä.

Kutsurajoitus

10
10 aktiviteettia tiliä kohden päivässä

Jokainen onnistunut kutsu lasketaan mukaan, sekä luonnit että päivitykset. Jos raja ylittyy, seuraava pyyntö vastaa koodilla 429, kunnes laskuri nollataan.

Laskuri nollataan kerran päivässä ajastetulla tehtävällä, ei liukuvalla 24 tunnin ikkunalla.

Virheet

Virheet saapuvat aina JSON-muodossa samoilla kahdella kentällä, ei koskaan HTML-sivuna. Virhemerkkijono on kirjoitettu ihmisen luettavaksi — se nimeää kentän tai rajan, joka ei täyttynyt.

TilaMitä se tarkoittaa
400
Bad Request
Jokin rungossa puuttuu, on virheellinen tai ylittää sallitun alueen. Viesti nimeää kentän.
401
Unauthorized
Sähköposti on tuntematon, tai avain ei kuulu kyseiselle tilille.
403
Forbidden
Lähettämäsi activity_key kuuluu toiselle tilille.
429
Too Many Requests
Tämän päivän kiintiö on käytetty loppuun. Se nollautuu kerran päivässä.
500
Server Error
Generaattori ei pystynyt rakentamaan pulmapeliä lähettämästäsi sisällöstä — yleensä liian vähän sanoja tai sanoja, joita ei saada sovitettua yhteen.

Päätepisteet

Yksi polku per aktiviteettityyppi, kaikki POST-pyyntöjä, kaikki saman perus-URL:n alla. Jokaisen kohdalla on lueteltu tarvittava sisältö, luettavat asetukset ja pyyntö, jonka voit ajaa.

Sanat ja kirjaimet

Sanaristikko

Lomittaa vastauksesi ruudukkoon ja numeroi vihjeet puolestasi.

#
POST /api/public/v1/crossword 2–80 items-kohdassa
Sisältö

Taulukko sanoja. Jokainen kohta yhdistää vastauksen siihen viittaavaan vihjeeseen.

Käyttää oletuksena nimeä “Crossword API”

Hyvä tietää
  • Alle kaksi merkkiä pitkät vastaukset poistetaan ennen ruudukon rakentamista, ja vähintään kahden on säilyttävä sen jälkeen.
  • Vastaukset muutetaan isoiksi kirjaimiksi, ja generaattori saa kaksikymmentä yritystä niiden sovittamiseen. Jos se ei saa sijoitettua yhtäkään sanaa, kutsu vastaa koodilla 500.
Luettavat asetukset
KenttäTyyppiMitä se tekee
hidden_solution
valinnainen asetuksissa
string
stringValinnainen bonussana. Sen kirjaimet merkitään valmiin ruudukon ruutuihin, ja pelaajat keräävät ne, kun sanaristikko on ratkaistu, joten jokaisen sen kirjaimen on löydyttävä vastauksista.
Esimerkkipyyntö
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": "fi",
  "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"
    }
  ]
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}

Sanasokkelo

Piilottaa sanasi kirjainruudukkoon valitsemiisi suuntiin ja muotoon.

#
POST /api/public/v1/wordseeker 2–40 items-kohdassa
Sisältö

Taulukko sanoja. Vihjeteksti muodostaa sanapankin, jonka pohjalta pelaajat työskentelevät.

Käyttää oletuksena nimeä “Wordseeker API”

Hyvä tietää
  • Alle kaksi merkkiä pitkät vastaukset poistetaan, ja jokainen vastaus muutetaan isoiksi kirjaimiksi ennen ruudukkoon lisäämistä.
  • Ruudukko täytetään latinalaisilla kirjaimilla, ellei language ole "ar", jolloin täyte vaihtuu arabiaksi.
Luettavat asetukset
KenttäTyyppiMitä se tekee
hidden_solution
valinnainen asetuksissa
string
stringJäljelle jäävät kirjaimet muodostavat tämän. Sen asettaminen kertoo generaattorille myös, että se sovittaa ratkaisun ensin sen sijaan, että se mahduttaisi mahdollisimman monta sanaa.
directions
valinnainen asetuksissa
string[]
string[]Mihin suuntiin sana saa kulkea. Jätä pois, niin sanat kulkevat vain itään, kaakkoon ja etelään.
Yksi seuraavista westeastnorthsouthnorthwestnortheastsouthwestsoutheast
Oletus: ["east", "southeast", "south"]
template
valinnainen asetuksissa
string
stringLeikkaa ruudukon muotoon sen sijaan, että se jätettäisiin neliöksi.
Yksi seuraavista squarecirclecrossdiamondpyramidsmileystarcross_plus
Esimerkkipyyntö
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": "fi",
  "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"
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordseeker/embed?p=-Nq8sample_activity_key",
  "message": "Wordseeker created successfully"
}

Akrostikon

Pinoaa vastauksesi niin, että yksi sarake muodostaa piilotetun sanan.

#
POST /api/public/v1/acrostic 1–40 items-kohdassa
Sisältö

Taulukko sanoja. Yhdessä niiden on sisällettävä piilotetun sanan jokainen kirjain.

Käyttää oletuksena nimeä “Acrostic API”

Hyvä tietää
  • Jos vastaukset eivät riitä tuottamaan ratkaisun tarvitsemia kirjaimia, kutsu vastaa koodilla 500 sen sijaan, että se tallentaisi puolivalmiin ruudukon.
  • Generaattori järjestää vastauksesi uudelleen, jotta sarake toimii, joten lähettämäsi järjestys ei ole se, jonka pelaajat näkevät.
Luettavat asetukset
KenttäTyyppiMitä se tekee
hidden_solution
pakollinen asetuksissa
string
stringSana, jonka korostettu sarake muodostaa. Tämä päätepiste ei toimi ilman sitä.
Esimerkkipyyntö
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": "fi",
  "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"
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/acrostic/embed?p=-Nq8sample_activity_key",
  "message": "Acrostic created successfully"
}

Anagrammi

api_e_word_scramble

#
POST /api/public/v1/word-scramble 1–40 items-kohdassa
Sisältö

api_c_word_scramble

Käyttää oletuksena nimeä “Word Scramble API”

Hyvä tietää
  • API:n kautta tehdyissä aktiviteeteissa järjestyksen sekoitus -asetus on aina päällä, joten lähettämäsi järjestys ei ole se, jonka pelaajat saavat.
Luettavat asetukset
KenttäTyyppiMitä se tekee
hidden_solution
valinnainen asetuksissa
string
stringValinnainen bonussana, jonka pelaajat syöttävät, kun muu on ratkaistu.
Esimerkkipyyntö
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": "fi",
  "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"
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/word-scramble/embed?p=-Nq8sample_activity_key",
  "message": "Word Scramble created successfully"
}

Hirsipuu

Muuttaa sanasi tai ilmauksesi kirjaimenarvauskierroksiksi.

#
POST /api/public/v1/hangman 1–50 items-kohdassa
Sisältö

Taulukko sanoja tai lyhyitä ilmauksia. Vihje on se, minkä pelaajat näkevät.

Käyttää oletuksena nimeä “Hangman API”

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

Wordle

Tekee jokaisesta lähettämästäsi sanasta sananarvauspelin.

#
POST /api/public/v1/wordle 1–50 items-kohdassa
Sisältö

Taulukko sanoja. Pelaajat saavat yhden kierroksen per sana.

Käyttää oletuksena nimeä “Wordle API”

Hyvä tietää
  • Tehty niin, että arvausten tarkistus oikeiksi sanoiksi -asetus on päällä. Kytke se pois editorissa, jos sanasi ovat nimiä tai keksittyjä.
Esimerkkipyyntö
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": "fi",
  "items": [
    {
      "answer": "MELON",
      "description": "Sweet and green",
      "type": "text"
    },
    {
      "answer": "PEACH",
      "description": "Fuzzy and orange",
      "type": "text"
    }
  ]
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordle/embed?p=-Nq8sample_activity_key",
  "message": "Wordle created successfully"
}

Näppäilyharjoitus

api_e_typing_practice

#
POST /api/public/v1/typing-practice 1–50 items-kohdassa
Sisältö

api_c_typing_practice

Käyttää oletuksena nimeä “Typing Practice API”

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

Onnenpyörä

api_e_wheel_of_fortune

#
POST /api/public/v1/wheel-of-fortune 1–50 items-kohdassa
Sisältö

api_c_wheel_of_fortune

Käyttää oletuksena nimeä “Wheel of Fortune API”

Hyvä tietää
  • Tehty asetuksella “näytä tulos vain pyörässä”, joten tulos luetaan pyörästä sen sijaan, että se ilmoitettaisiin sen vierellä.
Esimerkkipyyntö
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": "fi",
  "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"
    }
  ]
}'
Onnistui
{
  "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"
}

Kuvaristikko

Kuvaristikko: vihjeet ovat ruudukon sisällä, ja jokaisesta vihjeestä osoittaa nuoli sen vastaukseen.

#
POST /api/public/v1/arrowword 2–80 items-kohdassa
Sisältö

Taulukko sanoja. Jokainen kohta yhdistää vastauksen vihjeeseen, joka on niin lyhyt, että se mahtuu yhteen ruutuun.

Käyttää oletuksena nimeä “Arrowword API”

Luettavat asetukset
KenttäTyyppiMitä se tekee
hidden_solution
valinnainen asetuksissa
string
stringValinnainen bonussana. Sen kirjaimet merkitään valmiin ruudukon ruutuihin, joten jokaisen sen kirjaimen on löydyttävä vastauksista.
Esimerkkipyyntö
POST arrowword
curl -X POST https://puzzel.org/api/public/v1/arrowword \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Arrowword",
  "language": "fi",
  "items": [
    {
      "answer": "Stockholm",
      "description": "Capital of Sweden",
      "type": "text"
    },
    {
      "answer": "Oslo",
      "description": "Capital of Norway",
      "type": "text"
    },
    {
      "answer": "Helsinki",
      "description": "Capital of Finland",
      "type": "text"
    }
  ],
  "settings": {
    "hidden_solution": "North"
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/arrowword/embed?p=-Nq8sample_activity_key",
  "message": "Arrowword created successfully"
}

Strands

Ruudukko, jossa jokainen kirjain kuuluu teemasanaan, ja yksi teeman nimeävä sana kulkee reunasta reunaan.

#
POST /api/public/v1/strands 2–24 items-kohdassa
Sisältö

Taulukko teemasanoja. Yhdessä spangramin kanssa niiden kirjainten on täytettävä ruudukko täsmälleen.

Käyttää oletuksena nimeä “Strands API”

Hyvä tietää
  • Kaikkien sanojen ja spangramin kirjainten yhteismäärän on oltava täsmälleen 30, 35, 36, 40, 42, 45, 48, 49, 50, 54, 56, 60, 63, 64, 70, 72 tai 80. Mikä tahansa muu määrä vastaa koodilla 400 ja kertoo, montako kirjainta pitää lisätä tai poistaa.
Luettavat asetukset
KenttäTyyppiMitä se tekee
theme
valinnainen asetuksissa
string
stringRuudukon yläpuolella näytettävä arvoitus. Jos se jätetään pois, pelaajat näkevät otsikon.
spangram
valinnainen asetuksissa
string
stringSana tai ilmaus, joka nimeää teeman ja ylittää ruudukon reunasta toiseen.
Esimerkkipyyntö
POST strands
curl -X POST https://puzzel.org/api/public/v1/strands \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Strands",
  "language": "fi",
  "items": [
    {
      "answer": "whisk",
      "type": "text"
    },
    {
      "answer": "ladle",
      "type": "text"
    },
    {
      "answer": "spatula",
      "type": "text"
    },
    {
      "answer": "grater",
      "type": "text"
    },
    {
      "answer": "peeler",
      "type": "text"
    },
    {
      "answer": "skillet",
      "type": "text"
    }
  ],
  "settings": {
    "theme": "What the cook reaches for",
    "spangram": "Kitchen tools"
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/strands/embed?p=-Nq8sample_activity_key",
  "message": "Strands created successfully"
}

Nimeämistehtävä

api_e_name_them_all

#
POST /api/public/v1/name-them-all 1–250 items-kohdassa
Sisältö

api_c_name_them_all

Käyttää oletuksena nimeä “Name Them All API”

Hyvä tietää
  • Kohta on objekti, jossa on answer, ja valinnaisesti aliases (muut hyväksyttävät kirjoitusasut), description (vinkki) ja group. Isoja kirjaimia, aksentteja ja välimerkkejä ei huomioida nimeä tarkistettaessa.
Luettavat asetukset
KenttäTyyppiMitä se tekee
list_match_mode
valinnainen asetuksissa
string
stringLasketaanko nimi heti, kun se on kirjoitettu, vai vasta Enterillä.
Yksi seuraavista while_typingon_enter
Oletus: "while_typing"
list_slot_hint
valinnainen asetuksissa
string
stringMitä tyhjä paikka paljastaa: ei mitään, nimen pituuden, sen ensimmäisen kirjaimen tai kirjoittamasi vinkin.
Yksi seuraavista nonelengthfirst_letterhint
Oletus: "none"
list_arrange
valinnainen asetuksissa
string
stringYksi sarake per ryhmä tai yksi luettelo.
Yksi seuraavista groupsone_list
Oletus: "groups"
list_allow_give_up
valinnainen asetuksissa
boolean
booleanNäyttää luovutuspainikkeen, joka päättää kierroksen ja paljastaa, mitä jäi puuttumaan.
Oletus: false
Esimerkkipyyntö
POST name-them-all
curl -X POST https://puzzel.org/api/public/v1/name-them-all \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Name Them All",
  "language": "fi",
  "items": [
    {
      "answer": "United Kingdom",
      "aliases": [
        "UK",
        "Great Britain",
        "Britain"
      ],
      "group": "Islands"
    },
    {
      "answer": "Ireland",
      "aliases": [
        "Éire"
      ],
      "group": "Islands"
    },
    {
      "answer": "Côte d'Azur's neighbour Monaco",
      "aliases": [
        "Monaco"
      ],
      "description": "The smallest one",
      "group": "Mainland"
    }
  ],
  "settings": {
    "list_slot_hint": "first_letter",
    "list_match_mode": "on_enter",
    "list_allow_give_up": true
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/name-them-all/embed?p=-Nq8sample_activity_key",
  "message": "Name them all list created successfully"
}
Kortit ja parit

Muistipeli

Pöytään käännettyjä kortteja, jotka käännetään ja yhdistetään pareiksi.

#
POST /api/public/v1/memory 2–30 items-kohdassa
Sisältö

Taulukko pareja. Jokainen pari sisältää kaksi yhteenkuuluvaa korttia.

Käyttää oletuksena nimeä “Memory Game API”

Hyvä tietää
  • Kortti on objekti, jolla on type ja value. Käytä arvoa "text" sanoille, tai "image", "audio", "youtube" tai "link" siten, että value sisältää URL-osoitteen, ja lisää alt kuvausta varten.
Esimerkkipyyntö
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": "fi",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/memory/embed?p=-Nq8sample_activity_key",
  "message": "Memory game created successfully"
}

Yhdistelypeli

api_e_matching_pairs

#
POST /api/public/v1/matching-pairs 2–30 items-kohdassa
Sisältö

api_c_matching_pairs

Käyttää oletuksena nimeä “Matching Game API”

Hyvä tietää
  • Kortti on objekti, jolla on type ja value. Käytä arvoa "text" sanoille, tai "image", "audio", "youtube" tai "link" siten, että value sisältää URL-osoitteen, ja lisää alt kuvausta varten.
Esimerkkipyyntö
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": "fi",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/matching-pairs/embed?p=-Nq8sample_activity_key",
  "message": "Matching pairs game created successfully"
}

Muistikortit

api_e_flash_cards

#
POST /api/public/v1/flash-cards 1–150 items-kohdassa
Sisältö

api_c_flash_cards

Käyttää oletuksena nimeä “Flash Cards API”

Hyvä tietää
  • Päätepiste tallentaa täsmälleen niin monta korttia kuin lähetät, joten lähetä täsmälleen kaksi per kohta — ensin etupuoli, sitten takapuoli.
  • Kortti on objekti, jolla on type ja value. Käytä arvoa "text" sanoille, tai "image", "audio", "youtube" tai "link" siten, että value sisältää URL-osoitteen, ja lisää alt kuvausta varten.
Esimerkkipyyntö
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": "fi",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/flash-cards/embed?p=-Nq8sample_activity_key",
  "message": "Flash Cards created successfully"
}

Luokittelutehtävä

Kortteja lajiteltavaksi niille kuuluvaan kategoriaan.

#
POST /api/public/v1/categorize Vähintään 2 items-kohdassa · enintään 60 korttia yhteensä
Sisältö

Taulukko kategorioita, joista jokaisella on nimi ja siihen kuuluvat kortit.

Käyttää oletuksena nimeä “Categorize Game API”

Hyvä tietää
  • Ilman nimeä lähetetty kategoria tallennetaan nimellä “Untitled Category”, joten lähetä nimi aina.
  • Kortti on objekti, jolla on type ja value. Käytä arvoa "text" sanoille, tai "image", "audio", "youtube" tai "link" siten, että value sisältää URL-osoitteen, ja lisää alt kuvausta varten.
Esimerkkipyyntö
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": "fi",
  "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"
        }
      ]
    }
  ]
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/categorize/embed?p=-Nq8sample_activity_key",
  "message": "Categorize game created successfully"
}

Järjestystehtävä

Järjestys, jonka pelaajat palauttavat oikeaksi.

#
POST /api/public/v1/reorder Vähintään 1 items-kohdassa · enintään 60 korttia yhteensä
Sisältö

Taulukko järjestyksiä. Jokainen sisältää korttinsa oikeassa järjestyksessä.

Käyttää oletuksena nimeä “Reorder Game API”

Hyvä tietää
  • Lähettämäsi järjestys tallennetaan oikeana järjestyksenä — numero yksi ensin.
  • Kortti on objekti, jolla on type ja value. Käytä arvoa "text" sanoille, tai "image", "audio", "youtube" tai "link" siten, että value sisältää URL-osoitteen, ja lisää alt kuvausta varten.
Esimerkkipyyntö
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": "fi",
  "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"
        }
      ]
    }
  ]
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/reorder/embed?p=-Nq8sample_activity_key",
  "message": "Reorder game created successfully"
}

Bingo

Luokkabingo, jota pelinjohtaja nostaa livenä: jokainen pelaaja saa kortin, joka arvotaan kohteistasi.

#
POST /api/public/v1/bingo Ei ota vastaan items-kohteita
Sisältö

Taulukko kohteita, joista kortit arvotaan. Lähetä selvästi enemmän kuin yhdelle kortille mahtuu ruutuja, jotta kortit eroavat toisistaan.

Käyttää oletuksena nimeä “Bingo API”

Hyvä tietää
  • Kohde on objekti, jossa on value, ja valinnaisesti type ("text", "image" tai "audio", jolloin value sisältää URL-osoitteen), description (johtolanka, jonka pelinjohtaja lukee ääneen clues-tilassa) ja alt.
Luettavat asetukset
KenttäTyyppiMitä se tekee
mode
valinnainen asetuksissa
string
stringMikä täyttää ruudut: omat kohteesi, omat kohteesi johtolangan mukaan nostettuina tai pelkät numerot (jotka eivät tarvitse items-kohteita).
Yksi seuraavista itemscluesnumbers
Oletus: "items"
rows
valinnainen asetuksissa
number
numberRivejä kussakin kortissa, 2–5.
Oletus: 3
columns
valinnainen asetuksissa
number
numberSarakkeita kussakin kortissa, 2–5.
Oletus: 3
highest_number
valinnainen asetuksissa
number
numberNumerotilassa kortit täytetään luvuista 1 aina tähän lukuun asti, enintään 100. Pakettiominaisuus: ilman pakettia se pysyy arvossa 50.
Oletus: 50
Esimerkkipyyntö
POST bingo
curl -X POST https://puzzel.org/api/public/v1/bingo \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Bingo",
  "language": "fi",
  "items": [
    {
      "type": "text",
      "value": "Paris",
      "description": "The capital of France"
    },
    {
      "type": "text",
      "value": "Berlin",
      "description": "The capital of Germany"
    },
    {
      "type": "text",
      "value": "Madrid",
      "description": "The capital of Spain"
    }
  ],
  "settings": {
    "mode": "clues",
    "rows": 3,
    "columns": 4,
    "highest_number": 75
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/bingo/embed?p=-Nq8sample_activity_key",
  "message": "Bingo created successfully"
}

Minulla on, kenellä on

api_e_i_have_who_has

#
POST /api/public/v1/i-have-who-has 3–40 items-kohdassa
Sisältö

api_c_i_have_who_has

Käyttää oletuksena nimeä “I Have, Who Has API”

Hyvä tietää
  • Mikään kysymys tai vastaus ei saa esiintyä kahdesti: vastauksen pitelevä oppilas ei voisi tietää, mihin kysymykseen se kuuluu.
Luettavat asetukset
KenttäTyyppiMitä se tekee
chain_shape
valinnainen asetuksissa
string
stringSilmukka sulkeutuu itseensä, joten mikä tahansa kortti voi aloittaa; jana alkaa Alku-kortista ja päättyy Loppu-korttiin.
Yksi seuraavista loopline
Oletus: "loop"
Esimerkkipyyntö
POST i-have-who-has
curl -X POST https://puzzel.org/api/public/v1/i-have-who-has \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "I Have, Who Has",
  "language": "fi",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "3 × 4"
        },
        {
          "type": "text",
          "value": "12"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "6 × 7"
        },
        {
          "type": "text",
          "value": "42"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "9 × 9"
        },
        {
          "type": "text",
          "value": "81"
        }
      ]
    }
  ],
  "settings": {
    "chain_shape": "line"
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/i-have-who-has/embed?p=-Nq8sample_activity_key",
  "message": "I have, who has created successfully"
}

Numerolukko

Numerolukko: korttiruudukko, jonka osa korteista muodostaa yhdessä koodin.

#
POST /api/public/v1/keypad 1–30 items-kohdassa
Sisältö

Taulukko kortteja. Koodiin kuuluvat kortit kantavat tiedon paikastaan siinä.

Käyttää oletuksena nimeä “Keypad API”

Hyvä tietää
  • Kortti on objekti, jossa on value, ja valinnaisesti type ("text", "image" tai "audio", jolloin value sisältää URL-osoitteen), alt ja code_position: sen paikka koodissa, 1 ensimmäinen. Kortti voi olla koodissa vain kerran, ja vähintään yhden kortin on oltava.
Luettavat asetukset
KenttäTyyppiMitä se tekee
instructions
valinnainen asetuksissa
string
stringKysymys tai arvoitus, johon koodi vastaa, näytetään korttien kanssa.
force_solution_in_correct_order
valinnainen asetuksissa
boolean
booleanKortit on painettava järjestyksessä. Pois päältä oikeat kortit avaavat lukon missä järjestyksessä tahansa.
Oletus: false
randomize_order
valinnainen asetuksissa
boolean
booleanJokainen pelaaja saa kortit sekoitetussa järjestyksessä.
Oletus: true
Esimerkkipyyntö
POST keypad
curl -X POST https://puzzel.org/api/public/v1/keypad \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Keypad",
  "language": "fi",
  "items": [
    {
      "type": "text",
      "value": "4"
    },
    {
      "type": "text",
      "value": "7",
      "code_position": 2
    },
    {
      "type": "text",
      "value": "9"
    },
    {
      "type": "text",
      "value": "2",
      "code_position": 1
    }
  ],
  "settings": {
    "instructions": "Press the prime numbers, smallest first.",
    "force_solution_in_correct_order": true,
    "randomize_order": false
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/keypad/embed?p=-Nq8sample_activity_key",
  "message": "Keypad created successfully"
}

Kvartettipeli

Korttipeli: pelaajat pyytävät toisiltaan kortteja kerätäkseen neljän kortin kvartetteja.

#
POST /api/public/v1/quartets 2–16 items-kohdassa
Sisältö

Taulukko kvartetteja. Kullakin on nimi ja täsmälleen neljä korttia.

Käyttää oletuksena nimeä “Quartets API”

Hyvä tietää
  • Kortti on nimi tai objekti, jossa on name ja description (kortissa näkyvä tieto). Mikään kortin nimi ei saa esiintyä pelissä kahdesti: pelaajat pyytävät kortteja nimen perusteella.
Luettavat asetukset
KenttäTyyppiMitä se tekee
type
valinnainen asetuksissa
string
stringTavallinen peli tai oppimispeli, jossa jokaisessa kortissa näkyy tieto. Jos se jätetään pois, se on learn, kun jossakin kortissa on description.
Yksi seuraavista normallearn
Esimerkkipyyntö
POST quartets
curl -X POST https://puzzel.org/api/public/v1/quartets \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Quartets",
  "language": "fi",
  "items": [
    {
      "name": "Birds",
      "cards": [
        {
          "name": "Owl",
          "description": "Hunts at night and turns its head three quarters of the way round."
        },
        {
          "name": "Robin",
          "description": "Sings through the winter."
        },
        {
          "name": "Woodpecker",
          "description": "Drums on trees up to twenty times a second."
        },
        {
          "name": "Jay",
          "description": "Buries thousands of acorns each autumn."
        }
      ]
    },
    {
      "name": "Mammals",
      "cards": [
        {
          "name": "Hedgehog",
          "description": "Carries about five thousand spines."
        },
        {
          "name": "Fox",
          "description": "Hears a mouse under the snow."
        },
        {
          "name": "Badger",
          "description": "Lives in a sett with its clan."
        },
        {
          "name": "Otter",
          "description": "Sleeps holding hands so it does not drift off."
        }
      ]
    }
  ],
  "settings": {
    "type": "learn"
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/quartets/embed?p=-Nq8sample_activity_key",
  "message": "Quartets game created successfully"
}
Kysymykset ja vastaukset

Tietovisa

Monivalinta- ja avoimia kysymyksiä, joista pisteet lasketaan pelin edetessä.

#
POST /api/public/v1/quiz 1–100 items-kohdassa
Sisältö

Taulukko kysymyksiä. Monivalintakysymyksillä on omat vastausvaihtoehtonsa; avoimilla kysymyksillä on hyväksymäsi vastaus.

Käyttää oletuksena nimeä “Quiz API”

Hyvä tietää
  • question_type on "multiple_choice", jolloin oikea vaihtoehto saa arvon isCorrect true; "true_false", joka on sama mutta täsmälleen kahdella vaihtoehdolla, tosi ensin ja epätosi toisena; tai "open_answer", joka käyttää sen sijaan kenttää correct_answer. Jos kenttä jätetään pois, se käsitellään monivalintana.
  • Tietovisan päätepiste välittää settings-kentän suoraan aktiviteetin asetuslohkoiksi, joten se ei ole paikka irrallisille valinnoille — säädä tietovisaa jälkikäteen editorissa.
Esimerkkipyyntö
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": "fi",
  "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."
    }
  ]
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/quiz/embed?p=-Nq8sample_activity_key",
  "message": "Quiz created successfully"
}

Lautapeli

api_e_board_game

#
POST /api/public/v1/board-game 1–100 items-kohdassa
Sisältö

api_c_board_game

Käyttää oletuksena nimeä “Board Game API”

Hyvä tietää
  • question_type on "multiple_choice", jolloin oikea vaihtoehto saa arvon isCorrect true; "true_false", joka on sama mutta täsmälleen kahdella vaihtoehdolla, tosi ensin ja epätosi toisena; tai "open_answer", joka käyttää sen sijaan kenttää correct_answer. Jos kenttä jätetään pois, se käsitellään monivalintana.
Luettavat asetukset
KenttäTyyppiMitä se tekee
number_of_tiles
valinnainen asetuksissa
number
numberKuinka monta ruutua laudalla on. Väliltä 10–75.
Oletus: 30
game_mode
valinnainen asetuksissa
string
stringKilpailevatko pelaajat maaliin vai keräävätkö he esineitä matkan varrella.
Yksi seuraavista race_to_finishcollect_items
Oletus: "race_to_finish"
Esimerkkipyyntö
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": "fi",
  "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"
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/board-game/embed?p=-Nq8sample_activity_key",
  "message": "Board Game created successfully"
}

Sokkelo

Sokkelo, jossa kuljetaan: jokainen kysymys on sali ja sen vastaukset ovat ovia.

#
POST /api/public/v1/maze Vähintään 1 items-kohdassa
Sisältö

Taulukko monivalinta- tai tosi/epätosi-kysymyksiä, täsmälleen samassa muodossa kuin tietovisan päätepiste ne ottaa vastaan. Avoimet kysymykset hylätään: oveen tarvitaan siihen kirjoitettu vastaus.

Käyttää oletuksena nimeä “Maze API”

Luettavat asetukset
KenttäTyyppiMitä se tekee
maze_width
valinnainen asetuksissa
string
stringSalien sijoittelu: yksi sarake, neliö tai leveämpi.
Yksi seuraavista narrownormalwide
Oletus: "normal"
maze_corridors
valinnainen asetuksissa
string
stringKuinka paljon sokkeloa on kahden kysymyksen välissä.
Yksi seuraavista shortnormallong
Oletus: "normal"
maze_fog
valinnainen asetuksissa
string
stringNäytä koko sokkelo tai vain se, minkä vieressä pelaaja on ollut.
Yksi seuraavista offnear
Oletus: "off"
maze_wrong_door_pause
valinnainen asetuksissa
string
stringKuinka kauan ovet pysyvät kiinni väärän oven jälkeen.
Yksi seuraavista noneshortlong
Oletus: "short"
maze_walk_there
valinnainen asetuksissa
boolean
booleanTarjoaa painikkeen, joka kävelyttää pelinappulan seuraavaan saliin.
Oletus: false
maze_seed
valinnainen asetuksissa
string
stringSiemen, josta sokkelo luodaan. Sama siemen ja samat kysymykset tuottavat saman sokkelon; jos se jätetään pois, arvotaan uusi.
Esimerkkipyyntö
POST maze
curl -X POST https://puzzel.org/api/public/v1/maze \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Maze",
  "language": "fi",
  "items": [
    {
      "question_type": "multiple_choice",
      "description": "What is it called when water vapour turns back into liquid droplets?",
      "answers": [
        {
          "type": "text",
          "description": "Evaporation",
          "isCorrect": false
        },
        {
          "type": "text",
          "description": "Condensation",
          "isCorrect": true
        },
        {
          "type": "text",
          "description": "Transpiration",
          "isCorrect": false
        }
      ],
      "explanation": "Cooling vapour condenses into the droplets that make clouds."
    },
    {
      "question_type": "true_false",
      "description": "Most of the water on Earth is fresh water.",
      "answers": [
        {
          "type": "text",
          "description": "True",
          "isCorrect": false
        },
        {
          "type": "text",
          "description": "False",
          "isCorrect": true
        }
      ]
    }
  ],
  "settings": {
    "maze_width": "wide",
    "maze_corridors": "short",
    "maze_seed": "water123",
    "maze_fog": "near"
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/maze/embed?p=-Nq8sample_activity_key",
  "message": "Maze created successfully"
}

Jeopardy

Tietokilpailuohjelman taulu: kategoriat ylhäällä ja niiden alla vihjeet, joiden arvo kasvaa, mitä alemmas mennään.

#
POST /api/public/v1/jeopardy Vähintään 2 items-kohdassa
Sisältö

Taulukko kategorioita vasemmalta oikealle. Kullakin on nimi ja sen vihjeet ylimmältä riviltä alaspäin.

Käyttää oletuksena nimeä “Jeopardy API”

Hyvä tietää
  • Vihje on kysymys sellaisena kuin tietovisan päätepiste sen ottaa vastaan, open_answer, ellei toisin sanota, ja siinä on correct_answer sekä valinnaisesti aliases. Siinä voi olla myös value (sen oma arvo) ja daily_double. null jättää ruudun tyhjäksi.
Luettavat asetukset
KenttäTyyppiMitä se tekee
jeopardy_buzzer_mode
valinnainen asetuksissa
string
stringKuka pelaa miten: pelinjohtaja ohjaa konsolista, pelaajat painavat summeria puhelimillaan tai jokainen pelaaja käy taulun läpi yksin.
Yksi seuraavista hostphonessolo
Oletus: "host"
jeopardy_contestants
valinnainen asetuksissa
string
stringPuhuuko konsoli joukkueista vai pelaajista.
Yksi seuraavista teamsplayers
Oletus: "teams"
jeopardy_value_step
valinnainen asetuksissa
number
numberMitä rivi on arvoltaan: vihjeen arvo on tämä luku kerrottuna sen rivin numerolla. 50–500, 50 välein.
Oletus: 100
jeopardy_answer_time
valinnainen asetuksissa
number
numberSekunteja vastaamiseen, kun vihje on avattu, enintään 300. 0 tarkoittaa, ettei kelloa ole.
Oletus: 20
jeopardy_wrong_answer_costs
valinnainen asetuksissa
boolean
booleanVäärä vastaus vähentää pistemäärästä vihjeen arvon.
Oletus: false
jeopardy_reveal_on_timeout
valinnainen asetuksissa
boolean
booleanTaulu näyttää vastauksen itse, kun kello loppuu.
Oletus: false
jeopardy_require_question_form
valinnainen asetuksissa
boolean
booleanMuistuttaa pelaajia vastaamaan kysymyksen muodossa.
Oletus: false
Esimerkkipyyntö
POST jeopardy
curl -X POST https://puzzel.org/api/public/v1/jeopardy \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Jeopardy",
  "language": "fi",
  "items": [
    {
      "name": "Planets",
      "questions": [
        {
          "question_type": "open_answer",
          "description": "The planet closest to the Sun.",
          "correct_answer": "Mercury"
        },
        {
          "question_type": "open_answer",
          "description": "It is known as the red planet.",
          "correct_answer": "Mars",
          "explanation": "Iron oxide in its soil gives it the colour."
        },
        {
          "question_type": "multiple_choice",
          "description": "This planet has the most confirmed moons.",
          "answers": [
            {
              "description": "Jupiter",
              "isCorrect": false
            },
            {
              "description": "Saturn",
              "isCorrect": true
            },
            {
              "description": "Neptune",
              "isCorrect": false
            }
          ],
          "daily_double": true
        }
      ]
    },
    {
      "name": "Moons",
      "questions": [
        {
          "question_type": "open_answer",
          "description": "The only world besides Earth that people have walked on.",
          "correct_answer": "The Moon",
          "aliases": [
            "Luna"
          ]
        },
        null,
        {
          "question_type": "name_them_all",
          "description": "Name the four Galilean satellites.",
          "answers": [
            {
              "description": "Io"
            },
            {
              "description": "Europa"
            },
            {
              "description": "Ganymede",
              "aliases": [
                "Ganymedes"
              ]
            },
            {
              "description": "Callisto"
            }
          ],
          "required_count": 3,
          "value": 500
        }
      ]
    }
  ],
  "settings": {
    "jeopardy_buzzer_mode": "solo",
    "jeopardy_value_step": 200,
    "jeopardy_wrong_answer_costs": true
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/jeopardy/embed?p=-Nq8sample_activity_key",
  "message": "Jeopardy board created successfully"
}

Interaktiivinen video

api_e_interactive_video

#
POST /api/public/v1/interactive-video 1–50 items-kohdassa
Sisältö

api_c_interactive_video

Käyttää oletuksena nimeä “Interactive Video API”

Hyvä tietää
  • Ponnahdusikkuna on objekti, jossa on time (sekunteja tai "1:23"), kind ("question", ellei siinä lue "note", "think" tai "chapter") ja description. Kysymys on kysymys sellaisena kuin tietovisan päätepiste sen ottaa vastaan, ja siinä voi olla rewind_to: mistä kohdasta väärän vastauksen jälkeen toistetaan.
Luettavat asetukset
KenttäTyyppiMitä se tekee
video_url
pakollinen asetuksissa
string
stringVideo: YouTube-, Vimeo- tai Bunny Stream -sivu tai suora linkki mp4-, webm- tai mov-tiedostoon.
video_duration
valinnainen asetuksissa
number
numberVideon pituus sekunteina. Kun se annetaan, lopun jälkeen oleva ponnahdusikkuna hylätään.
Esimerkkipyyntö
POST interactive-video
curl -X POST https://puzzel.org/api/public/v1/interactive-video \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Interactive Video",
  "language": "fi",
  "items": [
    {
      "time": 5,
      "kind": "chapter",
      "description": "Evaporation"
    },
    {
      "time": 42.5,
      "kind": "question",
      "question_type": "multiple_choice",
      "description": "What turns liquid water into vapour?",
      "answers": [
        {
          "type": "text",
          "description": "Heat from the sun",
          "isCorrect": true
        },
        {
          "type": "text",
          "description": "Wind from the north",
          "isCorrect": false
        },
        {
          "type": "text",
          "description": "Salt in the sea",
          "isCorrect": false
        }
      ],
      "explanation": "The sun warms the surface and the water evaporates.",
      "rewind_to": 20
    }
  ],
  "settings": {
    "video_url": "https://www.youtube.com/watch?v=al-do-HGuIk",
    "video_duration": 180,
    "video_allow_skipping": true
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/interactive-video/embed?p=-Nq8sample_activity_key",
  "message": "Interactive video created successfully"
}
Lauseet ja luvut

Salakirjoitus

Muuttaa lauseen murrettavaksi koodiksi, yksi merkki kerrallaan.

#
POST /api/public/v1/cryptogram Ei ota vastaan items-kohteita
Sisältö

Yksi lause sentence-kentässä. Tämä päätepiste ei ota vastaan items-kohteita.

Käyttää oletuksena nimeä “Cryptogram API”

Hyvä tietää
  • Kaikki, mitä lähetät kohdassa items, jätetään huomiotta — pulmapeli rakennetaan pelkästä lauseesta.
Luettavat asetukset
KenttäTyyppiMitä se tekee
sentence
pakollinen
string
stringSalattava lause. Pelaajat purkavat sen merkki kerrallaan.
helpers
valinnainen asetuksissa
string
stringMitkä merkit annetaan ilmaiseksi avuksi alkuun: ei mitään, yleisimmät, vokaalit tai itse luettelemasi.
Yksi seuraavista nonemost_commonvowelscustom
Oletus: "none"
character_list
valinnainen asetuksissa
string
stringAakkosto, josta salakirjoitus rakennetaan. Jos jätetään tyhjäksi, salaus valitsee omansa.
extra_letters
valinnainen asetuksissa
string
stringMerkit, jotka annetaan, kun helpers on "custom". Jätetään huomiotta muissa aputiloissa.
hide_unused_characters
valinnainen asetuksissa
boolean
booleanJättää avaimen ulkopuolelle merkit, joita lause ei koskaan käytä.
Oletus: false
Esimerkkipyyntö
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": "fi",
  "sentence": "An apple a day keeps the doctor away",
  "settings": {
    "helpers": "vowels",
    "hide_unused_characters": false
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/cryptogram/embed?p=-Nq8sample_activity_key",
  "message": "Cryptogram created successfully"
}

Laskutehtävä

Piilottaa lauseen laskujen taakse — ratkaise lasku, paljasta kirjain.

#
POST /api/public/v1/calculation Ei ota vastaan items-kohteita
Sisältö

Yksi lause sentence-kentässä. Tämä päätepiste ei ota vastaan items-kohteita.

Käyttää oletuksena nimeä “Calculation Game API”

Hyvä tietää
  • Jos rajoitukset ovat liian tiukat lauseen koodaamiseen, kutsu vastaa koodilla 400 ja pyytää löysäämään niitä sen sijaan, että se tallentaisi keskeneräisen pulmapelin.
Luettavat asetukset
KenttäTyyppiMitä se tekee
sentence
pakollinen
string
stringLause, jonka pelaajat paljastavat ratkaisemalla laskut.
difficulty_level
valinnainen asetuksissa
number
numberSuurin sallittu vastaus, joka laskulla saa olla.
Yksi seuraavista 20501001000
Oletus: "100"
operators
valinnainen asetuksissa
string[]
string[]Mitkä laskutoimitukset voivat esiintyä. x on kertolasku, : on jakolasku.
Yksi seuraavista +-x:
Oletus: ["+", "-", "x", ":"]
max_operations
valinnainen asetuksissa
number
numberKuinka monta laskutoimitusta yksi lasku voi ketjuttaa yhteen.
Yksi seuraavista 123
Oletus: 1
number_difficulty
valinnainen asetuksissa
number
numberRajoittaa laskun yksittäisiä lukuja. Väliltä 5–1000.
Oletus: 100
Esimerkkipyyntö
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": "fi",
  "sentence": "Fruit salad for everyone",
  "settings": {
    "difficulty_level": "100",
    "operators": [
      "+",
      "-",
      "x",
      ":"
    ],
    "max_operations": 1,
    "number_difficulty": 100
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/calculation/embed?p=-Nq8sample_activity_key",
  "message": "Calculation game created successfully"
}

Sudoku

Luo ratkaistun ruudukon ja poistaa siitä sitten numeroita.

#
POST /api/public/v1/sudoku Ei ota vastaan items-kohteita
Sisältö

Ei mitään. Koko pulmapeli syntyy sen kahdesta asetuksesta.

Käyttää oletuksena nimeä “Sudoku API”

Hyvä tietää
  • Älä lähetä items-kohteita äläkä lausetta — size ja difficulty ovat koko syöte.
  • Editori tarjoaa vaikeustason vain kooille 2x3, 3x3 ja 3x4. API soveltaa sitä jokaiseen kokoon, mukaan lukien 2x2 ja 4x4.
Luettavat asetukset
KenttäTyyppiMitä se tekee
size
valinnainen asetuksissa
string
stringYhden lohkon koko, kirjoitettuna rivit kertaa sarakkeet — 3x3 antaa klassisen 9x9-ruudukon. Päätepiste vain tarkistaa, että se jäsentyy kahdeksi luvuksi, joten pysy editorin tarjoamissa koissa.
Yksi seuraavista 2x22x33x33x44x4
Oletus: "3x3"
difficulty_level
valinnainen asetuksissa
string
stringKuinka monta numeroa jätetään laudalle lähtökohdaksi.
Yksi seuraavista easynormalhard
Oletus: "normal"
Esimerkkipyyntö
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": "fi",
  "settings": {
    "size": "3x3",
    "difficulty_level": "normal"
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/sudoku/embed?p=-Nq8sample_activity_key",
  "message": "Sudoku created successfully"
}

Pudonnut lause

api_e_fallen_phrase

#
POST /api/public/v1/fallen-phrase Ei ota vastaan items-kohteita
Sisältö

api_c_fallen_phrase

Käyttää oletuksena nimeä “Fallen Phrase API”

Luettavat asetukset
KenttäTyyppiMitä se tekee
sentence
pakollinen
string
stringPiilotettava lause: sitaatti, sananlasku tai avainlause. Enintään 120 kirjainta ja numeroa.
columns
valinnainen asetuksissa
number
numberRuudukon leveys, 8–18. Kapeampi pinoaa enemmän kirjaimia kuhunkin sarakkeeseen ja on vaikeampi.
Oletus: 14
helpers
valinnainen asetuksissa
string
stringMitkä kirjaimet jäävät ruudukkoon alkuun pääsemiseksi: ei mitään, yleisimmät, vokaalit tai itse luettelemasi.
Yksi seuraavista nonemost_commonvowelscustom
Oletus: "none"
extra_letters
valinnainen asetuksissa
string
stringKirjaimet, jotka annetaan, kun helpers on "custom".
Esimerkkipyyntö
POST fallen-phrase
curl -X POST https://puzzel.org/api/public/v1/fallen-phrase \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Fallen Phrase",
  "language": "fi",
  "sentence": "Don't count your chickens before they hatch.",
  "settings": {
    "columns": 12,
    "helpers": "custom",
    "extra_letters": "ky"
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/fallen-phrase/embed?p=-Nq8sample_activity_key",
  "message": "Fallen phrase created successfully"
}

Kertotaulu

api_e_times_tables

#
POST /api/public/v1/times-tables Ei ota vastaan items-kohteita
Sisältö

api_c_times_tables

Käyttää oletuksena nimeä “Times Tables API”

Luettavat asetukset
KenttäTyyppiMitä se tekee
tables
valinnainen asetuksissa
number[]
number[]Harjoiteltavat taulut. Jos ne jätetään pois, ne ovat 1–10; taulu 11 tai 12 tekee ruudukosta 12x12.
Yksi seuraavista 123456789101112
order
valinnainen asetuksissa
string
stringKulkevatko rivit ja sarakkeet järjestyksessä vai sekoitettuina.
Yksi seuraavista ascendingshuffled
Oletus: "ascending"
picture
valinnainen asetuksissa
string
stringKuva, jonka oikeat vastaukset maalaavat.
Yksi seuraavista sailboatheartrockettreecatfishflowerhouse
Oletus: "sailboat"
players_choose_tables
valinnainen asetuksissa
boolean
booleanAntaa jokaisen pelaajan valita, mitä tauluista hän harjoittelee.
Oletus: false
fill_same_sums
valinnainen asetuksissa
boolean
booleanYksi oikea vastaus täyttää kaikki ruudut, joissa on sama lasku.
Oletus: true
Esimerkkipyyntö
POST times-tables
curl -X POST https://puzzel.org/api/public/v1/times-tables \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Times Tables",
  "language": "fi",
  "settings": {
    "tables": [
      7,
      3,
      4
    ],
    "order": "shuffled",
    "seed": "k3x9q2ab",
    "picture": "rocket",
    "players_choose_tables": true,
    "fill_same_sums": false
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/times-tables/embed?p=-Nq8sample_activity_key",
  "message": "Times tables created successfully"
}

Aukkotehtävä

api_e_fill_in_the_gap

#
POST /api/public/v1/fill-in-the-gap 1–50 items-kohdassa
Sisältö

api_c_fill_in_the_gap

Käyttää oletuksena nimeä “Fill in the gap API”

Hyvä tietää
  • Kirjoita koko lause ja laita tähdet jokaisen pois jätettävän sanan ympärille: "Water boils at *100* degrees." Useampi sana yhden tähtiparin sisällä on yksi aukko. Kohtaan voi lisätä myös ohjeen, joka näytetään lauseen yläpuolella.
Esimerkkipyyntö
POST fill-in-the-gap
curl -X POST https://puzzel.org/api/public/v1/fill-in-the-gap \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Fill in the gap",
  "language": "fi",
  "items": [
    {
      "sentence": "The capital of France is *Paris*, and the river that runs through it is the *Seine*."
    },
    {
      "sentence": "*Amsterdam* is the capital of the Netherlands, but the government sits in *The Hague*.",
      "instruction": "Two cities, one of them two words."
    },
    {
      "sentence": "The *Danube* flows through Vienna, Bratislava, *Budapest* and Belgrade."
    }
  ]
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/fill-in-the-gap/embed?p=-Nq8sample_activity_key",
  "message": "Fill in the gap created successfully"
}

Sanaluokkatehtävä

Lauseita, joissa pelaajat merkitsevät sanoille tunnisteen: sanaluokan, lauseenjäsenen tai omia tunnisteita.

#
POST /api/public/v1/deconstruct 1–50 items-kohdassa
Sisältö

Taulukko lauseita. Jokainen merkittävä sana kirjoitetaan muodossa [word](label).

Käyttää oletuksena nimeä “Sentence analysis API”

Hyvä tietää
  • Kirjoita lause muodossa "The [dog](noun) [barks](verb)." Sanat ilman tunnistetta näytetään, mutta niistä ei kysytä. Tunnisteet noun, verb, adjective ja subject näytetään jokaiselle pelaajalle hänen omalla kielellään.
Luettavat asetukset
KenttäTyyppiMitä se tekee
categories
valinnainen asetuksissa
string[]
string[]Tunnisteet, joista pelaajat valitsevat, järjestyksessä. Jos se jätetään pois, käytetään lauseissa esiintyviä tunnisteita. Lähetä se, jos haluat lisätä tunnisteen, jota mikään sana ei kanna, tai korjata järjestyksen.
Esimerkkipyyntö
POST deconstruct
curl -X POST https://puzzel.org/api/public/v1/deconstruct \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Sentence analysis",
  "language": "fi",
  "items": [
    {
      "sentence": "The [old](adjective) [farmer](noun) [feeds](verb) the [hungry](adjective) [chickens](noun) [early](adverb).",
      "instruction": "Label the nouns, verbs, adjectives and adverbs."
    },
    {
      "sentence": "A [brown](adjective) [horse](noun) [jumped](verb) [quickly](adverb) over the [fence](noun)."
    },
    {
      "sentence": "[Two small lambs](subject) [sleep](verb) in the [barn](noun), and the [dog](noun) [watches](verb) [quietly](adverb)."
    }
  ],
  "settings": {
    "categories": [
      "noun",
      "verb",
      "adjective",
      "adverb",
      {
        "name": "subject",
        "color": "#224466"
      },
      "preposition"
    ]
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/deconstruct/embed?p=-Nq8sample_activity_key",
  "message": "Sentence analysis created successfully"
}

Logiikkapulma

api_e_logic_puzzle

#
POST /api/public/v1/logic-puzzle Vähintään 3 items-kohdassa
Sisältö

api_c_logic_puzzle

Käyttää oletuksena nimeä “Logic Puzzle API”

Hyvä tietää
  • Jokaisessa kategoriassa on oltava yhtä monta kohdetta, 3–6, kaikki erilaisia. Yksi kategoria voidaan merkitä järjestetyksi ordered (hinnat, ajat, iät) ja sille voi antaa valinnaisen unit-yksikön, jolloin generaattori voi kirjoittaa vihjeitä siitä, mikä on enemmän tai vähemmän ja kuinka paljon.
Luettavat asetukset
KenttäTyyppiMitä se tekee
story
valinnainen asetuksissa
string
stringVihjeiden yläpuolella näytettävä taustatarina.
difficulty
valinnainen asetuksissa
string
stringMinkä tyyppisiä vihjeitä generaattori saa käyttää.
Yksi seuraavista easymediumhard
Oletus: "easy"
hints
valinnainen asetuksissa
boolean
booleanTarjoaa painikkeen, joka näyttää seuraavan vaiheen.
Oletus: true
auto_cross
valinnainen asetuksissa
boolean
booleanOsuman merkitseminen yliviivaa loput sen riviltä ja sarakkeesta.
Oletus: true
clue_mode
valinnainen asetuksissa
string
stringKuka kirjoittaa pelaajien näkemät vihjeet: ne luodaan taulukosta, omat lauseesi kohdassa free_clues, tai ei kukaan.
Yksi seuraavista generatedfreenone
Oletus: "generated"
free_clues
valinnainen asetuksissa
string[]
string[]Omat vihjelauseesi, jotka näytetään sellaisinaan, kun clue_mode on "free". Mikään ei tarkista niitä.
Esimerkkipyyntö
POST logic-puzzle
curl -X POST https://puzzel.org/api/public/v1/logic-puzzle \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Logic Puzzle",
  "language": "fi",
  "items": [
    {
      "name": "Baker",
      "items": [
        "Amira",
        "Jonas",
        "Priya",
        "Tobias"
      ]
    },
    {
      "name": "Cake",
      "items": [
        "Lemon drizzle",
        "Carrot cake",
        "Brownies",
        "Apple pie"
      ]
    },
    {
      "name": "Price",
      "items": [
        "$2",
        "$4",
        "$6",
        "$8"
      ],
      "ordered": true,
      "unit": "dollars"
    }
  ],
  "settings": {
    "story": "Four friends each baked one thing for the school bake sale and each set a different price. Who baked what, and what did it cost?",
    "difficulty": "medium"
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/logic-puzzle/embed?p=-Nq8sample_activity_key",
  "message": "Logic puzzle created successfully"
}

Aarrejahti

api_e_scavenger_hunt

#
POST /api/public/v1/scavenger-hunt 1–50 items-kohdassa
Sisältö

api_c_scavenger_hunt

Käyttää oletuksena nimeä “Scavenger Hunt API”

Hyvä tietää
  • Vaihe on objekti, jossa on title, description, code ja valinnaisesti accepted_codes (muut hyväksyttävät kirjoitusasut), url ja link_text. Koodin tarkistuksessa isoilla kirjaimilla ja välilyönneillä ei ole väliä. Karttaa nastoineen voi lisätä vain editorissa.
Esimerkkipyyntö
POST scavenger-hunt
curl -X POST https://puzzel.org/api/public/v1/scavenger-hunt \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Scavenger Hunt",
  "language": "fi",
  "items": [
    {
      "title": "Start at the front desk",
      "description": "Which year is carved above the entrance?",
      "code": "1897",
      "accepted_codes": [
        "eighteen ninety-seven"
      ]
    },
    {
      "title": "The quiet corner",
      "description": "Find the atlas shelf. What colour is the biggest atlas?",
      "code": "crimson",
      "accepted_codes": [
        "dark red"
      ]
    }
  ]
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/scavenger-hunt/embed?p=-Nq8sample_activity_key",
  "message": "Scavenger hunt created successfully"
}

Avaruudellinen hahmotus

api_e_spatial_reasoning

#
POST /api/public/v1/spatial-reasoning 1–50 items-kohdassa
Sisältö

api_c_spatial_reasoning

Käyttää oletuksena nimeä “Spatial Reasoning API”

Hyvä tietää
  • Objektit ja kohteet ovat square, triangle, circle, hexagon, pentagon, star, diamond tai heart. Suhteet ovat inside, outside, behind, in_front_of, right_of, left_of, above, below, same_color_as, different_color_from, larger_than ja smaller_than. Sääntö, jota ei voi koskaan täyttää, vastaa koodilla 400.
Luettavat asetukset
KenttäTyyppiMitä se tekee
clue_mode
valinnainen asetuksissa
string
stringSäännöt näytetään kuvina tai lauseina.
Yksi seuraavista visualtext
Oletus: "visual"
unique_object_picks
valinnainen asetuksissa
boolean
booleanKunkin muodon saa asettaa vain kerran.
Oletus: false
hide_color_picker
valinnainen asetuksissa
boolean
booleanPelaajat eivät voi värjätä muotoja uudelleen.
Oletus: false
Esimerkkipyyntö
POST spatial-reasoning
curl -X POST https://puzzel.org/api/public/v1/spatial-reasoning \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Spatial Reasoning",
  "language": "fi",
  "items": [
    {
      "rules": [
        {
          "object": "square",
          "relation": "inside",
          "target": "circle"
        }
      ]
    },
    {
      "rules": [
        {
          "object": "triangle",
          "relation": "above",
          "target": "square"
        },
        {
          "object": "star",
          "relation": "left_of",
          "target": "triangle"
        }
      ]
    }
  ],
  "settings": {
    "clue_mode": "text",
    "unique_object_picks": true,
    "hide_color_picker": false
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/spatial-reasoning/embed?p=-Nq8sample_activity_key",
  "message": "Spatial reasoning activity created successfully"
}

Rebus

Kuvina kirjoitettuja lauseita: pelaajat lukevat kuvat ja kirjainmuutokset takaisin sanoiksi.

#
POST /api/public/v1/rebus 1–30 items-kohdassa
Sisältö

Taulukko lauseita. Kukin luettelee kuvina piirretyt sanat; kaikki muut sanat pysyvät kirjaimina.

Käyttää oletuksena nimeä “Rebus API”

Hyvä tietää
  • Sana piirretään osista, jotka yhdessä kirjoittavat sen. Osassa on kirjaimet, joita se edustaa (text), emoji ja shows: sana sille, mitä kuva esittää ("broom" kuvalle, joka edustaa sanaa "room"). Puzzel laskee kirjainmuutokset. Osa voi olla myös symboli, kuten 4 sanalle "for".
Luettavat asetukset
KenttäTyyppiMitä se tekee
rebus_commas
valinnainen asetuksissa
boolean
booleanPiirtää pudonneen ensimmäisen tai viimeisen kirjaimen pilkuksi kuvan viereen.
Oletus: false
Esimerkkipyyntö
POST rebus
curl -X POST https://puzzel.org/api/public/v1/rebus \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Rebus",
  "language": "fi",
  "items": [
    {
      "sentence": "I sweep the room before the sunflower wilts.",
      "words": [
        {
          "word": "I",
          "parts": [
            {
              "text": "I",
              "kind": "sound",
              "emoji": "👁️"
            }
          ]
        },
        {
          "word": "room",
          "parts": [
            {
              "text": "room",
              "kind": "picture",
              "shows": "broom",
              "emoji": "🧹"
            }
          ]
        },
        {
          "word": "before",
          "parts": [
            {
              "text": "be",
              "kind": "picture",
              "shows": "bee",
              "emoji": "🐝"
            },
            {
              "text": "for",
              "kind": "sound",
              "glyph": "4"
            },
            {
              "text": "e",
              "kind": "letters"
            }
          ]
        },
        {
          "word": "the",
          "position": 6,
          "parts": [
            {
              "text": "the",
              "kind": "picture",
              "shows": "tree",
              "emoji": "🌳"
            }
          ]
        },
        {
          "word": "sunflower",
          "parts": [
            {
              "text": "sun",
              "kind": "picture",
              "shows": "sun",
              "emoji": "☀️"
            },
            {
              "text": "flower",
              "kind": "picture",
              "shows": "flower",
              "emoji": "🌸"
            }
          ]
        }
      ]
    }
  ],
  "settings": {
    "rebus_commas": true
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/rebus/embed?p=-Nq8sample_activity_key",
  "message": "Rebus created successfully"
}
Kuvat

Palapeli

Leikkaa kuvan palasiksi, jotka vedetään takaisin yhteen.

#
POST /api/public/v1/jigsaw Ei ota vastaan items-kohteita
Sisältö

Yksi kuvan URL-osoite image-kentässä. Tämä päätepiste ei ota vastaan items-kohteita.

Käyttää oletuksena nimeä “Jigsaw Game API”

Hyvä tietää
  • API tekee aina 4x4-palapelin. Palojen määrä, epäsäännölliset palat ja suorat reunat ovat editorin asetuksia — rivien tai sarakkeiden lähettäminen tässä ei tee mitään.
  • URL-osoite tallennetaan sellaisenaan kuin lähetit sen, eikä tiedostoa koskaan kopioida, joten sen on pysyttävä julkisesti saatavilla niin kauan kuin aktiviteettia pelataan.
Luettavat asetukset
KenttäTyyppiMitä se tekee
image
pakollinen
string
stringPilkottavan kuvan absoluuttinen URL-osoite. Lähetetään ylätasolla, ei settings-kentän sisällä.
Esimerkkipyyntö
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": "fi",
  "image": "https://example.com/orchard.jpg"
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/jigsaw/embed?p=-Nq8sample_activity_key",
  "message": "Jigsaw game created successfully"
}

Liukupalapeli

Sekoittaa kuvan ruutuihin, jotka liu'utetaan paikoilleen.

#
POST /api/public/v1/slidingpuzzle Ei ota vastaan items-kohteita
Sisältö

Yksi kuvan URL-osoite settings-kentän sisällä. Tämä päätepiste ei ota vastaan items-kohteita.

Käyttää oletuksena nimeä “Sliding Puzzle API”

Hyvä tietää
  • Toisin kuin palapeli, tämä päätepiste lukee kuvansa kohdasta settings.image. Ylätason image-kenttä jätetään huomiotta, ja kutsu vastaa koodilla 400.
  • URL-osoite tallennetaan sellaisenaan kuin lähetit sen, eikä tiedostoa koskaan kopioida, joten sen on pysyttävä julkisesti saatavilla niin kauan kuin aktiviteettia pelataan.
Luettavat asetukset
KenttäTyyppiMitä se tekee
image
pakollinen asetuksissa
string
stringSekoitettavan kuvan absoluuttinen URL-osoite. Toisin kuin palapelissä, tämä sijaitsee settings-kentän sisällä.
Esimerkkipyyntö
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": "fi",
  "settings": {
    "image": "https://example.com/orchard.jpg"
  }
}'
Onnistui
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/slidingpuzzle/embed?p=-Nq8sample_activity_key",
  "message": "Sliding puzzle created successfully"
}

Jokin ei toimi odotetusti?

Lähetä pyyntö, jota kokeilit, ja virhe, jonka sait vastaukseksi, niin saat oikean vastauksen henkilöltä, joka kirjoitti päätepisteen.

Lähetä sähköpostia tukeen