Μετάβαση στο περιεχόμενο
API για προγραμματιστές

Δημιούργησε δραστηριότητες από το δικό σου σύστημα

Ένα POST ανά τύπο δραστηριότητας. Στέλνεις το περιεχόμενό σου σε JSON και παίρνεις πίσω μια δραστηριότητα στον λογαριασμό σου στο Puzzel.org και ένα URL που μπορείς να δώσεις στους παίκτες ή να βάλεις σε ένα iframe.

Βασικό URL
https://puzzel.org/api/public/v1
Ταυτοποίηση
Κλειδί + email στο σώμα
Endpoints
38 τύποι δραστηριοτήτων
Όριο
10 δραστηριότητες την ημέρα

Το πρώτο σου αίτημα

Δεν χρειάζεται εγκατάσταση ούτε handshake: στέλνεις ένα σώμα JSON με το κλειδί σου, το email σου και το περιεχόμενό σου. Η απάντηση περιέχει το κλειδί της νέας δραστηριότητας και το URL στο οποίο παίζεται.

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": "gr",
  "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"
    }
  ]
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}

Κάθε παράδειγμα σε αυτή τη σελίδα είναι ένα πλήρες αίτημα που τρέχει όπως είναι. Βάλε το δικό σου κλειδί και το δικό σου περιεχόμενο και δουλεύει αμέσως.

Έλεγχος ταυτότητας

Δεν υπάρχουν headers ούτε bearer token. Και τα δύο διαπιστευτήρια ταξιδεύουν μέσα στο σώμα JSON κάθε αιτήματος, και το κλειδί γίνεται δεκτό μόνο για τον λογαριασμό στον οποίο ανήκει αυτό το email.

ΠεδίοΤύποςΤι κάνει
account_api_key
υποχρεωτικό
string
stringΤο κλειδί API του λογαριασμού σου. Πηγαίνει στο σώμα, όχι σε header.
email
υποχρεωτικό
string
stringΗ διεύθυνση με την οποία συνδέεται ο λογαριασμός σου στο Puzzel.org. Το κλειδί ισχύει μόνο μαζί με αυτήν.

Το κλειδί σου βρίσκεται στην ενότητα λογαριασμού του πίνακα ελέγχου, πίσω από το κουμπί Εμφάνιση.

Σύνδεση

Τα κλειδιά API δίνονται όταν ξεκινά μια συνδρομή, οπότε ένας δωρεάν λογαριασμός δεν έχει ακόμη.

Δες τα προγράμματα

Φύλαξε το κλειδί σαν κωδικό πρόσβασης. Δημιουργεί και αντικαθιστά δραστηριότητες στον λογαριασμό σου, γι' αυτό κράτησέ το στον server και μακριά από οτιδήποτε μπορεί να διαβάσει ένας περιηγητής.

Το σώμα του αιτήματος

Κάθε endpoint δέχεται τα ίδια πέντε πεδία. Αυτό που αλλάζει είναι το πεδίο περιεχομένου από κάτω: τα περισσότερα δέχονται έναν πίνακα items, μερικά μία πρόταση ή μία εικόνα, και το Sudoku δεν δέχεται απολύτως τίποτα.

ΠεδίοΤύποςΤι κάνει
account_api_key
υποχρεωτικό
string
stringΤο κλειδί API του λογαριασμού σου. Πηγαίνει στο σώμα, όχι σε header.
email
υποχρεωτικό
string
stringΗ διεύθυνση με την οποία συνδέεται ο λογαριασμός σου στο Puzzel.org. Το κλειδί ισχύει μόνο μαζί με αυτήν.
title
προαιρετικό
string
stringΤο όνομα που παίρνει η δραστηριότητα στον πίνακα ελέγχου σου. Άφησέ το κενό και το endpoint χρησιμοποιεί το δικό του εφεδρικό όνομα.
language
προαιρετικό
string
stringΚαθορίζει μόνο τη γλώσσα στο URL που παίρνεις πίσω — δεν μεταφράζει τίποτα από όσα στέλνεις. Το κρυπτόλεξο το διαβάζει επίσης για να αλλάξει τα γράμματα γεμίσματος σε αραβικά όταν είναι "ar".
Προεπιλογή: "en"
activity_key
προαιρετικό
string
stringΆφησέ το κενό για να δημιουργηθεί νέα δραστηριότητα. Δώσε το κλειδί μιας που ήδη σου ανήκει και τότε ξαναδημιουργείται εκείνη.

Το settings είναι ένα αντικείμενο με επιλογές ανά endpoint. Ποιες διαβάζει το κάθε endpoint αναφέρεται μαζί του παρακάτω· οτιδήποτε άλλο βάλεις εκεί αγνοείται.

Τι παίρνεις πίσω

Μια επιτυχημένη κλήση απαντά 200 με το κλειδί της νέας δραστηριότητας και το URL στο οποίο παίζεται. Οτιδήποτε άλλο απαντά με το success σε false και ένα μόνο string σφάλματος.

Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}
Αποτυχία
{
  "success": false,
  "error": "Invalid Email or API Key"
}

Το url που παίρνεις πίσω είναι η προβολή ενσωμάτωσης. Άλλαξε το embed σε play για να ανοίξει σε ολόκληρη τη σελίδα ή σε build για να ανοίξει στον επεξεργαστή — το κλειδί μετά το p= μένει το ίδιο.

Δημιουργία ή ενημέρωση

Στέλνεις activity_key και η δραστηριότητα πίσω από αυτό ξαναδημιουργείται επιτόπου: το περιεχόμενό της αντικαθίσταται, το όνομα και η σήμανση έκδοσης ανανεώνονται και το ίδιο το κλειδί μένει το ίδιο — έτσι οι σύνδεσμοι και οι ενσωματώσεις που έχεις ήδη κοινοποιήσει συνεχίζουν να δουλεύουν. Τα αποτελέσματα, ο φάκελος στον οποίο βρίσκεται και κάθε ρύθμιση που δεν γράφει το ίδιο το endpoint μένουν όπως ήταν.

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 εφαρμόζεται σε κάθε ενημέρωση, μαζί με την προεπιλογή του — άφησέ το κενό και η δραστηριότητα μετονομάζεται στο εφεδρικό όνομα εκείνου του endpoint.
  • Τα μπλοκ ρυθμίσεων που γράφει το ίδιο το endpoint ξαναγράφονται από την αρχή, οπότε μια ενημέρωση τα επαναφέρει κι αυτά στις τιμές που στέλνεις ή στις προεπιλογές του endpoint.
  • Μπορείς να ενημερώσεις μόνο δραστηριότητες που ανήκουν στον δικό σου λογαριασμό. Το κλειδί κάποιου άλλου απαντά 403.
  • Μια ενημέρωση κοστίζει όσο και μια δημιουργία: μία κλήση από το σημερινό όριο.

Όριο κλήσεων

10
10 δραστηριότητες ανά λογαριασμό την ημέρα

Κάθε επιτυχημένη κλήση μετράει, δημιουργίες και ενημερώσεις το ίδιο. Αν το ξεπεράσεις, το επόμενο αίτημα απαντά 429 μέχρι να μηδενιστεί ο μετρητής.

Ο μετρητής μηδενίζεται μία φορά την ημέρα από μια προγραμματισμένη εργασία, όχι με κυλιόμενο παράθυρο 24 ωρών.

Σφάλματα

Τα σφάλματα έρχονται πάντα ως JSON με τα ίδια δύο πεδία, ποτέ ως σελίδα HTML. Το string του σφάλματος είναι γραμμένο για να το διαβάσει άνθρωπος — ονομάζει το πεδίο ή το όριο που απέτυχε.

