Saltar al contenido
API para desarrolladores

Crea actividades desde tu propio sistema

Un POST por tipo de actividad. Envía tu contenido como JSON y recibe una actividad en tu cuenta de Puzzel.org y una URL que puedes dar a los jugadores o colocar en un iframe.

URL base
https://puzzel.org/api/public/v1
Autenticación
Clave + email en el cuerpo
Endpoints
38 tipos de actividad
Cuota
10 actividades al día

Tu primera petición

Envía una petición POST con tu clave de API, correo y contenido en el cuerpo JSON. No necesitas instalar nada ni establecer una conexión previa. La respuesta incluye la clave de la nueva actividad y la URL para jugar.

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

Todos los ejemplos de esta página son peticiones completas y ejecutables. Sustituye la clave y el contenido por los tuyos y funcionan tal cual.

Autenticación

Envía la clave de API y el correo en el cuerpo JSON de cada petición. No necesitas cabeceras de autenticación ni un bearer token. La clave debe pertenecer a la cuenta con ese correo.

CampoTipoQué hace
account_api_key
obligatorio
string
stringLa clave de API de tu cuenta. Va en el cuerpo, no en una cabecera.
email
obligatorio
string
stringLa dirección con la que inicia sesión tu cuenta de Puzzel.org. La clave solo es válida junto con ella.

Tu clave está en la sección de cuenta de tu panel, detrás de Mostrar.

Iniciar sesión

Las claves de API se entregan cuando empieza una suscripción, así que una cuenta gratis todavía no tiene una.

Ver los planes

Trata la clave como una contraseña. Crea y sobrescribe actividades en tu cuenta, así que mantenla en el servidor y fuera de cualquier cosa que un navegador pueda leer.

El cuerpo de la petición

Todos los endpoints usan los mismos cinco campos básicos. El campo de contenido depende del tipo de actividad: normalmente es un array de elementos, aunque algunos reciben una oración o una imagen. Para sudoku no necesitas enviar contenido.

CampoTipoQué hace
account_api_key
obligatorio
string
stringLa clave de API de tu cuenta. Va en el cuerpo, no en una cabecera.
email
obligatorio
string
stringLa dirección con la que inicia sesión tu cuenta de Puzzel.org. La clave solo es válida junto con ella.
title
opcional
string
stringEl nombre que recibe la actividad en tu panel. Si lo omites, el endpoint usa su propio nombre por defecto.
language
opcional
string
stringSolo determina el idioma de la URL que recibes; no traduce nada de lo que envías. La sopa de letras también lo lee para cambiar sus letras de relleno al árabe cuando es "ar".
Por defecto: "en"
activity_key
opcional
string
stringOmítelo para crear una actividad nueva. Pasa la clave de una que ya sea tuya y esa actividad se reconstruye en su lugar.

settings es un objeto con opciones por endpoint. Cuáles lee cada endpoint se indica junto a él más abajo; cualquier otra cosa que pongas ahí se ignora.

Qué recibes de vuelta

Una llamada correcta responde 200 con la clave de la nueva actividad y la URL en la que se juega. Cualquier otra cosa responde con success en false y una única cadena de error.

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

La url que recibes es la vista para insertar. Cambia embed por play para abrirla a pantalla completa, o por build para abrirla en el editor; la clave después de p= es la misma.

Crear frente a actualizar

Envía activity_key para reconstruir una actividad existente. Se sustituye el contenido y se actualizan el nombre y la marca de versión. La clave no cambia, así que los enlaces compartidos y las actividades insertadas siguen funcionando. Se conservan los resultados, la carpeta y los ajustes que el endpoint no modifica.

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 se aplica en cada actualización, incluido su valor por defecto: si lo omites, la actividad pasa a llamarse con el nombre por defecto de ese endpoint.
  • Los bloques de ajustes que un endpoint escribe por sí mismo se reescriben desde cero, así que una actualización también los restablece a los valores que envías, o a los valores por defecto del endpoint.
  • Solo puedes actualizar actividades que pertenezcan a tu propia cuenta. La clave de otra persona responde 403.
  • Una actualización cuesta lo mismo que una creación: una llamada de la cuota de hoy.

Límite de peticiones

10
10 actividades por cuenta y día

Cada llamada correcta cuenta, tanto creaciones como actualizaciones. Si te pasas, la siguiente petición responde 429 hasta que el contador se reinicia.

El contador se pone a cero una vez al día mediante una tarea programada, no en una ventana móvil de 24 horas.

Errores

Los errores llegan siempre como JSON con los mismos dos campos, nunca como una página HTML. La cadena error está escrita para que la lea una persona: indica el campo o el límite que falló.

EstadoQué significa
400
Bad Request
Falta algo en el cuerpo, está mal formado o fuera de rango. El mensaje indica el campo.
401
Unauthorized
El email es desconocido, o la clave no pertenece a esa cuenta.
403
Forbidden
La activity_key que enviaste pertenece a otra cuenta.
429
Too Many Requests
La cuota de hoy está agotada. Se reinicia una vez al día.
500
Server Error
El generador no pudo construir un puzle con lo que enviaste; normalmente por muy pocas palabras, o por palabras que no encajan entre sí.

Endpoints

Una ruta por tipo de actividad, todas POST, todas bajo la misma URL base. Cada una indica el contenido que necesita, los ajustes que lee y una petición que puedes ejecutar.

Palabras y letras

Crucigrama

Entrelaza tus respuestas en una cuadrícula y numera las definiciones por ti.

#
POST /api/public/v1/crossword De 2 a 80 en items
Contenido

Un array de palabras. Cada entrada combina la respuesta con la definición que la señala.

Usa por defecto el nombre “Crossword API”

Conviene saber
  • Las respuestas de menos de dos caracteres se descartan antes de construir la cuadrícula, y al menos dos tienen que sobrevivir a ese filtro.
  • Las respuestas se pasan a mayúsculas y el generador tiene veinte intentos para encajarlas. Si no consigue colocar ni una sola palabra, la llamada responde 500.
Ajustes que lee
CampoTipoQué hace
hidden_solution
opcional en settings
string
stringUna palabra extra opcional. Sus letras se marcan en casillas de la cuadrícula terminada, para que los jugadores las recojan cuando el crucigrama esté resuelto, así que todas sus letras tienen que aparecer en las respuestas.
Petición de ejemplo
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": "es",
  "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"
    }
  ]
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/crossword/embed?p=-Nq8sample_activity_key",
  "message": "Crossword created successfully"
}

Sopa de letras

Esconde tus palabras en una cuadrícula de letras, en las direcciones y con la forma que elijas.

#
POST /api/public/v1/wordseeker De 2 a 40 en items
Contenido

Un array de palabras. El texto de la definición se convierte en la lista de palabras con la que trabajan los jugadores.

Usa por defecto el nombre “Wordseeker API”

Conviene saber
  • Las respuestas de menos de dos caracteres se descartan, y todas las respuestas se pasan a mayúsculas antes de entrar en la cuadrícula.
  • La cuadrícula se rellena con letras latinas salvo que language sea "ar", que cambia el relleno al árabe.
Ajustes que lee
CampoTipoQué hace
hidden_solution
opcional en settings
string
stringLas letras sobrantes forman esta palabra. Establecerla también indica al generador que encaje primero la solución en lugar de meter tantas palabras como pueda.
directions
opcional en settings
string[]
string[]En qué direcciones puede ir una palabra. Si lo omites, las palabras solo van hacia el este, el sureste y el sur.
Uno de westeastnorthsouthnorthwestnortheastsouthwestsoutheast
Por defecto: ["east", "southeast", "south"]
template
opcional en settings
string
stringRecorta la cuadrícula con una forma en lugar de dejarla cuadrada.
Uno de squarecirclecrossdiamondpyramidsmileystarcross_plus
Petición de ejemplo
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": "es",
  "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"
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordseeker/embed?p=-Nq8sample_activity_key",
  "message": "Wordseeker created successfully"
}

Acróstico

Apila tus respuestas para que una columna forme una palabra oculta.

#
POST /api/public/v1/acrostic De 1 a 40 en items
Contenido

Un array de palabras. Entre todas tienen que aportar cada letra de la palabra oculta.

Usa por defecto el nombre “Acrostic API”

Conviene saber
  • Si las respuestas no pueden aportar las letras que necesita la solución, la llamada responde 500 en lugar de guardar una cuadrícula a medio construir.
  • El generador reordena tus respuestas para que la columna funcione, así que el orden que envías no es el orden que ven los jugadores.
Ajustes que lee
CampoTipoQué hace
hidden_solution
obligatorio en settings
string
stringLa palabra que forma la columna resaltada. Este endpoint no funciona sin ella.
Petición de ejemplo
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": "es",
  "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"
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/acrostic/embed?p=-Nq8sample_activity_key",
  "message": "Acrostic created successfully"
}

Palabras revueltas

api_e_word_scramble

#
POST /api/public/v1/word-scramble De 1 a 40 en items
Contenido

api_c_word_scramble

Usa por defecto el nombre “Word Scramble API”

Conviene saber
  • Las actividades creadas a través de la API siempre tienen activado el ajuste de orden aleatorio, así que el orden que envías no es el orden que reciben los jugadores.
Ajustes que lee
CampoTipoQué hace
hidden_solution
opcional en settings
string
stringUna palabra extra opcional que los jugadores introducen cuando el resto está resuelto.
Petición de ejemplo
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": "es",
  "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"
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/word-scramble/embed?p=-Nq8sample_activity_key",
  "message": "Word Scramble created successfully"
}

Ahorcado

Convierte tus palabras o frases en rondas de adivinar letras.

#
POST /api/public/v1/hangman De 1 a 50 en items
Contenido

Un array de palabras o frases cortas. La definición es la pista que ven los jugadores.

Usa por defecto el nombre “Hangman API”

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

Wordle

Crea un juego de adivinar la palabra con cada palabra que envías.

#
POST /api/public/v1/wordle De 1 a 50 en items
Contenido

Un array de palabras. Los jugadores tienen una ronda por palabra.

Usa por defecto el nombre “Wordle API”

Conviene saber
  • Por defecto, se comprueba que las palabras introducidas estén en el diccionario. Desactiva esta opción en el editor si usas nombres propios o palabras inventadas.
Petición de ejemplo
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": "es",
  "items": [
    {
      "answer": "MELON",
      "description": "Sweet and green",
      "type": "text"
    },
    {
      "answer": "PEACH",
      "description": "Fuzzy and orange",
      "type": "text"
    }
  ]
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/wordle/embed?p=-Nq8sample_activity_key",
  "message": "Wordle created successfully"
}

Práctica de mecanografía

api_e_typing_practice

#
POST /api/public/v1/typing-practice De 1 a 50 en items
Contenido

api_c_typing_practice

Usa por defecto el nombre “Typing Practice API”

Petición de ejemplo
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": "es",
  "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"
    }
  ]
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/typing-practice/embed?p=-Nq8sample_activity_key",
  "message": "Typing Practice created successfully"
}

Ruleta de la suerte

api_e_wheel_of_fortune

#
POST /api/public/v1/wheel-of-fortune De 1 a 50 en items
Contenido

api_c_wheel_of_fortune

Usa por defecto el nombre “Wheel of Fortune API”

