Preskoči na vsebino
Ogleduješ si predogled novega Puzzel.org Nazaj na trenutno stran
API za razvijalce

Ustvarjaj dejavnosti iz svojega sistema

En POST za vsako vrsto dejavnosti. Pošlji svojo vsebino kot JSON in dobiš dejavnost v svojem računu Puzzel.org ter URL, ki ga lahko daš igralcem ali vstaviš v iframe.

Osnovni URL
https://puzzel.org/api/public/v1
Avtentikacija
Ključ in e-pošta v telesu
Končne točke
20 vrst dejavnosti
Kvota
10 dejavnosti na dan

Tvoja prva zahteva

Nič ni treba namestiti in ni rokovanja: pošlji telo JSON s svojim ključem, e-pošto in vsebino. Odgovor vsebuje ključ nove dejavnosti in URL, na katerem se igra.

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

Vsak primer na tej strani je popolna, izvedljiva zahteva. Zamenjaj svoj ključ in vsebino in deluje takoj.

Avtentikacija

Ni glav in ni žetona nosilca. Obe poverilnici potujeta v telesu JSON vsake zahteve, ključ pa je sprejet samo za račun, ki mu pripada ta e-pošta.

PoljeTipKaj počne
account_api_key
obvezno
string
stringKljuč API tvojega računa. Gre v telo, ne v glavo.
email
obvezno
string
stringNaslov, s katerim se prijavljaš v svoj račun Puzzel.org. Ključ je veljaven samo skupaj z njim.

Tvoj ključ najdeš v razdelku računa na nadzorni plošči, za gumbom Pokaži.

Prijava

Ključi API se dodelijo ob začetku naročnine, zato jih brezplačni računi še nimajo.

Oglej si pakete

Ključ obravnavaj kot geslo. Ustvarja in prepisuje dejavnosti v tvojem računu, zato ga hrani na strani strežnika in stran od vsega, kar lahko prebere brskalnik.

Telo zahteve

Vsaka končna točka sprejme enakih pet polj. Razlikuje se polje z vsebino pod njimi: večina sprejme niz elementov, nekatere eno poved ali eno sliko, sudoku pa nič.

PoljeTipKaj počne
account_api_key
obvezno
string
stringKljuč API tvojega računa. Gre v telo, ne v glavo.
email
obvezno
string
stringNaslov, s katerim se prijavljaš v svoj račun Puzzel.org. Ključ je veljaven samo skupaj z njim.
title
neobvezno
string
stringIme, ki ga dejavnost dobi na tvoji nadzorni plošči. Če ga izpustiš, končna točka uporabi svoje privzeto ime.
language
neobvezno
string
stringDoloča samo jezikovno različico v URL-ju, ki ga dobiš nazaj — ne prevede ničesar, kar pošlješ. Besedna iskalnica ga uporabi tudi za preklop polnilnih črk v arabščino, ko je vrednost "ar".
Privzeto: "en"
activity_key
neobvezno
string
stringIzpusti ga, če želiš ustvariti novo dejavnost. Če pošlješ ključ dejavnosti, ki jo že imaš, se namesto tega ta dejavnost ponovno zgradi.

settings je objekt z možnostmi za posamezno končno točko. Katere možnosti končna točka prebere, je navedeno spodaj pri njej; vse drugo, kar vneseš tja, se prezre.

Kaj dobiš nazaj

Uspešen klic odgovori s 200 ter ključem nove dejavnosti in URL-jem, na katerem se igra. Vse drugo odgovori s success, nastavljenim na false, in enim samim nizom napake.

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

URL, ki ga dobiš nazaj, je pogled za vdelavo. Zamenjaj embed s play, da ga odpreš čez celo stran, ali z build, da ga odpreš v urejevalniku — ključ za p= ostane enak.

Ustvarjanje in posodabljanje

Pošlji activity_key in dejavnost za njim se zgradi na mestu: njena vsebina se zamenja, ime in oznaka različice se osvežita, sam ključ pa ostane enak — zato povezave in vdelave, ki si jih že delil, še naprej delujejo. Rezultati, umestitev v mapo in vsaka nastavitev, ki je končna točka sama ne zapiše, ostanejo nespremenjeni.

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 se uporabi ob vsaki posodobitvi, vključno s privzeto vrednostjo — če ga izpustiš, se dejavnost preimenuje v privzeto ime te končne točke.
  • Bloki nastavitev, ki jih končna točka zapiše sama, se prepišejo od začetka, zato posodobitev tudi te ponastavi na vrednosti, ki jih pošlješ, ali na privzete vrednosti končne točke.
  • Posodobiš lahko samo dejavnosti, ki jih ima v lasti tvoj lastni račun. Ključ nekoga drugega dobi odgovor 403.
  • Posodobitev stane enako kot ustvarjanje: en klic od današnje kvote.

