Lompat ke konten
API pengembang

Buat aktivitas dari sistemmu sendiri

Satu POST per jenis aktivitas. Kirim kontenmu sebagai JSON, lalu kamu mendapat satu aktivitas di akun Puzzel.org milikmu beserta URL yang bisa kamu berikan ke pemain atau kamu sematkan di iframe.

URL dasar
https://puzzel.org/api/public/v1
Autentikasi
Kunci + email di body
Endpoint
38 jenis aktivitas
Kuota
10 aktivitas per hari

Permintaan pertamamu

Tidak ada yang perlu dipasang dan tidak ada handshake: kirim body JSON berisi kuncimu, emailmu, dan kontenmu. Responsnya membawa kunci aktivitas baru itu dan URL tempat aktivitas itu dimainkan.

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

Setiap contoh di halaman ini adalah permintaan lengkap yang bisa langsung dijalankan. Ganti dengan kunci dan kontenmu sendiri, dan contoh itu langsung berfungsi.

Autentikasi

Tidak ada header dan tidak ada bearer token. Kedua kredensial dikirim di body JSON setiap permintaan, dan kunci hanya diterima untuk akun yang memiliki email tersebut.

KolomTipeFungsinya
account_api_key
wajib
string
stringKunci API akunmu. Dikirim di body, bukan di header.
email
wajib
string
stringAlamat email yang kamu pakai untuk masuk ke akun Puzzel.org. Kunci hanya berlaku bersama alamat itu.

Kuncimu ada di bagian akun pada dasbormu, di balik tombol Tampilkan.

Masuk

Kunci API diberikan saat langganan dimulai, jadi akun gratis belum punya kunci.

Lihat paket

Perlakukan kunci itu seperti kata sandi. Kunci itu membuat dan menimpa aktivitas di akunmu, jadi simpan di sisi server dan jauhkan dari apa pun yang bisa dibaca peramban.

Body permintaan

Setiap endpoint menerima lima kolom yang sama. Yang berbeda adalah kolom konten di bawahnya: sebagian besar menerima array items, beberapa menerima satu sentence atau satu image, dan Sudoku tidak menerima apa pun.

KolomTipeFungsinya
account_api_key
wajib
string
stringKunci API akunmu. Dikirim di body, bukan di header.
email
wajib
string
stringAlamat email yang kamu pakai untuk masuk ke akun Puzzel.org. Kunci hanya berlaku bersama alamat itu.
title
opsional
string
stringNama yang didapat aktivitas di dasbormu. Kosongkan dan endpoint memakai nama cadangannya sendiri.
language
opsional
string
stringHanya menentukan lokal di URL yang kamu terima — kolom ini tidak menerjemahkan apa pun yang kamu kirim. Pencarian kata juga membacanya untuk mengganti huruf pengisinya menjadi huruf Arab bila nilainya "ar".
Bawaan: "en"
activity_key
opsional
string
stringKosongkan untuk membuat aktivitas baru. Kirim kunci aktivitas yang sudah kamu miliki, dan aktivitas itulah yang dibangun ulang.

settings adalah objek berisi opsi per endpoint. Opsi mana yang dibaca sebuah endpoint dicantumkan bersamanya di bawah; apa pun lain yang kamu taruh di sana diabaikan.

Apa yang dikembalikan

Panggilan yang berhasil menjawab 200 dengan kunci aktivitas baru itu dan URL tempat aktivitas itu dimainkan. Selain itu, jawabannya berisi success bernilai false dan satu string error.

Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}
Gagal
{
  "success": false,
  "error": "Invalid Email or API Key"
}

url yang kamu terima adalah tampilan sematan. Ganti embed dengan play untuk membukanya satu halaman penuh, atau dengan build untuk membukanya di editor — kunci setelah p= tetap sama.

Membuat vs. memperbarui

Kirim activity_key dan aktivitas di baliknya dibangun ulang di tempat: kontennya diganti, nama dan cap versinya disegarkan, dan kuncinya sendiri tetap sama — jadi tautan dan sematan yang sudah kamu bagikan tetap berfungsi. Hasil, penempatan folder, dan setiap pengaturan yang tidak ditulis sendiri oleh endpoint dibiarkan apa adanya.

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 diterapkan pada setiap pembaruan, termasuk nilai bawaannya — kosongkan dan aktivitas itu akan diganti namanya menjadi nama cadangan endpoint tersebut.
  • Blok pengaturan yang ditulis sendiri oleh sebuah endpoint ditulis ulang dari nol, jadi pembaruan juga mengembalikan blok itu ke nilai yang kamu kirim, atau ke nilai bawaan endpoint.
  • Kamu hanya bisa memperbarui aktivitas yang dimiliki akunmu sendiri. Kunci milik orang lain dijawab 403.
  • Pembaruan berbiaya sama dengan pembuatan: satu panggilan dari kuota hari ini.

Batas permintaan

10
10 aktivitas per akun per hari

Setiap panggilan yang berhasil ikut dihitung, baik pembuatan maupun pembaruan. Lewati batasnya dan permintaan berikutnya dijawab 429 sampai penghitungnya dinolkan.

Penghitung dikosongkan sekali sehari oleh tugas terjadwal, bukan pada jendela 24 jam berjalan.

Kesalahan

Kesalahan selalu datang sebagai JSON dengan dua kolom yang sama, tidak pernah sebagai halaman HTML. String error ditulis untuk dibaca manusia — string itu menyebut kolom atau batas yang gagal.

StatusArtinya
400
Bad Request
Ada isi body yang hilang, salah bentuk, atau di luar jangkauan. Pesannya menyebut kolom yang bermasalah.
401
Unauthorized
Email tidak dikenal, atau kunci bukan milik akun itu.
403
Forbidden
activity_key yang kamu kirim milik akun lain.
429
Too Many Requests
Kuota hari ini sudah habis. Kuota dikosongkan sekali sehari.
500
Server Error
Generator tidak bisa membangun teka-teki dari yang kamu kirim — biasanya karena katanya terlalu sedikit, atau kata yang tidak bisa disusun bersama.

Endpoint

Satu path per jenis aktivitas, semuanya POST, semuanya di bawah URL dasar yang sama. Masing-masing mencantumkan konten yang dibutuhkan, pengaturan yang dibaca, dan satu permintaan yang bisa kamu jalankan.