Conviene saber
  • Se crea con “mostrar el resultado solo en la ruleta”, así que el resultado se lee en la ruleta en lugar de anunciarse al lado.
Petición de ejemplo
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": "es",
  "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"
    }
  ]
}'
Éxito
{
  "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"
}

Autodefinido

Un autodefinido: las definiciones van dentro de la cuadrícula, cada una con una flecha hacia su respuesta.

#
POST /api/public/v1/arrowword De 2 a 80 en items
Contenido

Un array de palabras. Cada entrada combina la respuesta con una definición lo bastante corta para caber en una casilla.

Usa por defecto el nombre “Arrowword API”

Ajustes que lee
CampoTipoQué hace
hidden_solution
opcional en settings
string
stringUna palabra extra opcional. Sus letras se marcan en casillas de la cuadrícula terminada, así que todas sus letras tienen que aparecer en las respuestas.
Petición de ejemplo
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": "es",
  "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"
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/arrowword/embed?p=-Nq8sample_activity_key",
  "message": "Arrowword created successfully"
}

Strands

Una cuadrícula en la que cada letra pertenece a una palabra del tema, con una palabra que nombra el tema y va de un extremo a otro.

#
POST /api/public/v1/strands De 2 a 24 en items
Contenido

Un array de palabras del tema. Junto con el spangram, sus letras tienen que llenar exactamente la cuadrícula.

Usa por defecto el nombre “Strands API”

Conviene saber
  • Las letras de todas las palabras y del spangram juntos tienen que sumar exactamente 30, 35, 36, 40, 42, 45, 48, 49, 50, 54, 56, 60, 63, 64, 70, 72 u 80. Cualquier otra cifra responde 400 e indica cuántas letras añadir o quitar.
Ajustes que lee
CampoTipoQué hace
theme
opcional en settings
string
stringLa adivinanza que se muestra sobre la cuadrícula. Si la omites, los jugadores ven el título.
spangram
opcional en settings
string
stringLa palabra o frase que nombra el tema y cruza la cuadrícula de un extremo a otro.
Petición de ejemplo
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": "es",
  "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"
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/strands/embed?p=-Nq8sample_activity_key",
  "message": "Strands created successfully"
}

Nómbralos todos

api_e_name_them_all

#
POST /api/public/v1/name-them-all De 1 a 250 en items
Contenido

api_c_name_them_all

Usa por defecto el nombre “Name Them All API”

Conviene saber
  • Una entrada es un objeto con una answer y, opcionalmente, aliases (otras grafías que cuentan), una description (la pista) y un group. Al comprobar un nombre se ignoran las mayúsculas, los acentos y la puntuación.
Ajustes que lee
CampoTipoQué hace
list_match_mode
opcional en settings
string
stringSi un nombre cuenta en cuanto se escribe, o solo al pulsar Intro.
Uno de while_typingon_enter
Por defecto: "while_typing"
list_slot_hint
opcional en settings
string
stringQué revela un hueco vacío: nada, la longitud del nombre, su primera letra o la pista que escribiste.
Uno de nonelengthfirst_letterhint
Por defecto: "none"
list_arrange
opcional en settings
string
stringUna columna por grupo, o una sola lista.
Uno de groupsone_list
Por defecto: "groups"
list_allow_give_up
opcional en settings
boolean
booleanMuestra un botón de rendirse que termina la ronda y revela lo que faltaba.
Por defecto: false
Petición de ejemplo
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": "es",
  "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
  }
}'
Éxito
{
  "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"
}
Tarjetas y parejas

Memorama

Tarjetas boca abajo para darles la vuelta y emparejarlas.

#
POST /api/public/v1/memory De 2 a 30 en items
Contenido

Un array de parejas. Cada pareja contiene las dos tarjetas que van juntas.

Usa por defecto el nombre “Memory Game API”

Conviene saber
  • Una tarjeta es un objeto con un type y un value. Usa "text" para palabras, o "image", "audio", "youtube" o "link" con una URL en value, y añade alt para una descripción.
Petición de ejemplo
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": "es",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/memory/embed?p=-Nq8sample_activity_key",
  "message": "Memory game created successfully"
}

Juego de emparejar

api_e_matching_pairs

#
POST /api/public/v1/matching-pairs De 2 a 30 en items
Contenido

api_c_matching_pairs

Usa por defecto el nombre “Matching Game API”

Conviene saber
  • Una tarjeta es un objeto con un type y un value. Usa "text" para palabras, o "image", "audio", "youtube" o "link" con una URL en value, y añade alt para una descripción.
Petición de ejemplo
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": "es",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/matching-pairs/embed?p=-Nq8sample_activity_key",
  "message": "Matching pairs game created successfully"
}

Tarjetas de estudio

api_e_flash_cards

#
POST /api/public/v1/flash-cards De 1 a 150 en items
Contenido

api_c_flash_cards

Usa por defecto el nombre “Flash Cards API”

Conviene saber
  • El endpoint guarda tantas tarjetas como envíes, así que envía exactamente dos por entrada: primero el anverso, luego el reverso.
  • Una tarjeta es un objeto con un type y un value. Usa "text" para palabras, o "image", "audio", "youtube" o "link" con una URL en value, y añade alt para una descripción.
Petición de ejemplo
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": "es",
  "items": [
    {
      "cards": [
        {
          "type": "text",
          "value": "Apple"
        },
        {
          "type": "text",
          "value": "A red fruit"
        }
      ]
    },
    {
      "cards": [
        {
          "type": "text",
          "value": "Banana"
        },
        {
          "type": "text",
          "value": "A yellow fruit"
        }
      ]
    }
  ]
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/flash-cards/embed?p=-Nq8sample_activity_key",
  "message": "Flash Cards created successfully"
}

Clasificación

Tarjetas para clasificar en la categoría a la que pertenecen.

#
POST /api/public/v1/categorize Al menos 2 en items · como máximo 60 tarjetas en total
Contenido

Un array de categorías, cada una con un nombre y las tarjetas que le pertenecen.

Usa por defecto el nombre “Categorize Game API”

Conviene saber
  • Una categoría enviada sin nombre se guarda como “Untitled Category”, así que envía siempre uno.
  • Una tarjeta es un objeto con un type y un value. Usa "text" para palabras, o "image", "audio", "youtube" o "link" con una URL en value, y añade alt para una descripción.
Petición de ejemplo
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": "es",
  "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"
        }
      ]
    }
  ]
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/categorize/embed?p=-Nq8sample_activity_key",
  "message": "Categorize game created successfully"
}

Secuencia

Una secuencia que los jugadores tienen que volver a ordenar.

#
POST /api/public/v1/reorder Al menos 1 en items · como máximo 60 tarjetas en total
Contenido

Un array de secuencias. Cada una contiene sus tarjetas en el orden correcto.

Usa por defecto el nombre “Reorder Game API”

Conviene saber
  • El orden que envías se guarda como el orden correcto: el número uno primero.
  • Una tarjeta es un objeto con un type y un value. Usa "text" para palabras, o "image", "audio", "youtube" o "link" con una URL en value, y añade alt para una descripción.
Petición de ejemplo
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": "es",
  "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"
        }
      ]
    }
  ]
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/reorder/embed?p=-Nq8sample_activity_key",
  "message": "Reorder game created successfully"
}

Bingo

Un bingo para toda la clase que el anfitrión canta en directo: cada jugador recibe un cartón sacado de tus items.

#
POST /api/public/v1/bingo No acepta items
Contenido

Un array de items de los que se sacan los cartones. Envía bastantes más de los que caben en un cartón, para que los cartones sean distintos.

Usa por defecto el nombre “Bingo API”

Conviene saber
  • Un item es un objeto con un value y, opcionalmente, un type ("text", "image" o "audio" con una URL en value), una description (la pista que lee el anfitrión en el modo de pistas) y alt.
Ajustes que lee
CampoTipoQué hace
mode
opcional en settings
string
stringQué llena las casillas: tus items, tus items cantados por su pista, o simples números (que no necesitan items).
Uno de itemscluesnumbers
Por defecto: "items"
rows
opcional en settings
number
numberFilas de cada cartón, de 2 a 5.
Por defecto: 3
columns
opcional en settings
number
numberColumnas de cada cartón, de 2 a 5.
Por defecto: 3
highest_number
opcional en settings
number
numberEn el modo de números, los cartones se llenan desde el 1 hasta este número, 100 como máximo. Es una función de pago: sin un plan se queda en 50.
Por defecto: 50
Petición de ejemplo
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": "es",
  "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
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/bingo/embed?p=-Nq8sample_activity_key",
  "message": "Bingo created successfully"
}

Yo tengo, quién tiene

api_e_i_have_who_has

#
POST /api/public/v1/i-have-who-has De 3 a 40 en items
Contenido

api_c_i_have_who_has

Usa por defecto el nombre “I Have, Who Has API”

Conviene saber
  • Ninguna pregunta ni ninguna respuesta puede aparecer dos veces: un estudiante que tuviera la respuesta no sabría a qué pregunta corresponde.
Ajustes que lee
CampoTipoQué hace
chain_shape
opcional en settings
string
stringUn círculo se cierra sobre sí mismo, así que cualquier tarjeta puede empezar; una línea se abre con una tarjeta de inicio y termina con una tarjeta de final.
Uno de loopline
Por defecto: "loop"
Petición de ejemplo
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": "es",
  "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"
  }
}'
Éxito
{
  "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"
}

Candado con código

Un candado con código: un teclado de llaves, algunas de las cuales forman juntas el código.

#
POST /api/public/v1/keypad De 1 a 30 en items
Contenido

Un array de llaves. Las llaves que forman parte del código indican su lugar en él.

Usa por defecto el nombre “Keypad API”

Conviene saber
  • Una llave es un objeto con un value y, opcionalmente, un type ("text", "image" o "audio" con una URL en value), alt y code_position: su lugar en el código, 1 para la primera. Una llave puede aparecer una sola vez en el código, y al menos una llave tiene que estar en él.
Ajustes que lee
CampoTipoQué hace
instructions
opcional en settings
string
stringLa pregunta o adivinanza a la que responde el código, que se muestra junto al teclado.
force_solution_in_correct_order
opcional en settings
boolean
booleanLas llaves hay que pulsarlas en orden. Si está desactivado, cualquier orden de las llaves correctas abre el candado.
Por defecto: false
randomize_order
opcional en settings
boolean
booleanCada jugador recibe las llaves en una disposición distinta.
Por defecto: true
Petición de ejemplo
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": "es",
  "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
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/keypad/embed?p=-Nq8sample_activity_key",
  "message": "Keypad created successfully"
}

Cuartetos

El juego de cartas: los jugadores se piden cartas entre sí para reunir grupos de cuatro.

#
POST /api/public/v1/quartets De 2 a 16 en items
Contenido

Un array de grupos. Cada uno tiene un nombre y exactamente cuatro cartas.

Usa por defecto el nombre “Quartets API”

Conviene saber
  • Una carta es un nombre, o un objeto con un name y una description (el dato que se muestra en ella). Ningún nombre de carta puede aparecer dos veces en el juego: los jugadores piden las cartas por su nombre.
Ajustes que lee
CampoTipoQué hace
type
opcional en settings
string
stringUn juego sencillo, o un juego de aprendizaje en el que cada carta muestra un dato. Si lo omites, es learn cuando alguna carta tiene una description.
Uno de normallearn
Petición de ejemplo
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": "es",
  "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"
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/quartets/embed?p=-Nq8sample_activity_key",
  "message": "Quartets game created successfully"
}
Preguntas y respuestas

Quiz

Preguntas de opción múltiple y abiertas, puntuadas sobre la marcha.

#
POST /api/public/v1/quiz De 1 a 100 en items
Contenido

Un array de preguntas. Las preguntas de opción múltiple llevan sus respuestas; las abiertas llevan la respuesta que aceptas.

Usa por defecto el nombre “Quiz API”

Conviene saber
  • question_type es "multiple_choice", donde la opción correcta lleva isCorrect true; "true_false", lo mismo pero con exactamente dos opciones, primero verdadero y después falso; o "open_answer", que usa correct_answer en su lugar. Si se omite, se trata como opción múltiple.
  • El endpoint del quiz pasa settings directamente como bloques de ajustes de la actividad, así que no es un sitio para opciones sueltas: ajusta el quiz en el editor después.
Petición de ejemplo
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": "es",
  "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."
    }
  ]
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/quiz/embed?p=-Nq8sample_activity_key",
  "message": "Quiz created successfully"
}

Juego de mesa

api_e_board_game

#
POST /api/public/v1/board-game De 1 a 100 en items
Contenido

api_c_board_game

Usa por defecto el nombre “Board Game API”

Conviene saber
  • question_type es "multiple_choice", donde la opción correcta lleva isCorrect true; "true_false", lo mismo pero con exactamente dos opciones, primero verdadero y después falso; o "open_answer", que usa correct_answer en su lugar. Si se omite, se trata como opción múltiple.
Ajustes que lee
CampoTipoQué hace
number_of_tiles
opcional en settings
number
numberCuántas casillas tiene el tablero. Entre 10 y 75.
Por defecto: 30
game_mode
opcional en settings
string
stringSi los jugadores compiten por llegar a la meta o recogen objetos por el camino.
Uno de race_to_finishcollect_items
Por defecto: "race_to_finish"
Petición de ejemplo
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": "es",
  "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"
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/board-game/embed?p=-Nq8sample_activity_key",
  "message": "Board Game created successfully"
}

Laberinto

Un laberinto que recorrer: cada pregunta es una sala, y sus respuestas son las puertas.

#
POST /api/public/v1/maze Al menos 1 en items
Contenido

Un array de preguntas de opción múltiple o de verdadero o falso, exactamente con la forma que acepta el endpoint del quiz. Las preguntas abiertas se rechazan: una puerta necesita una respuesta escrita encima.

Usa por defecto el nombre “Maze API”

Ajustes que lee
CampoTipoQué hace
maze_width
opcional en settings
string
stringCómo se distribuyen las salas: en una columna, en un cuadrado o más anchas.
Uno de narrownormalwide
Por defecto: "normal"
maze_corridors
opcional en settings
string
stringCuánto laberinto hay entre dos preguntas.
Uno de shortnormallong
Por defecto: "normal"
maze_fog
opcional en settings
string
stringMostrar el laberinto entero, o solo lo que el jugador ha tenido al lado.
Uno de offnear
Por defecto: "off"
maze_wrong_door_pause
opcional en settings
string
stringCuánto tiempo siguen cerradas las puertas después de elegir una equivocada.
Uno de noneshortlong
Por defecto: "short"
maze_walk_there
opcional en settings
boolean
booleanOfrece un botón que lleva la ficha hasta la siguiente sala.
Por defecto: false
maze_seed
opcional en settings
string
stringLa semilla a partir de la que se genera el laberinto. La misma semilla y las mismas preguntas dan el mismo laberinto; si la omites, se genera uno nuevo.
Petición de ejemplo
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": "es",
  "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"
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/maze/embed?p=-Nq8sample_activity_key",
  "message": "Maze created successfully"
}

Jeopardy

Un tablero de concurso: categorías arriba y, debajo, pistas que valen más cuanto más abajo están.

#
POST /api/public/v1/jeopardy Al menos 2 en items
Contenido

Un array de categorías, de izquierda a derecha. Cada una tiene un nombre y sus pistas, desde la fila de arriba hacia abajo.

Usa por defecto el nombre “Jeopardy API”

Conviene saber
  • Una pista es una pregunta tal como la acepta el endpoint del quiz, open_answer salvo que indique otra cosa, con correct_answer y, opcionalmente, aliases. También puede llevar value (su propio valor) y daily_double. null deja una casilla vacía.
Ajustes que lee
CampoTipoQué hace
jeopardy_buzzer_mode
opcional en settings
string
stringQuién juega y cómo: el anfitrión lo dirige desde la consola, los jugadores pulsan el timbre desde el móvil, o cada jugador resuelve el tablero por su cuenta.
Uno de hostphonessolo
Por defecto: "host"
jeopardy_contestants
opcional en settings
string
stringSi la consola habla de equipos o de jugadores.
Uno de teamsplayers
Por defecto: "teams"
jeopardy_value_step
opcional en settings
number
numberCuánto vale una fila: una pista vale este valor por su número de fila. De 50 a 500, de 50 en 50.
Por defecto: 100
jeopardy_answer_time
opcional en settings
number
numberSegundos para responder una vez abierta una pista, hasta 300. 0 es sin reloj.
Por defecto: 20
jeopardy_wrong_answer_costs
opcional en settings
boolean
booleanUna respuesta incorrecta resta el valor de la pista de la puntuación.
Por defecto: false
jeopardy_reveal_on_timeout
opcional en settings
boolean
booleanEl tablero muestra la respuesta cuando se acaba el tiempo.
Por defecto: false
jeopardy_require_question_form
opcional en settings
boolean
booleanRecuerda a los jugadores que respondan en forma de pregunta.
Por defecto: false
Petición de ejemplo
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": "es",
  "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
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/jeopardy/embed?p=-Nq8sample_activity_key",
  "message": "Jeopardy board created successfully"
}