Omejitev hitrosti

10
10 dejavnosti na račun na dan

Šteje se vsak uspešen klic, ustvarjanje in posodabljanje enako. Če presežeš mejo, naslednja zahteva dobi odgovor 429, dokler se števec ne počisti.

Števec enkrat na dan počisti načrtovano opravilo, ne pa drseče 24-urno okno.

Napake

Napake vedno prispejo kot JSON z enakima dvema poljema, nikoli kot stran HTML. Niz napake je napisan tako, da ga lahko prebere človek — poimenuje polje ali omejitev, ki ni uspela.

StatusKaj pomeni
400
Bad Request
Nekaj v telesu manjka, je napačno oblikovano ali izven dovoljenega obsega. Sporočilo poimenuje polje.
401
Unauthorized
E-pošta ni znana ali ključ ne pripada temu računu.
403
Forbidden
activity_key, ki si ga poslal, pripada drugemu računu.
429
Too Many Requests
Današnja kvota je porabljena. Počisti se enkrat na dan.
500
Server Error
Generator ni mogel zgraditi uganke iz tega, kar si poslal — običajno je premalo besed ali pa besed ni mogoče sestaviti skupaj.

Končne točke

Ena pot za vsako vrsto dejavnosti, vse POST, vse pod istim osnovnim URL-jem. Vsaka navaja vsebino, ki jo potrebuje, nastavitve, ki jih prebere, in zahtevo, ki jo lahko poženeš.

Besede in črke

Križanka

Tvoje odgovore prepleta v mrežo in oštevilči definicije namesto tebe.

#
POST /api/public/v1/crossword Vsaj 2 v items
Vsebina

Niz besed. Vsak vnos poveže odgovor z definicijo, ki nanj kaže.

Privzeto uporabi ime “Crossword API”

Vredno vedeti
  • Odgovori, krajši od dveh znakov, se izločijo, preden se zgradi mreža, in vsaj dva morata to preživeti.
  • Odgovori se spremenijo v velike črke, generator pa ima dvajset poskusov, da jih razporedi. Če ne uspe umestiti niti ene besede, klic dobi odgovor 500.
Primer zahteve
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": "sl",
  "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"
    }
  ]
}'
Uspeh
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}

Besedna iskalnica

Tvoje besede skrije v mrežo črk, v smereh in obliki, ki ju izbereš.

#
POST /api/public/v1/wordseeker Vsaj 2 v items
Vsebina

Niz besed. Besedilo definicije postane seznam besed, iz katerega izhajajo igralci.

Privzeto uporabi ime “Wordseeker API”

Vredno vedeti
  • Odgovori, krajši od dveh znakov, se izločijo, vsak odgovor pa se pred vstavitvijo v mrežo spremeni v velike črke.
  • Mreža se zapolni z latiničnimi črkami, razen če je language nastavljen na "ar", kar preklopi polnilo na arabščino.
Nastavitve, ki jih prebere
PoljeTipKaj počne
hidden_solution
neobvezno znotraj settings
string
stringPreostale črke sestavijo prav to. Če to nastaviš, generatorju hkrati naročiš, naj najprej umesti rešitev namesto čim več besed.
directions
neobvezno znotraj settings
string[]
string[]V katere smeri lahko teče beseda. Če to izpustiš, besede tečejo samo proti vzhodu, jugovzhodu in jugu.
Ena od westeastnorthsouthnorthwestnortheastsouthwestsoutheast
Privzeto: ["east", "southeast", "south"]
template
neobvezno znotraj settings
string
stringMrežo izreže v obliko, namesto da bi ostala kvadratna.
Ena od squarecirclecrossdiamondpyramidsmileystarcross_plus
Primer zahteve
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": "sl",
  "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"
  }
}'
Uspeh
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordseeker/embed?p=-Nq8sample_activity_key",
  "message": "Wordseeker created successfully"
}