Kata & huruf

Teka-teki silang

Menautkan jawabanmu menjadi satu kisi dan menomori deskripsinya untukmu.

#
POST /api/public/v1/crossword 2 hingga 80 di items
Konten

Array kata. Setiap entri memasangkan jawaban dengan deskripsi yang menunjuk ke jawaban itu.

Memakai nama cadangan “Crossword API”

Perlu diketahui
  • Jawaban yang lebih pendek dari dua karakter dibuang sebelum kisi dibangun, dan minimal dua jawaban harus lolos dari penyaringan itu.
  • Jawaban diubah menjadi huruf kapital dan generator mendapat dua puluh percobaan untuk memuatnya. Kalau satu kata pun tidak bisa ditempatkan, panggilan dijawab 500.
Pengaturan yang dibaca
KolomTipeFungsinya
hidden_solution
opsional di settings
string
stringKata bonus opsional. Huruf-hurufnya ditandai di kotak-kotak kisi yang sudah jadi, untuk dikumpulkan pemain setelah teka-teki silang terpecahkan, jadi setiap hurufnya harus muncul di jawaban.
Contoh permintaan
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": "id",
  "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"
    }
  ]
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}

Pencarian kata

Menyembunyikan katamu di dalam kisi huruf, dengan arah dan bentuk yang kamu pilih.

#
POST /api/public/v1/wordseeker 2 hingga 40 di items
Konten

Array kata. Teks deskripsi menjadi bank kata yang dipakai pemain.

Memakai nama cadangan “Wordseeker API”

Perlu diketahui
  • Jawaban di bawah dua karakter dibuang, dan setiap jawaban diubah menjadi huruf kapital sebelum masuk ke kisi.
  • Kisi diisi dengan huruf Latin kecuali language bernilai "ar", yang mengganti huruf pengisinya menjadi huruf Arab.
Pengaturan yang dibaca
KolomTipeFungsinya
hidden_solution
opsional di settings
string
stringHuruf yang tersisa mengeja kata ini. Mengisinya juga memberi tahu generator untuk memuat solusinya lebih dulu, alih-alih menjejalkan sebanyak mungkin kata.
directions
opsional di settings
string[]
string[]Ke arah mana saja sebuah kata boleh membentang. Kosongkan dan kata hanya membentang ke timur, tenggara, dan selatan.
Salah satu dari westeastnorthsouthnorthwestnortheastsouthwestsoutheast
Bawaan: ["east", "southeast", "south"]
template
opsional di settings
string
stringMemotong kisi menjadi sebuah bentuk alih-alih membiarkannya persegi.
Salah satu dari squarecirclecrossdiamondpyramidsmileystarcross_plus
Contoh permintaan
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": "id",
  "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"
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordseeker/embed?p=-Nq8sample_activity_key",
  "message": "Wordseeker created successfully"
}

Akrostik

Menyusun jawabanmu bertumpuk sehingga satu kolom mengeja kata tersembunyi.

#
POST /api/public/v1/acrostic 1 hingga 40 di items
Konten

Array kata. Bersama-sama, semua kata itu harus menyediakan setiap huruf dari kata tersembunyi itu.

Memakai nama cadangan “Acrostic API”

Perlu diketahui
  • Kalau jawabannya tidak bisa menyediakan huruf yang dibutuhkan solusinya, panggilan dijawab 500 alih-alih menyimpan kisi setengah jadi.
  • Generator mengurutkan ulang jawabanmu agar kolomnya pas, jadi urutan yang kamu kirim bukan urutan yang dilihat pemain.
Pengaturan yang dibaca
KolomTipeFungsinya
hidden_solution
wajib di settings
string
stringKata yang dieja oleh kolom yang disorot. Endpoint ini tidak akan berjalan tanpanya.
Contoh permintaan
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": "id",
  "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"
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/acrostic/embed?p=-Nq8sample_activity_key",
  "message": "Acrostic created successfully"
}

Kata acak

api_e_word_scramble

#
POST /api/public/v1/word-scramble 1 hingga 40 di items
Konten

api_c_word_scramble

Memakai nama cadangan “Word Scramble API”

Perlu diketahui
  • Aktivitas yang dibuat lewat API selalu punya pengaturan acak-urutan yang menyala, jadi urutan yang kamu kirim bukan urutan yang didapat pemain.
Pengaturan yang dibaca
KolomTipeFungsinya
hidden_solution
opsional di settings
string
stringKata bonus opsional yang dimasukkan pemain setelah sisanya terpecahkan.
Contoh permintaan
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": "id",
  "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"
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/word-scramble/embed?p=-Nq8sample_activity_key",
  "message": "Word Scramble created successfully"
}

Permainan tebak huruf

Mengubah kata atau frasamu menjadi ronde tebak huruf.

#
POST /api/public/v1/hangman 1 hingga 50 di items
Konten

Array kata atau frasa pendek. Deskripsi adalah petunjuk yang dilihat pemain.

Memakai nama cadangan “Hangman API”

Contoh permintaan
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": "id",
  "items": [
    {
      "answer": "BANANA",
      "description": "A long yellow fruit",
      "type": "text"
    }
  ]
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/hangman/embed?p=-Nq8sample_activity_key",
  "message": "Hangman created successfully"
}

Wordle

Menjadikan setiap kata yang kamu kirim sebagai satu permainan tebak kata.

#
POST /api/public/v1/wordle 1 hingga 50 di items
Konten

Array kata. Pemain mendapat satu ronde per kata.

Memakai nama cadangan “Wordle API”

Perlu diketahui
  • Dibuat dengan pengaturan periksa-apakah-tebakan-kata-nyata dalam keadaan menyala. Matikan di editor kalau katamu berupa nama atau kata rekaan.
Contoh permintaan
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": "id",
  "items": [
    {
      "answer": "MELON",
      "description": "Sweet and green",
      "type": "text"
    },
    {
      "answer": "PEACH",
      "description": "Fuzzy and orange",
      "type": "text"
    }
  ]
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordle/embed?p=-Nq8sample_activity_key",
  "message": "Wordle created successfully"
}

Latihan mengetik

api_e_typing_practice

#
POST /api/public/v1/typing-practice 1 hingga 50 di items
Konten