Vídeo interactivo

api_e_interactive_video

#
POST /api/public/v1/interactive-video De 1 a 50 en items
Contenido

api_c_interactive_video

Usa por defecto el nombre “Interactive Video API”

Conviene saber
  • Una ventana emergente es un objeto con time (segundos, o "1:23"), kind ("question" salvo que indique "note", "think" o "chapter") y description. Una pregunta es una pregunta tal como la acepta el endpoint del quiz, y puede llevar rewind_to: el punto desde el que se vuelve a reproducir tras una respuesta incorrecta.
Ajustes que lee
CampoTipoQué hace
video_url
obligatorio en settings
string
stringEl vídeo: una página de YouTube, Vimeo o Bunny Stream, o un enlace directo a un archivo mp4, webm o mov.
video_duration
opcional en settings
number
numberLa duración del vídeo en segundos. Si se indica, se rechaza una ventana emergente que quede después del final.
Petición de ejemplo
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": "es",
  "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
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/interactive-video/embed?p=-Nq8sample_activity_key",
  "message": "Interactive video created successfully"
}
Oraciones y números

Criptograma

Convierte una oración en un código que descifrar, carácter a carácter.

#
POST /api/public/v1/cryptogram No acepta items
Contenido

Una oración, en el campo sentence. Este endpoint no acepta items.

Usa por defecto el nombre “Cryptogram API”

Conviene saber
  • Cualquier cosa que envíes en items se ignora: el puzle se construye solo a partir de la oración.
Ajustes que lee
CampoTipoQué hace
sentence
obligatorio
string
stringLa oración que se va a cifrar. Los jugadores la descifran carácter a carácter.
helpers
opcional en settings
string
stringQué caracteres se dan gratis como punto de partida: ninguno, los más comunes, las vocales o los que indiques tú.
Uno de nonemost_commonvowelscustom
Por defecto: "none"
character_list
opcional en settings
string
stringEl alfabeto con el que se construye el cifrado. Si se deja vacío, el cifrado elige el suyo.
extra_letters
opcional en settings
string
stringLos caracteres que se dan cuando helpers es "custom". Se ignora en los demás modos de ayuda.
hide_unused_characters
opcional en settings
boolean
booleanDeja fuera de la clave los caracteres que la oración nunca usa.
Por defecto: false
Petición de ejemplo
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": "es",
  "sentence": "An apple a day keeps the doctor away",
  "settings": {
    "helpers": "vowels",
    "hide_unused_characters": false
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/cryptogram/embed?p=-Nq8sample_activity_key",
  "message": "Cryptogram created successfully"
}

Ejercicio de cálculo

Esconde una oración detrás de operaciones: resuelve la operación y revela la letra.

#
POST /api/public/v1/calculation No acepta items
Contenido

Una oración, en el campo sentence. Este endpoint no acepta items.

Usa por defecto el nombre “Calculation Game API”

Conviene saber
  • Si las restricciones son demasiado estrictas para codificar la oración, la llamada responde 400 pidiéndote que las relajes en lugar de guardar un puzle parcial.
Ajustes que lee
CampoTipoQué hace
sentence
obligatorio
string
stringLa oración que los jugadores descubren al resolver las operaciones.
difficulty_level
opcional en settings
number
numberEl resultado más alto que puede tener una operación.
Uno de 20501001000
Por defecto: "100"
operators
opcional en settings
string[]
string[]Qué operaciones pueden aparecer. x es multiplicar, : es dividir.
Uno de +-x:
Por defecto: ["+", "-", "x", ":"]
max_operations
opcional en settings
number
numberCuántas operaciones puede encadenar un mismo cálculo.
Uno de 123
Por defecto: 1
number_difficulty
opcional en settings
number
numberLimita los números individuales dentro de una operación. Desde 5 hasta 1000.
Por defecto: 100
Petición de ejemplo
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": "es",
  "sentence": "Fruit salad for everyone",
  "settings": {
    "difficulty_level": "100",
    "operators": [
      "+",
      "-",
      "x",
      ":"
    ],
    "max_operations": 1,
    "number_difficulty": 100
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/calculation/embed?p=-Nq8sample_activity_key",
  "message": "Calculation game created successfully"
}

Sudoku

Genera una cuadrícula resuelta y luego quita números.

#
POST /api/public/v1/sudoku No acepta items
Contenido

Nada. Todo el puzle sale de sus dos ajustes.

Usa por defecto el nombre “Sudoku API”

Conviene saber
  • No envíes items ni sentence: size y difficulty son toda la entrada.
  • El editor solo ofrece la dificultad para 2x3, 3x3 y 3x4. La API la aplica a todos los tamaños, incluidos 2x2 y 4x4.
Ajustes que lee
CampoTipoQué hace
size
opcional en settings
string
stringEl tamaño de un bloque, escrito como filas por columnas: 3x3 da la cuadrícula clásica de 9x9. El endpoint solo comprueba que se pueda leer como dos números, así que quédate con los tamaños que ofrece el editor.
Uno de 2x22x33x33x44x4
Por defecto: "3x3"
difficulty_level
opcional en settings
string
stringCuántos números quedan en el tablero para empezar.
Uno de easynormalhard
Por defecto: "normal"
Petición de ejemplo
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": "es",
  "settings": {
    "size": "3x3",
    "difficulty_level": "normal"
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/sudoku/embed?p=-Nq8sample_activity_key",
  "message": "Sudoku created successfully"
}

