İçeriğe geç
Yeni Puzzel.org'un önizlemesine bakıyorsun Mevcut siteye dön
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
20 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

Kare 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 en az 2 öğ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.
Ö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 en az 2 öğ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 en az 1 öğ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 en az 1 öğ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 en az 1 öğ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 en az 1 öğ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 en az 1 öğ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 en az 1 öğ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"
}
Kartlar ve çiftler

Memory

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

#
POST /api/public/v1/memory items içinde en az 2 öğ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 en az 2 öğ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"
}

Bilgi kartları

api_e_flash_cards

#
POST /api/public/v1/flash-cards items içinde en az 1 öğ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
İç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
İç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"
}
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 en az 1 öğ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 ya "multiple_choice" olur — doğru seçenek isCorrect true taşır — ya da bunun yerine correct_answer kullanan "open_answer" olur. 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 en az 1 öğe
İçerik

api_c_board_game

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

Bilmekte fayda var
  • question_type ya "multiple_choice" olur — doğru seçenek isCorrect true taşır — ya da bunun yerine correct_answer kullanan "open_answer" olur. 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"
}
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"
}
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