api_c_typing_practice

Memakai nama cadangan “Typing Practice API”

Contoh permintaan
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": "id",
  "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"
    }
  ]
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/typing-practice/embed?p=-Nq8sample_activity_key",
  "message": "Typing Practice created successfully"
}

Roda keberuntungan

api_e_wheel_of_fortune

#
POST /api/public/v1/wheel-of-fortune 1 hingga 50 di items
Konten

api_c_wheel_of_fortune

Memakai nama cadangan “Wheel of Fortune API”

Perlu diketahui
  • Dibuat dengan “tampilkan hasil hanya di roda”, jadi hasilnya dibaca dari rodanya, bukan diumumkan di sampingnya.
Contoh permintaan
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": "id",
  "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"
    }
  ]
}'
Berhasil
{
  "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"
}

Teka-teki silang Swedia

Teka-teki silang Swedia: deskripsinya ada di dalam kisi, masing-masing dengan panah menuju jawabannya.

#
POST /api/public/v1/arrowword 2 hingga 80 di items
Konten

Array kata. Setiap entri memasangkan jawaban dengan deskripsi yang cukup singkat untuk muat di satu kotak.

Memakai nama cadangan “Arrowword API”

Pengaturan yang dibaca
KolomTipeFungsinya
hidden_solution
opsional di settings
string
stringKata bonus opsional. Huruf-hurufnya ditandai di kotak-kotak kisi yang sudah jadi, jadi setiap hurufnya harus muncul di jawaban.
Contoh permintaan
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": "id",
  "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"
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/arrowword/embed?p=-Nq8sample_activity_key",
  "message": "Arrowword created successfully"
}

Strands

Kisi tempat setiap huruf milik sebuah kata bertema, dengan satu kata yang menyebutkan tema itu dan membentang dari tepi ke tepi.

#
POST /api/public/v1/strands 2 hingga 24 di items
Konten

Array kata tema. Bersama spangram, huruf-hurufnya harus memenuhi papan dengan tepat.

Memakai nama cadangan “Strands API”

Perlu diketahui
  • Huruf dari semua kata dan spangram bersama-sama harus berjumlah tepat 30, 35, 36, 40, 42, 45, 48, 49, 50, 54, 56, 60, 63, 64, 70, 72 atau 80. Jumlah lain dijawab 400 beserta keterangan berapa huruf yang harus ditambah atau dikurangi.
Pengaturan yang dibaca
KolomTipeFungsinya
theme
opsional di settings
string
stringTeka-teki yang ditampilkan di atas kisi. Kalau dikosongkan, pemain melihat judulnya.
spangram
opsional di settings
string
stringKata atau frasa yang menyebutkan tema dan melintasi papan dari satu tepi ke tepi lainnya.
Contoh permintaan
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": "id",
  "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"
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/strands/embed?p=-Nq8sample_activity_key",
  "message": "Strands created successfully"
}

Permainan sebut nama

api_e_name_them_all

#
POST /api/public/v1/name-them-all 1 hingga 250 di items
Konten

api_c_name_them_all

Memakai nama cadangan “Name Them All API”

Perlu diketahui
  • Entri adalah objek dengan answer, dan opsional aliases (ejaan lain yang dihitung benar), description (petunjuknya) serta group. Huruf kapital, aksen, dan tanda baca diabaikan saat sebuah nama diperiksa.
Pengaturan yang dibaca
KolomTipeFungsinya
list_match_mode
opsional di settings
string
stringApakah sebuah nama dihitung begitu diketik, atau hanya setelah menekan tombol Enter.
Salah satu dari while_typingon_enter
Bawaan: "while_typing"
list_slot_hint
opsional di settings
string
stringApa yang dibocorkan sebuah slot kosong: tidak ada, panjang nama, huruf pertamanya, atau petunjuk yang kamu tulis.
Salah satu dari nonelengthfirst_letterhint
Bawaan: "none"
list_arrange
opsional di settings
string
stringSatu kolom per kelompok, atau satu daftar.
Salah satu dari groupsone_list
Bawaan: "groups"
list_allow_give_up
opsional di settings
boolean
booleanMenampilkan tombol menyerah yang mengakhiri putaran dan menunjukkan apa yang terlewat.
Bawaan: false
Contoh permintaan
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": "id",
  "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
  }
}'
Berhasil
{
  "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"
}
Kartu & pasangan

Memory

Kartu tertelungkup untuk dibalik dan dicocokkan berpasangan.

#
POST /api/public/v1/memory 2 hingga 30 di items
Konten

Array pasangan. Setiap pasangan berisi dua kartu yang saling melengkapi.

Memakai nama cadangan “Memory Game API”

Perlu diketahui
  • Kartu adalah objek dengan type dan value. Pakai "text" untuk kata, atau "image", "audio", "youtube" atau "link" dengan URL di value, dan tambahkan alt untuk deskripsinya.
Contoh permintaan
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": "id",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/memory/embed?p=-Nq8sample_activity_key",
  "message": "Memory game created successfully"
}

Permainan menjodohkan

api_e_matching_pairs

#
POST /api/public/v1/matching-pairs 2 hingga 30 di items
Konten

api_c_matching_pairs

Memakai nama cadangan “Matching Game API”

Perlu diketahui
  • Kartu adalah objek dengan type dan value. Pakai "text" untuk kata, atau "image", "audio", "youtube" atau "link" dengan URL di value, dan tambahkan alt untuk deskripsinya.
Contoh permintaan
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": "id",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/matching-pairs/embed?p=-Nq8sample_activity_key",
  "message": "Matching pairs game created successfully"
}

Kartu belajar

api_e_flash_cards

#
POST /api/public/v1/flash-cards 1 hingga 150 di items
Konten

api_c_flash_cards

Memakai nama cadangan “Flash Cards API”

Perlu diketahui
  • Endpoint menyimpan sebanyak apa pun kartu yang kamu kirim, jadi kirim tepat dua per entri — depan, lalu belakang.
  • Kartu adalah objek dengan type dan value. Pakai "text" untuk kata, atau "image", "audio", "youtube" atau "link" dengan URL di value, dan tambahkan alt untuk deskripsinya.
Contoh permintaan
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": "id",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/flash-cards/embed?p=-Nq8sample_activity_key",
  "message": "Flash Cards created successfully"
}

