Encontre livros adequados ao nível de leitura do aluno
Um nível de leitura se torna mais útil quando transforma uma lista extensa de livros em um conjunto prático de opções.
Executar grátis
Esta ferramenta compara o nível equivalente à série de um aluno com o nível informado para cada livro e retorna somente os títulos dentro de uma faixa adequada. Você pode usar o padrão de uma série abaixo e acima ou ajustar cada lado para oferecer mais apoio ou desafio. A ordem original é preservada, facilitando o uso do resultado em planos de aula, listas de biblioteca ou conversas sobre leitura.
Monte uma lista útil de candidatos
Comece com o nível atual de leitura do aluno, expresso como equivalente à série, e uma lista de livros cujos níveis venham do mesmo sistema de avaliação ou de fontes razoavelmente comparáveis. Cada registro precisa de título e nível numérico. A consistência importa porque editoras diferentes podem estimar a dificuldade do texto de maneiras distintas, mesmo quando ambas exibem um número semelhante a uma série. A ferramenta não inventa, deduz nem pesquisa níveis; ela avalia os valores fornecidos por você. Por padrão, são aceitos livros desde uma série abaixo até uma série acima do nível do aluno, incluindo os dois limites. A ordem da entrada é mantida, permitindo organizar previamente os títulos por tema, disponibilidade ou preferência. Livros fora do intervalo calculado são apenas omitidos. Um resultado vazio é válido e indica que a coleção precisa de outros títulos ou de uma faixa maior, e não que o cálculo falhou.
Ajuste apoio e desafio separadamente
As distâncias inferior e superior podem ser alteradas de forma independente com range_below e range_above. Essa assimetria é útil porque uma seleção adequada nem sempre fica centrada em uma única pontuação. Para leitura independente, você pode permitir mais espaço abaixo do nível medido e manter o limite superior próximo. Em uma leitura guiada com apoio de um adulto, o intervalo superior pode ser maior. O valor zero faz aquele lado coincidir com o nível do aluno. O limite inferior nunca cai abaixo da série zero. Use esses controles como auxiliares de seleção, não como diagnóstico. Pontuações equivalentes à série resumem aspectos da dificuldade do texto, mas não abrangem conhecimentos prévios, motivação, perfil de decodificação, experiência linguística nem interesses. Depois do filtro, confira conteúdo, objetivo, formato e apoio disponível. A melhor faixa gera escolhas produtivas para a atividade e ainda preserva o julgamento profissional e a voz do aluno.
Interprete e reutilize o resultado
A resposta informa o nível do aluno, os valores mínimo e máximo usados, a quantidade de correspondências e os registros selecionados. Assim, a decisão fica fácil de explicar: todo título retornado tem nível informado maior ou igual ao mínimo e menor ou igual ao máximo. O algoritmo é determinístico, portanto a mesma entrada sempre produz a mesma saída. Ele também não consulta catálogos externos nem envia a lista para enriquecimento. Esse comportamento atende ferramentas escolares, rotinas de biblioteca e fluxos de dados repetíveis. Salve a faixa junto com a lista gerada quando precisar de um histórico, especialmente se atividades diferentes usarem tolerâncias distintas. Se o nível de um livro mudar na fonte, atualize o registro e execute novamente. Um título ausente não representa julgamento sobre seu valor literário ou sobre a capacidade do aluno; significa apenas que o número ficou fora do intervalo. A escolha final também deve considerar acessibilidade, idade, objetivos curriculares e interesses.
Casos de uso
Prepare uma estante de leitura independente
Filtre o acervo da sala por uma faixa favorável antes de o aluno escolher temas e formatos.
Planeje uma leitura guiada
Use um limite superior maior quando a orientação e a conversa apoiarem livros um pouco mais desafiadores.
Analise recomendações da biblioteca
Reduza uma lista extensa a candidatos compatíveis com o nível, mantendo a curadoria original.
Perguntas frequentes
Qual faixa é usada por padrão?
São incluídos livros entre uma série abaixo e uma série acima do nível equivalente à série do aluno, com os dois limites incluídos.
As faixas inferior e superior podem ser diferentes?
Sim. Defina range_below e range_above separadamente conforme o apoio, o objetivo e o desafio da atividade.
A ferramenta pesquisa o nível dos livros?
Não. Ela apenas filtra os títulos e níveis fornecidos na solicitação; nenhuma base externa é consultada.
O que acontece quando nenhum livro está na faixa?
O resultado traz matched_books vazio e matched_count igual a zero. Você pode ajustar a faixa ou enviar outra lista.
A equivalência à série constitui uma recomendação completa?
Não. É uma triagem numérica. Considere também interesse, conteúdo, acessibilidade, experiência linguística, objetivo pedagógico e apoio disponível.
Quanto custa uma solicitação de API?
Cada solicitação de API custa US$ 0,002. A versão no navegador executa a mesma lógica determinística sem consulta de rede.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"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
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.reading_level_book_match",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |