Hopp til innhold
Du ser en forhåndsvisning av nye Puzzel.org Tilbake til dagens nettside
API for utviklere

Bygg aktiviteter fra ditt eget system

Én POST per aktivitetstype. Send innholdet ditt som JSON, og få tilbake en aktivitet i Puzzel.org-kontoen din og en URL du kan gi til spillere eller sette inn i en iframe.

Base-URL
https://puzzel.org/api/public/v1
Autentisering
Nøkkel og e-post i forespørselsteksten
Endepunkter
20 aktivitetstyper
Kvote
10 aktiviteter om dagen

Din første forespørsel

Ingenting å installere og ingen håndtrykk: send JSON-innhold med nøkkelen din, e-posten din og innholdet ditt. Svaret inneholder nøkkelen til den nye aktiviteten og URL-en den spilles på.

POST crossword
curl -X POST https://puzzel.org/api/public/v1/crossword \
  -H "Content-Type: application/json" \
  -d '{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "title": "Crossword",
  "language": "no",
  "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"
    }
  ]
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}

Hvert eksempel på denne siden er en komplett forespørsel du kan kjøre direkte. Bytt ut med din egen nøkkel og ditt eget innhold, så fungerer det som det er.

Autentisering

Det er ingen headere og ingen bearer-token. Begge opplysningene sendes som JSON-innhold i hver forespørsel, og nøkkelen godtas bare for kontoen som e-postadressen tilhører.

FeltTypeHva det gjør
account_api_key
obligatorisk
string
stringAPI-nøkkelen til kontoen din. Den skal være i forespørselsteksten, ikke i en header.
email
obligatorisk
string
stringAdressen Puzzel.org-kontoen din logger inn med. Nøkkelen er bare gyldig sammen med den.

Nøkkelen din ligger under kontodelen av dashbordet, bak Vis.

Logg inn

API-nøkler deles ut når et abonnement starter, så en gratis konto har ikke fått noen ennå.

Se planene

Behandle nøkkelen som et passord. Den oppretter og overskriver aktiviteter i kontoen din, så hold den på serversiden og unna alt en nettleser kan lese.

Forespørselsteksten

Hvert endepunkt tar imot de samme fem feltene. Det som er forskjellig, er innholdsfeltet under dem: de fleste tar imot en liste med items, noen få tar imot én setning eller ett bilde, og sudoku tar imot ingenting i det hele tatt.

FeltTypeHva det gjør
account_api_key
obligatorisk
string
stringAPI-nøkkelen til kontoen din. Den skal være i forespørselsteksten, ikke i en header.
email
obligatorisk
string
stringAdressen Puzzel.org-kontoen din logger inn med. Nøkkelen er bare gyldig sammen med den.
title
valgfritt
string
stringNavnet aktiviteten får i dashbordet ditt. Utelater du det, bruker endepunktet sitt eget standardnavn.
language
valgfritt
string
stringBestemmer bare språket i URL-en du får tilbake — den oversetter ikke noe av det du sender. Ordsøk bruker den også til å bytte fyllbokstavene til arabisk når den er "ar".
Standard: "en"
activity_key
valgfritt
string
stringUtelat det for å opprette en ny aktivitet. Send inn nøkkelen til en du allerede eier, så bygges den aktiviteten om i stedet.

settings er et objekt med innstillinger som er spesifikke for hvert endepunkt. Hvilke det gjelder for et endepunkt, er listet opp under det; alt annet du legger der, blir ignorert.

Hva du får tilbake

Et vellykket kall svarer 200 med nøkkelen til den nye aktiviteten og URL-en den spilles på. Alt annet svarer med success satt til false og én enkelt feilmelding.

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

URL-en du får tilbake, er innbyggingsvisningen. Bytt ut embed med play for å åpne den på hele siden, eller med build for å åpne den i editoren — nøkkelen etter p= er den samme.

Opprette vs. oppdatere

Send inn activity_key, så bygges aktiviteten bak den om på stedet: innholdet erstattes, navnet og versjonsstempelet oppdateres, og selve nøkkelen forblir den samme — så lenker og innbygginger du allerede har delt, fortsetter å fungere. Resultater, mappeplassering og alle innstillinger endepunktet ikke skriver til selv, forblir som de var.

activity_key
{
  "account_api_key": "YOUR_API_KEY",
  "email": "you@example.com",
  "activity_key": "-Nq8sample_activity_key",
  "title": "Fruit crossword, week 2",
  "items": [
    {
      "answer": "BANANA",
      "description": "A long yellow fruit",
      "type": "text"
    },
    {
      "answer": "CHERRY",
      "description": "A small red stone fruit",
      "type": "text"
    },
    {
      "answer": "MELON",
      "description": "Big, green outside, sweet inside",
      "type": "text"
    }
  ]
}
  • title brukes ved hver oppdatering, inkludert standardverdien — utelater du det, blir aktiviteten omdøpt til endepunktets standardnavn.
  • Innstillingsblokkene et endepunkt skriver til selv, blir skrevet helt på nytt, så en oppdatering nullstiller også disse til verdiene du sender, eller til endepunktets standardverdier.
  • Du kan bare oppdatere aktiviteter din egen konto eier. En annens nøkkel svarer 403.
  • En oppdatering koster det samme som en opprettelse: ett kall av dagens kvote.

Hastighetsgrense

10
10 aktiviteter per konto per dag

Hvert vellykkede kall telles, opprettelser og oppdateringer likt. Går du over, svarer neste forespørsel 429 helt til telleren nullstilles.

Telleren nullstilles én gang om dagen av en planlagt jobb, ikke over et rullerende 24-timersvindu.

Feil

Feil kommer alltid som JSON med de samme to feltene, aldri som en HTML-side. Feilmeldingen er skrevet for at et menneske skal kunne lese den — den navngir feltet eller grensen som feilet.

StatusHva det betyr
400
Bad Request
Noe i forespørselsteksten mangler, er feil formatert eller utenfor gyldig område. Meldingen navngir feltet.
401
Unauthorized
E-postadressen er ukjent, eller nøkkelen tilhører ikke den kontoen.
403
Forbidden
activity_key du sendte, tilhører en annen konto.
429
Too Many Requests
Dagens kvote er brukt opp. Den nullstilles én gang om dagen.
500
Server Error
Generatoren klarte ikke å bygge en oppgave av det du sendte inn — vanligvis for få ord, eller ord som ikke kan settes sammen.

Endepunkter

Én sti per aktivitetstype, alle POST, alle under samme base-URL. Hver av dem lister opp innholdet den trenger, innstillingene den leser og en forespørsel du kan kjøre.

Ord og bokstaver

Kryssord

Fletter svarene dine sammen i et rutenett og nummererer definisjonene for deg.

#
POST /api/public/v1/crossword Minst 2 i items
Innhold

En liste med ord. Hver oppføring parer svaret med definisjonen som peker på det.

Faller tilbake til navnet “Crossword API”

Verdt å vite
  • Svar som er kortere enn to tegn, blir fjernet før rutenettet bygges, og minst to må overleve det.
  • Svarene skrives med store bokstaver, og generatoren får tjue forsøk på å plassere dem. Klarer den ikke å plassere et eneste ord, svarer kallet 500.
Eksempelforespørsel
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": "no",
  "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"
    }
  ]
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}

Ordsøk

Skjuler ordene dine i et bokstavrutenett, i retningene og formen du velger.

#
POST /api/public/v1/wordseeker Minst 2 i items
Innhold

En liste med ord. Definisjonsteksten blir ordlisten spillerne jobber ut fra.

Faller tilbake til navnet “Wordseeker API”

Verdt å vite
  • Svar under to tegn blir fjernet, og alle svar skrives med store bokstaver før de legges inn i rutenettet.
  • Rutenettet fylles ut med latinske bokstaver med mindre language er "ar", som bytter fyllet til arabisk.