Pengelompokan

Kartu untuk dipilah ke kelompok yang tepat.

#
POST /api/public/v1/categorize Minimal 2 di items · maksimal 60 kartu secara keseluruhan
Konten

Array kategori, masing-masing dengan nama dan kartu yang termasuk di dalamnya.

Memakai nama cadangan “Categorize Game API”

Perlu diketahui
  • Kategori yang dikirim tanpa nama disimpan sebagai “Untitled Category”, jadi selalu kirim namanya.
  • Kartu adalah objek dengan type dan value. Pakai "text" untuk kata, atau "image", "audio", "youtube" atau "link" dengan URL di value, dan tambahkan alt untuk deskripsinya.
Contoh permintaan
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": "id",
  "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"
        }
      ]
    }
  ]
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/categorize/embed?p=-Nq8sample_activity_key",
  "message": "Categorize game created successfully"
}

Teka-teki urutan

Rangkaian yang harus disusun kembali oleh pemain.

#
POST /api/public/v1/reorder Minimal 1 di items · maksimal 60 kartu secara keseluruhan
Konten

Array rangkaian. Masing-masing memuat kartunya dalam urutan yang benar.

Memakai nama cadangan “Reorder Game API”

Perlu diketahui
  • Urutan yang kamu kirim disimpan sebagai urutan yang benar — nomor satu lebih dulu.
  • Kartu adalah objek dengan type dan value. Pakai "text" untuk kata, atau "image", "audio", "youtube" atau "link" dengan URL di value, dan tambahkan alt untuk deskripsinya.
Contoh permintaan
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": "id",
  "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"
        }
      ]
    }
  ]
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/reorder/embed?p=-Nq8sample_activity_key",
  "message": "Reorder game created successfully"
}

Bingo

Bingo kelas yang dipanggil pemandu secara langsung: setiap pemain mendapat kartu yang diambil dari items milikmu.

#
POST /api/public/v1/bingo Tidak menerima items
Konten

Array item tempat kartu-kartu diambil. Kirim jauh lebih banyak daripada jumlah kotak di satu kartu, supaya kartunya berbeda-beda.

Memakai nama cadangan “Bingo API”

Perlu diketahui
  • Item adalah objek dengan value, dan opsional type ("text", "image" atau "audio" dengan URL di value), description (petunjuk yang dibacakan pemandu dalam mode petunjuk) serta alt.
Pengaturan yang dibaca
KolomTipeFungsinya
mode
opsional di settings
string
stringApa yang mengisi kotak: items milikmu, items milikmu yang dipanggil lewat petunjuknya, atau angka biasa (yang tidak butuh items).
Salah satu dari itemscluesnumbers
Bawaan: "items"
rows
opsional di settings
number
numberJumlah baris di setiap kartu, 2 sampai 5.
Bawaan: 3
columns
opsional di settings
number
numberJumlah kolom di setiap kartu, 2 sampai 5.
Bawaan: 3
highest_number
opsional di settings
number
numberDalam mode angka, kartu diisi dari 1 sampai angka ini, paling besar 100. Fitur paket: tanpa paket nilainya tetap 50.
Bawaan: 50
Contoh permintaan
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": "id",
  "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
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/bingo/embed?p=-Nq8sample_activity_key",
  "message": "Bingo created successfully"
}

Aku punya, siapa punya

api_e_i_have_who_has

#
POST /api/public/v1/i-have-who-has 3 hingga 40 di items
Konten

api_c_i_have_who_has

Memakai nama cadangan “I Have, Who Has API”

Perlu diketahui
  • Tidak boleh ada pertanyaan atau jawaban yang muncul dua kali: siswa yang memegang jawabannya tidak akan tahu jawaban itu milik pertanyaan yang mana.
Pengaturan yang dibaca
KolomTipeFungsinya
chain_shape
opsional di settings
string
stringLingkaran menutup pada dirinya sendiri, jadi kartu mana pun bisa memulai; garis dibuka dengan kartu Start dan diakhiri dengan kartu End.
Salah satu dari loopline
Bawaan: "loop"
Contoh permintaan
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": "id",
  "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"
  }
}'
Berhasil
{
  "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"
}

Gembok angka

Gembok angka: sekumpulan kartu tombol, yang sebagian di antaranya bersama-sama adalah kodenya.

#
POST /api/public/v1/keypad 1 hingga 30 di items
Konten

Array tombol. Tombol yang termasuk dalam kode membawa tempatnya di dalam kode itu.

Memakai nama cadangan “Keypad API”

Perlu diketahui
  • Tombol adalah objek dengan value, dan opsional type ("text", "image" atau "audio" dengan URL di value), alt, serta code_position: tempatnya di dalam kode, 1 untuk yang pertama. Sebuah tombol hanya bisa muncul sekali di dalam kode, dan setidaknya satu tombol harus ada di dalamnya.
Pengaturan yang dibaca
KolomTipeFungsinya
instructions
opsional di settings
string
stringPertanyaan atau teka-teki yang dijawab oleh kode, ditampilkan bersama papan tombolnya.
force_solution_in_correct_order
opsional di settings
boolean
booleanTombol harus ditekan secara berurutan. Kalau dimatikan, urutan apa pun dari tombol yang benar membuka gemboknya.
Bawaan: false
randomize_order
opsional di settings
boolean
booleanSetiap pemain mendapat tombol dalam susunan yang diacak.
Bawaan: true
Contoh permintaan
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": "id",
  "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
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/keypad/embed?p=-Nq8sample_activity_key",
  "message": "Keypad created successfully"
}

Permainan kuartet

Permainan kartu: pemain saling meminta kartu untuk mengumpulkan kuartet berisi empat kartu.

#
POST /api/public/v1/quartets 2 hingga 16 di items
Konten

Array kuartet. Masing-masing punya nama dan tepat empat kartu.

Memakai nama cadangan “Quartets API”

Perlu diketahui
  • Kartu adalah sebuah nama, atau objek dengan name dan description (fakta yang ditampilkan di kartu itu). Tidak boleh ada nama kartu yang muncul dua kali dalam permainan: pemain meminta kartu berdasarkan namanya.
