Calcule a versão do código QR pela capacidade
Esta calculadora de versões de código QR estima o menor símbolo capaz de armazenar uma quantidade informada de bytes no nível de correção de erros L, M, Q ou H.
Executar grátis
Ela usa os limites padrão do modo byte para as versões QR de 1 a 40 e informa a versão escolhida, o número de módulos, a capacidade disponível e os bytes restantes. O resultado ajuda você a dimensionar o código antes de criar a arte, definir o tamanho de impressão ou decidir se uma correção mais forte deixará o símbolo denso demais.
Comece pelo tamanho codificado em bytes
A capacidade de um QR depende do modo de codificação, e não apenas da quantidade de caracteres visíveis. Esta calculadora usa intencionalmente o modo byte porque ele é a opção geral mais confiável para URLs, textos, identificadores e pontuação variada. Informe quantos bytes a carga final ocupa depois da codificação do texto. O ASCII simples costuma consumir um byte por caractere, enquanto letras acentuadas, emojis e muitos sistemas de escrita não latinos usam mais de um byte em UTF-8. Se você contar somente os caracteres visíveis, poderá selecionar uma versão pequena demais. Inclua todos os caracteres que serão realmente codificados, como parâmetros de consulta de URL, separadores, quebras de linha e prefixos de dados estruturados. O resultado mostra a primeira versão QR cujo limite no modo byte comporta esse tamanho. Também apresenta os bytes restantes, oferecendo uma margem útil caso a carga aumente antes da produção. Esta estimativa não otimiza conteúdo numérico ou alfanumérico com modos QR mais compactos; portanto, um codificador especializado pode acomodar dados compatíveis em um símbolo menor.
Escolha conscientemente o nível de correção de erros
A correção de erros troca capacidade por resistência. O nível L preserva mais espaço para dados e é adequado quando o código será exibido com nitidez e lido em condições controladas. O nível M é uma escolha comum para uso geral. Os níveis Q e H reservam progressivamente mais palavras de código para recuperação, o que pode ajudar quando etiquetas sofrem riscos, embalagens são curvas ou o layout encobre uma pequena área do código. Essa proteção faz a versão necessária aumentar mais cedo para a mesma carga. Teste o mesmo tamanho em bytes em vários níveis para entender o impacto no tamanho antes de aprovar a arte. Um nível superior nem sempre é melhor: aumentar a versão cria mais módulos, que ficam fisicamente menores quando a área impressa permanece igual. Módulos muito pequenos podem prejudicar a leitura, mesmo que o símbolo tenha correção mais forte. Escolha o menor nível que corresponda razoavelmente aos danos, à superfície, ao contraste, à distância e ao processo de impressão esperados e mantenha uma zona de silêncio adequada ao redor do código pronto.
Interprete a versão e as dimensões em módulos
As versões QR vão de 1 a 40. A versão 1 tem 21 módulos de cada lado, e cada versão seguinte acrescenta quatro módulos por lado. Por isso, o valor de módulos por lado descreve a grade quadrada de dados, não o tamanho final em milímetros ou pixels. O gerador ainda precisa adicionar a zona de silêncio, normalmente com quatro módulos em cada borda, e cada módulo deve ter tamanho físico suficiente para a câmera e a distância de leitura pretendidas. A versão mínima é um resultado de capacidade, não uma garantia completa de leitura. O codificador pode apresentar outro resultado se alternar automaticamente entre segmentos numéricos, alfanuméricos, byte ou Kanji, incluir um marcador explícito de conjunto de caracteres ou usar um comportamento não padronizado de divisão estruturada. Considere este resultado um planejamento conservador no modo byte e teste o símbolo final com o codificador e a carga exatos que serão usados. Se a calculadora rejeitar a entrada, a versão 40 não comporta tantos bytes nesse modo e nível; reduza a carga, diminua a correção ou codifique uma referência compacta.
Casos de uso
Planejar etiquetas impressas
Estime a densidade do símbolo antes de reservar espaço para um código QR em embalagens, ingressos ou etiquetas de equipamentos.
Comparar níveis de correção
Veja como a mudança de M para Q ou H altera a versão mínima para a mesma carga em bytes.
Validar limites de carga
Defina um limite em bytes para URLs geradas ou registros estruturados antes de enviá-los a um codificador QR.
Perguntas frequentes
O que significa tamanho dos dados?
É a quantidade de bytes na carga final, que nem sempre corresponde ao número de caracteres visíveis.
Qual modo de codificação QR é usado?
A ferramenta usa o modo byte. Os modos numérico e alfanumérico comportam mais caracteres quando o conteúdo atende às regras deles.
O que significam L, M, Q e H?
São os quatro níveis de correção de erros de QR, ordenados da maior capacidade de dados até a maior capacidade de recuperação.
O resultado inclui a zona de silêncio?
Não. Os módulos por lado descrevem a grade do símbolo QR. Adicione a zona de silêncio exigida pelo gerador e pela especificação de impressão.
Por que meu gerador pode escolher outra versão?
Ele pode dividir a carga em modos mais eficientes ou incluir metadados, como um marcador de conjunto de caracteres. Confirme o resultado com o codificador que você usará.
Quanto custa uma solicitação de API?
Cada solicitação de API custa US$ 0,002. A versão para navegador é executada localmente e sem custo.
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-capacity-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"data_length":100,"error_correction_level":"M"}'const res = await fetch("https://api.kit.forhosting.com/doc/qr-code-capacity-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"data_length": 100,
"error_correction_level": "M"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/qr-code-capacity-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"data_length": 100,
"error_correction_level": "M"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/qr-code-capacity-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"data_length":100,"error_correction_level":"M"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"data_length":100,"error_correction_level":"M"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/qr-code-capacity-estimate", 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
{
"data_length": 100,
"error_correction_level": "M"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.qr_code_capacity_estimate",
"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. |