İçeriğe geç
Geliştirici API'si

Kendi sisteminden etkinlik oluştur

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

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.

AlanTürNe işe yarar
account_api_key
zorunlu
string
stringHesabının API anahtarı. Header'a değil, gövdeye konur.
email
zorunlu
string
stringPuzzel.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.

Giriş yap

API anahtarları abonelik başladığında verilir; yani ücretsiz bir hesapta henüz yoktur.

Paketleri gör

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.

AlanTürNe işe yarar
account_api_key
zorunlu
string
stringHesabının API anahtarı. Header'a değil, gövdeye konur.
email
zorunlu
string
stringPuzzel.org hesabının giriş yaptığı adres. Anahtar yalnızca onunla birlikte geçerlidir.
title
isteğe bağlı
string
stringEtkinliğin panelinde alacağı ad. Boş bırak, uç nokta kendi yedek adını kullanır.
language
isteğe bağlı
string
stringYalnı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
stringYeni 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.

Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}
Başarısız
{
  "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.

DurumNe 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

Çengel bulmaca

Cevaplarını bir ızgarada birbirine geçirir ve tanımları senin için numaralandırır.

#
POST /api/public/v1/crossword items 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
AlanTürNe 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"
    }
  ]
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}

Kelime avı

Kelimelerini bir harf ızgarasında, seçtiğin yönlerde ve şekilde saklar.

#
POST /api/public/v1/wordseeker items içinde 2 ile 40 arasında öğe
İçerik

Bir kelime dizisi. Tanım metni, oyuncuların çalıştığı kelime listesi olur.

Yedek ad olarak “Wordseeker API” kullanılır

Bilmekte fayda var
  • İki karakterden kısa cevaplar elenir ve her cevap ızgaraya girmeden önce büyük harfe çevrilir.
  • language "ar" değilse ızgara Latin harfleriyle doldurulur; "ar" olduğunda dolgu Arapçaya geçer.
Okuduğu ayarlar
AlanTürNe işe yarar
hidden_solution
isteğe bağlı settings içinde
string
stringArtan harfler bunu yazar. Bunu ayarlamak ayrıca oluşturucuya, olabildiğince çok kelime sıkıştırmak yerine önce çözümü yerleştirmesini söyler.
directions
isteğe bağlı settings içinde
string[]
string[]Bir kelimenin hangi yönlerde uzanabileceği. Boş bırak, kelimeler yalnızca doğuya, güneydoğuya ve güneye uzanır.
Şunlardan biri westeastnorthsouthnorthwestnortheastsouthwestsoutheast
Varsayılan: ["east", "southeast", "south"]
template
isteğe bağlı settings içinde
string
stringIzgarayı kare bırakmak yerine bir şekle göre keser.
Şunlardan biri squarecirclecrossdiamondpyramidsmileystarcross_plus
Örnek istek
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": "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"
    }
  ],
  "settings": {
    "hidden_solution": "FRUIT",
    "directions": [
      "east",
      "south",
      "southeast"
    ],
    "template": "square"
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordseeker/embed?p=-Nq8sample_activity_key",
  "message": "Wordseeker created successfully"
}

Akrostiş

Cevaplarını, bir sütun gizli bir kelime yazacak şekilde üst üste dizer.

#
POST /api/public/v1/acrostic items içinde 1 ile 40 arasında öğe
İçerik

Bir kelime dizisi. Aralarında gizli kelimenin her harfini sağlamaları gerekir.

Yedek ad olarak “Acrostic API” kullanılır

Bilmekte fayda var
  • Cevaplar çözümün ihtiyaç duyduğu harfleri veremiyorsa, çağrı yarım kalmış bir ızgarayı kaydetmek yerine 500 cevabı verir.
  • Oluşturucu, sütunun tutması için cevaplarını yeniden sıralar; yani gönderdiğin sıra oyuncuların gördüğü sıra değildir.
