Δημιούργησε δραστηριότητες από το δικό σου σύστημα
Ένα 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"
}
]
}'
Κάθε παράδειγμα σε αυτή τη σελίδα είναι ένα πλήρες αίτημα που τρέχει όπως είναι. Βάλε το δικό σου κλειδί και το δικό σου περιεχόμενο και δουλεύει αμέσως.
Έλεγχος ταυτότητας
Δεν υπάρχουν headers ούτε bearer token. Και τα δύο διαπιστευτήρια ταξιδεύουν μέσα στο σώμα JSON κάθε αιτήματος, και το κλειδί γίνεται δεκτό μόνο για τον λογαριασμό στον οποίο ανήκει αυτό το email.
Πεδίο
Τύπος
Τι κάνει
account_api_key
υποχρεωτικό
string
string
Το κλειδί API του λογαριασμού σου. Πηγαίνει στο σώμα, όχι σε header.
email
υποχρεωτικό
string
string
Η διεύθυνση με την οποία συνδέεται ο λογαριασμός σου στο Puzzel.org. Το κλειδί ισχύει μόνο μαζί με αυτήν.
Το κλειδί σου βρίσκεται στην ενότητα λογαριασμού του πίνακα ελέγχου, πίσω από το κουμπί Εμφάνιση.
Φύλαξε το κλειδί σαν κωδικό πρόσβασης. Δημιουργεί και αντικαθιστά δραστηριότητες στον λογαριασμό σου, γι' αυτό κράτησέ το στον 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": 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. Καθεμιά αναφέρει το περιεχόμενο που χρειάζεται, τις ρυθμίσεις που διαβάζει και ένα αίτημα που μπορείς να τρέξεις.
Λέξεις και γράμματα
Ζ
Ω
Ο
Ω
Ε
Ν
Α
Σ
Η
Σταυρόλεξο
Πλέκει τις απαντήσεις σου σε ένα πλέγμα και αριθμεί τους ορισμούς για σένα.
Ένας πίνακας λέξεων. Κάθε εγγραφή συνδυάζει την απάντηση με τον ορισμό που δείχνει προς αυτήν.
Πέφτει πίσω στο όνομα “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"
}
]
}'
POST/api/public/v1/word-scramble1 έως 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"
}
}'
Ένας πίνακας λέξεων. Οι παίκτες παίρνουν έναν γύρο ανά λέξη.
Πέφτει πίσω στο όνομα “Wordle API”
Καλό είναι να ξέρεις
Δημιουργείται με ενεργή τη ρύθμιση ελέγχου ότι οι λέξεις που μαντεύονται είναι υπαρκτές. Απενεργοποίησέ την στον επεξεργαστή αν οι λέξεις σου είναι ονόματα ή επινοημένες.
POST/api/public/v1/typing-practice1 έως 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"
}
POST/api/public/v1/wheel-of-fortune1 έως 50 στο items
Περιεχόμενο
api_c_wheel_of_fortune
Πέφτει πίσω στο όνομα “Wheel of Fortune API”
Καλό είναι να ξέρεις
Δημιουργείται με την επιλογή “εμφάνιση του αποτελέσματος μόνο στον τροχό”, οπότε το αποτέλεσμα διαβάζεται πάνω στον τροχό αντί να ανακοινώνεται δίπλα του.
Ένας πίνακας θεματικών λέξεων. Μαζί με το 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/api/public/v1/name-them-all1 έως 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
Εμφανίζει ένα κουμπί παραίτησης που τερματίζει τον γύρο και αποκαλύπτει όσα έμειναν.
{
"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 Game API”
Καλό είναι να ξέρεις
Μια κάρτα είναι ένα αντικείμενο με ένα type και ένα value. Χρησιμοποίησε "text" για λέξεις ή "image", "audio", "youtube" ή "link" με ένα URL στο value, και πρόσθεσε alt για περιγραφή.
POST/api/public/v1/matching-pairs2 έως 30 στο items
Περιεχόμενο
api_c_matching_pairs
Πέφτει πίσω στο όνομα “Matching Game API”
Καλό είναι να ξέρεις
Μια κάρτα είναι ένα αντικείμενο με ένα type και ένα value. Χρησιμοποίησε "text" για λέξεις ή "image", "audio", "youtube" ή "link" με ένα URL στο value, και πρόσθεσε alt για περιγραφή.
Το endpoint αποθηκεύει όσες κάρτες κι αν στείλεις, γι' αυτό στείλε ακριβώς δύο ανά εγγραφή — πρώτα την μπροστινή, μετά την πίσω.
Μια κάρτα είναι ένα αντικείμενο με ένα type και ένα value. Χρησιμοποίησε "text" για λέξεις ή "image", "audio", "youtube" ή "link" με ένα URL στο value, και πρόσθεσε alt για περιγραφή.
POST/api/public/v1/categorizeΤουλάχιστον 2 στο items · έως 60 κάρτες συνολικά
Περιεχόμενο
Ένας πίνακας κατηγοριών, καθεμιά με ένα όνομα και τις κάρτες που ανήκουν σε αυτήν.
Πέφτει πίσω στο όνομα “Categorize Game API”
Καλό είναι να ξέρεις
Μια κατηγορία που στέλνεται χωρίς όνομα αποθηκεύεται ως “Untitled Category”, γι' αυτό στείλε πάντα ένα.
Μια κάρτα είναι ένα αντικείμενο με ένα type και ένα value. Χρησιμοποίησε "text" για λέξεις ή "image", "audio", "youtube" ή "link" με ένα URL στο value, και πρόσθεσε alt για περιγραφή.
POST/api/public/v1/reorderΤουλάχιστον 1 στο items · έως 60 κάρτες συνολικά
Περιεχόμενο
Ένας πίνακας ακολουθιών. Καθεμιά κρατά τις κάρτες της στη σωστή σειρά.
Πέφτει πίσω στο όνομα “Reorder Game API”
Καλό είναι να ξέρεις
Η σειρά που στέλνεις αποθηκεύεται ως η σωστή σειρά — πρώτο το νούμερο ένα.
Μια κάρτα είναι ένα αντικείμενο με ένα type και ένα value. Χρησιμοποίησε "text" για λέξεις ή "image", "audio", "youtube" ή "link" με ένα URL στο value, και πρόσθεσε alt για περιγραφή.
Ένας πίνακας 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
}
}'
POST/api/public/v1/i-have-who-has3 έως 40 στο items
Περιεχόμενο
api_c_i_have_who_has
Πέφτει πίσω στο όνομα “I Have, Who Has API”
Καλό είναι να ξέρεις
Καμία ερώτηση και καμία απάντηση δεν μπορεί να εμφανίζεται δύο φορές: ένας μαθητής που κρατά την απάντηση δεν θα μπορούσε να καταλάβει σε ποια ερώτηση ανήκει.
Ρυθμίσεις που διαβάζει
Πεδίο
Τύπος
Τι κάνει
chain_shape
προαιρετικόστο settings
string
string
Ο κύκλος κλείνει στον εαυτό του, οπότε μπορεί να ξεκινήσει οποιαδήποτε κάρτα· η γραμμή ανοίγει με μια κάρτα Start και τελειώνει με μια κάρτα End.
{
"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"
}
Ένας πίνακας καρτών. Οι κάρτες που ανήκουν στον κωδικό φέρουν τη θέση τους μέσα σε αυτόν.
Πέφτει πίσω στο όνομα “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
Κάθε παίκτης παίρνει τις κάρτες σε ανακατεμένη διάταξη.
Ένας πίνακας τετράδων. Καθεμιά έχει ένα όνομα και ακριβώς τέσσερις κάρτες.
Πέφτει πίσω στο όνομα “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 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."
}
]
}'
Το 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"
}
Ένας πίνακας ερωτήσεων πολλαπλής επιλογής ή σωστού/λάθους, ακριβώς στη μορφή που δέχεται το 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"
}
}'
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
}
}'
POST/api/public/v1/interactive-video1 έως 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"
}
Μία πρόταση, στο πεδίο 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.
Τίποτα. Όλος ο γρίφος προκύπτει από τις δύο ρυθμίσεις του.
Πέφτει πίσω στο όνομα “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
Πόσοι αριθμοί μένουν στο πλέγμα για να ξεκινήσεις.
POST/api/public/v1/fill-in-the-gap1 έως 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"
}
Ένας πίνακας προτάσεων. Κάθε λέξη που θα πάρει ετικέτα γράφεται ως [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"
]
}
}'
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"
}
}'
POST/api/public/v1/scavenger-hunt1 έως 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"
]
}
]
}'
POST/api/public/v1/spatial-reasoning1 έως 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
Οι παίκτες δεν μπορούν να αλλάξουν το χρώμα των σχημάτων.
Ένας πίνακας προτάσεων. Καθεμιά απαριθμεί τις λέξεις που σχεδιάζονται ως εικόνες· κάθε άλλη λέξη μένει με τα γράμματά της.
Πέφτει πίσω στο όνομα “Rebus API”
Καλό είναι να ξέρεις
Μια λέξη σχεδιάζεται από μέρη που μαζί τη σχηματίζουν. Ένα μέρος έχει τα γράμματα που αντιπροσωπεύει (text), ένα emoji, και το shows: τη λέξη για αυτό που δείχνει η εικόνα ("broom" για μια εικόνα που αντιπροσωπεύει το "room"). Το Puzzel υπολογίζει τις αλλαγές γραμμάτων. Ένα μέρος μπορεί να είναι αντί γι' αυτό ένα σύμβολο, όπως το 4 για το "for".
Ρυθμίσεις που διαβάζει
Πεδίο
Τύπος
Τι κάνει
rebus_commas
προαιρετικόστο settings
boolean
boolean
Σχεδιάζει ένα γράμμα που έπεσε στην αρχή ή στο τέλος ως κόμμα δίπλα στην εικόνα.
Ένα URL εικόνας, στο πεδίο image. Αυτό το endpoint δεν δέχεται items.
Πέφτει πίσω στο όνομα “Jigsaw Game API”
Καλό είναι να ξέρεις
Το API δημιουργεί πάντα ένα παζλ 4 επί 4. Το πλήθος των κομματιών, τα ακανόνιστα κομμάτια και οι ίσιες άκρες είναι ρυθμίσεις του επεξεργαστή — αν στείλεις rows ή columns εδώ, δεν γίνεται τίποτα.
Το URL αποθηκεύεται όπως το έστειλες και το αρχείο δεν αντιγράφεται ποτέ, οπότε πρέπει να παραμείνει δημόσια προσβάσιμο για όσο καιρό παίζεται η δραστηριότητα.
Ρυθμίσεις που διαβάζει
Πεδίο
Τύπος
Τι κάνει
image
υποχρεωτικό
string
string
Απόλυτο URL της εικόνας που θα κοπεί σε κομμάτια. Στέλνεται στο ανώτατο επίπεδο, όχι μέσα στο settings.
Ένα URL εικόνας, μέσα στο settings. Αυτό το endpoint δεν δέχεται items.
Πέφτει πίσω στο όνομα “Sliding Puzzle API”
Καλό είναι να ξέρεις
Σε αντίθεση με το παζλ, αυτό το endpoint διαβάζει την εικόνα του από το settings.image. Ένα πεδίο image στο ανώτατο επίπεδο αγνοείται και η κλήση απαντά 400.
Το URL αποθηκεύεται όπως το έστειλες και το αρχείο δεν αντιγράφεται ποτέ, οπότε πρέπει να παραμείνει δημόσια προσβάσιμο για όσο καιρό παίζεται η δραστηριότητα.
Ρυθμίσεις που διαβάζει
Πεδίο
Τύπος
Τι κάνει
image
υποχρεωτικόστο settings
string
string
Απόλυτο URL της εικόνας που θα ανακατευτεί. Σε αντίθεση με του παζλ, αυτό βρίσκεται μέσα στο settings.