Pengaturan yang dibaca
KolomTipeFungsinya
type
opsional di settings
string
stringPermainan biasa, atau permainan belajar di mana setiap kartu menampilkan sebuah fakta. Kalau dikosongkan, nilainya learn jika ada kartu yang punya description.
Salah satu dari normallearn
Contoh permintaan
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": "id",
  "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"
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/quartets/embed?p=-Nq8sample_activity_key",
  "message": "Quartets game created successfully"
}
Pertanyaan & jawaban

Quiz

Pertanyaan pilihan ganda dan pertanyaan terbuka, dinilai seiring pemain menjawab.

#
POST /api/public/v1/quiz 1 hingga 100 di items
Konten

Array pertanyaan. Pertanyaan pilihan ganda membawa pilihan jawabannya; pertanyaan terbuka membawa jawaban yang kamu terima.

Memakai nama cadangan “Quiz API”

Perlu diketahui
  • question_type bernilai "multiple_choice", yang opsi benarnya membawa isCorrect true; "true_false", sama seperti itu tetapi dengan tepat dua opsi, true di urutan pertama dan false di urutan kedua; atau "open_answer", yang memakai correct_answer. Kalau dikosongkan, nilainya dianggap pilihan ganda.
  • Endpoint Quiz meneruskan settings apa adanya sebagai blok pengaturan aktivitas, jadi tempat ini bukan untuk opsi lepasan — sesuaikan Quiz di editor setelahnya.
Contoh permintaan
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": "id",
  "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."
    }
  ]
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/quiz/embed?p=-Nq8sample_activity_key",
  "message": "Quiz created successfully"
}

Permainan papan

api_e_board_game

#
POST /api/public/v1/board-game 1 hingga 100 di items
Konten

api_c_board_game

Memakai nama cadangan “Board Game API”

Perlu diketahui
  • question_type bernilai "multiple_choice", yang opsi benarnya membawa isCorrect true; "true_false", sama seperti itu tetapi dengan tepat dua opsi, true di urutan pertama dan false di urutan kedua; atau "open_answer", yang memakai correct_answer. Kalau dikosongkan, nilainya dianggap pilihan ganda.
Pengaturan yang dibaca
KolomTipeFungsinya
number_of_tiles
opsional di settings
number
numberBerapa banyak petak yang dimiliki papan. Antara 10 dan 75.
Bawaan: 30
game_mode
opsional di settings
string
stringApakah pemain berlomba ke garis akhir atau mengumpulkan benda di sepanjang jalan.
Salah satu dari race_to_finishcollect_items
Bawaan: "race_to_finish"
Contoh permintaan
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": "id",
  "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"
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/board-game/embed?p=-Nq8sample_activity_key",
  "message": "Board Game created successfully"
}

Labirin

Labirin untuk dijelajahi: setiap pertanyaan adalah sebuah ruang, dan jawabannya adalah pintunya.

#
POST /api/public/v1/maze Minimal 1 di items
Konten

Array pertanyaan pilihan ganda atau benar-salah, persis bentuk yang diterima endpoint Quiz. Pertanyaan terbuka ditolak: sebuah pintu butuh jawaban yang tertulis di atasnya.

Memakai nama cadangan “Maze API”

Pengaturan yang dibaca
KolomTipeFungsinya
maze_width
opsional di settings
string
stringBagaimana ruang-ruangnya ditata: satu kolom, persegi, atau lebih lebar.
Salah satu dari narrownormalwide
Bawaan: "normal"
maze_corridors
opsional di settings
string
stringSeberapa banyak labirin yang terbentang di antara dua pertanyaan.
Salah satu dari shortnormallong
Bawaan: "normal"
maze_fog
opsional di settings
string
stringTampilkan seluruh labirin, atau hanya yang pernah didekati pemain.
Salah satu dari offnear
Bawaan: "off"
maze_wrong_door_pause
opsional di settings
string
stringBerapa lama pintu tetap tertutup setelah pemain memilih pintu yang salah.
Salah satu dari noneshortlong
Bawaan: "short"
maze_walk_there
opsional di settings
boolean
booleanMenampilkan tombol yang membawa bidak berjalan ke ruang berikutnya.
Bawaan: false
maze_seed
opsional di settings
string
stringSeed yang menjadi dasar pembuatan labirin. Seed dan pertanyaan yang sama menghasilkan labirin yang sama; kalau dikosongkan, labirin baru dibuat.
Contoh permintaan
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": "id",
  "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"
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/maze/embed?p=-Nq8sample_activity_key",
  "message": "Maze created successfully"
}

Jeopardy

Papan ala acara permainan TV: kategori di bagian atas, deskripsi di bawahnya yang nilainya makin besar semakin ke bawah.

#
POST /api/public/v1/jeopardy Minimal 2 di items
Konten

Array kategori, dari kiri ke kanan. Masing-masing punya nama dan deskripsinya dari baris teratas ke bawah.

Memakai nama cadangan “Jeopardy API”

Perlu diketahui
  • Deskripsi adalah pertanyaan sebagaimana diterima endpoint Quiz, open_answer kecuali ditulis lain, dengan correct_answer dan opsional aliases. Deskripsi juga boleh membawa value (nilainya sendiri) dan daily_double. null membiarkan sebuah kotak kosong.
Pengaturan yang dibaca
KolomTipeFungsinya
jeopardy_buzzer_mode
opsional di settings
string
stringSiapa bermain bagaimana: pemandu menjalankannya dari konsol, pemain menekan bel dari ponsel, atau setiap pemain mengerjakan papan sendirian.
Salah satu dari hostphonessolo
Bawaan: "host"
jeopardy_contestants
opsional di settings
string
stringApakah konsol menyebut tim atau pemain.
Salah satu dari teamsplayers
Bawaan: "teams"
jeopardy_value_step
opsional di settings
number
numberNilai sebuah baris: sebuah deskripsi bernilai angka ini dikali nomor barisnya. Dari 50 sampai 500, dengan kelipatan 50.
Bawaan: 100
jeopardy_answer_time
opsional di settings
number
numberDetik untuk menjawab setelah sebuah deskripsi dibuka, paling lama 300. 0 berarti tanpa jam.
Bawaan: 20
jeopardy_wrong_answer_costs
opsional di settings
boolean
booleanJawaban yang salah mengurangi skor sebesar nilai deskripsinya.
Bawaan: false
jeopardy_reveal_on_timeout
opsional di settings
boolean
booleanPapan sendiri menampilkan jawabannya saat waktu habis.
Bawaan: false
jeopardy_require_question_form
opsional di settings
boolean
booleanMengingatkan pemain untuk menjawab dalam bentuk pertanyaan.
Bawaan: false
Contoh permintaan
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": "id",
  "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
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/jeopardy/embed?p=-Nq8sample_activity_key",
  "message": "Jeopardy board created successfully"
}

Video interaktif

api_e_interactive_video

#
POST /api/public/v1/interactive-video 1 hingga 50 di items
Konten

api_c_interactive_video

Memakai nama cadangan “Interactive Video API”

Perlu diketahui
  • Pop-up adalah objek dengan time (detik, atau "1:23"), kind ("question" kecuali tertulis "note", "think" atau "chapter") dan description. Pertanyaan adalah pertanyaan sebagaimana diterima endpoint Quiz, dan boleh membawa rewind_to: dari mana video diputar ulang setelah jawaban yang salah.
Pengaturan yang dibaca
KolomTipeFungsinya
video_url
wajib di settings
string
stringVideonya: halaman YouTube, Vimeo atau Bunny Stream, atau tautan langsung ke berkas mp4, webm atau mov.
video_duration
opsional di settings
number
numberPanjang video dalam detik. Kalau diisi, pop-up yang melewati akhir video ditolak.
Contoh permintaan
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": "id",
  "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
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/interactive-video/embed?p=-Nq8sample_activity_key",
  "message": "Interactive video created successfully"
}
Kalimat & angka

Kriptogram

Mengubah kalimat menjadi sandi untuk dipecahkan, satu karakter demi satu karakter.

#
POST /api/public/v1/cryptogram Tidak menerima items
Konten

Satu kalimat, di kolom sentence. Endpoint ini tidak menerima items.

Memakai nama cadangan “Cryptogram API”

Perlu diketahui
  • Apa pun yang kamu kirim di items diabaikan — teka-tekinya dibangun hanya dari sentence.
Pengaturan yang dibaca
KolomTipeFungsinya
sentence
wajib
string
stringKalimat yang akan dienkripsi. Pemain memecahkannya karakter demi karakter.
helpers
opsional di settings
string
stringKarakter mana yang langsung dibagikan gratis sebagai jalan masuk: tidak ada, yang paling sering muncul, huruf vokal, atau yang kamu tentukan sendiri.
Salah satu dari nonemost_commonvowelscustom
Bawaan: "none"
character_list
opsional di settings
string
stringAbjad yang menjadi dasar sandinya. Kalau dibiarkan kosong, enkripsinya memilih sendiri.
extra_letters
opsional di settings
string
stringKarakter yang dibagikan ketika helpers bernilai "custom". Diabaikan untuk mode bantuan lainnya.
hide_unused_characters
opsional di settings
boolean
booleanMenghilangkan karakter yang tidak pernah dipakai kalimat itu dari kuncinya.
Bawaan: false
Contoh permintaan
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": "id",
  "sentence": "An apple a day keeps the doctor away",
  "settings": {
    "helpers": "vowels",
    "hide_unused_characters": false
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/cryptogram/embed?p=-Nq8sample_activity_key",
  "message": "Cryptogram created successfully"
}

Latihan berhitung

Menyembunyikan kalimat di balik soal hitung — pecahkan soalnya, hurufnya terungkap.

#
POST /api/public/v1/calculation Tidak menerima items
Konten

Satu kalimat, di kolom sentence. Endpoint ini tidak menerima items.

Memakai nama cadangan “Calculation Game API”

Perlu diketahui
  • Kalau batasannya terlalu ketat untuk menyandikan kalimat itu, panggilan dijawab 400 yang memintamu melonggarkannya, alih-alih menyimpan teka-teki setengah jadi.
Pengaturan yang dibaca
KolomTipeFungsinya
sentence
wajib
string
stringKalimat yang tersingkap saat pemain menyelesaikan soal hitungnya.
difficulty_level
opsional di settings
number
numberJawaban tertinggi yang boleh dimiliki sebuah soal hitung.
Salah satu dari 20501001000
Bawaan: "100"
operators
opsional di settings
string[]
string[]Operasi mana saja yang boleh muncul. x adalah kali, : adalah bagi.
Salah satu dari +-x:
Bawaan: ["+", "-", "x", ":"]
max_operations
opsional di settings
number
numberBerapa banyak operasi yang boleh dirangkai dalam satu soal hitung.
Salah satu dari 123
Bawaan: 1
number_difficulty
opsional di settings
number
numberMembatasi setiap angka di dalam satu soal hitung. Antara 5 sampai 1000.
Bawaan: 100
Contoh permintaan
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": "id",
  "sentence": "Fruit salad for everyone",
  "settings": {
    "difficulty_level": "100",
    "operators": [
      "+",
      "-",
      "x",
      ":"
    ],
    "max_operations": 1,
    "number_difficulty": 100
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/calculation/embed?p=-Nq8sample_activity_key",
  "message": "Calculation game created successfully"
}

Sudoku

Membuat kisi yang sudah terisi penuh, lalu mengeluarkan lagi sebagian angkanya.

#
POST /api/public/v1/sudoku Tidak menerima items
Konten

Tidak ada. Seluruh teka-teki lahir dari dua pengaturannya.

Memakai nama cadangan “Sudoku API”

Perlu diketahui
  • Jangan kirim items dan jangan kirim sentence — size dan difficulty adalah seluruh masukannya.
  • Editor hanya menyediakan tingkat kesulitan untuk 2x3, 3x3, dan 3x4. API menerapkannya ke semua ukuran, termasuk 2x2 dan 4x4.
Pengaturan yang dibaca
KolomTipeFungsinya
size
opsional di settings
string
stringUkuran satu blok, ditulis sebagai baris kali kolom — 3x3 menghasilkan kisi 9x9 yang klasik. Endpoint hanya memeriksa bahwa nilainya terbaca sebagai dua angka, jadi gunakan saja ukuran yang disediakan editor.
Salah satu dari 2x22x33x33x44x4
Bawaan: "3x3"
difficulty_level
opsional di settings
string
stringBerapa banyak angka yang ditinggalkan di papan sebagai titik awal.
Salah satu dari easynormalhard
Bawaan: "normal"
Contoh permintaan
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": "id",
  "settings": {
    "size": "3x3",
    "difficulty_level": "normal"
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/sudoku/embed?p=-Nq8sample_activity_key",
  "message": "Sudoku created successfully"
}

Frasa jatuh

api_e_fallen_phrase

#
POST /api/public/v1/fallen-phrase Tidak menerima items
Konten

api_c_fallen_phrase

Memakai nama cadangan “Fallen Phrase API”

Pengaturan yang dibaca
KolomTipeFungsinya
sentence
wajib
string
stringFrasa yang akan disembunyikan: kutipan, peribahasa, kalimat kunci. Paling banyak 120 huruf dan angka.
columns
opsional di settings
number
numberSelebar apa papannya, dari 8 sampai 18. Yang lebih sempit menumpuk lebih banyak huruf di setiap kolom dan lebih sulit.
Bawaan: 14
helpers
opsional di settings
string
stringHuruf mana yang tetap di kisi sebagai jalan masuk: tidak ada, yang paling sering muncul, huruf vokal, atau yang kamu tentukan sendiri.
Salah satu dari nonemost_commonvowelscustom
Bawaan: "none"
extra_letters
opsional di settings
string
stringHuruf yang dibagikan gratis ketika helpers bernilai "custom".
Contoh permintaan
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": "id",
  "sentence": "Don't count your chickens before they hatch.",
  "settings": {
    "columns": 12,
    "helpers": "custom",
    "extra_letters": "ky"
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/fallen-phrase/embed?p=-Nq8sample_activity_key",
  "message": "Fallen phrase created successfully"
}

Tabel perkalian

api_e_times_tables

#
POST /api/public/v1/times-tables Tidak menerima items
Konten

api_c_times_tables

Memakai nama cadangan “Times Tables API”

Pengaturan yang dibaca
KolomTipeFungsinya
tables
opsional di settings
number[]
number[]Tabel yang dilatih. Kalau dikosongkan, nilainya 1 sampai 10; jika ada 11 atau 12, kisinya menjadi 12 kali 12.
Salah satu dari 123456789101112
order
opsional di settings
string
stringApakah baris dan kolom berjalan berurutan atau diacak.
Salah satu dari ascendingshuffled
Bawaan: "ascending"
picture
opsional di settings
string
stringGambar yang diwarnai oleh jawaban yang benar.
Salah satu dari sailboatheartrockettreecatfishflowerhouse
Bawaan: "sailboat"
players_choose_tables
opsional di settings
boolean
booleanMembiarkan setiap pemain memilih tabel mana yang dilatih.
Bawaan: false
fill_same_sums
opsional di settings
boolean
booleanSatu jawaban yang benar mengisi setiap kotak dengan soal yang sama.
Bawaan: true
Contoh permintaan
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": "id",
  "settings": {
    "tables": [
      7,
      3,
      4
    ],
    "order": "shuffled",
    "seed": "k3x9q2ab",
    "picture": "rocket",
    "players_choose_tables": true,
    "fill_same_sums": false
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/times-tables/embed?p=-Nq8sample_activity_key",
  "message": "Times tables created successfully"
}

Teks rumpang

api_e_fill_in_the_gap

#
POST /api/public/v1/fill-in-the-gap 1 hingga 50 di items
Konten

api_c_fill_in_the_gap

Memakai nama cadangan “Fill in the gap API”

Perlu diketahui
  • Tulis kalimat lengkap dan beri tanda bintang di sekeliling setiap kata yang dikosongkan: "Water boils at *100* degrees." Beberapa kata di dalam satu pasang tanda bintang dihitung satu bagian rumpang. Sebuah entri juga boleh membawa instruksi yang ditampilkan di atas kalimat.
Contoh permintaan
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": "id",
  "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."
    }
  ]
}'
Berhasil
{
  "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"
}

Analisis kalimat

Kalimat yang kata-katanya diberi label oleh pemain: jenis kata, bagian kalimat, atau label buatanmu sendiri.

#
POST /api/public/v1/deconstruct 1 hingga 50 di items
Konten

Array kalimat. Setiap kata yang harus diberi label ditulis sebagai [word](label).

Memakai nama cadangan “Sentence analysis API”

Perlu diketahui
  • Tulis kalimat sebagai "The [dog](noun) [barks](verb)." Kata tanpa tag ditampilkan tetapi tidak ditanyakan. Label noun, verb, adjective, dan subject ditampilkan kepada setiap pemain dalam bahasanya sendiri.
Pengaturan yang dibaca
KolomTipeFungsinya
categories
opsional di settings
string[]
string[]Label yang dipilih pemain, secara berurutan. Kalau dikosongkan, nilainya adalah label yang dipakai di kalimat-kalimat. Kirimkan untuk menambahkan label yang tidak dibawa kata mana pun, atau untuk mengatur urutannya.
Contoh permintaan
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": "id",
  "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"
    ]
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/deconstruct/embed?p=-Nq8sample_activity_key",
  "message": "Sentence analysis created successfully"
}

Teka-teki logika

api_e_logic_puzzle

#
POST /api/public/v1/logic-puzzle Minimal 3 di items
Konten

api_c_logic_puzzle

Memakai nama cadangan “Logic Puzzle API”

Perlu diketahui
  • Setiap kategori butuh jumlah item yang sama, 3 sampai 6, semuanya berbeda. Satu kategori boleh ditandai ordered (harga, waktu, usia) dengan unit opsional, yang memungkinkan generator menulis deskripsi tentang lebih banyak, lebih sedikit, dan berapa selisihnya.
Pengaturan yang dibaca
KolomTipeFungsinya
story
opsional di settings
string
stringCerita latar yang ditampilkan di atas deskripsi.
difficulty
opsional di settings
string
stringJenis deskripsi apa saja yang boleh dipakai generator.
Salah satu dari easymediumhard
Bawaan: "easy"
hints
opsional di settings
boolean
booleanMenampilkan tombol yang menunjukkan langkah berikutnya.
Bawaan: true
auto_cross
opsional di settings
boolean
booleanMenandai satu pasangan mencoret sisa baris dan kolomnya.
Bawaan: true
clue_mode
opsional di settings
string
stringSiapa yang menulis deskripsi yang dilihat pemain: dibuat dari tabel, kalimatmu sendiri di free_clues, atau tidak ada.
Salah satu dari generatedfreenone
Bawaan: "generated"
free_clues
opsional di settings
string[]
string[]Kalimat deskripsimu sendiri, ditampilkan apa adanya, dengan clue_mode "free". Tidak ada yang memeriksanya.
Contoh permintaan
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": "id",
  "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"
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/logic-puzzle/embed?p=-Nq8sample_activity_key",
  "message": "Logic puzzle created successfully"
}