Akrostih

Tvoje odgovore zloži tako, da en stolpec sestavi skrito besedo.

#
POST /api/public/v1/acrostic Vsaj 1 v items
Vsebina

Niz besed. Skupaj morajo zagotoviti vsako črko skrite besede.

Privzeto uporabi ime “Acrostic API”

Vredno vedeti
  • Če odgovori ne morejo zagotoviti črk, ki jih rešitev potrebuje, klic dobi odgovor 500, namesto da bi shranil napol zgrajeno mrežo.
  • Generator razvrsti tvoje odgovore v drug vrstni red, da stolpec deluje, zato vrstni red, ki ga pošlješ, ni vrstni red, ki ga vidijo igralci.
Nastavitve, ki jih prebere
PoljeTipKaj počne
hidden_solution
obvezno znotraj settings
string
stringBeseda, ki jo sestavi označeni stolpec. Ta končna točka brez nje ne deluje.
Primer zahteve
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": "sl",
  "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"
  }
}'
Uspeh
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/acrostic/embed?p=-Nq8sample_activity_key",
  "message": "Acrostic created successfully"
}

Premešane besede

api_e_word_scramble

#
POST /api/public/v1/word-scramble Vsaj 1 v items
Vsebina

api_c_word_scramble

Privzeto uporabi ime “Word Scramble API”

Vredno vedeti
  • Dejavnosti, ustvarjene prek API, imajo vedno vklopljeno nastavitev za mešanje vrstnega reda, zato vrstni red, ki ga pošlješ, ni vrstni red, ki ga dobijo igralci.
Nastavitve, ki jih prebere
PoljeTipKaj počne
hidden_solution
neobvezno znotraj settings
string
stringNeobvezna dodatna beseda, ki jo igralci vnesejo, ko rešijo preostalo.
Primer zahteve
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": "sl",
  "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"
  }
}'
Uspeh
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/word-scramble/embed?p=-Nq8sample_activity_key",
  "message": "Word Scramble created successfully"
}

Vislice

Tvoje besede ali besedne zveze spremeni v runde ugibanja črk.

#
POST /api/public/v1/hangman Vsaj 1 v items
Vsebina

Niz besed ali kratkih besednih zvez. Opis je namig, ki ga vidijo igralci.

Privzeto uporabi ime “Hangman API”

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

Wordle

Iz vsake besede, ki jo pošlješ, naredi igro ugibanja besede.

#
POST /api/public/v1/wordle Vsaj 1 v items
Vsebina

Niz besed. Igralci dobijo eno rundo na besedo.

Privzeto uporabi ime “Wordle API”

Vredno vedeti
  • Ustvarjeno z vklopljeno nastavitvijo za preverjanje, da so ugibane besede resnične. Če so tvoje besede imena ali izmišljene, jo izklopi v urejevalniku.
Primer zahteve
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": "sl",
  "items": [
    {
      "answer": "MELON",
      "description": "Sweet and green",
      "type": "text"
    },
    {
      "answer": "PEACH",
      "description": "Fuzzy and orange",
      "type": "text"
    }
  ]
}'
Uspeh
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordle/embed?p=-Nq8sample_activity_key",
  "message": "Wordle created successfully"
}

Vaja tipkanja

api_e_typing_practice

#
POST /api/public/v1/typing-practice Vsaj 1 v items
Vsebina

api_c_typing_practice

Privzeto uporabi ime “Typing Practice API”

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

Kolo sreče

api_e_wheel_of_fortune

#
POST /api/public/v1/wheel-of-fortune Vsaj 1 v items
Vsebina

api_c_wheel_of_fortune

Privzeto uporabi ime “Wheel of Fortune API”

Vredno vedeti
  • Ustvarjeno z nastavitvijo “prikaži izid samo na kolesu”, zato se rezultat prebere s kolesa, namesto da bi bil naznanjen poleg njega.
Primer zahteve
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": "sl",
  "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"
    }
  ]
}'
Uspeh
{
  "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"
}
Kartice in pari

Memory

Kartice, obrnjene navzdol, ki jih obračaš in združuješ v pare.

#
POST /api/public/v1/memory Vsaj 2 v items
Vsebina

Niz parov. Vsak par vsebuje dve kartici, ki spadata skupaj.

Privzeto uporabi ime “Memory Game API”

