Agrupar anagramas en línea por letras coincidentes
La herramienta para agrupar anagramas recibe una lista de palabras y reúne todas las entradas formadas por las mismas letras, sin tener en cuenta las mayúsculas.
Ejecutar — gratis
Conserva la escritura original de cada palabra y el orden de su primera aparición, por lo que resulta sencillo comparar la respuesta con la lista de origen. Puede usarla para ordenar candidatos de juegos de palabras, revisar vocabularios, preparar ejercicios o incorporar una agrupación predecible a un flujo de procesamiento de texto sin mantener lógica propia.
Cómo se identifican los grupos de anagramas
Dos palabras pertenecen al mismo grupo de anagramas cuando sus letras pueden reordenarse hasta producir la misma secuencia de caracteres, sin distinguir mayúsculas de minúsculas. La herramienta crea una firma estable para cada palabra recibida: la convierte a minúsculas, separa sus caracteres, los ordena y vuelve a unirlos. Las palabras con una firma idéntica se incorporan al mismo conjunto. Por ejemplo, «Listen», «silent» y «enlist» comparten una firma aunque cambien las mayúsculas y el orden de las letras. Los valores devueltos conservan la escritura enviada; la normalización solo se usa para comparar. Las letras repetidas cuentan, de modo que «tap» no coincide con «tape» ni «pool» con «pol». Los signos, los espacios y los caracteres acentuados se tratan como caracteres y no se eliminan. Esta regla literal hace que el resultado sea determinista. Si necesita recortar espacios, eliminar acentos o suprimir puntuación, normalice la colección antes de enviarla.
Cómo preparar la entrada y leer el resultado
Envíe el campo words como un arreglo que contenga al menos una cadena no vacía. Cada firma de letras distinta produce un arreglo dentro del arreglo groups devuelto. Los grupos aparecen según el orden en que se encuentra su primer integrante, y las palabras de cada grupo mantienen el orden original de entrada. Así, los resultados permanecen estables entre ejecuciones y son útiles en pruebas, exportaciones y pantallas de revisión. Una palabra sin anagramas también aparece como un grupo de un solo elemento, ya que omitirla haría perder información. La comparación ignora las mayúsculas, pero la salida no las modifica: «Tea» y «eat» se agrupan y se devuelven exactamente así. La capacidad rechaza la ausencia de words, los valores que no sean arreglos, las listas vacías, las cadenas vacías, los elementos que no sean texto y las solicitudes que superen el límite publicado. Se devuelve un error de entrada completo, nunca un resultado parcial formado tras descartar valores.
Cómo integrar la agrupación determinista en un flujo
La agrupación de anagramas sirve siempre que una colección deba dividirse según la composición de sus letras. Un servicio de juegos puede organizar parte de un diccionario antes de mostrar jugadas posibles. Un docente puede crear ejercicios para reconocer reordenamientos. Un flujo de calidad de datos puede revelar entradas que solo difieren por el orden de sus caracteres y mantener visibles las que no coinciden. Como el algoritmo no usa red, inferencia de modelos, aleatoriedad ni hora actual, una misma entrada siempre genera el mismo resultado JSON. Por ello funciona bien en tareas automatizadas cuyas respuestas se comparan, almacenan en caché o auditan. El procesamiento se ejecuta localmente en el navegador desde la página gratuita, mientras que la API emplea el mismo solucionador puro por $0.002 por solicitud. Para diccionarios muy grandes, divida el trabajo en lotes limitados y decida si su aplicación debe combinar grupos que crucen los límites de lote.
Qué puede hacer con ella
Organizar candidatos de juegos de palabras
Agrupe una lista de candidatos por composición de letras antes de mostrar jugadas equivalentes o respuestas de acertijos.
Crear ejercicios de lengua
Convierta un vocabulario en grupos estables para actividades de reordenamiento, ortografía y reconocimiento de patrones.
Revisar conjuntos de datos textuales
Encuentre entradas con los mismos caracteres en otro orden sin perder las palabras que no tienen coincidencias.
Preguntas frecuentes
¿La comparación distingue mayúsculas y minúsculas?
No. Se ignoran al formar los grupos, pero cada palabra conserva en la salida la escritura original.
¿Se incluyen las palabras que quedan solas?
Sí. Una palabra sin anagrama se devuelve como grupo de un elemento para representar toda la entrada.
¿Se ignoran los espacios y la puntuación?
No. Se tratan como caracteres. Normalícelos o elimínelos antes de la solicitud si su definición de palabra lo exige.
¿Qué ocurre si la lista está vacía?
La solicitud falla con un error de entrada no válida porque se requiere al menos una palabra.
¿La herramienta cambia el orden de las palabras?
No. Los grupos siguen la primera aparición de cada firma y sus integrantes conservan el orden de entrada.
¿Cuánto cuesta una solicitud a la API?
Cada solicitud a la API cuesta $0.002. La misma agrupación determinista también está disponible en el navegador.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/text/anagram-groups \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"words":["listen","silent","enlist","stone","tones","Apple"]}'const res = await fetch("https://api.kit.forhosting.com/text/anagram-groups", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"words": [
"listen",
"silent",
"enlist",
"stone",
"tones",
"Apple"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/anagram-groups",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"words": [
"listen",
"silent",
"enlist",
"stone",
"tones",
"Apple"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/anagram-groups", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"words":["listen","silent","enlist","stone","tones","Apple"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"words":["listen","silent","enlist","stone","tones","Apple"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/anagram-groups", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"words": [
"listen",
"silent",
"enlist",
"stone",
"tones",
"Apple"
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.anagram_groups",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_items | 10000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |