Encuentre libros adecuados al nivel lector del estudiante
Un nivel de lectura resulta más útil cuando permite convertir una lista extensa de libros en un conjunto manejable de opciones.
Ejecutar — gratis
Esta herramienta compara el nivel equivalente a grado de un estudiante con el nivel asignado a cada libro y devuelve solo los títulos incluidos en un intervalo adecuado. Puede usar el margen predeterminado de un grado inferior y superior o ajustar cada lado para ofrecer más apoyo o dificultad. Se conserva el orden original para facilitar el uso del resultado en planes de clase, listas de biblioteca o conversaciones de lectura.
Prepare una lista útil de candidatos
Comience con el nivel lector actual del estudiante, expresado como equivalente a grado, y una lista de libros cuyos niveles procedan del mismo sistema de evaluación o de fuentes razonablemente comparables. Cada registro necesita un título y un nivel numérico. La coherencia es importante porque dos editoriales pueden estimar de forma distinta la dificultad de un texto aunque ambas muestren una cifra similar a un grado. La herramienta no inventa, deduce ni consulta niveles: evalúa los datos que usted proporciona. De forma predeterminada, admite libros desde un grado por debajo hasta uno por encima del nivel del estudiante. Ambos límites son inclusivos. Se mantiene el orden de entrada, por lo que usted puede organizar primero los títulos por tema, disponibilidad o preferencia. Un libro situado fuera del intervalo calculado se omite. Un resultado vacío es válido e indica que conviene aportar otros títulos o ampliar el margen; no significa que el cálculo haya fallado.
Ajuste por separado el apoyo y la dificultad
Las distancias inferior y superior pueden modificarse de manera independiente mediante range_below y range_above. Esta asimetría es útil porque una selección apropiada no siempre está centrada en una sola puntuación. Para la lectura autónoma, quizá convenga admitir más margen por debajo y limitar la dificultad superior. En una lectura guiada con apoyo adulto, puede ampliarse el extremo superior. Un valor de cero hace coincidir ese límite con el nivel del estudiante. El límite inferior nunca baja del grado cero. Considere estos controles como una ayuda para seleccionar, no como un diagnóstico. Los equivalentes a grado resumen ciertos aspectos de la dificultad textual, pero no reflejan los conocimientos previos, la motivación, el perfil de decodificación, la experiencia lingüística ni los intereses. Tras filtrar, revise el contenido, el propósito, el formato y el apoyo disponible. El mejor intervalo es el que produce opciones útiles para una actividad concreta y permite aplicar el criterio profesional y escuchar al estudiante.
Interprete y reutilice el resultado
La respuesta muestra el nivel del estudiante, los valores mínimo y máximo utilizados, la cantidad de coincidencias y los registros de los libros seleccionados. Así, la decisión se explica con claridad: cada título devuelto tiene un nivel proporcionado igual o superior al mínimo e igual o inferior al máximo. El algoritmo es determinista; una entrada idéntica siempre genera la misma salida. Tampoco consulta catálogos externos ni envía la lista para enriquecerla. Este comportamiento sirve para herramientas escolares, procesos de biblioteca y flujos de datos repetibles. Guarde el intervalo junto con la lista cuando necesite dejar constancia, sobre todo si distintas actividades usan márgenes diferentes. Si cambia el nivel de un libro en su fuente, actualice el registro y vuelva a ejecutar la selección. La ausencia de un título no juzga su valor literario ni la capacidad del estudiante: solo indica que su cifra quedó fuera del intervalo. La elección final también debe considerar accesibilidad, edad, objetivos curriculares e intereses.
Qué puede hacer con ella
Prepare una estantería de lectura autónoma
Filtre el inventario del aula por un intervalo favorable antes de que el estudiante elija temas y formatos.
Planifique una lectura guiada
Amplíe el margen superior cuando la enseñanza y el diálogo apoyen libros algo más exigentes.
Revise recomendaciones de la biblioteca
Reduzca una lista extensa a candidatos compatibles con el nivel sin alterar el orden establecido.
Preguntas frecuentes
¿Qué intervalo se aplica de forma predeterminada?
Se incluyen los libros comprendidos entre un grado por debajo y uno por encima del nivel equivalente a grado del estudiante, con ambos límites incluidos.
¿Pueden ser diferentes los márgenes inferior y superior?
Sí. Configure range_below y range_above por separado según el apoyo, el objetivo y la dificultad previstos para la actividad.
¿La herramienta busca los niveles de los libros?
No. Solo filtra los títulos y niveles incluidos en la solicitud; no consulta ninguna base de datos externa.
¿Qué ocurre si ningún libro queda dentro del intervalo?
El resultado contiene matched_books vacío y matched_count igual a cero. Puede ajustar el margen o proporcionar otra lista.
¿Una coincidencia por grado equivale a una recomendación completa?
No. Es un filtro numérico. También deben considerarse intereses, contenido, accesibilidad, experiencia lingüística, finalidad didáctica y apoyo disponible.
¿Cuánto cuesta una solicitud de API?
Cada solicitud de API cuesta $0.002. La versión del navegador ejecuta la misma lógica determinista sin consultar la red.
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/edu/reading-level-book-match \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"student_level":4.5,"books":[{"title":"The Wild Robot","reading_level":4.2},{"title":"Charlotte'\''s Web","reading_level":4.4},{"title":"The Giver","reading_level":6.8}]}'const res = await fetch("https://api.kit.forhosting.com/edu/reading-level-book-match", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"student_level": 4.5,
"books": [
{
"title": "The Wild Robot",
"reading_level": 4.2
},
{
"title": "Charlotte's Web",
"reading_level": 4.4
},
{
"title": "The Giver",
"reading_level": 6.8
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/reading-level-book-match",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"student_level": 4.5,
"books": [
{
"title": "The Wild Robot",
"reading_level": 4.2
},
{
"title": "Charlotte's Web",
"reading_level": 4.4
},
{
"title": "The Giver",
"reading_level": 6.8
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/reading-level-book-match", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"student_level":4.5,"books":[{"title":"The Wild Robot","reading_level":4.2},{"title":"Charlotte\'s Web","reading_level":4.4},{"title":"The Giver","reading_level":6.8}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"student_level":4.5,"books":[{"title":"The Wild Robot","reading_level":4.2},{"title":"Charlotte's Web","reading_level":4.4},{"title":"The Giver","reading_level":6.8}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/reading-level-book-match", 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
{
"student_level": 4.5,
"books": [
{
"title": "The Wild Robot",
"reading_level": 4.2
},
{
"title": "Charlotte's Web",
"reading_level": 4.4
},
{
"title": "The Giver",
"reading_level": 6.8
}
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.reading_level_book_match",
"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.
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. |