Vredno vedeti
  • Kartica je objekt s tipom in vrednostjo. Uporabi "text" za besede ali "image", "audio", "youtube" oz. "link" z URL-jem v value, opis pa dodaj v alt.
Primer zahteve
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": "sl",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Uspeh
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/memory/embed?p=-Nq8sample_activity_key",
  "message": "Memory game created successfully"
}

Igra povezovanja

api_e_matching_pairs

#
POST /api/public/v1/matching-pairs Vsaj 2 v items
Vsebina

api_c_matching_pairs

Privzeto uporabi ime “Matching Game API”

Vredno vedeti
  • Kartica je objekt s tipom in vrednostjo. Uporabi "text" za besede ali "image", "audio", "youtube" oz. "link" z URL-jem v value, opis pa dodaj v alt.
Primer zahteve
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": "sl",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Uspeh
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/matching-pairs/embed?p=-Nq8sample_activity_key",
  "message": "Matching pairs game created successfully"
}

Učne kartice

api_e_flash_cards

#
POST /api/public/v1/flash-cards Vsaj 1 v items
Vsebina

api_c_flash_cards

Privzeto uporabi ime “Flash Cards API”

Vredno vedeti
  • Končna točka shrani toliko kartic, kolikor jih pošlješ, zato pošlji natanko dve na vnos — najprej sprednjo, nato zadnjo stran.
  • Kartica je objekt s tipom in vrednostjo. Uporabi "text" za besede ali "image", "audio", "youtube" oz. "link" z URL-jem v value, opis pa dodaj v alt.
Primer zahteve
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": "sl",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Uspeh
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/flash-cards/embed?p=-Nq8sample_activity_key",
  "message": "Flash Cards created successfully"
}

Razvrščanka

Kartice, ki jih razvrstiš v skupino, kamor spadajo.

#
POST /api/public/v1/categorize Vsaj 2 v items
Vsebina

Niz kategorij, vsaka z imenom in karticami, ki vanjo spadajo.

Privzeto uporabi ime “Categorize Game API”

Vredno vedeti
  • Kategorija, poslana brez imena, se shrani kot “Untitled Category”, zato ime vedno pošlji.
  • Kartica je objekt s tipom in vrednostjo. Uporabi "text" za besede ali "image", "audio", "youtube" oz. "link" z URL-jem v value, opis pa dodaj v alt.
Primer zahteve
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": "sl",
  "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"
        }
      ]
    }
  ]
}'
Uspeh
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/categorize/embed?p=-Nq8sample_activity_key",
  "message": "Categorize game created successfully"
}

Zaporedje

Zaporedje, ki ga morajo igralci znova urediti.

#
POST /api/public/v1/reorder Vsaj 1 v items
Vsebina

Niz zaporedij. Vsako vsebuje svoje kartice v pravilnem vrstnem redu.

Privzeto uporabi ime “Reorder Game API”

Vredno vedeti
  • Vrstni red, ki ga pošlješ, se shrani kot pravilni vrstni red — številka ena je prva.
  • Kartica je objekt s tipom in vrednostjo. Uporabi "text" za besede ali "image", "audio", "youtube" oz. "link" z URL-jem v value, opis pa dodaj v alt.
Primer zahteve
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": "sl",
  "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"
        }
      ]
    }
  ]
}'
Uspeh
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/reorder/embed?p=-Nq8sample_activity_key",
  "message": "Reorder game created successfully"
}
Vprašanja in odgovori

Kviz

Vprašanja izbirnega tipa in odprta vprašanja, ocenjena sproti med igro.

#
POST /api/public/v1/quiz Vsaj 1 v items
Vsebina

Niz vprašanj. Vprašanja izbirnega tipa nosijo svoje odgovore, odprta vprašanja pa odgovor, ki ga sprejmeš.

Privzeto uporabi ime “Quiz API”

Vredno vedeti
  • question_type je bodisi "multiple_choice", kjer pravilna možnost nosi isCorrect true, bodisi "open_answer", ki namesto tega uporabi correct_answer. Če ga izpustiš, se obravnava kot izbirni tip.
  • Končna točka za kviz posreduje settings neposredno kot bloke nastavitev dejavnosti, zato to ni mesto za posamezne možnosti — kviz pozneje prilagodi v urejevalniku.
Primer zahteve
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": "sl",
  "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."
    }
  ]
}'
Uspeh
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/quiz/embed?p=-Nq8sample_activity_key",
  "message": "Quiz created successfully"
}

Družabna igra

api_e_board_game

#
POST /api/public/v1/board-game Vsaj 1 v items
Vsebina

api_c_board_game

Privzeto uporabi ime “Board Game API”

Vredno vedeti
  • question_type je bodisi "multiple_choice", kjer pravilna možnost nosi isCorrect true, bodisi "open_answer", ki namesto tega uporabi correct_answer. Če ga izpustiš, se obravnava kot izbirni tip.
Nastavitve, ki jih prebere
PoljeTipKaj počne
number_of_tiles
neobvezno znotraj settings
number
numberKoliko polj ima plošča. Med 10 in 75.
Privzeto: 30
game_mode
neobvezno znotraj settings
string
stringAli igralci tekmujejo do cilja ali po poti zbirajo predmete.
Ena od race_to_finishcollect_items
Privzeto: "race_to_finish"
Primer zahteve
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": "sl",
  "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"
  }
}'
Uspeh
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/board-game/embed?p=-Nq8sample_activity_key",
  "message": "Board Game created successfully"
}
Povedi in številke

Kriptogram

Poved spremeni v kodo za razvozlavanje, znak za znakom.

#
POST /api/public/v1/cryptogram Ne sprejme items
Vsebina

Ena poved, v polju sentence. Ta končna točka ne sprejme items.

Privzeto uporabi ime “Cryptogram API”

Vredno vedeti
  • Karkoli pošlješ v items, se prezre — uganka se zgradi samo iz povedi.
Nastavitve, ki jih prebere
PoljeTipKaj počne
sentence
obvezno
string
stringPoved, ki jo je treba šifrirati. Igralci jo dekodirajo znak za znakom.
helpers
neobvezno znotraj settings
string
stringKateri znaki so podarjeni brezplačno kot vstopna točka: nobeni, najpogostejši, samoglasniki ali tisti, ki jih navedeš sam.
Ena od nonemost_commonvowelscustom
Privzeto: "none"
character_list
neobvezno znotraj settings
string
stringAbeceda, iz katere je zgrajena šifra. Če pustiš prazno, si šifriranje izbere svojo.
extra_letters
neobvezno znotraj settings
string
stringZnaki, ki so podarjeni, ko je helpers nastavljen na "custom". Pri drugih načinih pomoči se prezrejo.
hide_unused_characters
neobvezno znotraj settings
boolean
booleanIz ključa izpusti znake, ki jih poved nikoli ne uporabi.
Privzeto: false
Primer zahteve
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": "sl",
  "sentence": "An apple a day keeps the doctor away",
  "settings": {
    "helpers": "vowels",
    "hide_unused_characters": false
  }
}'
Uspeh
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/cryptogram/embed?p=-Nq8sample_activity_key",
  "message": "Cryptogram created successfully"
}

Računska vaja

Poved skrije za računi — reši račun, razkrij črko.

#
POST /api/public/v1/calculation Ne sprejme items
Vsebina

Ena poved, v polju sentence. Ta končna točka ne sprejme items.

Privzeto uporabi ime “Calculation Game API”

Vredno vedeti
  • Če so omejitve pretesne, da bi zakodirale poved, klic dobi odgovor 400 s pozivom, naj jih sprostiš, namesto da bi shranil delno uganko.
Nastavitve, ki jih prebere
PoljeTipKaj počne
sentence
obvezno
string
stringPoved, ki jo igralci odkrijejo z reševanjem računov.
difficulty_level
neobvezno znotraj settings
number
numberNajvišja dovoljena vrednost, ki jo sme imeti odgovor računa.
Ena od 20501001000
Privzeto: "100"
operators
neobvezno znotraj settings
string[]
string[]Katere operacije se lahko pojavijo. x pomeni množenje, : pomeni deljenje.
Ena od +-x:
Privzeto: ["+", "-", "x", ":"]
max_operations
neobvezno znotraj settings
number
numberKoliko operacij lahko en račun poveže skupaj.
Ena od 123
Privzeto: 1
number_difficulty
neobvezno znotraj settings
number
numberOmeji posamezna števila znotraj računa. Od 5 do 1000.
Privzeto: 100
Primer zahteve
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": "sl",
  "sentence": "Fruit salad for everyone",
  "settings": {
    "difficulty_level": "100",
    "operators": [
      "+",
      "-",
      "x",
      ":"
    ],
    "max_operations": 1,
    "number_difficulty": 100
  }
}'
Uspeh
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/calculation/embed?p=-Nq8sample_activity_key",
  "message": "Calculation game created successfully"
}