Innstillinger den leser
FeltTypeHva det gjør
hidden_solution
valgfritt i settings
string
stringDe resterende bokstavene staver dette. Setter du den, ber du også generatoren om å plassere løsningen først i stedet for å presse inn flest mulig ord.
directions
valgfritt i settings
string[]
string[]Hvilke retninger et ord kan gå i. Utelater du den, går ordene bare østover, sørøstover og sørover.
Én av westeastnorthsouthnorthwestnortheastsouthwestsoutheast
Standard: ["east", "southeast", "south"]
template
valgfritt i settings
string
stringKutter rutenettet til en form i stedet for å la det være kvadratisk.
Én av squarecirclecrossdiamondpyramidsmileystarcross_plus
Eksempelforespørsel
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": "no",
  "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"
  }
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordseeker/embed?p=-Nq8sample_activity_key",
  "message": "Wordseeker created successfully"
}

Akrostikon

Stabler svarene dine slik at én kolonne staver et skjult ord.

#
POST /api/public/v1/acrostic Minst 1 i items
Innhold

En liste med ord. Sammen må de gi hver eneste bokstav i det skjulte ordet.

Faller tilbake til navnet “Acrostic API”

Verdt å vite
  • Hvis svarene ikke kan gi bokstavene løsningen trenger, svarer kallet 500 i stedet for å lagre et halvferdig rutenett.
  • Generatoren endrer rekkefølgen på svarene dine for at kolonnen skal fungere, så rekkefølgen du sender, er ikke rekkefølgen spillerne ser.
Innstillinger den leser
FeltTypeHva det gjør
hidden_solution
obligatorisk i settings
string
stringOrdet den uthevede kolonnen staver. Dette endepunktet kjører ikke uten den.
Eksempelforespørsel
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": "no",
  "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"
  }
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/acrostic/embed?p=-Nq8sample_activity_key",
  "message": "Acrostic created successfully"
}

Bokstavsalat

api_e_word_scramble

#
POST /api/public/v1/word-scramble Minst 1 i items
Innhold

api_c_word_scramble

Faller tilbake til navnet “Word Scramble API”

Verdt å vite
  • Aktiviteter laget gjennom API-et har alltid innstillingen for å stokke rekkefølgen slått på, så rekkefølgen du sender, er ikke rekkefølgen spillerne får.
Innstillinger den leser
FeltTypeHva det gjør
hidden_solution
valgfritt i settings
string
stringEt valgfritt bonusord spillerne skriver inn når resten er løst.
Eksempelforespørsel
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": "no",
  "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"
  }
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/word-scramble/embed?p=-Nq8sample_activity_key",
  "message": "Word Scramble created successfully"
}

Galgelek

Gjør ordene eller setningene dine om til runder der du gjetter bokstaver.

#
POST /api/public/v1/hangman Minst 1 i items
Innhold

En liste med ord eller korte setninger. Ledetråden er tipset spillerne ser.

Faller tilbake til navnet “Hangman API”

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

Wordle

Lager et gjett-ordet-spill av hvert ord du sender.

#
POST /api/public/v1/wordle Minst 1 i items
Innhold

En liste med ord. Spillerne får én runde per ord.

Faller tilbake til navnet “Wordle API”

Verdt å vite
  • Laget med innstillingen for å sjekke at gjettene er ekte ord, slått på. Slå den av i editoren hvis ordene dine er navn eller oppdiktet.
Eksempelforespørsel
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": "no",
  "items": [
    {
      "answer": "MELON",
      "description": "Sweet and green",
      "type": "text"
    },
    {
      "answer": "PEACH",
      "description": "Fuzzy and orange",
      "type": "text"
    }
  ]
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordle/embed?p=-Nq8sample_activity_key",
  "message": "Wordle created successfully"
}

Tastaturtrening

api_e_typing_practice

#
POST /api/public/v1/typing-practice Minst 1 i items
Innhold

api_c_typing_practice

Faller tilbake til navnet “Typing Practice API”

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

Lykkehjul

api_e_wheel_of_fortune

#
POST /api/public/v1/wheel-of-fortune Minst 1 i items
Innhold

api_c_wheel_of_fortune

Faller tilbake til navnet “Wheel of Fortune API”

Verdt å vite
  • Laget med “vis utfallet bare i hjulet”, så resultatet leses av hjulet i stedet for å bli annonsert ved siden av det.
Eksempelforespørsel
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": "no",
  "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"
    }
  ]
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wheel-of-fortune/embed?p=-Nq8sample_activity_key",
  "message": "Wheel of Fortune created successfully"
}
Kort og par