Frase caída

api_e_fallen_phrase

#
POST /api/public/v1/fallen-phrase No acepta items
Contenido

api_c_fallen_phrase

Usa por defecto el nombre “Fallen Phrase API”

Ajustes que lee
CampoTipoQué hace
sentence
obligatorio
string
stringLa frase que se va a esconder: una cita, un refrán, una oración clave. Como máximo 120 letras y dígitos.
columns
opcional en settings
number
numberCuánto mide de ancho la cuadrícula, de 8 a 18. Cuanto más estrecha, más letras se apilan en cada columna y más difícil es.
Por defecto: 14
helpers
opcional en settings
string
stringQué letras se quedan en la cuadrícula como punto de partida: ninguna, las más comunes, las vocales o las que indiques tú.
Uno de nonemost_commonvowelscustom
Por defecto: "none"
extra_letters
opcional en settings
string
stringLas letras que se dan cuando helpers es "custom".
Petición de ejemplo
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": "es",
  "sentence": "Don't count your chickens before they hatch.",
  "settings": {
    "columns": 12,
    "helpers": "custom",
    "extra_letters": "ky"
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/fallen-phrase/embed?p=-Nq8sample_activity_key",
  "message": "Fallen phrase created successfully"
}

Tablas de multiplicar

api_e_times_tables

#
POST /api/public/v1/times-tables No acepta items
Contenido

api_c_times_tables

Usa por defecto el nombre “Times Tables API”

Ajustes que lee
CampoTipoQué hace
tables
opcional en settings
number[]
number[]Las tablas que se practican. Si lo omites, son de la 1 a la 10; con un 11 o un 12 la cuadrícula pasa a ser de 12 por 12.
Uno de 123456789101112
order
opcional en settings
string
stringSi las filas y las columnas van en orden o desordenadas.
Uno de ascendingshuffled
Por defecto: "ascending"
picture
opcional en settings
string
stringLa imagen que pintan las respuestas correctas.
Uno de sailboatheartrockettreecatfishflowerhouse
Por defecto: "sailboat"
players_choose_tables
opcional en settings
boolean
booleanDeja que cada jugador elija cuáles de las tablas practicar.
Por defecto: false
fill_same_sums
opcional en settings
boolean
booleanUna respuesta correcta rellena todas las casillas con la misma operación.
Por defecto: true
Petición de ejemplo
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": "es",
  "settings": {
    "tables": [
      7,
      3,
      4
    ],
    "order": "shuffled",
    "seed": "k3x9q2ab",
    "picture": "rocket",
    "players_choose_tables": true,
    "fill_same_sums": false
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/times-tables/embed?p=-Nq8sample_activity_key",
  "message": "Times tables created successfully"
}

Texto con huecos

api_e_fill_in_the_gap

#
POST /api/public/v1/fill-in-the-gap De 1 a 50 en items
Contenido

api_c_fill_in_the_gap

Usa por defecto el nombre “Fill in the gap API”

Conviene saber
  • Escribe la oración completa y pon asteriscos alrededor de cada palabra que quieras dejar fuera: "Water boils at *100* degrees." Varias palabras dentro de un mismo par forman un solo hueco. Una entrada también puede llevar una instrucción que se muestra encima de la oración.
Petición de ejemplo
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": "es",
  "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."
    }
  ]
}'
Éxito
{
  "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"
}

Análisis de la oración

Oraciones en las que los jugadores etiquetan las palabras: clases de palabras, partes de la oración o etiquetas propias.

#
POST /api/public/v1/deconstruct De 1 a 50 en items
Contenido

Un array de oraciones. Cada palabra que hay que etiquetar se escribe como [word](label).

Usa por defecto el nombre “Sentence analysis API”

Conviene saber
  • Escribe una oración como "The [dog](noun) [barks](verb)." Las palabras sin etiqueta se muestran, pero no se preguntan. Las etiquetas noun, verb, adjective y subject se muestran a cada jugador en su propio idioma.
Ajustes que lee
CampoTipoQué hace
categories
opcional en settings
string[]
string[]Las etiquetas entre las que eligen los jugadores, por orden. Si lo omites, son las etiquetas usadas en las oraciones. Envíalo para añadir una etiqueta que ninguna palabra lleva, o para fijar el orden.
Petición de ejemplo
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": "es",
  "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"
    ]
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/deconstruct/embed?p=-Nq8sample_activity_key",
  "message": "Sentence analysis created successfully"
}

Puzle de lógica

api_e_logic_puzzle

#
POST /api/public/v1/logic-puzzle Al menos 3 en items
Contenido

api_c_logic_puzzle

Usa por defecto el nombre “Logic Puzzle API”

Conviene saber
  • Cada categoría necesita el mismo número de items, de 3 a 6, todos distintos. Una categoría puede marcarse como ordenada (precios, horas, edades) con una unidad opcional, lo que permite al generador escribir pistas sobre más, menos y cuánto.
Ajustes que lee
CampoTipoQué hace
story
opcional en settings
string
stringLa historia de fondo que se muestra encima de las pistas.
difficulty
opcional en settings
string
stringQué tipos de pistas puede usar el generador.
Uno de easymediumhard
Por defecto: "easy"
hints
opcional en settings
boolean
booleanOfrece un botón que muestra el siguiente paso.
Por defecto: true
auto_cross
opcional en settings
boolean
booleanAl marcar una coincidencia se tacha el resto de su fila y de su columna.
Por defecto: true
clue_mode
opcional en settings
string
stringQuién escribe las pistas que ven los jugadores: generadas a partir de la tabla, tus propias oraciones en free_clues, o ninguna.
Uno de generatedfreenone
Por defecto: "generated"
free_clues
opcional en settings
string[]
string[]Tus propias pistas, mostradas tal como las escribes, con clue_mode "free". Nada las comprueba.
Petición de ejemplo
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": "es",
  "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"
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/logic-puzzle/embed?p=-Nq8sample_activity_key",
  "message": "Logic puzzle created successfully"
}

