Her etkinlik türü için tek bir POST. İçeriğini JSON olarak gönder; karşılığında Puzzel.org hesabında bir etkinlik ve oyunculara verebileceğin ya da bir iframe'e yerleştirebileceğin bir URL al.
Temel URL
https://puzzel.org/api/public/v1
Kimlik doğrulama
Gövdede anahtar + e-posta
Uç noktalar
38 etkinlik türü
Kota
Günde 10 etkinlik
İlk isteğin
Kurulacak bir şey yok, el sıkışma da yok: anahtarını, e-posta adresini ve içeriğini taşıyan bir JSON gövdesi gönder. Gelen cevapta yeni etkinliğin anahtarı ve oynandığı URL yer alır.
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": "tr",
"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"
}
]
}'
Bu sayfadaki her örnek eksiksiz ve çalıştırılabilir bir istektir. Kendi anahtarını ve içeriğini koy, olduğu gibi çalışır.
Kimlik doğrulama
Ne header var ne de bearer token. İki kimlik bilgisi de her isteğin JSON gövdesinde gider ve anahtar yalnızca o e-postanın ait olduğu hesap için geçerlidir.
Alan
Tür
Ne işe yarar
account_api_key
zorunlu
string
string
Hesabının API anahtarı. Header'a değil, gövdeye konur.
email
zorunlu
string
string
Puzzel.org hesabının giriş yaptığı adres. Anahtar yalnızca onunla birlikte geçerlidir.
Anahtarın, panelindeki hesap bölümünde, Göster düğmesinin arkasında duruyor.
Anahtara bir şifre gibi davran. Hesabında etkinlik oluşturur ve var olanların üzerine yazar; bu yüzden onu sunucu tarafında tut, tarayıcının okuyabileceği hiçbir yere koyma.
İstek gövdesi
Her uç nokta aynı beş alanı alır. Farklı olan, altlarındaki içerik alanı: çoğu bir items dizisi alır, birkaçı tek bir cümle ya da tek bir görsel alır, sudoku ise hiçbir şey almaz.
Alan
Tür
Ne işe yarar
account_api_key
zorunlu
string
string
Hesabının API anahtarı. Header'a değil, gövdeye konur.
email
zorunlu
string
string
Puzzel.org hesabının giriş yaptığı adres. Anahtar yalnızca onunla birlikte geçerlidir.
title
isteğe bağlı
string
string
Etkinliğin panelinde alacağı ad. Boş bırak, uç nokta kendi yedek adını kullanır.
language
isteğe bağlı
string
string
Yalnızca dönen URL'deki dili belirler — gönderdiğin hiçbir şeyi çevirmez. Kelime avı ayrıca bunu okur ve "ar" olduğunda dolgu harflerini Arapçaya geçirir.
Varsayılan: "en"
activity_key
isteğe bağlı
string
string
Yeni bir etkinlik oluşturmak için boş bırak. Zaten sahibi olduğun bir etkinliğin anahtarını gönderirsen, onun yerine o etkinlik yeniden oluşturulur.
settings, uç noktaya özel seçeneklerden oluşan bir nesnedir. Bir uç noktanın hangilerini okuduğu aşağıda onunla birlikte listelenir; oraya koyduğun başka her şey yok sayılır.
Ne geri döner
Başarılı bir çağrı, yeni etkinliğin anahtarı ve oynandığı URL ile 200 cevabı verir. Diğer her durumda success false olur ve tek bir error metni döner.
{
"success": false,
"error": "Invalid Email or API Key"
}
Dönen url, yerleştirme görünümüdür. Tam sayfa açmak için embed yerine play, düzenleyicide açmak için build yaz — p= sonrasındaki anahtar aynı kalır.
Oluşturma ve güncelleme
activity_key gönder, arkasındaki etkinlik yerinde yeniden oluşturulsun: içeriği değişir, adı ve sürüm damgası tazelenir, anahtarın kendisi ise aynı kalır — böylece daha önce paylaştığın bağlantılar ve yerleştirmeler çalışmaya devam eder. Sonuçlar, klasör yerleşimi ve uç noktanın kendisinin yazmadığı her ayar olduğu gibi kalır.
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 her güncellemede uygulanır, varsayılanı da dahil — boş bırakırsan etkinlik o uç noktanın yedek adıyla yeniden adlandırılır.
Bir uç noktanın kendi yazdığı ayar blokları sıfırdan yeniden yazılır; yani bir güncelleme bunları da gönderdiğin değerlere ya da uç noktanın varsayılanlarına döndürür.
Yalnızca kendi hesabının sahibi olduğu etkinlikleri güncelleyebilirsin. Başkasına ait bir anahtar 403 cevabı alır.
Bir güncelleme, oluşturmayla aynıya mal olur: bugünkü kotadan bir çağrı.
İstek sınırı
10
Hesap başına günde 10 etkinlik
Başarılı her çağrı sayılır; oluşturma da güncelleme de. Sınırı aşarsan sayaç sıfırlanana kadar sonraki istek 429 cevabı alır.
Sayaç, kayan 24 saatlik bir pencereye göre değil, zamanlanmış bir işle günde bir kez sıfırlanır.
Hatalar
Hatalar her zaman aynı iki alanla JSON olarak gelir, asla HTML sayfası olarak değil. error metni bir insanın okuması için yazılır — sorun çıkaran alanı ya da sınırı adıyla söyler.
Durum
Ne anlama gelir
400
Bad Request
Gövdedeki bir şey eksik, bozuk ya da aralık dışında. Mesaj, hangi alan olduğunu söyler.
401
Unauthorized
E-posta bilinmiyor ya da anahtar o hesaba ait değil.
403
Forbidden
Gönderdiğin activity_key başka bir hesaba ait.
429
Too Many Requests
Bugünkü kota doldu. Günde bir kez sıfırlanır.
500
Server Error
Oluşturucu, gönderdiklerinden bir bulmaca kuramadı — genellikle kelime sayısı çok az ya da kelimeler birbirine oturmuyor.
Uç noktalar
Her etkinlik türü için bir yol; hepsi POST, hepsi aynı temel URL altında. Her biri ihtiyaç duyduğu içeriği, okuduğu ayarları ve çalıştırabileceğin bir isteği listeler.
Kelimeler ve harfler
K
O
L
U
U
Z
U
N
U
Çengel bulmaca
Cevaplarını bir ızgarada birbirine geçirir ve tanımları senin için numaralandırır.
POST/api/public/v1/crossworditems içinde 2 ile 80 arasında öğe
İçerik
Bir kelime dizisi. Her kayıt, cevabı onu işaret eden tanımla eşleştirir.
Yedek ad olarak “Crossword API” kullanılır
Bilmekte fayda var
İki karakterden kısa cevaplar ızgara kurulmadan önce elenir ve bundan en az iki tanesinin sağ çıkması gerekir.
Cevaplar büyük harfe çevrilir ve oluşturucunun bunları yerleştirmek için yirmi denemesi olur. Tek bir kelimeyi bile yerleştiremezse çağrı 500 cevabı verir.
Okuduğu ayarlar
Alan
Tür
Ne işe yarar
hidden_solution
isteğe bağlısettings içinde
string
string
İsteğe bağlı bir bonus kelime. Harfleri bitmiş ızgaranın hücrelerinde işaretlenir; oyuncular çengel bulmacayı çözdükten sonra bunları toplar. Bu yüzden harflerinin her biri cevapların içinde geçmek zorundadır.
Örnek istek
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": "tr",
"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/typing-practiceitems içinde 1 ile 50 arasında öğe
İçerik
api_c_typing_practice
Yedek ad olarak “Typing Practice API” kullanılır
Örnek istek
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": "tr",
"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"
}
]
}'
Başarılı
{
"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/strandsitems içinde 2 ile 24 arasında öğe
İçerik
Tema kelimelerinden oluşan bir dizi. Harfleri, spangram ile birlikte bir tahtayı tam olarak doldurmalıdır.
Yedek ad olarak “Strands API” kullanılır
Bilmekte fayda var
Tüm kelimelerin ve spangram'ın harfleri birlikte tam olarak 30, 35, 36, 40, 42, 45, 48, 49, 50, 54, 56, 60, 63, 64, 70, 72 ya da 80 etmelidir. Başka her sayı 400 cevabı verir ve kaç harf ekleyeceğini ya da çıkaracağını söyler.
Okuduğu ayarlar
Alan
Tür
Ne işe yarar
theme
isteğe bağlısettings içinde
string
string
Izgaranın üstünde gösterilen bilmece. Boş bırakılırsa oyuncular başlığı görür.
spangram
isteğe bağlısettings içinde
string
string
Temayı adlandıran ve tahtayı bir kenardan diğerine kesen kelime ya da ifade.
POST/api/public/v1/name-them-allitems içinde 1 ile 250 arasında öğe
İçerik
api_c_name_them_all
Yedek ad olarak “Name Them All API” kullanılır
Bilmekte fayda var
Bir kayıt, answer içeren bir nesnedir; isteğe bağlı olarak aliases (sayılan diğer yazımlar), description (ipucu) ve group taşıyabilir. Bir ad kontrol edilirken büyük harfler, aksanlar ve noktalama yok sayılır.
Okuduğu ayarlar
Alan
Tür
Ne işe yarar
list_match_mode
isteğe bağlısettings içinde
string
string
Bir adın yazıldığı anda mı, yoksa yalnızca Enter tuşuna basınca mı sayılacağı.
Şunlardan biriwhile_typingon_enter
Varsayılan: "while_typing"
list_slot_hint
isteğe bağlısettings içinde
string
string
Boş bir yuvanın neyi ele verdiği: hiçbir şeyi, adın uzunluğunu, ilk harfini ya da yazdığın ipucunu.
Şunlardan birinonelengthfirst_letterhint
Varsayılan: "none"
list_arrange
isteğe bağlısettings içinde
string
string
Her grup için bir sütun ya da tek bir liste.
Şunlardan birigroupsone_list
Varsayılan: "groups"
list_allow_give_up
isteğe bağlısettings içinde
boolean
boolean
Turu bitiren ve kaçırılanları gösteren bir pes et düğmesi gösterir.
{
"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"
}
POST/api/public/v1/memoryitems içinde 2 ile 30 arasında öğe
İçerik
Bir çift dizisi. Her çift, birbirine ait iki kartı tutar.
Yedek ad olarak “Memory Game API” kullanılır
Bilmekte fayda var
Bir kart, type ve value içeren bir nesnedir. Kelimeler için "text", value içinde bir URL ile birlikte "image", "audio", "youtube" ya da "link" kullan; açıklama için alt ekle.
POST/api/public/v1/matching-pairsitems içinde 2 ile 30 arasında öğe
İçerik
api_c_matching_pairs
Yedek ad olarak “Matching Game API” kullanılır
Bilmekte fayda var
Bir kart, type ve value içeren bir nesnedir. Kelimeler için "text", value içinde bir URL ile birlikte "image", "audio", "youtube" ya da "link" kullan; açıklama için alt ekle.
POST/api/public/v1/flash-cardsitems içinde 1 ile 150 arasında öğe
İçerik
api_c_flash_cards
Yedek ad olarak “Flash Cards API” kullanılır
Bilmekte fayda var
Uç nokta gönderdiğin kadar kartı saklar; bu yüzden her kayıtta tam olarak iki tane gönder — önce ön yüz, sonra arka yüz.
Bir kart, type ve value içeren bir nesnedir. Kelimeler için "text", value içinde bir URL ile birlikte "image", "audio", "youtube" ya da "link" kullan; açıklama için alt ekle.
POST/api/public/v1/categorizeitems içinde en az 2 öğe · toplamda en fazla 60 kart
İçerik
Bir kategori dizisi; her birinde bir ad ve o kategoriye ait kartlar bulunur.
Yedek ad olarak “Categorize Game API” kullanılır
Bilmekte fayda var
Adsız gönderilen bir kategori “Untitled Category” olarak kaydedilir; bu yüzden her zaman bir ad gönder.
Bir kart, type ve value içeren bir nesnedir. Kelimeler için "text", value içinde bir URL ile birlikte "image", "audio", "youtube" ya da "link" kullan; açıklama için alt ekle.
POST/api/public/v1/reorderitems içinde en az 1 öğe · toplamda en fazla 60 kart
İçerik
Sıralamalardan oluşan bir dizi. Her biri kartlarını doğru sırada tutar.
Yedek ad olarak “Reorder Game API” kullanılır
Bilmekte fayda var
Gönderdiğin sıra doğru sıra olarak saklanır — önce bir numara.
Bir kart, type ve value içeren bir nesnedir. Kelimeler için "text", value içinde bir URL ile birlikte "image", "audio", "youtube" ya da "link" kullan; açıklama için alt ekle.
Kartların çekildiği öğelerden oluşan bir dizi. Kartların birbirinden farklı olması için, bir kartın hücre sayısından belirgin biçimde fazla öğe gönder.
Yedek ad olarak “Bingo API” kullanılır
Bilmekte fayda var
Bir öğe, value içeren bir nesnedir; isteğe bağlı olarak type ("text", "image" ya da "audio"; URL value içinde), description (oyun yöneticisinin clues modunda okuduğu ipucu) ve alt taşıyabilir.
Okuduğu ayarlar
Alan
Tür
Ne işe yarar
mode
isteğe bağlısettings içinde
string
string
Hücreleri neyin doldurduğu: öğelerin, ipucuyla çağrılan öğelerin ya da düz sayılar (öğe gerekmez).
Şunlardan biriitemscluesnumbers
Varsayılan: "items"
rows
isteğe bağlısettings içinde
number
number
Her kartta satır sayısı, 2 ile 5 arasında.
Varsayılan: 3
columns
isteğe bağlısettings içinde
number
number
Her kartta sütun sayısı, 2 ile 5 arasında.
Varsayılan: 3
highest_number
isteğe bağlısettings içinde
number
number
numbers modunda kartlar 1'den bu sayıya kadar doldurulur, en fazla 100. Bir paket özelliği: paketin yoksa 50 olarak kalır.
Varsayılan: 50
Örnek istek
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": "tr",
"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/i-have-who-has/embed?p=-Nq8sample_activity_key",
"message": "I have, who has created successfully"
}
POST/api/public/v1/keypaditems içinde 1 ile 30 arasında öğe
İçerik
Bir kart dizisi. Koddaki kartlar, kodun içindeki yerlerini taşır.
Yedek ad olarak “Keypad API” kullanılır
Bilmekte fayda var
Bir kart, value içeren bir nesnedir; isteğe bağlı olarak type ("text", "image" ya da "audio"; URL value içinde), alt ve code_position taşıyabilir: koddaki yeri, 1 ilk demektir. Bir kart koda bir kez girebilir ve en az bir kart girmelidir.
Okuduğu ayarlar
Alan
Tür
Ne işe yarar
instructions
isteğe bağlısettings içinde
string
string
Kodun cevapladığı soru ya da bilmece; kartlarla birlikte gösterilir.
force_solution_in_correct_order
isteğe bağlısettings içinde
boolean
boolean
Kartlara sırayla basılmalıdır. Kapalıyken doğru kartların herhangi bir sırası kilidi açar.
POST/api/public/v1/quartetsitems içinde 2 ile 16 arasında öğe
İçerik
Bir dörtlü dizisi. Her birinin bir adı ve tam olarak dört kartı vardır.
Yedek ad olarak “Quartets API” kullanılır
Bilmekte fayda var
Bir kart ya bir addır ya da name ve description (üzerinde gösterilen bilgi) içeren bir nesnedir. Oyunda hiçbir kart adı iki kez geçemez: oyuncular kartları adıyla ister.
Okuduğu ayarlar
Alan
Tür
Ne işe yarar
type
isteğe bağlısettings içinde
string
string
Düz bir oyun ya da her kartın bir bilgi gösterdiği bir öğrenme oyunu. Boş bırakılırsa, herhangi bir kartta description varsa learn olur.
Şunlardan birinormallearn
Örnek istek
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": "tr",
"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"
}
}'
Başarılı
{
"success": true,
"id": "-Nq8sample_activity_key",
"url": "https://puzzel.org/en/quartets/embed?p=-Nq8sample_activity_key",
"message": "Quartets game created successfully"
}
POST/api/public/v1/quizitems içinde 1 ile 100 arasında öğe
İçerik
Bir soru dizisi. Çoktan seçmeli sorular cevaplarını taşır; açık uçlu sorular kabul ettiğin cevabı taşır.
Yedek ad olarak “Quiz API” kullanılır
Bilmekte fayda var
question_type şunlardan biridir: "multiple_choice", doğru seçenekte isCorrect true olur; "true_false", aynısı ama tam olarak iki seçenekle, önce true, sonra false; ya da "open_answer", bunda bunun yerine correct_answer kullanılır. Boş bırakılırsa çoktan seçmeli sayılır.
Quiz uç noktası settings içeriğini doğrudan etkinlik ayar blokları olarak aktarır; yani orası dağınık seçenekler için uygun bir yer değil — quizi sonrasında düzenleyicide ayarla.
Örnek istek
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": "tr",
"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."
}
]
}'
POST/api/public/v1/board-gameitems içinde 1 ile 100 arasında öğe
İçerik
api_c_board_game
Yedek ad olarak “Board Game API” kullanılır
Bilmekte fayda var
question_type şunlardan biridir: "multiple_choice", doğru seçenekte isCorrect true olur; "true_false", aynısı ama tam olarak iki seçenekle, önce true, sonra false; ya da "open_answer", bunda bunun yerine correct_answer kullanılır. Boş bırakılırsa çoktan seçmeli sayılır.
Okuduğu ayarlar
Alan
Tür
Ne işe yarar
number_of_tiles
isteğe bağlısettings içinde
number
number
Oyun tahtasında kaç kare olduğu. 10 ile 75 arasında.
Varsayılan: 30
game_mode
isteğe bağlısettings içinde
string
string
Oyuncuların bitişe mi yarıştığı, yoksa yol boyunca nesne mi topladığı.
Şunlardan birirace_to_finishcollect_items
Varsayılan: "race_to_finish"
Örnek istek
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": "tr",
"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"
}
}'
Başarılı
{
"success": true,
"id": "-Nq8sample_activity_key",
"url": "https://puzzel.org/en/board-game/embed?p=-Nq8sample_activity_key",
"message": "Board Game created successfully"
}
Çoktan seçmeli ya da doğru/yanlış sorulardan oluşan bir dizi; tam olarak quiz uç noktasının aldığı biçimde. Açık uçlu sorular reddedilir: bir kapının üzerinde yazılı bir cevap olmalıdır.
Yedek ad olarak “Maze API” kullanılır
Okuduğu ayarlar
Alan
Tür
Ne işe yarar
maze_width
isteğe bağlısettings içinde
string
string
Odaların nasıl dizildiği: tek sütun, kare ya da daha geniş.
Şunlardan birinarrownormalwide
Varsayılan: "normal"
maze_corridors
isteğe bağlısettings içinde
string
string
İki soru arasında ne kadar labirent olduğu.
Şunlardan birishortnormallong
Varsayılan: "normal"
maze_fog
isteğe bağlısettings içinde
string
string
Labirentin tamamını göster ya da yalnızca oyuncunun yanından geçtiği yerleri.
Şunlardan birioffnear
Varsayılan: "off"
maze_wrong_door_pause
isteğe bağlısettings içinde
string
string
Yanlış bir kapıdan sonra kapıların ne kadar süre kapalı kalacağı.
Şunlardan birinoneshortlong
Varsayılan: "short"
maze_walk_there
isteğe bağlısettings içinde
boolean
boolean
Jetonu bir sonraki odaya yürüten bir düğme sunar.
Varsayılan: false
maze_seed
isteğe bağlısettings içinde
string
string
Labirentin üretildiği tohum. Aynı tohum ve aynı sorular aynı labirenti verir; boş bırakılırsa yeni bir tane çekilir.
Örnek istek
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": "tr",
"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/jeopardyitems içinde en az 2 öğe
İçerik
Soldan sağa kategorilerden oluşan bir dizi. Her birinin bir adı ve üst satırdan aşağıya doğru ipuçları vardır.
Yedek ad olarak “Jeopardy API” kullanılır
Bilmekte fayda var
Bir ipucu, quiz uç noktasının aldığı biçimde bir sorudur; aksi belirtilmedikçe open_answer olur, correct_answer ve isteğe bağlı olarak aliases taşır. Ayrıca value (kendi değeri) ve daily_double de taşıyabilir. null bir hücreyi boş bırakır.
Okuduğu ayarlar
Alan
Tür
Ne işe yarar
jeopardy_buzzer_mode
isteğe bağlısettings içinde
string
string
Kim nasıl oynar: oyun yöneticisi konsoldan yönetir, oyuncular telefonlarından zile basar ya da her oyuncu tahtayı tek başına oynar.
Şunlardan birihostphonessolo
Varsayılan: "host"
jeopardy_contestants
isteğe bağlısettings içinde
string
string
Konsolun takımlardan mı yoksa oyunculardan mı söz edeceği.
Şunlardan biriteamsplayers
Varsayılan: "teams"
jeopardy_value_step
isteğe bağlısettings içinde
number
number
Bir satırın değeri: bir ipucunun değeri, bu sayının satır numarasıyla çarpımıdır. 50 ile 500 arasında, 50'şer adımla.
Varsayılan: 100
jeopardy_answer_time
isteğe bağlısettings içinde
number
number
Bir ipucu açıldıktan sonra cevap için verilen saniye, en fazla 300. 0 süresiz demektir.
Varsayılan: 20
jeopardy_wrong_answer_costs
isteğe bağlısettings içinde
boolean
boolean
Yanlış bir cevap, ipucunun değerini puandan düşer.
Varsayılan: false
jeopardy_reveal_on_timeout
isteğe bağlısettings içinde
boolean
boolean
Süre dolduğunda tahta cevabı kendisi gösterir.
Varsayılan: false
jeopardy_require_question_form
isteğe bağlısettings içinde
boolean
boolean
Oyunculara cevabı soru biçiminde vermelerini hatırlatır.
Varsayılan: false
Örnek istek
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": "tr",
"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-videoitems içinde 1 ile 50 arasında öğe
İçerik
api_c_interactive_video
Yedek ad olarak “Interactive Video API” kullanılır
Bilmekte fayda var
Bir açılır pencere; time (saniye ya da "1:23"), kind ("note", "think" ya da "chapter" demedikçe "question") ve description içeren bir nesnedir. Bir soru, quiz uç noktasının aldığı biçimde bir sorudur ve rewind_to taşıyabilir: yanlış bir cevabın videoyu hangi andan yeniden oynatacağı.
Okuduğu ayarlar
Alan
Tür
Ne işe yarar
video_url
zorunlusettings içinde
string
string
Video: bir YouTube, Vimeo ya da Bunny Stream sayfası veya bir mp4, webm ya da mov dosyasına doğrudan bağlantı.
Hiçbir şey. Bulmacanın tamamı iki ayarından çıkar.
Yedek ad olarak “Sudoku API” kullanılır
Bilmekte fayda var
items ya da sentence gönderme — girdinin tamamı size ve difficulty.
Düzenleyici zorluğu yalnızca 2x3, 3x3 ve 3x4 için sunar. API bunu 2x2 ve 4x4 dahil her boyuta uygular.
Okuduğu ayarlar
Alan
Tür
Ne işe yarar
size
isteğe bağlısettings içinde
string
string
Bir bloğun boyutu, satır çarpı sütun olarak yazılır — 3x3 klasik 9x9 ızgarayı verir. Uç nokta yalnızca iki sayı olarak ayrıştırılıp ayrıştırılmadığına bakar; bu yüzden düzenleyicinin sunduğu boyutlarda kal.
POST/api/public/v1/fill-in-the-gapitems içinde 1 ile 50 arasında öğe
İçerik
api_c_fill_in_the_gap
Yedek ad olarak “Fill in the gap API” kullanılır
Bilmekte fayda var
Cümlenin tamamını yaz ve boş bırakılacak her kelimenin çevresine yıldız işareti koy: "Water boils at *100* degrees." Bir çiftin içindeki birkaç kelime tek bir boşluktur. Bir kayıt, cümlenin üstünde gösterilen bir yönerge de taşıyabilir.
Örnek istek
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": "tr",
"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."
}
]
}'
Başarılı
{
"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/deconstructitems içinde 1 ile 50 arasında öğe
İçerik
Bir cümle dizisi. Etiketlenecek her kelime [word](label) biçiminde yazılır.
Yedek ad olarak “Sentence analysis API” kullanılır
Bilmekte fayda var
Bir cümleyi "The [dog](noun) [barks](verb)." biçiminde yaz. Etiketsiz kelimeler gösterilir ama sorulmaz. noun, verb, adjective ve subject etiketleri her oyuncuya kendi dilinde gösterilir.
Okuduğu ayarlar
Alan
Tür
Ne işe yarar
categories
isteğe bağlısettings içinde
string[]
string[]
Oyuncuların aralarından seçtiği etiketler, sırayla. Boş bırakılırsa cümlelerde kullanılan etiketler olur. Hiçbir kelimenin taşımadığı bir etiket eklemek ya da sırayı düzeltmek için gönder.
Örnek istek
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": "tr",
"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-puzzleitems içinde en az 3 öğe
İçerik
api_c_logic_puzzle
Yedek ad olarak “Logic Puzzle API” kullanılır
Bilmekte fayda var
Her kategorinin aynı sayıda, 3 ile 6 arasında ve hepsi farklı öğesi olmalıdır. Bir kategori ordered olarak işaretlenebilir (fiyatlar, saatler, yaşlar) ve isteğe bağlı bir unit alabilir; bu, oluşturucunun daha fazla, daha az ve ne kadar hakkında ipuçları yazmasını sağlar.
Okuduğu ayarlar
Alan
Tür
Ne işe yarar
story
isteğe bağlısettings içinde
string
string
İpuçlarının üstünde gösterilen arka plan hikâyesi.
difficulty
isteğe bağlısettings içinde
string
string
Oluşturucunun hangi tür ipuçlarını kullanabileceği.
Şunlardan birieasymediumhard
Varsayılan: "easy"
hints
isteğe bağlısettings içinde
boolean
boolean
Bir sonraki adımı gösteren bir ipucu düğmesi sunar.
Varsayılan: true
auto_cross
isteğe bağlısettings içinde
boolean
boolean
Bir eşleşmeyi işaretlemek, onun satırının ve sütununun geri kalanını çizer.
Varsayılan: true
clue_mode
isteğe bağlısettings içinde
string
string
Oyuncuların gördüğü ipuçlarını kimin yazdığı: tablodan üretilenler, free_clues içindeki kendi cümlelerin ya da hiçbiri.
Şunlardan birigeneratedfreenone
Varsayılan: "generated"
free_clues
isteğe bağlısettings içinde
string[]
string[]
Kendi ipucu cümlelerin; clue_mode "free" iken yazdığın gibi gösterilir. Hiçbiri denetlenmez.
Örnek istek
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": "tr",
"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-huntitems içinde 1 ile 50 arasında öğe
İçerik
api_c_scavenger_hunt
Yedek ad olarak “Scavenger Hunt API” kullanılır
Bilmekte fayda var
Bir adım; title, description, code ve isteğe bağlı olarak accepted_codes (sayılan diğer yazımlar), url ve link_text içeren bir nesnedir. Bir kod, büyük/küçük harf ve boşluklara bakılmadan kontrol edilir. Pinli harita yalnızca düzenleyicide eklenebilir.
Örnek istek
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": "tr",
"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-reasoningitems içinde 1 ile 50 arasında öğe
İçerik
api_c_spatial_reasoning
Yedek ad olarak “Spatial Reasoning API” kullanılır
Bilmekte fayda var
Nesneler ve hedefler square, triangle, circle, hexagon, pentagon, star, diamond ya da heart olabilir. İlişkiler inside, outside, behind, in_front_of, right_of, left_of, above, below, same_color_as, different_color_from, larger_than ve smaller_than olabilir. Hiçbir zaman sağlanamayacak bir kural 400 cevabı verir.
Okuduğu ayarlar
Alan
Tür
Ne işe yarar
clue_mode
isteğe bağlısettings içinde
string
string
Kuralların görsel olarak mı yoksa cümle olarak mı gösterileceği.
POST/api/public/v1/rebusitems içinde 1 ile 30 arasında öğe
İçerik
Bir cümle dizisi. Her biri görsel olarak çizilen kelimeleri listeler; diğer her kelime kendi harfleriyle kalır.
Yedek ad olarak “Rebus API” kullanılır
Bilmekte fayda var
Bir kelime, birlikte onu yazan parçalardan çizilir. Bir parçanın temsil ettiği harfler (text), bir emoji ve shows alanı vardır: görselin gösterdiği şeyin kelimesi ("room" yerine duran bir görsel için "broom"). Harf değişikliklerini Puzzel kendisi bulur. Bir parça bunun yerine bir sembol de olabilir; örneğin "for" için 4.
Okuduğu ayarlar
Alan
Tür
Ne işe yarar
rebus_commas
isteğe bağlısettings içinde
boolean
boolean
Düşmüş bir ilk ya da son harfi, görselin yanında bir virgül olarak çizer.
image alanında tek bir görsel URL'si. Bu uç nokta items almaz.
Yedek ad olarak “Jigsaw Game API” kullanılır
Bilmekte fayda var
API her zaman 4'e 4 bir yapboz yapar. Parça sayısı, düzensiz parçalar ve düz kenarlar düzenleyici ayarlarıdır — burada rows ya da columns göndermek bir şey değiştirmez.
URL gönderdiğin hâliyle saklanır ve dosya hiçbir zaman kopyalanmaz; bu yüzden etkinlik oynandığı sürece herkese açık şekilde erişilebilir kalmalı.
Okuduğu ayarlar
Alan
Tür
Ne işe yarar
image
zorunlu
string
string
Parçalara ayrılacak görselin tam URL'si. settings içinde değil, en üst düzeyde gönderilir.