Okuduğu ayarlar
AlanTürNe işe yarar
hidden_solution
zorunlu settings içinde
string
stringVurgulanan sütunun yazdığı kelime. Bu uç nokta onsuz çalışmaz.
Örnek istek
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": "tr",
  "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"
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/acrostic/embed?p=-Nq8sample_activity_key",
  "message": "Acrostic created successfully"
}

Karışık harfler

api_e_word_scramble

#
POST /api/public/v1/word-scramble items içinde 1 ile 40 arasında öğe
İçerik

api_c_word_scramble

Yedek ad olarak “Word Scramble API” kullanılır

Bilmekte fayda var
  • API üzerinden yapılan etkinliklerde sırayı karıştır ayarı her zaman açıktır; yani gönderdiğin sıra oyuncuların aldığı sıra değildir.
Okuduğu ayarlar
AlanTürNe işe yarar
hidden_solution
isteğe bağlı settings içinde
string
stringGerisi çözüldükten sonra oyuncuların gireceği, isteğe bağlı bir bonus kelime.
Örnek istek
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": "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"
    }
  ],
  "settings": {
    "hidden_solution": "FRUIT"
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/word-scramble/embed?p=-Nq8sample_activity_key",
  "message": "Word Scramble created successfully"
}

Adam asmaca

Kelimelerini ya da ifadelerini harf tahmin turlarına çevirir.

#
POST /api/public/v1/hangman items içinde 1 ile 50 arasında öğe
İçerik

Bir kelime ya da kısa ifade dizisi. clue alanı, oyuncuların gördüğü ipucudur.

Yedek ad olarak “Hangman API” kullanılır

Örnek istek
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": "tr",
  "items": [
    {
      "answer": "BANANA",
      "description": "A long yellow fruit",
      "type": "text"
    }
  ]
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/hangman/embed?p=-Nq8sample_activity_key",
  "message": "Hangman created successfully"
}

Wordle

Gönderdiğin her kelimeden bir kelime tahmin oyunu yapar.

#
POST /api/public/v1/wordle items içinde 1 ile 50 arasında öğe
İçerik

Bir kelime dizisi. Oyuncular her kelime için bir tur oynar.

Yedek ad olarak “Wordle API” kullanılır

Bilmekte fayda var
  • Tahminlerin gerçek kelime olup olmadığını denetle ayarı açık olarak oluşturulur. Kelimelerin özel ad ya da uydurma ise düzenleyicide bu ayarı kapat.
Örnek istek
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": "tr",
  "items": [
    {
      "answer": "MELON",
      "description": "Sweet and green",
      "type": "text"
    },
    {
      "answer": "PEACH",
      "description": "Fuzzy and orange",
      "type": "text"
    }
  ]
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordle/embed?p=-Nq8sample_activity_key",
  "message": "Wordle created successfully"
}

Klavye alıştırması

api_e_typing_practice

#
POST /api/public/v1/typing-practice items 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"
}

Çarkıfelek

api_e_wheel_of_fortune

#
POST /api/public/v1/wheel-of-fortune items içinde 1 ile 50 arasında öğe
İçerik

api_c_wheel_of_fortune

Yedek ad olarak “Wheel of Fortune API” kullanılır

Bilmekte fayda var
  • “Sonucu yalnızca çarkta göster” ayarıyla oluşturulur; yani sonuç, çarkın yanında duyurulmak yerine çarkın üzerinden okunur.
Örnek istek
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": "tr",
  "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"
    }
  ]
}'
Başarılı
{
  "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"
}

İsveç usulü bulmaca

Bir İsveç usulü bulmaca: tanımlar ızgaranın içinde durur ve her biri cevabına bir okla bakar.

#
POST /api/public/v1/arrowword items içinde 2 ile 80 arasında öğe
İçerik

Bir kelime dizisi. Her kayıt, cevabı tek bir hücreye sığacak kadar kısa bir tanımla eşleştirir.

