Calcule la versión de código QR según su capacidad
Esta calculadora de versiones de código QR estima el símbolo más pequeño capaz de contener una cantidad determinada de bytes con un nivel de corrección de errores L, M, Q o H.
Ejecutar — gratis
Utiliza los límites estándar del modo byte para las versiones QR 1 a 40 y muestra la versión elegida, el número de módulos, la capacidad disponible y los bytes libres. El resultado le permite dimensionar el código antes de crear el diseño, decidir el tamaño de impresión o comprobar si una corrección más robusta producirá un símbolo demasiado denso.
Comience por la longitud codificada en bytes
La capacidad de un QR depende del modo de codificación, no solo del número de caracteres visibles. Esta calculadora utiliza deliberadamente el modo byte porque es la opción general más fiable para URL, textos, identificadores y signos variados. Introduzca los bytes que ocupa la carga final después de codificar el texto. El ASCII básico suele necesitar un byte por carácter, mientras que las letras acentuadas, los emoji y muchas escrituras no latinas ocupan varios bytes en UTF-8. Si cuenta únicamente los caracteres visibles, podría elegir una versión demasiado pequeña. Incluya todo lo que realmente se codificará: parámetros de consulta de una URL, separadores, saltos de línea y prefijos de datos estructurados. El resultado indica la primera versión QR cuyo límite en modo byte alcanza esa longitud. También muestra los bytes restantes para que usted disponga de un margen útil si la carga puede crecer antes de publicarse. Esta estimación no optimiza el contenido numérico o alfanumérico mediante modos QR más compactos; por eso, un codificador especializado podría alojar ciertos datos en un símbolo menor.
Elija conscientemente el nivel de corrección de errores
La corrección de errores intercambia capacidad por resistencia. El nivel L deja más espacio para los datos y resulta adecuado cuando el código se muestra con nitidez y se escanea en condiciones controladas. El nivel M es una elección general habitual. Los niveles Q y H reservan progresivamente más palabras de código para recuperar información, algo útil si las etiquetas pueden rayarse, el envase es curvo o el diseño tapa una pequeña zona. Esa protección hace que una misma carga necesite antes una versión superior. Pruebe la misma longitud en bytes con varios niveles para conocer el efecto sobre el tamaño antes de cerrar el diseño. Un nivel mayor no siempre es mejor: al aumentar la versión aparecen más módulos y, si el área impresa no cambia, cada módulo será físicamente menor. Los módulos diminutos pueden dificultar la lectura aunque el símbolo tenga más corrección. Elija el nivel más bajo que responda razonablemente al deterioro, la superficie, el contraste, la distancia y el sistema de impresión previstos, y conserve después una zona silenciosa correcta alrededor del código terminado.
Interprete la versión y las dimensiones en módulos
Las versiones QR van de 1 a 40. La versión 1 contiene 21 módulos por lado y cada versión siguiente añade cuatro módulos a cada lado. Por tanto, la cifra indicada describe la cuadrícula cuadrada de datos, no su tamaño final en milímetros o píxeles. El generador todavía debe añadir la zona silenciosa, normalmente de cuatro módulos en cada borde, y cada módulo debe tener dimensiones suficientes para la cámara y la distancia de lectura previstas. La versión mínima es un resultado de capacidad, no una garantía completa de lectura. El codificador real puede producir otro resultado si alterna automáticamente entre segmentos numéricos, alfanuméricos, byte o Kanji, añade un indicador explícito del juego de caracteres o aplica una unión estructurada no estándar. Considere el cálculo como una planificación conservadora en modo byte y pruebe el símbolo definitivo con el codificador y la carga exactos que utilizará. Si la calculadora rechaza la entrada, la versión 40 no puede contener tantos bytes en modo byte con el nivel seleccionado; acorte la carga, reduzca la corrección o codifique una referencia compacta.
Qué puede hacer con ella
Planificar etiquetas impresas
Estime la densidad del símbolo antes de reservar espacio para un código QR en envases, entradas o etiquetas de equipos.
Comparar niveles de corrección
Compruebe cómo el cambio de M a Q o H modifica la versión mínima para la misma carga en bytes.
Validar presupuestos de carga
Fije un límite de bytes para URL generadas o registros estructurados antes de enviarlos a un codificador QR.
Preguntas frecuentes
¿Qué significa longitud de los datos?
Es el número de bytes de la carga final, que no siempre coincide con el número de caracteres visibles.
¿Qué modo de codificación QR utiliza?
Utiliza el modo byte. Los modos numérico y alfanumérico admiten más caracteres cuando el contenido cumple sus requisitos.
¿Qué significan L, M, Q y H?
Son los cuatro niveles de corrección de errores QR, ordenados desde una mayor capacidad de datos hasta una mayor capacidad de recuperación.
¿El resultado incluye la zona silenciosa?
No. Los módulos por lado describen la cuadrícula del símbolo QR. Añada la zona silenciosa exigida por su generador y por la especificación de impresión.
¿Por qué puede elegir otra versión mi generador QR?
Puede dividir la carga en modos más eficientes o añadir metadatos, como un indicador del juego de caracteres. Confirme el resultado final con el codificador que utilizará.
¿Cuánto cuesta una solicitud de API?
Cada solicitud de API cuesta $0.002. La versión para navegador se ejecuta localmente de forma gratuita.
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/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)Ejemplo de solicitud
{
"data_length": 100,
"error_correction_level": "M"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.qr_code_capacity_estimate",
"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_mb | 25 |
max_pages | 200 |
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. |