Búsqueda del tesoro

api_e_scavenger_hunt

#
POST /api/public/v1/scavenger-hunt De 1 a 50 en items
Contenido

api_c_scavenger_hunt

Usa por defecto el nombre “Scavenger Hunt API”

Conviene saber
  • Un paso es un objeto con title, description, code y, opcionalmente, accepted_codes (otras grafías que cuentan), url y link_text. Un código se comprueba sin distinguir mayúsculas ni espacios. El mapa con chinchetas solo se puede añadir en el editor.
Petición de ejemplo
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": "es",
  "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"
      ]
    }
  ]
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/scavenger-hunt/embed?p=-Nq8sample_activity_key",
  "message": "Scavenger hunt created successfully"
}

Razonamiento espacial

api_e_spatial_reasoning

#
POST /api/public/v1/spatial-reasoning De 1 a 50 en items
Contenido

api_c_spatial_reasoning

Usa por defecto el nombre “Spatial Reasoning API”

Conviene saber
  • Los objetos y los destinos son square, triangle, circle, hexagon, pentagon, star, diamond o heart. Las relaciones son inside, outside, behind, in_front_of, right_of, left_of, above, below, same_color_as, different_color_from, larger_than y smaller_than. Una regla que nunca se puede cumplir responde 400.
Ajustes que lee
CampoTipoQué hace
clue_mode
opcional en settings
string
stringReglas mostradas como imágenes o como oraciones.
Uno de visualtext
Por defecto: "visual"
unique_object_picks
opcional en settings
boolean
booleanCada forma solo se puede colocar una vez.
Por defecto: false
hide_color_picker
opcional en settings
boolean
booleanLos jugadores no pueden cambiar el color de las formas.
Por defecto: false
Petición de ejemplo
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": "es",
  "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
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/spatial-reasoning/embed?p=-Nq8sample_activity_key",
  "message": "Spatial reasoning activity created successfully"
}

Jeroglífico

Oraciones escritas con imágenes: los jugadores leen las imágenes y los cambios de letras los devuelven a palabras.

#
POST /api/public/v1/rebus De 1 a 30 en items
Contenido

Un array de oraciones. Cada una enumera las palabras dibujadas como imágenes; todas las demás palabras se quedan con sus letras.

Usa por defecto el nombre “Rebus API”

Conviene saber
  • Una palabra se dibuja con partes que juntas la forman. Una parte tiene las letras que representa (text), un emoji, y shows: la palabra de lo que muestra la imagen ("broom" para una imagen que representa "room"). Puzzel calcula los cambios de letras. Una parte puede ser un símbolo en su lugar, como 4 para "for".
Ajustes que lee
CampoTipoQué hace
rebus_commas
opcional en settings
boolean
booleanDibuja una primera o última letra suprimida como una coma junto a la imagen.
Por defecto: false
Petición de ejemplo
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": "es",
  "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
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/rebus/embed?p=-Nq8sample_activity_key",
  "message": "Rebus created successfully"
}
Imágenes

Rompecabezas

Corta una imagen en piezas para volver a montarla arrastrándolas.

#
POST /api/public/v1/jigsaw No acepta items
Contenido

Una URL de imagen, en el campo image. Este endpoint no acepta items.

Usa por defecto el nombre “Jigsaw Game API”

Conviene saber
  • La API siempre crea un rompecabezas de 4 por 4. El número de piezas, las piezas irregulares y los bordes rectos son ajustes del editor: enviar rows o columns aquí no hace nada.
  • La URL se guarda tal como la enviaste y el archivo nunca se copia, así que tiene que seguir siendo accesible públicamente mientras se juegue la actividad.
Ajustes que lee
CampoTipoQué hace
image
obligatorio
string
stringURL absoluta de la imagen que se va a recortar. Se envía en el nivel superior, no dentro de settings.
Petición de ejemplo
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": "es",
  "image": "https://example.com/orchard.jpg"
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/jigsaw/embed?p=-Nq8sample_activity_key",
  "message": "Jigsaw game created successfully"
}

Puzle deslizante

Desordena una imagen en fichas que se deslizan hasta su sitio.

#
POST /api/public/v1/slidingpuzzle No acepta items
Contenido

Una URL de imagen, dentro de settings. Este endpoint no acepta items.

Usa por defecto el nombre “Sliding Puzzle API”

Conviene saber
  • A diferencia del rompecabezas, este endpoint lee su imagen de settings.image. Un campo image en el nivel superior se ignora y la llamada responde 400.
  • La URL se guarda tal como la enviaste y el archivo nunca se copia, así que tiene que seguir siendo accesible públicamente mientras se juegue la actividad.
Ajustes que lee
CampoTipoQué hace
image
obligatorio en settings
string
stringURL absoluta de la imagen que se va a desordenar. A diferencia del rompecabezas, esta va dentro de settings.
Petición de ejemplo
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": "es",
  "settings": {
    "image": "https://example.com/orchard.jpg"
  }
}'
Éxito
{
  "success": true,
  "id": "-Nq8sample_activity_key",
  "url": "https://puzzel.org/en/slidingpuzzle/embed?p=-Nq8sample_activity_key",
  "message": "Sliding puzzle created successfully"
}

¿Algo no funciona como debería?

Envíanos la petición que has usado y el error que recibiste. Te responderá la persona que creó la API.

Escribir a soporte