Yedek ad olarak “Arrowword API” kullanılır

Okuduğu ayarlar
AlanTürNe 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; bu yüzden harflerinin her biri cevapların içinde geçmek zorundadır.
Örnek istek
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": "tr",
  "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"
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/arrowword/embed?p=-Nq8sample_activity_key",
  "message": "Arrowword created successfully"
}

Strands

Izgaradaki her harf temaya ait bir kelimenin parçasıdır; temayı adlandıran bir kelime ise ızgaranın bir kenarından diğerine uzanır.

#
POST /api/public/v1/strands items 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
AlanTürNe işe yarar
theme
isteğe bağlı settings içinde
string
stringIzgaranı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
stringTemayı adlandıran ve tahtayı bir kenardan diğerine kesen kelime ya da ifade.
Örnek istek
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": "tr",
  "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"
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/strands/embed?p=-Nq8sample_activity_key",
  "message": "Strands created successfully"
}

Hatırlama testi

api_e_name_them_all

#
POST /api/public/v1/name-them-all items 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
AlanTürNe işe yarar
list_match_mode
isteğe bağlı settings içinde
string
stringBir adın yazıldığı anda mı, yoksa yalnızca Enter tuşuna basınca mı sayılacağı.
Şunlardan biri while_typingon_enter
Varsayılan: "while_typing"
list_slot_hint
isteğe bağlı settings içinde
string
stringBoş bir yuvanın neyi ele verdiği: hiçbir şeyi, adın uzunluğunu, ilk harfini ya da yazdığın ipucunu.
Şunlardan biri nonelengthfirst_letterhint
Varsayılan: "none"
list_arrange
isteğe bağlı settings içinde
string
stringHer grup için bir sütun ya da tek bir liste.
Şunlardan biri groupsone_list
Varsayılan: "groups"
list_allow_give_up
isteğe bağlı settings içinde
boolean
booleanTuru bitiren ve kaçırılanları gösteren bir pes et düğmesi gösterir.
Varsayılan: false
Örnek istek
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": "tr",
  "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
  }
}'
Başarılı
{
  "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"
}
Kartlar ve çiftler

Hafıza oyunu

Yüzü kapalı kartlar — çevirip çiftler hâlinde eşleştirilir.

#
POST /api/public/v1/memory items 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.
Örnek istek
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": "tr",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/memory/embed?p=-Nq8sample_activity_key",
  "message": "Memory game created successfully"
}

Eşleştirme oyunu

api_e_matching_pairs

#
POST /api/public/v1/matching-pairs items 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.
Örnek istek
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": "tr",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/matching-pairs/embed?p=-Nq8sample_activity_key",
  "message": "Matching pairs game created successfully"
}

Flash kartlar

api_e_flash_cards

#
POST /api/public/v1/flash-cards items 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.
Örnek istek
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": "tr",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/flash-cards/embed?p=-Nq8sample_activity_key",
  "message": "Flash Cards created successfully"
}

Gruplama bulmacası

Ait oldukları gruba yerleştirilecek kartlar.

#
POST /api/public/v1/categorize items 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.
Örnek istek
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": "tr",
  "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"
        }
      ]
    }
  ]
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/categorize/embed?p=-Nq8sample_activity_key",
  "message": "Categorize game created successfully"
}

Sıralama bulmacası

Oyuncuların yeniden sıraya dizmesi gereken bir dizi.

#
POST /api/public/v1/reorder items 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.
Örnek istek
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": "tr",
  "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"
        }
      ]
    }
  ]
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/reorder/embed?p=-Nq8sample_activity_key",
  "message": "Reorder game created successfully"
}

Bingo

Oyun yöneticisinin canlı olarak çektiği bir sınıf bingosu: her oyuncu, öğelerinden çekilen bir kart alır.

#
POST /api/public/v1/bingo items almaz
İçerik

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
AlanTürNe işe yarar
mode
isteğe bağlı settings içinde
string
stringHücreleri neyin doldurduğu: öğelerin, ipucuyla çağrılan öğelerin ya da düz sayılar (öğe gerekmez).
Şunlardan biri itemscluesnumbers
Varsayılan: "items"
rows
isteğe bağlı settings içinde
number
numberHer kartta satır sayısı, 2 ile 5 arasında.
Varsayılan: 3
columns
isteğe bağlı settings içinde
number
numberHer kartta sütun sayısı, 2 ile 5 arasında.
Varsayılan: 3
highest_number
isteğe bağlı settings içinde
number
numbernumbers 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
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/bingo/embed?p=-Nq8sample_activity_key",
  "message": "Bingo created successfully"
}

Bende var, kimde var

api_e_i_have_who_has

#
POST /api/public/v1/i-have-who-has items içinde 3 ile 40 arasında öğe
İçerik

api_c_i_have_who_has

Yedek ad olarak “I Have, Who Has API” kullanılır

Bilmekte fayda var
  • Hiçbir soru ve hiçbir cevap iki kez geçmemelidir: cevabı elinde tutan bir öğrenci, bunun hangi soruya ait olduğunu ayırt edemez.
Okuduğu ayarlar
AlanTürNe işe yarar
chain_shape
isteğe bağlı settings içinde
string
stringBir döngü kendi üzerine kapanır, bu yüzden herhangi bir kart başlayabilir; bir çizgi ise Başlangıç kartıyla açılır ve Bitiş kartıyla biter.
Şunlardan biri loopline
Varsayılan: "loop"
Örnek istek
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": "tr",
  "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"
  }
}'
Başarılı
{
  "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"
}

Şifreli kilit

Bir şifreli kilit: bir dizi kart; bazıları bir araya gelince kodu oluşturur.

#
POST /api/public/v1/keypad items 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
AlanTürNe işe yarar
instructions
isteğe bağlı settings içinde
string
stringKodun cevapladığı soru ya da bilmece; kartlarla birlikte gösterilir.
force_solution_in_correct_order
isteğe bağlı settings içinde
boolean
booleanKartlara sırayla basılmalıdır. Kapalıyken doğru kartların herhangi bir sırası kilidi açar.
Varsayılan: false
randomize_order
isteğe bağlı settings içinde
boolean
booleanHer oyuncu kartları karışık bir düzende alır.
Varsayılan: true
Örnek istek
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": "tr",
  "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
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/keypad/embed?p=-Nq8sample_activity_key",
  "message": "Keypad created successfully"
}

Dörtlü oyun

Kart oyunu: oyuncular dörtlüler toplamak için birbirlerinden kart ister.

#
POST /api/public/v1/quartets items 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
AlanTürNe işe yarar
type
isteğe bağlı settings içinde
string
stringDü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 biri normallearn
Ö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"
}
Sorular ve cevaplar

Quiz

Çoktan seçmeli ve açık uçlu sorular; oyuncular ilerledikçe puanlanır.

#
POST /api/public/v1/quiz items 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."
    }
  ]
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/quiz/embed?p=-Nq8sample_activity_key",
  "message": "Quiz created successfully"
}

Kutu oyunu

api_e_board_game

#
POST /api/public/v1/board-game items 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
AlanTürNe işe yarar
number_of_tiles
isteğe bağlı settings içinde
number
numberOyun tahtasında kaç kare olduğu. 10 ile 75 arasında.
Varsayılan: 30
game_mode
isteğe bağlı settings içinde
string
stringOyuncuların bitişe mi yarıştığı, yoksa yol boyunca nesne mi topladığı.
Şunlardan biri race_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"
}

Labirent

İçinde yürünecek bir labirent: her soru bir oda, cevapları ise kapılardır.

#
POST /api/public/v1/maze items içinde en az 1 öğe
İçerik

Ç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
AlanTürNe işe yarar
maze_width
isteğe bağlı settings içinde
string
stringOdaların nasıl dizildiği: tek sütun, kare ya da daha geniş.
Şunlardan biri narrownormalwide
Varsayılan: "normal"
maze_corridors
isteğe bağlı settings içinde
string
stringİki soru arasında ne kadar labirent olduğu.
Şunlardan biri shortnormallong
Varsayılan: "normal"
maze_fog
isteğe bağlı settings içinde
string
stringLabirentin tamamını göster ya da yalnızca oyuncunun yanından geçtiği yerleri.
Şunlardan biri offnear
Varsayılan: "off"
maze_wrong_door_pause
isteğe bağlı settings içinde
string
stringYanlış bir kapıdan sonra kapıların ne kadar süre kapalı kalacağı.
Şunlardan biri noneshortlong
Varsayılan: "short"
maze_walk_there
isteğe bağlı settings içinde
boolean
booleanJetonu bir sonraki odaya yürüten bir düğme sunar.
Varsayılan: false
maze_seed
isteğe bağlı settings içinde
string
stringLabirentin ü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"
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/maze/embed?p=-Nq8sample_activity_key",
  "message": "Maze created successfully"
}

Jeopardy

Bir yarışma programı tahtası: üstte kategoriler, altında aşağı indikçe daha çok puan eden ipuçları.

#
POST /api/public/v1/jeopardy items 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
AlanTürNe işe yarar
jeopardy_buzzer_mode
isteğe bağlı settings içinde
string
stringKim nasıl oynar: oyun yöneticisi konsoldan yönetir, oyuncular telefonlarından zile basar ya da her oyuncu tahtayı tek başına oynar.
Şunlardan biri hostphonessolo
Varsayılan: "host"
jeopardy_contestants
isteğe bağlı settings içinde
string
stringKonsolun takımlardan mı yoksa oyunculardan mı söz edeceği.
Şunlardan biri teamsplayers
Varsayılan: "teams"
jeopardy_value_step
isteğe bağlı settings içinde
number
numberBir 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
numberBir 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
booleanYanlış bir cevap, ipucunun değerini puandan düşer.
Varsayılan: false
jeopardy_reveal_on_timeout
isteğe bağlı settings içinde
boolean
booleanSüre dolduğunda tahta cevabı kendisi gösterir.
Varsayılan: false
jeopardy_require_question_form
isteğe bağlı settings içinde
boolean
booleanOyunculara 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
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/jeopardy/embed?p=-Nq8sample_activity_key",
  "message": "Jeopardy board created successfully"
}

Etkileşimli video

api_e_interactive_video

#
POST /api/public/v1/interactive-video items 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
AlanTürNe işe yarar
video_url
zorunlu settings içinde
string
stringVideo: bir YouTube, Vimeo ya da Bunny Stream sayfası veya bir mp4, webm ya da mov dosyasına doğrudan bağlantı.
video_duration
isteğe bağlı settings içinde
number
numberVideonun saniye cinsinden uzunluğu. Verildiğinde, bitişin ötesine konan bir açılır pencere reddedilir.
Örnek istek
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": "tr",
  "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
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/interactive-video/embed?p=-Nq8sample_activity_key",
  "message": "Interactive video created successfully"
}
Cümleler ve sayılar

Kriptogram

Bir cümleyi, karakter karakter çözülecek bir şifreye çevirir.

#
POST /api/public/v1/cryptogram items almaz
İçerik

sentence alanında tek bir cümle. Bu uç nokta items almaz.

Yedek ad olarak “Cryptogram API” kullanılır

Bilmekte fayda var
  • items içinde gönderdiğin her şey yok sayılır — bulmaca yalnızca cümleden kurulur.
Okuduğu ayarlar
AlanTürNe işe yarar
sentence
zorunlu
string
stringŞifrelenecek cümle. Oyuncular onu karakter karakter çözer.
helpers
isteğe bağlı settings içinde
string
stringBaşlangıç kolaylığı olarak hangi karakterlerin baştan verileceği: hiçbiri, en sık geçenler, ünlüler ya da kendi listelediklerin.
Şunlardan biri nonemost_commonvowelscustom
Varsayılan: "none"
character_list
isteğe bağlı settings içinde
string
stringŞifrenin kurulduğu alfabe. Boş bırakılırsa şifreleme kendi alfabesini seçer.
extra_letters
isteğe bağlı settings içinde
string
stringhelpers "custom" olduğunda baştan verilen karakterler. Diğer yardım modlarında yok sayılır.
hide_unused_characters
isteğe bağlı settings içinde
boolean
booleanCümlede hiç kullanılmayan karakterleri anahtarın dışında bırakır.
Varsayılan: false
Örnek istek
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": "tr",
  "sentence": "An apple a day keeps the doctor away",
  "settings": {
    "helpers": "vowels",
    "hide_unused_characters": false
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/cryptogram/embed?p=-Nq8sample_activity_key",
  "message": "Cryptogram created successfully"
}

Hesaplama alıştırması

Bir cümleyi işlemlerin arkasına saklar — işlemi çöz, harf ortaya çıksın.

#
POST /api/public/v1/calculation items almaz
İçerik

sentence alanında tek bir cümle. Bu uç nokta items almaz.

Yedek ad olarak “Calculation Game API” kullanılır

Bilmekte fayda var
  • Kısıtlar cümleyi kodlamak için fazla darsa, çağrı yarım bir bulmaca kaydetmek yerine 400 cevabı verip bunları gevşetmeni ister.
Okuduğu ayarlar
AlanTürNe işe yarar
sentence
zorunlu
string
stringOyuncuların işlemleri çözerek ortaya çıkardığı cümle.
difficulty_level
isteğe bağlı settings içinde
number
numberBir işlemin verebileceği en yüksek cevap.
Şunlardan biri 20501001000
Varsayılan: "100"
operators
isteğe bağlı settings içinde
string[]
string[]Hangi işlem türlerinin görünebileceği. x çarpma, : bölmedir.
Şunlardan biri +-x:
Varsayılan: ["+", "-", "x", ":"]
max_operations
isteğe bağlı settings içinde
number
numberBir işlemde en fazla kaç adımın arka arkaya zincirlenebileceği.
Şunlardan biri 123
Varsayılan: 1
number_difficulty
isteğe bağlı settings içinde
number
numberBir işlemin içindeki tek tek sayıları sınırlar. 5 ile 1000 arasında herhangi bir değer.
Varsayılan: 100
Örnek istek
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": "tr",
  "sentence": "Fruit salad for everyone",
  "settings": {
    "difficulty_level": "100",
    "operators": [
      "+",
      "-",
      "x",
      ":"
    ],
    "max_operations": 1,
    "number_difficulty": 100
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/calculation/embed?p=-Nq8sample_activity_key",
  "message": "Calculation game created successfully"
}

Sudoku

Çözülmüş bir ızgara üretir, sonra sayıları geri çıkarır.

#
POST /api/public/v1/sudoku items almaz
İçerik

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
AlanTürNe işe yarar
size
isteğe bağlı settings içinde
string
stringBir 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.
Şunlardan biri 2x22x33x33x44x4
Varsayılan: "3x3"
difficulty_level
isteğe bağlı settings içinde
string
stringBaşlangıç için tahtada kaç sayının bırakılacağı.
Şunlardan biri easynormalhard
Varsayılan: "normal"
Örnek istek
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": "tr",
  "settings": {
    "size": "3x3",
    "difficulty_level": "normal"
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/sudoku/embed?p=-Nq8sample_activity_key",
  "message": "Sudoku created successfully"
}

Düşen cümle

api_e_fallen_phrase

#
POST /api/public/v1/fallen-phrase items almaz
İçerik

api_c_fallen_phrase

Yedek ad olarak “Fallen Phrase API” kullanılır

Okuduğu ayarlar
AlanTürNe işe yarar
sentence
zorunlu
string
stringGizlenecek ifade: bir alıntı, bir atasözü, bir anahtar cümle. En fazla 120 harf ve rakam.
columns
isteğe bağlı settings içinde
number
numberTahtanın genişliği, 8 ile 18 arasında. Daha dar olursa her sütunda daha çok harf yığılır ve bulmaca zorlaşır.
Varsayılan: 14
helpers
isteğe bağlı settings içinde
string
stringBir başlangıç kolaylığı olarak ızgarada hangi harflerin kalacağı: hiçbiri, en sık geçenler, ünlüler ya da kendi listelediklerin.
Şunlardan biri nonemost_commonvowelscustom
Varsayılan: "none"
extra_letters
isteğe bağlı settings içinde
string
stringhelpers "custom" olduğunda baştan verilen harfler.
Örnek istek
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": "tr",
  "sentence": "Don't count your chickens before they hatch.",
  "settings": {
    "columns": 12,
    "helpers": "custom",
    "extra_letters": "ky"
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/fallen-phrase/embed?p=-Nq8sample_activity_key",
  "message": "Fallen phrase created successfully"
}

Çarpım tablosu

api_e_times_tables

#
POST /api/public/v1/times-tables items almaz
İçerik

api_c_times_tables

Yedek ad olarak “Times Tables API” kullanılır

Okuduğu ayarlar
AlanTürNe işe yarar
tables
isteğe bağlı settings içinde
number[]
number[]Çalışılacak tablolar. Boş bırakılırsa 1'den 10'a kadardır; 11 ya da 12 eklersen ızgara 12'ye 12 olur.
Şunlardan biri 123456789101112
order
isteğe bağlı settings içinde
string
stringSatır ve sütunların sırayla mı yoksa karışık mı dizileceği.
Şunlardan biri ascendingshuffled
Varsayılan: "ascending"
picture
isteğe bağlı settings içinde
string
stringDoğru cevapların boyadığı görsel.
Şunlardan biri sailboatheartrockettreecatfishflowerhouse
Varsayılan: "sailboat"
players_choose_tables
isteğe bağlı settings içinde
boolean
booleanHer oyuncunun hangi tabloları çalışacağını seçmesine izin verir.
Varsayılan: false
fill_same_sums
isteğe bağlı settings içinde
boolean
booleanTek bir doğru cevap, aynı işlemi veren tüm kareleri doldurur.
Varsayılan: true
Örnek istek
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": "tr",
  "settings": {
    "tables": [
      7,
      3,
      4
    ],
    "order": "shuffled",
    "seed": "k3x9q2ab",
    "picture": "rocket",
    "players_choose_tables": true,
    "fill_same_sums": false
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/times-tables/embed?p=-Nq8sample_activity_key",
  "message": "Times tables created successfully"
}

Boşluk doldurma

api_e_fill_in_the_gap

#
POST /api/public/v1/fill-in-the-gap items 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"
}

Cümle çözümlemesi

Oyuncuların kelimeleri etiketlediği cümleler: kelime türleri, cümle öğeleri ya da kendi etiketlerin.

#
POST /api/public/v1/deconstruct items 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
AlanTürNe 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"
    ]
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/deconstruct/embed?p=-Nq8sample_activity_key",
  "message": "Sentence analysis created successfully"
}

Mantık bulmacası

api_e_logic_puzzle