ΚατάστασηΤι σημαίνει
400
Bad Request
Κάτι στο σώμα λείπει, είναι λάθος διατυπωμένο ή εκτός ορίων. Το μήνυμα ονομάζει το πεδίο.
401
Unauthorized
Το email είναι άγνωστο ή το κλειδί δεν ανήκει σε αυτόν τον λογαριασμό.
403
Forbidden
Το activity_key που έστειλες ανήκει σε άλλον λογαριασμό.
429
Too Many Requests
Το σημερινό όριο εξαντλήθηκε. Μηδενίζεται μία φορά την ημέρα.
500
Server Error
Η γεννήτρια δεν μπόρεσε να δημιουργήσει γρίφο από αυτά που έστειλες — συνήθως πολύ λίγες λέξεις ή λέξεις που δεν ταιριάζουν μεταξύ τους.

Endpoints

Μία διαδρομή ανά τύπο δραστηριότητας, όλες POST, όλες κάτω από το ίδιο βασικό URL. Καθεμιά αναφέρει το περιεχόμενο που χρειάζεται, τις ρυθμίσεις που διαβάζει και ένα αίτημα που μπορείς να τρέξεις.

Λέξεις και γράμματα

Σταυρόλεξο

Πλέκει τις απαντήσεις σου σε ένα πλέγμα και αριθμεί τους ορισμούς για σένα.

#
POST /api/public/v1/crossword 2 έως 80 στο items
Περιεχόμενο

Ένας πίνακας λέξεων. Κάθε εγγραφή συνδυάζει την απάντηση με τον ορισμό που δείχνει προς αυτήν.

Πέφτει πίσω στο όνομα “Crossword API”

Καλό είναι να ξέρεις
  • Οι απαντήσεις με λιγότερους από δύο χαρακτήρες αφαιρούνται πριν δημιουργηθεί το πλέγμα, και πρέπει να μείνουν τουλάχιστον δύο.
  • Οι απαντήσεις μετατρέπονται σε κεφαλαία και η γεννήτρια έχει είκοσι προσπάθειες να τις τοποθετήσει. Αν δεν καταφέρει να τοποθετήσει ούτε μία λέξη, η κλήση απαντά 500.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
hidden_solution
προαιρετικό στο settings
string
stringΜια προαιρετική λέξη μπόνους. Τα γράμματά της σημαδεύονται σε κελιά του έτοιμου πλέγματος, για να τα μαζέψουν οι παίκτες μόλις λυθεί το σταυρόλεξο, γι' αυτό κάθε γράμμα της πρέπει να υπάρχει στις απαντήσεις.
Παράδειγμα αιτήματος
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": "gr",
  "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"
    }
  ]
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}

Κρυπτόλεξο

Κρύβει τις λέξεις σου σε ένα πλέγμα γραμμάτων, στις κατευθύνσεις και στο σχήμα που διαλέγεις.

#
POST /api/public/v1/wordseeker 2 έως 40 στο items
Περιεχόμενο

Ένας πίνακας λέξεων. Το κείμενο του ορισμού γίνεται η λίστα λέξεων με την οποία δουλεύουν οι παίκτες.

Πέφτει πίσω στο όνομα “Wordseeker API”

Καλό είναι να ξέρεις
  • Οι απαντήσεις κάτω από δύο χαρακτήρες αφαιρούνται και κάθε απάντηση μετατρέπεται σε κεφαλαία πριν μπει στο πλέγμα.
  • Το πλέγμα γεμίζει με λατινικά γράμματα, εκτός αν το language είναι "ar", που αλλάζει το γέμισμα σε αραβικά.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
hidden_solution
προαιρετικό στο settings
string
stringΤα γράμματα που περισσεύουν σχηματίζουν αυτό. Αν το ορίσεις, η γεννήτρια τοποθετεί πρώτα τη λύση αντί να στριμώξει όσες περισσότερες λέξεις μπορεί.
directions
προαιρετικό στο settings
string[]
string[]Προς ποιες κατευθύνσεις επιτρέπεται να τρέχει μια λέξη. Άφησέ το κενό και οι λέξεις τρέχουν μόνο ανατολικά, νοτιοανατολικά και νότια.
Ένα από westeastnorthsouthnorthwestnortheastsouthwestsoutheast
Προεπιλογή: ["east", "southeast", "south"]
template
προαιρετικό στο settings
string
stringΚόβει το πλέγμα σε ένα σχήμα αντί να το αφήνει τετράγωνο.
Ένα από squarecirclecrossdiamondpyramidsmileystarcross_plus
Παράδειγμα αιτήματος
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": "gr",
  "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"
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordseeker/embed?p=-Nq8sample_activity_key",
  "message": "Wordseeker created successfully"
}

Ακροστιχίδα

Στοιβάζει τις απαντήσεις σου ώστε μια στήλη να σχηματίζει μια κρυμμένη λέξη.

#
POST /api/public/v1/acrostic 1 έως 40 στο items
Περιεχόμενο

Ένας πίνακας λέξεων. Όλες μαζί πρέπει να δίνουν κάθε γράμμα της κρυμμένης λέξης.

Πέφτει πίσω στο όνομα “Acrostic API”

Καλό είναι να ξέρεις
  • Αν οι απαντήσεις δεν δίνουν τα γράμματα που χρειάζεται η λύση, η κλήση απαντά 500 αντί να αποθηκεύσει ένα μισοφτιαγμένο πλέγμα.
  • Η γεννήτρια αναδιατάσσει τις απαντήσεις σου για να δουλέψει η στήλη, οπότε η σειρά που στέλνεις δεν είναι η σειρά που βλέπουν οι παίκτες.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
hidden_solution
υποχρεωτικό στο settings
string
stringΗ λέξη που σχηματίζει η τονισμένη στήλη. Αυτό το endpoint δεν λειτουργεί χωρίς αυτήν.
Παράδειγμα αιτήματος
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": "gr",
  "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"
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/acrostic/embed?p=-Nq8sample_activity_key",
  "message": "Acrostic created successfully"
}

Ανακατεμένες λέξεις

api_e_word_scramble

#
POST /api/public/v1/word-scramble 1 έως 40 στο items
Περιεχόμενο

api_c_word_scramble

Πέφτει πίσω στο όνομα “Word Scramble API”

Καλό είναι να ξέρεις
  • Οι δραστηριότητες που δημιουργούνται μέσω του API έχουν πάντα ενεργή τη ρύθμιση ανακατέματος της σειράς, οπότε η σειρά που στέλνεις δεν είναι η σειρά που παίρνουν οι παίκτες.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
hidden_solution
προαιρετικό στο settings
string
stringΜια προαιρετική λέξη μπόνους που συμπληρώνουν οι παίκτες μόλις λυθούν τα υπόλοιπα.
Παράδειγμα αιτήματος
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": "gr",
  "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"
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/word-scramble/embed?p=-Nq8sample_activity_key",
  "message": "Word Scramble created successfully"
}

Κρεμάλα

Μετατρέπει τις λέξεις ή τις φράσεις σου σε γύρους μαντέματος γραμμάτων.

#
POST /api/public/v1/hangman 1 έως 50 στο items
Περιεχόμενο

Ένας πίνακας λέξεων ή σύντομων φράσεων. Η ένδειξη είναι η υπόδειξη που βλέπουν οι παίκτες.

Πέφτει πίσω στο όνομα “Hangman API”

Παράδειγμα αιτήματος
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": "gr",
  "items": [
    {
      "answer": "BANANA",
      "description": "A long yellow fruit",
      "type": "text"
    }
  ]
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/hangman/embed?p=-Nq8sample_activity_key",
  "message": "Hangman created successfully"
}

Wordle

Φτιάχνει ένα παιχνίδι μαντέματος λέξης από κάθε λέξη που στέλνεις.

#
POST /api/public/v1/wordle 1 έως 50 στο items
Περιεχόμενο

Ένας πίνακας λέξεων. Οι παίκτες παίρνουν έναν γύρο ανά λέξη.

Πέφτει πίσω στο όνομα “Wordle API”