Sudoku

Ustvari rešeno mrežo, nato pa iz nje znova vzame številke.

#
POST /api/public/v1/sudoku Ne sprejme items
Vsebina

Nič. Cela uganka nastane iz svojih dveh nastavitev.

Privzeto uporabi ime “Sudoku API”

Vredno vedeti
  • Ne pošlji items ne sentence — size in difficulty sta edini vhod.
  • Urejevalnik ponudi težavnost samo za 2x3, 3x3 in 3x4. API jo uporabi za vsako velikost, vključno z 2x2 in 4x4.
Nastavitve, ki jih prebere
PoljeTipKaj počne
size
neobvezno znotraj settings
string
stringVelikost enega bloka, zapisana kot vrstice krat stolpci — 3x3 da klasično mrežo 9x9. Končna točka le preveri, da se to razčleni kot dve številki, zato ostani pri velikostih, ki jih ponuja urejevalnik.
Ena od 2x22x33x33x44x4
Privzeto: "3x3"
difficulty_level
neobvezno znotraj settings
string
stringKoliko številk ostane na plošči za začetno stanje.
Ena od easynormalhard
Privzeto: "normal"
Primer zahteve
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": "sl",
  "settings": {
    "size": "3x3",
    "difficulty_level": "normal"
  }
}'
Uspeh
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/sudoku/embed?p=-Nq8sample_activity_key",
  "message": "Sudoku created successfully"
}
Slike

Sestavljanka

Sliko razreže na kose, ki jih znova sestaviš s povlečenjem.

#
POST /api/public/v1/jigsaw Ne sprejme items
Vsebina

En URL slike, v polju image. Ta končna točka ne sprejme items.

Privzeto uporabi ime “Jigsaw Game API”

Vredno vedeti
  • API vedno ustvari sestavljanko 4 krat 4. Število kosov, nepravilni kosi in ravni robovi so nastavitve urejevalnika — pošiljanje vrstic ali stolpcev tukaj ne naredi ničesar.
  • URL se shrani tak, kot si ga poslal, datoteka pa se nikoli ne kopira, zato mora ostati javno dosegljiv, dokler se dejavnost igra.
Nastavitve, ki jih prebere
PoljeTipKaj počne
image
obvezno
string
stringAbsolutni URL slike, ki jo je treba razrezati. Pošlje se na najvišji ravni, ne znotraj settings.
Primer zahteve
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": "sl",
  "image": "https://example.com/orchard.jpg"
}'
Uspeh
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/jigsaw/embed?p=-Nq8sample_activity_key",
  "message": "Jigsaw game created successfully"
}

Drsna sestavljanka

Sliko premeša v ploščice, ki jih zdrsneš na mesto.

#
POST /api/public/v1/slidingpuzzle Ne sprejme items
Vsebina

En URL slike, znotraj settings. Ta končna točka ne sprejme items.

Privzeto uporabi ime “Sliding Puzzle API”

Vredno vedeti
  • Za razliko od sestavljanke ta končna točka sliko prebere iz settings.image. Polje image na najvišji ravni se prezre, klic pa dobi odgovor 400.
  • URL se shrani tak, kot si ga poslal, datoteka pa se nikoli ne kopira, zato mora ostati javno dosegljiv, dokler se dejavnost igra.
Nastavitve, ki jih prebere
PoljeTipKaj počne
image
obvezno znotraj settings
string
stringAbsolutni URL slike, ki jo je treba premešati. Za razliko od sestavljanke ta vrednost živi znotraj settings.
Primer zahteve
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": "sl",
  "settings": {
    "image": "https://example.com/orchard.jpg"
  }
}'
Uspeh
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/slidingpuzzle/embed?p=-Nq8sample_activity_key",
  "message": "Sliding puzzle created successfully"
}

Nekaj ne dela, kot bi moralo?

Pošlji zahtevo, ki si jo poskusil, in napako, ki si jo dobil nazaj, in dobil boš pravi odgovor osebe, ki je napisala končno točko.

Piši podpori po e-pošti