Capacidade e correção de erros QR
Esta consulta de capacidade e correção de erros de códigos QR informa o máximo de caracteres que cabe nos modos numérico, alfanumérico e byte para uma versão e um nível definidos do QR Code Model 2.
Executar grátis
Ela abrange todas as versões padrão, de 1 a 40, e os níveis L, M, Q e H. Você pode comparar limites antes de gerar um símbolo, escolher um tamanho adequado ou entender por que o mesmo conteúdo cabe em um nível de correção, mas não em outro.
Escolha primeiro a versão e o nível de correção
A versão de um código QR define as dimensões do símbolo: a versão 1 começa com 21 por 21 módulos, e cada versão seguinte acrescenta quatro módulos de cada lado até a versão 40. Mais módulos oferecem mais espaço, mas o nível de correção de erros também reserva parte dele para dados de recuperação. O nível L deixa a maior capacidade para a carga útil, enquanto M, Q e H destinam progressivamente mais palavras-código à correção. Esta consulta usa essas duas escolhas como ponto de partida fixo e apresenta três limites úteis. Selecione uma versão inteira de 1 a 40 e uma das quatro letras padrão. O resultado inclui o nível normalizado, o total disponível de palavras-código de dados e os máximos de caracteres nos modos aceitos. A ferramenta não examina o conteúdo nem escolhe uma versão automaticamente. Essa separação torna a resposta previsível ao conferir uma especificação, validar outra biblioteca de QR ou comparar configurações antes da codificação. Uma versão ou um nível desconhecido é rejeitado, sem arredondamento nem substituição silenciosa.
Entenda por que o modo altera a capacidade
As três capacidades são diferentes porque os modos QR compactam caracteres com taxas de bits distintas. O modo numérico armazena dígitos em grupos compactos e, por isso, oferece a maior contagem de caracteres, mas aceita somente os algarismos de zero a nove. O modo alfanumérico usa o alfabeto restrito de 45 caracteres do padrão QR, que inclui letras maiúsculas, dígitos, espaços e alguns sinais. O modo byte armazena unidades de oito bits e serve como referência prática para texto geral ou dados binários, portanto seu máximo é menor. O cálculo começa nas palavras-código de dados disponíveis após a correção, subtrai o indicador de modo de quatro bits e o campo de contagem dependente da versão, e encontra a maior carga que cabe. O valor em byte conta bytes, não letras percebidas. Em UTF-8, caracteres acentuados, sistemas de escrita não latinos e emojis podem ocupar vários bytes. Um codificador real ainda pode alternar modos, adicionar um indicador ECI ou incluir metadados; quando o conteúdo estiver no limite, compare o fluxo exato de bits.
Use o resultado sem prometer uma leitura perfeita
A capacidade é um limite rígido de armazenamento para o modo, a versão e o nível escolhidos; ela não garante que um símbolo impresso ou exibido será lido com confiabilidade. O tamanho físico dos módulos, a zona livre, o contraste, o foco, a deformação da superfície, defeitos de impressão e as condições da câmera continuam importantes. Primeiro meça a carga na unidade correta e confirme que ela não supera o máximo retornado. Se superar, você pode escolher uma versão maior, reduzir o nível de correção quando o ambiente permitir, encurtar a carga ou adotar um modo aplicável mais denso. Se o conteúdo couber exatamente no limite, teste o codificador e os leitores usados em produção, pois cabeçalhos de modo ou segmentos extras podem alterar o orçamento final de bits. Uma correção maior é útil em etiquetas sujeitas a riscos ou obstrução, mas reduz a capacidade sem ampliar o símbolo e pode gerar módulos físicos menores em um tamanho de impressão fixo. Cada solicitação de API custa US$ 0,002 e produz um resultado determinístico, adequado para validações, documentação e verificações de build repetíveis.
Casos de uso
Validar limites da carga
Rejeite conteúdo que não caiba na versão, no nível de correção e no modo exigidos pela especificação do produto.
Comparar configurações de QR
Veja a diferença de capacidade entre L, M, Q e H antes de escolher o tamanho do símbolo.
Documentar restrições de integração
Publique limites exatos dos modos numérico, alfanumérico e byte para um dispositivo, etiqueta ou fluxo de codificação.
Perguntas frequentes
Quais versões de QR são aceitas?
Todas as versões do QR Code Model 2, de 1 a 40, são aceitas.
Quais níveis de correção de erros posso usar?
Use L, M, Q ou H. A consulta rejeita qualquer nível não reconhecido.
A capacidade em bytes equivale ao número de caracteres?
Somente quando cada caractere ocupa um byte. Caracteres UTF-8 podem ocupar vários bytes; portanto, meça o comprimento codificado.
Por que uma correção maior reduz a capacidade?
Mais palavras-código ficam reservadas para recuperação, restando menos palavras para a carga útil.
O máximo inclui a sobrecarga do modo?
Sim. O cálculo considera o indicador de modo de quatro bits e o campo de contagem cujo tamanho depende da versão.
Quanto custa uma solicitação de API?
Cada solicitação de API custa US$ 0,002. O cálculo é determinístico e não usa serviços externos.
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/doc/qr-code-error-correction-capacity \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"version":10,"level":"Q"}'const res = await fetch("https://api.kit.forhosting.com/doc/qr-code-error-correction-capacity", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"version": 10,
"level": "Q"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/qr-code-error-correction-capacity",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"version": 10,
"level": "Q"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/qr-code-error-correction-capacity", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"version":10,"level":"Q"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"version":10,"level":"Q"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/qr-code-error-correction-capacity", 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
{
"version": 10,
"level": "Q"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.qr_code_error_correction_capacity",
"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.
Limites
max_mb | 25 |
max_pages | 200 |
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. |