Memory

Kort som ligger med baksiden opp, og som skal snus og matches i par.

#
POST /api/public/v1/memory Minst 2 i items
Innhold

En liste med par. Hvert par inneholder de to kortene som hører sammen.

Faller tilbake til navnet “Memory Game API”

Verdt å vite
  • Et kort er et objekt med en type og en value. Bruk "text" for ord, eller "image", "audio", "youtube" eller "link" med en URL i value, og legg til alt for en beskrivelse.
Eksempelforespørsel
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": "no",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/memory/embed?p=-Nq8sample_activity_key",
  "message": "Memory game created successfully"
}

Koblingsspill

api_e_matching_pairs

#
POST /api/public/v1/matching-pairs Minst 2 i items
Innhold

api_c_matching_pairs

Faller tilbake til navnet “Matching Game API”

Verdt å vite
  • Et kort er et objekt med en type og en value. Bruk "text" for ord, eller "image", "audio", "youtube" eller "link" med en URL i value, og legg til alt for en beskrivelse.
Eksempelforespørsel
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": "no",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/matching-pairs/embed?p=-Nq8sample_activity_key",
  "message": "Matching pairs game created successfully"
}

Puggekort

api_e_flash_cards

#
POST /api/public/v1/flash-cards Minst 1 i items
Innhold

api_c_flash_cards

Faller tilbake til navnet “Flash Cards API”

Verdt å vite
  • Endepunktet lagrer like mange kort som du sender, så send nøyaktig to per oppføring — forside, så bakside.
  • Et kort er et objekt med en type og en value. Bruk "text" for ord, eller "image", "audio", "youtube" eller "link" med en URL i value, og legg til alt for en beskrivelse.
Eksempelforespørsel
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": "no",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/flash-cards/embed?p=-Nq8sample_activity_key",
  "message": "Flash Cards created successfully"
}

Sorteringsoppgave

Kort som skal sorteres i riktig kategori.

#
POST /api/public/v1/categorize Minst 2 i items
Innhold

En liste med kategorier, hver med et navn og kortene som hører til i den.

Faller tilbake til navnet “Categorize Game API”

Verdt å vite
  • En kategori sendt uten navn, lagres som “Kategori uten navn”, så send alltid et navn.
  • Et kort er et objekt med en type og en value. Bruk "text" for ord, eller "image", "audio", "youtube" eller "link" med en URL i value, og legg til alt for en beskrivelse.
Eksempelforespørsel
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": "no",
  "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"
        }
      ]
    }
  ]
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/categorize/embed?p=-Nq8sample_activity_key",
  "message": "Categorize game created successfully"
}

Rekkefølgeoppgave

En rekkefølge spillerne må sette tilbake i riktig rekkefølge.

#
POST /api/public/v1/reorder Minst 1 i items
Innhold

En liste med rekkefølger. Hver av dem inneholder kortene sine i riktig rekkefølge.

Faller tilbake til navnet “Reorder Game API”

Verdt å vite
  • Rekkefølgen du sender, lagres som den riktige rekkefølgen — nummer én først.
  • Et kort er et objekt med en type og en value. Bruk "text" for ord, eller "image", "audio", "youtube" eller "link" med en URL i value, og legg til alt for en beskrivelse.
Eksempelforespørsel
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": "no",
  "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"
        }
      ]
    }
  ]
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/reorder/embed?p=-Nq8sample_activity_key",
  "message": "Reorder game created successfully"
}
Spørsmål og svar

Quiz

Flervalgsspørsmål og åpne spørsmål, som poengsettes underveis.

#
POST /api/public/v1/quiz Minst 1 i items
Innhold

En liste med spørsmål. Flervalgsspørsmål har svarene sine med seg; åpne spørsmål har svaret du godtar.

Faller tilbake til navnet “Quiz API”

Verdt å vite
  • question_type er enten "multiple_choice", der det riktige alternativet har isCorrect satt til true, eller "open_answer", som bruker correct_answer i stedet. Utelates det, behandles det som flervalg.
  • Quiz-endepunktet sender settings rett gjennom som blokker med aktivitetsinnstillinger, så det er ikke stedet for løse valg — juster quizen i editoren etterpå.