Καλό είναι να ξέρεις
  • Δημιουργείται με ενεργή τη ρύθμιση ελέγχου ότι οι λέξεις που μαντεύονται είναι υπαρκτές. Απενεργοποίησέ την στον επεξεργαστή αν οι λέξεις σου είναι ονόματα ή επινοημένες.
Παράδειγμα αιτήματος
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": "gr",
  "items": [
    {
      "answer": "MELON",
      "description": "Sweet and green",
      "type": "text"
    },
    {
      "answer": "PEACH",
      "description": "Fuzzy and orange",
      "type": "text"
    }
  ]
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordle/embed?p=-Nq8sample_activity_key",
  "message": "Wordle created successfully"
}

Εξάσκηση στην πληκτρολόγηση

api_e_typing_practice

#
POST /api/public/v1/typing-practice 1 έως 50 στο items
Περιεχόμενο

api_c_typing_practice

Πέφτει πίσω στο όνομα “Typing Practice API”

Παράδειγμα αιτήματος
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": "gr",
  "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"
    }
  ]
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/typing-practice/embed?p=-Nq8sample_activity_key",
  "message": "Typing Practice created successfully"
}

Τροχός της τύχης

api_e_wheel_of_fortune

#
POST /api/public/v1/wheel-of-fortune 1 έως 50 στο items
Περιεχόμενο

api_c_wheel_of_fortune

Πέφτει πίσω στο όνομα “Wheel of Fortune API”

Καλό είναι να ξέρεις
  • Δημιουργείται με την επιλογή “εμφάνιση του αποτελέσματος μόνο στον τροχό”, οπότε το αποτέλεσμα διαβάζεται πάνω στον τροχό αντί να ανακοινώνεται δίπλα του.
Παράδειγμα αιτήματος
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": "gr",
  "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"
    }
  ]
}'
Επιτυχία
{
  "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"
}

Σκανδιναβικό σταυρόλεξο

Ένα σκανδιναβικό σταυρόλεξο: οι ορισμοί βρίσκονται μέσα στο πλέγμα και ο καθένας έχει ένα βέλος προς την απάντησή του.

#
POST /api/public/v1/arrowword 2 έως 80 στο items
Περιεχόμενο

Ένας πίνακας λέξεων. Κάθε εγγραφή συνδυάζει την απάντηση με έναν ορισμό αρκετά σύντομο ώστε να χωράει σε ένα κελί.

Πέφτει πίσω στο όνομα “Arrowword API”

Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
hidden_solution
προαιρετικό στο settings
string
stringΜια προαιρετική λέξη μπόνους. Τα γράμματά της σημαδεύονται σε κελιά του έτοιμου πλέγματος, γι' αυτό κάθε γράμμα της πρέπει να υπάρχει στις απαντήσεις.
Παράδειγμα αιτήματος
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": "gr",
  "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"
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/arrowword/embed?p=-Nq8sample_activity_key",
  "message": "Arrowword created successfully"
}

Strands

Ένα πλέγμα όπου κάθε γράμμα ανήκει σε μια θεματική λέξη, με μία λέξη που ονομάζει το θέμα και διασχίζει το πλέγμα από άκρη σε άκρη.

#
POST /api/public/v1/strands 2 έως 24 στο items
Περιεχόμενο

Ένας πίνακας θεματικών λέξεων. Μαζί με το spangram, τα γράμματά τους πρέπει να γεμίζουν ακριβώς ένα πλέγμα.

Πέφτει πίσω στο όνομα “Strands API”

Καλό είναι να ξέρεις
  • Τα γράμματα όλων των λέξεων και του spangram μαζί πρέπει να είναι ακριβώς 30, 35, 36, 40, 42, 45, 48, 49, 50, 54, 56, 60, 63, 64, 70, 72 ή 80. Οποιοσδήποτε άλλος αριθμός απαντά 400 και λέει πόσα γράμματα να προσθέσεις ή να αφαιρέσεις.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
theme
προαιρετικό στο settings
string
stringΤο αίνιγμα που εμφανίζεται πάνω από το πλέγμα. Αν το παραλείψεις, οι παίκτες βλέπουν τον τίτλο.
spangram
προαιρετικό στο settings
string
stringΗ λέξη ή η φράση που ονομάζει το θέμα και διασχίζει το πλέγμα από τη μία άκρη στην άλλη.
Παράδειγμα αιτήματος
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": "gr",
  "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"
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/strands/embed?p=-Nq8sample_activity_key",
  "message": "Strands created successfully"
}

Απαρίθμηση

api_e_name_them_all

#
POST /api/public/v1/name-them-all 1 έως 250 στο items
Περιεχόμενο

api_c_name_them_all

Πέφτει πίσω στο όνομα “Name Them All API”

Καλό είναι να ξέρεις
  • Μια εγγραφή είναι ένα αντικείμενο με ένα answer και, προαιρετικά, aliases (άλλες γραφές που μετρούν), ένα description (η υπόδειξη) και ένα group. Τα κεφαλαία, οι τόνοι και η στίξη αγνοούνται όταν ελέγχεται ένα όνομα.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
list_match_mode
προαιρετικό στο settings
string
stringΑν ένα όνομα μετράει τη στιγμή που πληκτρολογείται ή μόνο με το Enter.
Ένα από while_typingon_enter
Προεπιλογή: "while_typing"
list_slot_hint
προαιρετικό στο settings
string
stringΤι αποκαλύπτει μια κενή θέση: τίποτα, το μήκος του ονόματος, το πρώτο του γράμμα ή την υπόδειξη που έγραψες.
Ένα από nonelengthfirst_letterhint
Προεπιλογή: "none"
list_arrange
προαιρετικό στο settings
string
stringΜία στήλη ανά ομάδα ή μία λίστα.
Ένα από groupsone_list
Προεπιλογή: "groups"
list_allow_give_up
προαιρετικό στο settings
boolean
booleanΕμφανίζει ένα κουμπί παραίτησης που τερματίζει τον γύρο και αποκαλύπτει όσα έμειναν.
Προεπιλογή: false
Παράδειγμα αιτήματος
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": "gr",
  "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
  }
}'
Επιτυχία
{
  "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"
}
Κάρτες και ζευγάρια

Memory

Κάρτες με την όψη προς τα κάτω που γυρίζεις για να βρεις ζευγάρια.

#
POST /api/public/v1/memory 2 έως 30 στο items
Περιεχόμενο

Ένας πίνακας ζευγαριών. Κάθε ζευγάρι κρατά τις δύο κάρτες που πάνε μαζί.

Πέφτει πίσω στο όνομα “Memory Game API”

Καλό είναι να ξέρεις
  • Μια κάρτα είναι ένα αντικείμενο με ένα type και ένα value. Χρησιμοποίησε "text" για λέξεις ή "image", "audio", "youtube" ή "link" με ένα URL στο value, και πρόσθεσε alt για περιγραφή.
Παράδειγμα αιτήματος
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": "gr",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/memory/embed?p=-Nq8sample_activity_key",
  "message": "Memory game created successfully"
}

Ταίριασμα

api_e_matching_pairs

#
POST /api/public/v1/matching-pairs 2 έως 30 στο items
Περιεχόμενο

api_c_matching_pairs

Πέφτει πίσω στο όνομα “Matching Game API”

Καλό είναι να ξέρεις
  • Μια κάρτα είναι ένα αντικείμενο με ένα type και ένα value. Χρησιμοποίησε "text" για λέξεις ή "image", "audio", "youtube" ή "link" με ένα URL στο value, και πρόσθεσε alt για περιγραφή.
Παράδειγμα αιτήματος
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": "gr",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/matching-pairs/embed?p=-Nq8sample_activity_key",
  "message": "Matching pairs game created successfully"
}

Κάρτες επανάληψης

api_e_flash_cards

#
POST /api/public/v1/flash-cards 1 έως 150 στο items
Περιεχόμενο

api_c_flash_cards

Πέφτει πίσω στο όνομα “Flash Cards API”