#
POST /api/public/v1/logic-puzzle items 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
AlanTürNe 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
stringOluşturucunun hangi tür ipuçlarını kullanabileceği.
Şunlardan biri easymediumhard
Varsayılan: "easy"
hints
isteğe bağlı settings içinde
boolean
booleanBir sonraki adımı gösteren bir ipucu düğmesi sunar.
Varsayılan: true
auto_cross
isteğe bağlı settings içinde
boolean
booleanBir 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
stringOyuncuların gördüğü ipuçlarını kimin yazdığı: tablodan üretilenler, free_clues içindeki kendi cümlelerin ya da hiçbiri.
Şunlardan biri generatedfreenone
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"
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/logic-puzzle/embed?p=-Nq8sample_activity_key",
  "message": "Logic puzzle created successfully"
}

Hazine avı

api_e_scavenger_hunt

#
POST /api/public/v1/scavenger-hunt items 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"
      ]
    }
  ]
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/scavenger-hunt/embed?p=-Nq8sample_activity_key",
  "message": "Scavenger hunt created successfully"
}

Uzamsal düşünme

api_e_spatial_reasoning

#
POST /api/public/v1/spatial-reasoning items 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
AlanTürNe işe yarar
clue_mode
isteğe bağlı settings içinde
string
stringKuralların görsel olarak mı yoksa cümle olarak mı gösterileceği.
Şunlardan biri visualtext
Varsayılan: "visual"
unique_object_picks
isteğe bağlı settings içinde
boolean
booleanHer şekil yalnızca bir kez yerleştirilebilir.
Varsayılan: false
hide_color_picker
isteğe bağlı settings içinde
boolean
booleanOyuncular şekillerin rengini değiştiremez.
Varsayılan: false
Örnek istek
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": "tr",
  "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
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/spatial-reasoning/embed?p=-Nq8sample_activity_key",
  "message": "Spatial reasoning activity created successfully"
}

Rebüs

Görsellerle yazılmış cümleler: oyuncular görselleri okur ve harf değişikliklerini yaparak kelimelere ulaşır.

#
POST /api/public/v1/rebus items 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
AlanTürNe işe yarar
rebus_commas
isteğe bağlı settings içinde
boolean
booleanDüşmüş bir ilk ya da son harfi, görselin yanında bir virgül olarak çizer.
Varsayılan: false
Örnek istek
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": "tr",
  "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
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/rebus/embed?p=-Nq8sample_activity_key",
  "message": "Rebus created successfully"
}
Görseller

Yapboz

Bir görseli, yeniden birleştirmek üzere sürüklenecek parçalara keser.

#
POST /api/public/v1/jigsaw items almaz
İçerik

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
AlanTürNe işe yarar
image
zorunlu
string
stringParçalara ayrılacak görselin tam URL'si. settings içinde değil, en üst düzeyde gönderilir.
Örnek istek
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": "tr",
  "image": "https://example.com/orchard.jpg"
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/jigsaw/embed?p=-Nq8sample_activity_key",
  "message": "Jigsaw game created successfully"
}

Kaydırmalı bulmaca

Bir görseli, kaydırılarak yerine oturan parçalara böler.

#
POST /api/public/v1/slidingpuzzle items almaz
İçerik

settings içinde tek bir görsel URL'si. Bu uç nokta items almaz.

Yedek ad olarak “Sliding Puzzle API” kullanılır

Bilmekte fayda var
  • Yapbozdan farklı olarak bu uç nokta görselini settings.image içinden okur. En üst düzeydeki bir image alanı yok sayılır ve çağrı 400 cevabı verir.
  • 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
AlanTürNe işe yarar
image
zorunlu settings içinde
string
stringKarıştırılacak görselin tam URL'si. Yapbozunkinden farklı olarak bu, settings içinde yer alır.
Örnek istek
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": "tr",
  "settings": {
    "image": "https://example.com/orchard.jpg"
  }
}'
Başarılı
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/slidingpuzzle/embed?p=-Nq8sample_activity_key",
  "message": "Sliding puzzle created successfully"
}

Bir şey beklendiği gibi çalışmıyor mu?

Denediğin isteği ve aldığın hatayı gönder; uç noktayı yazan kişiden gerçek bir cevap alırsın.

Destek ekibine e-posta gönder