Eksempelforespørsel
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": "no",
  "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."
    }
  ]
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/quiz/embed?p=-Nq8sample_activity_key",
  "message": "Quiz created successfully"
}

Brettspill

api_e_board_game

#
POST /api/public/v1/board-game Minst 1 i items
Innhold

api_c_board_game

Faller tilbake til navnet “Board Game API”

Verdt å vite
  • question_type er enten "multiple_choice", der det riktige alternativet har isCorrect satt til true, eller "open_answer", som bruker correct_answer i stedet. Utelates det, behandles det som flervalg.
Innstillinger den leser
FeltTypeHva det gjør
number_of_tiles
valgfritt i settings
number
numberHvor mange ruter brettet har. Mellom 10 og 75.
Standard: 30
game_mode
valgfritt i settings
string
stringOm spillerne kappløper til mål eller samler gjenstander underveis.
Én av race_to_finishcollect_items
Standard: "race_to_finish"
Eksempelforespørsel
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": "no",
  "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"
  }
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/board-game/embed?p=-Nq8sample_activity_key",
  "message": "Board Game created successfully"
}
Setninger og tall

Kryptogram

Gjør en setning om til en kode som skal knekkes, ett tegn av gangen.

#
POST /api/public/v1/cryptogram Tar ikke imot items
Innhold

Én setning, i feltet sentence. Dette endepunktet tar ikke imot items.

Faller tilbake til navnet “Cryptogram API”

Verdt å vite
  • Alt du sender i items, blir ignorert — oppgaven bygges bare fra setningen.
Innstillinger den leser
FeltTypeHva det gjør
sentence
obligatorisk
string
stringSetningen som skal krypteres. Spillerne dekoder den tegn for tegn.
helpers
valgfritt i settings
string
stringHvilke tegn som avsløres gratis som en vei inn: ingen, de vanligste, vokalene, eller de du lister opp selv.
Én av nonemost_commonvowelscustom
Standard: "none"
character_list
valgfritt i settings
string
stringAlfabetet krypteringen bygges fra. La det stå tomt, så velger krypteringen sitt eget.
extra_letters
valgfritt i settings
string
stringTegnene som avsløres når helpers er "custom". Ignoreres for de andre hjelpemodusene.
hide_unused_characters
valgfritt i settings
boolean
booleanUtelater tegn setningen aldri bruker, fra nøkkelen.
Standard: false
Eksempelforespørsel
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": "no",
  "sentence": "An apple a day keeps the doctor away",
  "settings": {
    "helpers": "vowels",
    "hide_unused_characters": false
  }
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/cryptogram/embed?p=-Nq8sample_activity_key",
  "message": "Cryptogram created successfully"
}

Regneoppgave

Skjuler en setning bak regnestykker — løs regnestykket, avslør bokstaven.

#
POST /api/public/v1/calculation Tar ikke imot items
Innhold

Én setning, i feltet sentence. Dette endepunktet tar ikke imot items.

Faller tilbake til navnet “Calculation Game API”

Verdt å vite
  • Hvis begrensningene er for stramme til å kode setningen, svarer kallet 400 og ber deg løsne på dem, i stedet for å lagre en halvferdig oppgave.
Innstillinger den leser
FeltTypeHva det gjør
sentence
obligatorisk
string
stringSetningen spillerne avdekker ved å løse regnestykkene.
difficulty_level
valgfritt i settings
number
numberDet høyeste svaret et regnestykke har lov til å ha.
Én av 20501001000
Standard: "100"
operators
valgfritt i settings
string[]
string[]Hvilke regneoperasjoner som kan forekomme. x er gange, : er dele.
Én av +-x:
Standard: ["+", "-", "x", ":"]
max_operations
valgfritt i settings
number
numberHvor mange operasjoner ett regnestykke kan kjede sammen.
Én av 123
Standard: 1
number_difficulty
valgfritt i settings
number
numberSetter et tak på enkelttallene inni et regnestykke. Fra 5 til 1000.
Standard: 100
Eksempelforespørsel
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": "no",
  "sentence": "Fruit salad for everyone",
  "settings": {
    "difficulty_level": "100",
    "operators": [
      "+",
      "-",
      "x",
      ":"
    ],
    "max_operations": 1,
    "number_difficulty": 100
  }
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/calculation/embed?p=-Nq8sample_activity_key",
  "message": "Calculation game created successfully"
}