Καλό είναι να ξέρεις
  • Το endpoint αποθηκεύει όσες κάρτες κι αν στείλεις, γι' αυτό στείλε ακριβώς δύο ανά εγγραφή — πρώτα την μπροστινή, μετά την πίσω.
  • Μια κάρτα είναι ένα αντικείμενο με ένα type και ένα value. Χρησιμοποίησε "text" για λέξεις ή "image", "audio", "youtube" ή "link" με ένα URL στο value, και πρόσθεσε alt για περιγραφή.
Παράδειγμα αιτήματος
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": "gr",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/flash-cards/embed?p=-Nq8sample_activity_key",
  "message": "Flash Cards created successfully"
}

Κατηγοριοποίηση

Κάρτες που μπαίνουν στην κατηγορία όπου ανήκουν.

#
POST /api/public/v1/categorize Τουλάχιστον 2 στο items · έως 60 κάρτες συνολικά
Περιεχόμενο

Ένας πίνακας κατηγοριών, καθεμιά με ένα όνομα και τις κάρτες που ανήκουν σε αυτήν.

Πέφτει πίσω στο όνομα “Categorize Game API”

Καλό είναι να ξέρεις
  • Μια κατηγορία που στέλνεται χωρίς όνομα αποθηκεύεται ως “Untitled Category”, γι' αυτό στείλε πάντα ένα.
  • Μια κάρτα είναι ένα αντικείμενο με ένα type και ένα value. Χρησιμοποίησε "text" για λέξεις ή "image", "audio", "youtube" ή "link" με ένα URL στο value, και πρόσθεσε alt για περιγραφή.
Παράδειγμα αιτήματος
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": "gr",
  "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"
        }
      ]
    }
  ]
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/categorize/embed?p=-Nq8sample_activity_key",
  "message": "Categorize game created successfully"
}

Αναδιάταξη

Μια ακολουθία που οι παίκτες πρέπει να βάλουν ξανά στη σωστή σειρά.

#
POST /api/public/v1/reorder Τουλάχιστον 1 στο items · έως 60 κάρτες συνολικά
Περιεχόμενο

Ένας πίνακας ακολουθιών. Καθεμιά κρατά τις κάρτες της στη σωστή σειρά.

Πέφτει πίσω στο όνομα “Reorder Game API”

Καλό είναι να ξέρεις
  • Η σειρά που στέλνεις αποθηκεύεται ως η σωστή σειρά — πρώτο το νούμερο ένα.
  • Μια κάρτα είναι ένα αντικείμενο με ένα type και ένα value. Χρησιμοποίησε "text" για λέξεις ή "image", "audio", "youtube" ή "link" με ένα URL στο value, και πρόσθεσε alt για περιγραφή.
Παράδειγμα αιτήματος
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": "gr",
  "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"
        }
      ]
    }
  ]
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/reorder/embed?p=-Nq8sample_activity_key",
  "message": "Reorder game created successfully"
}

Bingo

Ένα Bingo τάξης που το κληρώνει ο συντονιστής ζωντανά: κάθε παίκτης παίρνει μια κάρτα φτιαγμένη από τα δικά σου items.

#
POST /api/public/v1/bingo Δεν δέχεται items
Περιεχόμενο

Ένας πίνακας items από τα οποία φτιάχνονται οι κάρτες. Στείλε σαφώς περισσότερα από όσα τετράγωνα έχει μία κάρτα, ώστε οι κάρτες να διαφέρουν.

Πέφτει πίσω στο όνομα “Bingo API”

Καλό είναι να ξέρεις
  • Ένα item είναι ένα αντικείμενο με ένα value και, προαιρετικά, ένα type ("text", "image" ή "audio" με ένα URL στο value), ένα description (η ένδειξη που διαβάζει ο συντονιστής στη λειτουργία ενδείξεων) και alt.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
mode
προαιρετικό στο settings
string
stringΤι γεμίζει τα τετράγωνα: τα items σου, τα items σου κληρωμένα με την ένδειξή τους ή απλοί αριθμοί (που δεν χρειάζονται items).
Ένα από itemscluesnumbers
Προεπιλογή: "items"
rows
προαιρετικό στο settings
number
numberΓραμμές σε κάθε κάρτα, από 2 έως 5.
Προεπιλογή: 3
columns
προαιρετικό στο settings
number
numberΣτήλες σε κάθε κάρτα, από 2 έως 5.
Προεπιλογή: 3
highest_number
προαιρετικό στο settings
number
numberΣτη λειτουργία αριθμών, οι κάρτες γεμίζουν από το 1 έως αυτόν τον αριθμό, το πολύ 100. Λειτουργία πληρωμένου προγράμματος: χωρίς πρόγραμμα μένει στο 50.
Προεπιλογή: 50
Παράδειγμα αιτήματος
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": "gr",
  "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
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/bingo/embed?p=-Nq8sample_activity_key",
  "message": "Bingo created successfully"
}

Έχω, ποιος έχει

api_e_i_have_who_has

#
POST /api/public/v1/i-have-who-has 3 έως 40 στο items
Περιεχόμενο

api_c_i_have_who_has

Πέφτει πίσω στο όνομα “I Have, Who Has API”

Καλό είναι να ξέρεις
  • Καμία ερώτηση και καμία απάντηση δεν μπορεί να εμφανίζεται δύο φορές: ένας μαθητής που κρατά την απάντηση δεν θα μπορούσε να καταλάβει σε ποια ερώτηση ανήκει.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
chain_shape
προαιρετικό στο settings
string
stringΟ κύκλος κλείνει στον εαυτό του, οπότε μπορεί να ξεκινήσει οποιαδήποτε κάρτα· η γραμμή ανοίγει με μια κάρτα Start και τελειώνει με μια κάρτα End.
Ένα από loopline
Προεπιλογή: "loop"
Παράδειγμα αιτήματος
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": "gr",
  "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"
  }
}'
Επιτυχία
{
  "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"
}

Κλειδαριά με κωδικό

Μια κλειδαριά με κωδικό: ένα σύνολο καρτών, από τις οποίες μερικές μαζί αποτελούν τον κωδικό.

#
POST /api/public/v1/keypad 1 έως 30 στο items
Περιεχόμενο

Ένας πίνακας καρτών. Οι κάρτες που ανήκουν στον κωδικό φέρουν τη θέση τους μέσα σε αυτόν.

Πέφτει πίσω στο όνομα “Keypad API”

Καλό είναι να ξέρεις
  • Μια κάρτα είναι ένα αντικείμενο με ένα value και, προαιρετικά, ένα type ("text", "image" ή "audio" με ένα URL στο value), alt και code_position: η θέση της στον κωδικό, με το 1 πρώτη. Μια κάρτα μπορεί να υπάρχει στον κωδικό μία φορά, και τουλάχιστον μία κάρτα πρέπει να υπάρχει.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
instructions
προαιρετικό στο settings
string
stringΗ ερώτηση ή το αίνιγμα που απαντά ο κωδικός, εμφανίζεται μαζί με τις κάρτες.
force_solution_in_correct_order
προαιρετικό στο settings
boolean
booleanΟι κάρτες πρέπει να πατηθούν με τη σειρά. Απενεργοποιημένο, οποιαδήποτε σειρά των σωστών καρτών ανοίγει την κλειδαριά.
Προεπιλογή: false
randomize_order
προαιρετικό στο settings
boolean
booleanΚάθε παίκτης παίρνει τις κάρτες σε ανακατεμένη διάταξη.
Προεπιλογή: true
Παράδειγμα αιτήματος
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": "gr",
  "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
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/keypad/embed?p=-Nq8sample_activity_key",
  "message": "Keypad created successfully"
}

Παιχνίδι των τετράδων

Το παιχνίδι με κάρτες: οι παίκτες ζητούν κάρτες ο ένας από τον άλλον για να μαζέψουν τετράδες.

#
POST /api/public/v1/quartets 2 έως 16 στο items
Περιεχόμενο

Ένας πίνακας τετράδων. Καθεμιά έχει ένα όνομα και ακριβώς τέσσερις κάρτες.

Πέφτει πίσω στο όνομα “Quartets API”

Καλό είναι να ξέρεις
  • Μια κάρτα είναι ένα όνομα ή ένα αντικείμενο με ένα name και ένα description (το γεγονός που εμφανίζεται πάνω της). Κανένα όνομα κάρτας δεν μπορεί να εμφανίζεται δύο φορές στο παιχνίδι: οι παίκτες ζητούν τις κάρτες με το όνομά τους.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
type
προαιρετικό στο settings
string
stringΈνα απλό παιχνίδι ή ένα παιχνίδι μάθησης όπου κάθε κάρτα δείχνει ένα γεγονός. Αν παραλειφθεί, είναι learn όταν κάποια κάρτα έχει description.
Ένα από normallearn
Παράδειγμα αιτήματος
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": "gr",
  "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"
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/quartets/embed?p=-Nq8sample_activity_key",
  "message": "Quartets game created successfully"
}
Ερωτήσεις και απαντήσεις

Quiz

Ερωτήσεις πολλαπλής επιλογής και ανοιχτές ερωτήσεις, με βαθμολόγηση καθώς παίζουν οι παίκτες.

#
POST /api/public/v1/quiz 1 έως 100 στο items
Περιεχόμενο

Ένας πίνακας ερωτήσεων. Οι ερωτήσεις πολλαπλής επιλογής κρατούν τις απαντήσεις τους· οι ανοιχτές ερωτήσεις κρατούν την απάντηση που δέχεσαι.

Πέφτει πίσω στο όνομα “Quiz API”

Καλό είναι να ξέρεις
  • Το question_type είναι "multiple_choice", όπου η σωστή επιλογή έχει isCorrect true· "true_false", με τον ίδιο τρόπο αλλά με ακριβώς δύο επιλογές, πρώτα το σωστό και μετά το λάθος· ή "open_answer", που χρησιμοποιεί αντί για αυτό το correct_answer. Αν παραληφθεί, αντιμετωπίζεται ως πολλαπλής επιλογής.
  • Το endpoint του Quiz περνά τα settings κατευθείαν ως μπλοκ ρυθμίσεων της δραστηριότητας, οπότε δεν είναι μέρος για χαλαρές επιλογές — προσάρμοσε το Quiz στον επεξεργαστή μετά.
Παράδειγμα αιτήματος
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": "gr",
  "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."
    }
  ]
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/quiz/embed?p=-Nq8sample_activity_key",
  "message": "Quiz created successfully"
}

Επιτραπέζιο παιχνίδι

api_e_board_game

#
POST /api/public/v1/board-game 1 έως 100 στο items
Περιεχόμενο

api_c_board_game

Πέφτει πίσω στο όνομα “Board Game API”

Καλό είναι να ξέρεις
  • Το question_type είναι "multiple_choice", όπου η σωστή επιλογή έχει isCorrect true· "true_false", με τον ίδιο τρόπο αλλά με ακριβώς δύο επιλογές, πρώτα το σωστό και μετά το λάθος· ή "open_answer", που χρησιμοποιεί αντί για αυτό το correct_answer. Αν παραληφθεί, αντιμετωπίζεται ως πολλαπλής επιλογής.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
number_of_tiles
προαιρετικό στο settings
number
numberΠόσα τετράγωνα έχει το ταμπλό. Από 10 έως 75.
Προεπιλογή: 30
game_mode
προαιρετικό στο settings
string
stringΑν οι παίκτες τρέχουν προς τον τερματισμό ή μαζεύουν αντικείμενα στον δρόμο.
Ένα από race_to_finishcollect_items
Προεπιλογή: "race_to_finish"
Παράδειγμα αιτήματος
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": "gr",
  "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"
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/board-game/embed?p=-Nq8sample_activity_key",
  "message": "Board Game created successfully"
}

Λαβύρινθος

Ένας λαβύρινθος για να τον διασχίσεις: κάθε ερώτηση είναι ένας θάλαμος και οι απαντήσεις της είναι οι πόρτες.

#
POST /api/public/v1/maze Τουλάχιστον 1 στο items
Περιεχόμενο

Ένας πίνακας ερωτήσεων πολλαπλής επιλογής ή σωστού/λάθους, ακριβώς στη μορφή που δέχεται το endpoint του Quiz. Οι ανοιχτές ερωτήσεις απορρίπτονται: μια πόρτα χρειάζεται μια απάντηση γραμμένη πάνω της.

Πέφτει πίσω στο όνομα “Maze API”

Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
maze_width
προαιρετικό στο settings
string
stringΠώς είναι διατεταγμένοι οι θάλαμοι: σε μία στήλη, σε τετράγωνο ή πλατύτερα.
Ένα από narrownormalwide
Προεπιλογή: "normal"
maze_corridors
προαιρετικό στο settings
string
stringΠόσος λαβύρινθος μεσολαβεί ανάμεσα σε δύο ερωτήσεις.
Ένα από shortnormallong
Προεπιλογή: "normal"
maze_fog
προαιρετικό στο settings
string
stringΕμφανίζει ολόκληρο τον λαβύρινθο ή μόνο όσα έχει περάσει ο παίκτης.
Ένα από offnear
Προεπιλογή: "off"
maze_wrong_door_pause
προαιρετικό στο settings
string
stringΠόσο μένουν κλειστές οι πόρτες μετά από μια λάθος.
Ένα από noneshortlong
Προεπιλογή: "short"
maze_walk_there
προαιρετικό στο settings
boolean
booleanΠροσφέρει ένα κουμπί που μετακινεί το πιόνι στον επόμενο θάλαμο.
Προεπιλογή: false
maze_seed
προαιρετικό στο settings
string
stringΟ σπόρος από τον οποίο δημιουργείται ο λαβύρινθος. Ο ίδιος σπόρος και οι ίδιες ερωτήσεις δίνουν τον ίδιο λαβύρινθο· αν παραλειφθεί, κληρώνεται καινούργιος.
Παράδειγμα αιτήματος
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": "gr",
  "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"
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/maze/embed?p=-Nq8sample_activity_key",
  "message": "Maze created successfully"
}

Jeopardy

Ένας πίνακας τηλεπαιχνιδιού: κατηγορίες στο πάνω μέρος και από κάτω ενδείξεις που αξίζουν περισσότερο όσο χαμηλότερα βρίσκονται.

#
POST /api/public/v1/jeopardy Τουλάχιστον 2 στο items
Περιεχόμενο

Ένας πίνακας κατηγοριών, από αριστερά προς τα δεξιά. Καθεμιά έχει ένα όνομα και τις ενδείξεις της από την πάνω γραμμή προς τα κάτω.

Πέφτει πίσω στο όνομα “Jeopardy API”

Καλό είναι να ξέρεις
  • Μια ένδειξη είναι μια ερώτηση όπως τη δέχεται το endpoint του Quiz, open_answer εκτός αν λέει κάτι άλλο, με correct_answer και, προαιρετικά, aliases. Μπορεί να φέρει και value (τη δική της αξία) και daily_double. Το null αφήνει ένα κελί κενό.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
jeopardy_buzzer_mode
προαιρετικό στο settings
string
stringΠοιος παίζει πώς: ο συντονιστής το τρέχει από την κονσόλα, οι παίκτες χτυπούν το κουδούνι από τα κινητά τους ή κάθε παίκτης δουλεύει τον πίνακα μόνος του.
Ένα από hostphonessolo
Προεπιλογή: "host"
jeopardy_contestants
προαιρετικό στο settings
string
stringΑν η κονσόλα μιλά για ομάδες ή για παίκτες.
Ένα από teamsplayers
Προεπιλογή: "teams"
jeopardy_value_step
προαιρετικό στο settings
number
numberΠόσο αξίζει μια γραμμή: μια ένδειξη αξίζει αυτόν τον αριθμό επί τον αριθμό της γραμμής της. Από 50 έως 500, ανά 50.
Προεπιλογή: 100
jeopardy_answer_time
προαιρετικό στο settings
number
numberΔευτερόλεπτα για να απαντήσεις αφού ανοίξει μια ένδειξη, έως 300. Το 0 σημαίνει χωρίς χρονόμετρο.
Προεπιλογή: 20
jeopardy_wrong_answer_costs
προαιρετικό στο settings
boolean
booleanΜια λάθος απάντηση αφαιρεί την αξία της ένδειξης από τη βαθμολογία.
Προεπιλογή: false
jeopardy_reveal_on_timeout
προαιρετικό στο settings
boolean
booleanΟ πίνακας εμφανίζει ο ίδιος την απάντηση όταν τελειώσει ο χρόνος.
Προεπιλογή: false
jeopardy_require_question_form
προαιρετικό στο settings
boolean
booleanΥπενθυμίζει στους παίκτες να απαντούν με τη μορφή ερώτησης.
Προεπιλογή: false
Παράδειγμα αιτήματος
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": "gr",
  "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
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/jeopardy/embed?p=-Nq8sample_activity_key",
  "message": "Jeopardy board created successfully"
}

Διαδραστικό βίντεο

api_e_interactive_video

#
POST /api/public/v1/interactive-video 1 έως 50 στο items
Περιεχόμενο

api_c_interactive_video

Πέφτει πίσω στο όνομα “Interactive Video API”

Καλό είναι να ξέρεις
  • Ένα αναδυόμενο παράθυρο είναι ένα αντικείμενο με time (δευτερόλεπτα ή "1:23"), kind ("question" εκτός αν λέει "note", "think" ή "chapter") και description. Μια ερώτηση είναι μια ερώτηση όπως τη δέχεται το endpoint του Quiz και μπορεί να φέρει rewind_to: από πού ξαναπαίζει το βίντεο μετά από μια λάθος απάντηση.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
video_url
υποχρεωτικό στο settings
string
stringΤο βίντεο: μια σελίδα YouTube, Vimeo ή Bunny Stream ή ένας άμεσος σύνδεσμος σε αρχείο mp4, webm ή mov.
video_duration
προαιρετικό στο settings
number
numberΗ διάρκεια του βίντεο σε δευτερόλεπτα. Όταν δοθεί, ένα αναδυόμενο παράθυρο μετά το τέλος απορρίπτεται.
Παράδειγμα αιτήματος
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": "gr",
  "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
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/interactive-video/embed?p=-Nq8sample_activity_key",
  "message": "Interactive video created successfully"
}
Προτάσεις και αριθμοί

Κρυπτογράφημα

Μετατρέπει μια πρόταση σε κώδικα που σπάει χαρακτήρα προς χαρακτήρα.

#
POST /api/public/v1/cryptogram Δεν δέχεται items
Περιεχόμενο

Μία πρόταση, στο πεδίο sentence. Αυτό το endpoint δεν δέχεται items.

Πέφτει πίσω στο όνομα “Cryptogram API”

Καλό είναι να ξέρεις
  • Οτιδήποτε στείλεις στο items αγνοείται — ο γρίφος δημιουργείται μόνο από την πρόταση.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
sentence
υποχρεωτικό
string
stringΗ πρόταση που θα κρυπτογραφηθεί. Οι παίκτες την αποκωδικοποιούν χαρακτήρα προς χαρακτήρα.
helpers
προαιρετικό στο settings
string
stringΠοιοι χαρακτήρες δίνονται δωρεάν ως βοήθεια για την αρχή: κανένας, οι πιο συχνοί, τα φωνήεντα ή όσοι ορίσεις εσύ.
Ένα από nonemost_commonvowelscustom
Προεπιλογή: "none"
character_list
προαιρετικό στο settings
string
stringΤο αλφάβητο από το οποίο δημιουργείται ο κώδικας. Αν μείνει κενό, η κρυπτογράφηση διαλέγει μόνη της.
extra_letters
προαιρετικό στο settings
string
stringΟι χαρακτήρες που δίνονται όταν το helpers είναι "custom". Αγνοείται στις άλλες λειτουργίες βοήθειας.
hide_unused_characters
προαιρετικό στο settings
boolean
booleanΑφήνει έξω από το κλειδί τους χαρακτήρες που δεν χρησιμοποιεί πουθενά η πρόταση.
Προεπιλογή: false
Παράδειγμα αιτήματος
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": "gr",
  "sentence": "An apple a day keeps the doctor away",
  "settings": {
    "helpers": "vowels",
    "hide_unused_characters": false
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/cryptogram/embed?p=-Nq8sample_activity_key",
  "message": "Cryptogram created successfully"
}

Άσκηση υπολογισμών

Κρύβει μια πρόταση πίσω από πράξεις — λύνεις την πράξη, αποκαλύπτεις το γράμμα.

#
POST /api/public/v1/calculation Δεν δέχεται items
Περιεχόμενο

Μία πρόταση, στο πεδίο sentence. Αυτό το endpoint δεν δέχεται items.

Πέφτει πίσω στο όνομα “Calculation Game API”

Καλό είναι να ξέρεις
  • Αν οι περιορισμοί είναι πολύ στενοί για να κωδικοποιηθεί η πρόταση, η κλήση απαντά 400 και σου ζητά να τους χαλαρώσεις, αντί να αποθηκεύσει έναν μισοτελειωμένο γρίφο.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
sentence
υποχρεωτικό
string
stringΗ πρόταση που αποκαλύπτουν οι παίκτες λύνοντας τις πράξεις.
difficulty_level
προαιρετικό στο settings
number
numberΤο μεγαλύτερο αποτέλεσμα που επιτρέπεται να έχει μια πράξη.
Ένα από 20501001000
Προεπιλογή: "100"
operators
προαιρετικό στο settings
string[]
string[]Ποιες πράξεις μπορούν να εμφανιστούν. Το x είναι πολλαπλασιασμός, το : διαίρεση.
Ένα από +-x:
Προεπιλογή: ["+", "-", "x", ":"]
max_operations
προαιρετικό στο settings
number
numberΠόσες πράξεις μπορεί να συνδυάσει μία άσκηση.
Ένα από 123
Προεπιλογή: 1
number_difficulty
προαιρετικό στο settings
number
numberΠεριορίζει τους μεμονωμένους αριθμούς μέσα σε μια πράξη. Από 5 έως 1000.
Προεπιλογή: 100
Παράδειγμα αιτήματος
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": "gr",
  "sentence": "Fruit salad for everyone",
  "settings": {
    "difficulty_level": "100",
    "operators": [
      "+",
      "-",
      "x",
      ":"
    ],
    "max_operations": 1,
    "number_difficulty": 100
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/calculation/embed?p=-Nq8sample_activity_key",
  "message": "Calculation game created successfully"
}

Sudoku

Δημιουργεί ένα λυμένο πλέγμα και μετά αφαιρεί αριθμούς από αυτό.

#
POST /api/public/v1/sudoku Δεν δέχεται items
Περιεχόμενο

Τίποτα. Όλος ο γρίφος προκύπτει από τις δύο ρυθμίσεις του.

Πέφτει πίσω στο όνομα “Sudoku API”

Καλό είναι να ξέρεις
  • Μη στείλεις items ούτε sentence — το size και το difficulty είναι όλη η είσοδος.
  • Ο επεξεργαστής προσφέρει τη δυσκολία μόνο για 2x3, 3x3 και 3x4. Το API την εφαρμόζει σε κάθε μέγεθος, μαζί με 2x2 και 4x4.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
size
προαιρετικό στο settings
string
stringΤο μέγεθος ενός μπλοκ, γραμμένο ως γραμμές επί στήλες — το 3x3 δίνει το κλασικό πλέγμα 9x9. Το endpoint ελέγχει μόνο ότι διαβάζεται ως δύο αριθμοί, γι' αυτό μείνε στα μεγέθη που προσφέρει ο επεξεργαστής.
Ένα από 2x22x33x33x44x4
Προεπιλογή: "3x3"
difficulty_level
προαιρετικό στο settings
string
stringΠόσοι αριθμοί μένουν στο πλέγμα για να ξεκινήσεις.
Ένα από easynormalhard
Προεπιλογή: "normal"
Παράδειγμα αιτήματος
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": "gr",
  "settings": {
    "size": "3x3",
    "difficulty_level": "normal"
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/sudoku/embed?p=-Nq8sample_activity_key",
  "message": "Sudoku created successfully"
}

Πεσμένη φράση

api_e_fallen_phrase

#
POST /api/public/v1/fallen-phrase Δεν δέχεται items
Περιεχόμενο

api_c_fallen_phrase

Πέφτει πίσω στο όνομα “Fallen Phrase API”

Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
sentence
υποχρεωτικό
string
stringΗ φράση που θα κρυφτεί: ένα απόφθεγμα, μια παροιμία, μια βασική πρόταση. Έως 120 γράμματα και ψηφία.
columns
προαιρετικό στο settings
number
numberΠόσο πλατύ είναι το πλέγμα, από 8 έως 18. Όσο στενότερο, τόσο περισσότερα γράμματα στοιβάζονται σε κάθε στήλη και τόσο πιο δύσκολο γίνεται.
Προεπιλογή: 14
helpers
προαιρετικό στο settings
string
stringΠοια γράμματα μένουν στο πλέγμα ως αφετηρία: κανένα, τα πιο συχνά, τα φωνήεντα ή όσα ορίσεις εσύ.
Ένα από nonemost_commonvowelscustom
Προεπιλογή: "none"
extra_letters
προαιρετικό στο settings
string
stringΤα γράμματα που δίνονται όταν το helpers είναι "custom".
Παράδειγμα αιτήματος
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": "gr",
  "sentence": "Don't count your chickens before they hatch.",
  "settings": {
    "columns": 12,
    "helpers": "custom",
    "extra_letters": "ky"
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/fallen-phrase/embed?p=-Nq8sample_activity_key",
  "message": "Fallen phrase created successfully"
}

Προπαίδεια

api_e_times_tables

#
POST /api/public/v1/times-tables Δεν δέχεται items
Περιεχόμενο

api_c_times_tables

Πέφτει πίσω στο όνομα “Times Tables API”

Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
tables
προαιρετικό στο settings
number[]
number[]Οι προπαίδειες για εξάσκηση. Αν παραλειφθεί, είναι από 1 έως 10· με το 11 ή το 12 το πλέγμα γίνεται 12 επί 12.
Ένα από 123456789101112
order
προαιρετικό στο settings
string
stringΑν οι γραμμές και οι στήλες τρέχουν σε σειρά ή ανακατεμένες.
Ένα από ascendingshuffled
Προεπιλογή: "ascending"
picture
προαιρετικό στο settings
string
stringΗ εικόνα που χρωματίζουν οι σωστές απαντήσεις.
Ένα από sailboatheartrockettreecatfishflowerhouse
Προεπιλογή: "sailboat"
players_choose_tables
προαιρετικό στο settings
boolean
booleanΑφήνει κάθε παίκτη να διαλέξει ποιες από τις προπαίδειες θα εξασκήσει.
Προεπιλογή: false
fill_same_sums
προαιρετικό στο settings
boolean
booleanΜία σωστή απάντηση γεμίζει κάθε τετράγωνο με την ίδια πράξη.
Προεπιλογή: true
Παράδειγμα αιτήματος
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": "gr",
  "settings": {
    "tables": [
      7,
      3,
      4
    ],
    "order": "shuffled",
    "seed": "k3x9q2ab",
    "picture": "rocket",
    "players_choose_tables": true,
    "fill_same_sums": false
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/times-tables/embed?p=-Nq8sample_activity_key",
  "message": "Times tables created successfully"
}

Κείμενο με κενά

api_e_fill_in_the_gap

#
POST /api/public/v1/fill-in-the-gap 1 έως 50 στο items
Περιεχόμενο

api_c_fill_in_the_gap

Πέφτει πίσω στο όνομα “Fill in the gap API”

Καλό είναι να ξέρεις
  • Γράψε ολόκληρη την πρόταση και βάλε αστερίσκους γύρω από κάθε λέξη που θα λείπει: "Water boils at *100* degrees." Πολλές λέξεις μέσα στο ίδιο ζευγάρι είναι ένα κενό. Μια εγγραφή μπορεί να περιέχει και μια οδηγία που εμφανίζεται πάνω από την πρόταση.
Παράδειγμα αιτήματος
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": "gr",
  "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."
    }
  ]
}'
Επιτυχία
{
  "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"
}

Ανάλυση πρότασης

Προτάσεις όπου οι παίκτες βάζουν ετικέτες στις λέξεις: μέρη του λόγου, μέρη της πρότασης ή δικές σου ετικέτες.

#
POST /api/public/v1/deconstruct 1 έως 50 στο items
Περιεχόμενο

Ένας πίνακας προτάσεων. Κάθε λέξη που θα πάρει ετικέτα γράφεται ως [word](label).

Πέφτει πίσω στο όνομα “Sentence analysis API”

Καλό είναι να ξέρεις
  • Γράψε μια πρόταση ως "The [dog](noun) [barks](verb)." Οι λέξεις χωρίς ετικέτα εμφανίζονται και δεν ζητούνται. Οι ετικέτες noun, verb, adjective και subject εμφανίζονται σε κάθε παίκτη στη δική του γλώσσα.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
categories
προαιρετικό στο settings
string[]
string[]Οι ετικέτες από τις οποίες διαλέγουν οι παίκτες, με τη σειρά. Αν παραλειφθεί, είναι οι ετικέτες που χρησιμοποιούνται στις προτάσεις. Στείλ' το για να προσθέσεις μια ετικέτα που δεν φέρει καμία λέξη ή για να ορίσεις τη σειρά.
Παράδειγμα αιτήματος
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": "gr",
  "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"
    ]
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/deconstruct/embed?p=-Nq8sample_activity_key",
  "message": "Sentence analysis created successfully"
}

Λογικός γρίφος

api_e_logic_puzzle

#
POST /api/public/v1/logic-puzzle Τουλάχιστον 3 στο items
Περιεχόμενο

api_c_logic_puzzle

Πέφτει πίσω στο όνομα “Logic Puzzle API”

Καλό είναι να ξέρεις
  • Κάθε κατηγορία χρειάζεται τον ίδιο αριθμό items, από 3 έως 6, όλα διαφορετικά. Μία κατηγορία μπορεί να σημειωθεί ως ordered (τιμές, ώρες, ηλικίες) με μια προαιρετική μονάδα, που επιτρέπει στη γεννήτρια να γράφει ενδείξεις για περισσότερο, λιγότερο και πόσο.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
story
προαιρετικό στο settings
string
stringΗ ιστορία που εμφανίζεται πάνω από τις ενδείξεις.
difficulty
προαιρετικό στο settings
string
stringΠοια είδη ενδείξεων επιτρέπεται να χρησιμοποιήσει η γεννήτρια.
Ένα από easymediumhard
Προεπιλογή: "easy"
hints
προαιρετικό στο settings
boolean
booleanΠροσφέρει ένα κουμπί που δείχνει το επόμενο βήμα.
Προεπιλογή: true
auto_cross
προαιρετικό στο settings
boolean
booleanΌταν σημειώνεται ένα ταίριασμα, διαγράφονται τα υπόλοιπα της γραμμής και της στήλης του.
Προεπιλογή: true
clue_mode
προαιρετικό στο settings
string
stringΠοιος γράφει τις ενδείξεις που βλέπουν οι παίκτες: δημιουργούνται από τον πίνακα, οι δικές σου προτάσεις στο free_clues ή καμία.
Ένα από generatedfreenone
Προεπιλογή: "generated"
free_clues
προαιρετικό στο settings
string[]
string[]Οι δικές σου προτάσεις-ενδείξεις, όπως ακριβώς γράφτηκαν, με clue_mode "free". Δεν τις ελέγχει τίποτα.
Παράδειγμα αιτήματος
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": "gr",
  "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"
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/logic-puzzle/embed?p=-Nq8sample_activity_key",
  "message": "Logic puzzle created successfully"
}

Κυνήγι θησαυρού

api_e_scavenger_hunt

#
POST /api/public/v1/scavenger-hunt 1 έως 50 στο items
Περιεχόμενο

api_c_scavenger_hunt

Πέφτει πίσω στο όνομα “Scavenger Hunt API”

Καλό είναι να ξέρεις
  • Ένα βήμα είναι ένα αντικείμενο με title, description, code και, προαιρετικά, accepted_codes (άλλες γραφές που μετρούν), url και link_text. Ένας κωδικός ελέγχεται χωρίς να λαμβάνονται υπόψη τα κεφαλαία και τα κενά. Ο χάρτης με τις καρφίτσες μπορεί να προστεθεί μόνο στον επεξεργαστή.
Παράδειγμα αιτήματος
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": "gr",
  "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"
      ]
    }
  ]
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/scavenger-hunt/embed?p=-Nq8sample_activity_key",
  "message": "Scavenger hunt created successfully"
}

Χωρική αντίληψη

api_e_spatial_reasoning

#
POST /api/public/v1/spatial-reasoning 1 έως 50 στο items
Περιεχόμενο

api_c_spatial_reasoning

Πέφτει πίσω στο όνομα “Spatial Reasoning API”

Καλό είναι να ξέρεις
  • Τα αντικείμενα και οι στόχοι είναι square, triangle, circle, hexagon, pentagon, star, diamond ή heart. Οι σχέσεις είναι inside, outside, behind, in_front_of, right_of, left_of, above, below, same_color_as, different_color_from, larger_than και smaller_than. Ένας κανόνας που δεν μπορεί ποτέ να ικανοποιηθεί απαντά 400.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
clue_mode
προαιρετικό στο settings
string
stringΚανόνες που εμφανίζονται ως εικόνες ή ως προτάσεις.
Ένα από visualtext
Προεπιλογή: "visual"
unique_object_picks
προαιρετικό στο settings
boolean
booleanΚάθε σχήμα μπορεί να τοποθετηθεί μόνο μία φορά.
Προεπιλογή: false
hide_color_picker
προαιρετικό στο settings
boolean
booleanΟι παίκτες δεν μπορούν να αλλάξουν το χρώμα των σχημάτων.
Προεπιλογή: false
Παράδειγμα αιτήματος
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": "gr",
  "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
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/spatial-reasoning/embed?p=-Nq8sample_activity_key",
  "message": "Spatial reasoning activity created successfully"
}

Εικονόγριφος

Προτάσεις γραμμένες με εικόνες: οι παίκτες διαβάζουν τις εικόνες και τις αλλαγές γραμμάτων και τις μετατρέπουν ξανά σε λέξεις.

#
POST /api/public/v1/rebus 1 έως 30 στο items
Περιεχόμενο

Ένας πίνακας προτάσεων. Καθεμιά απαριθμεί τις λέξεις που σχεδιάζονται ως εικόνες· κάθε άλλη λέξη μένει με τα γράμματά της.

Πέφτει πίσω στο όνομα “Rebus API”

Καλό είναι να ξέρεις
  • Μια λέξη σχεδιάζεται από μέρη που μαζί τη σχηματίζουν. Ένα μέρος έχει τα γράμματα που αντιπροσωπεύει (text), ένα emoji, και το shows: τη λέξη για αυτό που δείχνει η εικόνα ("broom" για μια εικόνα που αντιπροσωπεύει το "room"). Το Puzzel υπολογίζει τις αλλαγές γραμμάτων. Ένα μέρος μπορεί να είναι αντί γι' αυτό ένα σύμβολο, όπως το 4 για το "for".
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
rebus_commas
προαιρετικό στο settings
boolean
booleanΣχεδιάζει ένα γράμμα που έπεσε στην αρχή ή στο τέλος ως κόμμα δίπλα στην εικόνα.
Προεπιλογή: false
Παράδειγμα αιτήματος
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": "gr",
  "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
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/rebus/embed?p=-Nq8sample_activity_key",
  "message": "Rebus created successfully"
}
Εικόνες

Παζλ

Κόβει μια εικόνα σε κομμάτια που σέρνεις για να την ξαναφτιάξεις.

#
POST /api/public/v1/jigsaw Δεν δέχεται items
Περιεχόμενο

Ένα URL εικόνας, στο πεδίο image. Αυτό το endpoint δεν δέχεται items.

Πέφτει πίσω στο όνομα “Jigsaw Game API”

Καλό είναι να ξέρεις
  • Το API δημιουργεί πάντα ένα παζλ 4 επί 4. Το πλήθος των κομματιών, τα ακανόνιστα κομμάτια και οι ίσιες άκρες είναι ρυθμίσεις του επεξεργαστή — αν στείλεις rows ή columns εδώ, δεν γίνεται τίποτα.
  • Το URL αποθηκεύεται όπως το έστειλες και το αρχείο δεν αντιγράφεται ποτέ, οπότε πρέπει να παραμείνει δημόσια προσβάσιμο για όσο καιρό παίζεται η δραστηριότητα.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
image
υποχρεωτικό
string
stringΑπόλυτο URL της εικόνας που θα κοπεί σε κομμάτια. Στέλνεται στο ανώτατο επίπεδο, όχι μέσα στο settings.
Παράδειγμα αιτήματος
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": "gr",
  "image": "https://example.com/orchard.jpg"
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/jigsaw/embed?p=-Nq8sample_activity_key",
  "message": "Jigsaw game created successfully"
}

Συρόμενο παζλ

Ανακατεύει μια εικόνα σε πλακίδια που γλιστρούν στη θέση τους.

#
POST /api/public/v1/slidingpuzzle Δεν δέχεται items
Περιεχόμενο

Ένα URL εικόνας, μέσα στο settings. Αυτό το endpoint δεν δέχεται items.

Πέφτει πίσω στο όνομα “Sliding Puzzle API”

Καλό είναι να ξέρεις
  • Σε αντίθεση με το παζλ, αυτό το endpoint διαβάζει την εικόνα του από το settings.image. Ένα πεδίο image στο ανώτατο επίπεδο αγνοείται και η κλήση απαντά 400.
  • Το URL αποθηκεύεται όπως το έστειλες και το αρχείο δεν αντιγράφεται ποτέ, οπότε πρέπει να παραμείνει δημόσια προσβάσιμο για όσο καιρό παίζεται η δραστηριότητα.
Ρυθμίσεις που διαβάζει
ΠεδίοΤύποςΤι κάνει
image
υποχρεωτικό στο settings
string
stringΑπόλυτο URL της εικόνας που θα ανακατευτεί. Σε αντίθεση με του παζλ, αυτό βρίσκεται μέσα στο settings.
Παράδειγμα αιτήματος
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": "gr",
  "settings": {
    "image": "https://example.com/orchard.jpg"
  }
}'
Επιτυχία
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/slidingpuzzle/embed?p=-Nq8sample_activity_key",
  "message": "Sliding puzzle created successfully"
}

Κάτι δεν δουλεύει σωστά;

Στείλε το αίτημα που δοκίμασες και το σφάλμα που πήρες πίσω και θα λάβεις μια πραγματική απάντηση, από το άτομο που έγραψε το endpoint.

Στείλε email στην υποστήριξη