Perburuan harta karun

api_e_scavenger_hunt

#
POST /api/public/v1/scavenger-hunt 1 hingga 50 di items
Konten

api_c_scavenger_hunt

Memakai nama cadangan “Scavenger Hunt API”

Perlu diketahui
  • Langkah adalah objek dengan title, description, code dan opsional accepted_codes (ejaan lain yang dihitung benar), url serta link_text. Kode diperiksa tanpa memperhatikan huruf kapital dan spasi. Peta dengan pin hanya bisa ditambahkan di editor.
Contoh permintaan
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": "id",
  "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"
      ]
    }
  ]
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/scavenger-hunt/embed?p=-Nq8sample_activity_key",
  "message": "Scavenger hunt created successfully"
}

Penalaran spasial

api_e_spatial_reasoning

#
POST /api/public/v1/spatial-reasoning 1 hingga 50 di items
Konten

api_c_spatial_reasoning

Memakai nama cadangan “Spatial Reasoning API”

Perlu diketahui
  • Objek dan target adalah square, triangle, circle, hexagon, pentagon, star, diamond atau heart. Relasinya adalah inside, outside, behind, in_front_of, right_of, left_of, above, below, same_color_as, different_color_from, larger_than dan smaller_than. Aturan yang tidak mungkin dipenuhi dijawab 400.
Pengaturan yang dibaca
KolomTipeFungsinya
clue_mode
opsional di settings
string
stringAturan ditampilkan sebagai gambar atau sebagai kalimat.
Salah satu dari visualtext
Bawaan: "visual"
unique_object_picks
opsional di settings
boolean
booleanSetiap bentuk hanya boleh ditempatkan satu kali.
Bawaan: false
hide_color_picker
opsional di settings
boolean
booleanPemain tidak bisa mengganti warna bentuk.
Bawaan: false
Contoh permintaan
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": "id",
  "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
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/spatial-reasoning/embed?p=-Nq8sample_activity_key",
  "message": "Spatial reasoning activity created successfully"
}

Teka-teki gambar

Kalimat yang ditulis sebagai gambar: pemain membaca gambarnya dan perubahan hurufnya kembali menjadi kata.

#
POST /api/public/v1/rebus 1 hingga 30 di items
Konten

Array kalimat. Masing-masing mendaftar kata yang digambar; setiap kata lainnya tetap berupa hurufnya.

Memakai nama cadangan “Rebus API”

Perlu diketahui
  • Sebuah kata digambar dari bagian-bagian yang bersama-sama mengejanya. Sebuah bagian punya huruf yang diwakilinya (text), sebuah emoji, dan shows: kata untuk apa yang ditunjukkan gambar ("broom" untuk gambar yang mewakili "room"). Puzzel menghitung sendiri perubahan hurufnya. Sebuah bagian juga boleh berupa simbol, seperti 4 untuk "for".
Pengaturan yang dibaca
KolomTipeFungsinya
rebus_commas
opsional di settings
boolean
booleanMenggambar huruf pertama atau terakhir yang dihilangkan sebagai koma di samping gambar.
Bawaan: false
Contoh permintaan
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": "id",
  "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
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/rebus/embed?p=-Nq8sample_activity_key",
  "message": "Rebus created successfully"
}
Gambar

Puzzle

Memotong gambar menjadi kepingan untuk diseret kembali menjadi satu.

#
POST /api/public/v1/jigsaw Tidak menerima items
Konten

Satu URL gambar, di kolom image. Endpoint ini tidak menerima items.

Memakai nama cadangan “Jigsaw Game API”

Perlu diketahui
  • API selalu membuat Puzzle 4 kali 4. Jumlah keping, keping tak beraturan, dan tepi rata adalah pengaturan editor — mengirim rows atau columns di sini tidak berpengaruh.
  • URL disimpan persis seperti yang kamu kirim dan berkasnya tidak pernah disalin, jadi URL itu harus tetap bisa diakses publik selama aktivitasnya masih dimainkan.
Pengaturan yang dibaca
KolomTipeFungsinya
image
wajib
string
stringURL absolut gambar yang akan dipotong. Dikirim di tingkat teratas, bukan di dalam settings.
Contoh permintaan
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": "id",
  "image": "https://example.com/orchard.jpg"
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/jigsaw/embed?p=-Nq8sample_activity_key",
  "message": "Jigsaw game created successfully"
}

Puzzle geser

Mengacak gambar menjadi keping yang digeser ke tempatnya.

#
POST /api/public/v1/slidingpuzzle Tidak menerima items
Konten

Satu URL gambar, di dalam settings. Endpoint ini tidak menerima items.

Memakai nama cadangan “Sliding Puzzle API”

Perlu diketahui
  • Berbeda dengan Puzzle, endpoint ini membaca gambarnya dari settings.image. Kolom image di tingkat teratas diabaikan dan panggilan dijawab 400.
  • URL disimpan persis seperti yang kamu kirim dan berkasnya tidak pernah disalin, jadi URL itu harus tetap bisa diakses publik selama aktivitasnya masih dimainkan.
Pengaturan yang dibaca
KolomTipeFungsinya
image
wajib di settings
string
stringURL absolut gambar yang akan diacak. Berbeda dengan milik Puzzle, yang ini berada di dalam settings.
Contoh permintaan
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": "id",
  "settings": {
    "image": "https://example.com/orchard.jpg"
  }
}'
Berhasil
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/slidingpuzzle/embed?p=-Nq8sample_activity_key",
  "message": "Sliding puzzle created successfully"
}

Ada yang tidak beres?

Kirim permintaan yang kamu coba dan error yang kamu terima, lalu kamu akan mendapat jawaban sungguhan, dari orang yang menulis endpoint itu.

Kirim email ke dukungan