Sudoku

Genererer et løst rutenett, og tar deretter tallene ut igjen.

#
POST /api/public/v1/sudoku Tar ikke imot items
Innhold

Ingenting. Hele oppgaven kommer fra de to innstillingene.

Faller tilbake til navnet “Sudoku API”

Verdt å vite
  • Ikke send items eller sentence — size og difficulty er hele inndataen.
  • Editoren tilbyr bare vanskelighetsgrad for 2x3, 3x3 og 3x4. API-et bruker den på alle størrelser, inkludert 2x2 og 4x4.
Innstillinger den leser
FeltTypeHva det gjør
size
valgfritt i settings
string
stringStørrelsen på én blokk, skrevet som rader ganger kolonner — 3x3 gir det klassiske 9x9-rutenettet. Endepunktet sjekker bare at det kan tolkes som to tall, så hold deg til størrelsene editoren tilbyr.
Én av 2x22x33x33x44x4
Standard: "3x3"
difficulty_level
valgfritt i settings
string
stringHvor mange tall som blir stående igjen i rutenettet som utgangspunkt.
Én av easynormalhard
Standard: "normal"
Eksempelforespørsel
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": "no",
  "settings": {
    "size": "3x3",
    "difficulty_level": "normal"
  }
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/sudoku/embed?p=-Nq8sample_activity_key",
  "message": "Sudoku created successfully"
}
Bilder

Puslespill

Kutter et bilde opp i brikker som skal dras sammen igjen.

#
POST /api/public/v1/jigsaw Tar ikke imot items
Innhold

Én bilde-URL, i feltet image. Dette endepunktet tar ikke imot items.

Faller tilbake til navnet “Jigsaw Game API”

Verdt å vite
  • API-et lager alltid et puslespill på 4 ganger 4. Antall brikker, uregelmessige brikker og rette kanter er innstillinger i editoren — å sende rader eller kolonner her gjør ingenting.
  • URL-en lagres slik du sendte den, og filen blir aldri kopiert, så den må forbli offentlig tilgjengelig så lenge aktiviteten spilles.
Innstillinger den leser
FeltTypeHva det gjør
image
obligatorisk
string
stringAbsolutt URL til bildet som skal kuttes opp. Sendes på øverste nivå, ikke inni settings.
Eksempelforespørsel
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": "no",
  "image": "https://example.com/orchard.jpg"
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/jigsaw/embed?p=-Nq8sample_activity_key",
  "message": "Jigsaw game created successfully"
}

Skyvepuslespill

Blander et bilde om til brikker som skyves på plass.

#
POST /api/public/v1/slidingpuzzle Tar ikke imot items
Innhold

Én bilde-URL, inni settings. Dette endepunktet tar ikke imot items.

Faller tilbake til navnet “Sliding Puzzle API”

Verdt å vite
  • I motsetning til puslespillet leser dette endepunktet bildet sitt fra settings.image. Et image-felt på øverste nivå blir ignorert, og kallet svarer 400.
  • URL-en lagres slik du sendte den, og filen blir aldri kopiert, så den må forbli offentlig tilgjengelig så lenge aktiviteten spilles.
Innstillinger den leser
FeltTypeHva det gjør
image
obligatorisk i settings
string
stringAbsolutt URL til bildet som skal blandes. I motsetning til puslespillets ligger dette inni settings.
Eksempelforespørsel
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": "no",
  "settings": {
    "image": "https://example.com/orchard.jpg"
  }
}'
Vellykket
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/slidingpuzzle/embed?p=-Nq8sample_activity_key",
  "message": "Sliding puzzle created successfully"
}

Noe som ikke oppfører seg?

Send forespørselen du prøvde, og feilen du fikk tilbake, så får du et ordentlig svar — fra personen som skrev endepunktet.

E-post til support