Capacité et correction d’erreurs QR
Cet outil de consultation de la capacité et de la correction d’erreurs des codes QR indique le nombre maximal de caractères admis en modes numérique, alphanumérique et octet pour une version et un niveau donnés de QR Code Model 2.
Lancer gratuitement
Il couvre les versions standard 1 à 40 et les niveaux L, M, Q et H. Vous pouvez ainsi comparer les limites avant de générer un symbole, choisir une taille adaptée ou comprendre pourquoi le même contenu tient avec un niveau de correction, mais pas avec un autre.
Choisissez d’abord la version et le niveau de correction
La version d’un code QR définit les dimensions du symbole : la version 1 commence à 21 modules sur 21, puis chaque version ajoute quatre modules de chaque côté jusqu’à la version 40. Un plus grand nombre de modules offre davantage de place, mais le niveau de correction d’erreurs en réserve aussi une partie aux données de récupération. Le niveau L laisse la capacité utile la plus élevée, tandis que M, Q et H consacrent progressivement plus de mots de code à la correction. Cet outil prend ces deux choix comme point de départ fixe et fournit trois maxima utiles. Sélectionnez une version entière de 1 à 40 et l’une des quatre lettres normalisées. Le résultat présente le niveau normalisé, le nombre de mots de code de données disponibles et le maximum de caractères pour chaque mode accepté. Il n’analyse pas le contenu et ne choisit pas automatiquement une version. La réponse reste donc prévisible pour contrôler un cahier des charges, valider une autre bibliothèque QR ou comparer plusieurs configurations avant l’encodage. Toute version ou tout niveau inconnu est refusé, sans arrondi ni remplacement silencieux.
Comprenez pourquoi le mode modifie la capacité
Les trois capacités diffèrent parce que les modes QR regroupent les caractères selon des densités binaires distinctes. Le mode numérique stocke les chiffres par groupes compacts et offre donc le plus grand nombre de caractères, mais il n’accepte que les chiffres de zéro à neuf. Le mode alphanumérique emploie l’alphabet restreint de 45 caractères de la norme QR : lettres majuscules, chiffres, espaces et quelques signes. Le mode octet stocke des unités de huit bits et constitue la référence pratique pour du texte général ou des données binaires ; son maximum est donc inférieur. Le calcul part des mots de code de données restant après correction, retranche l’indicateur de mode sur quatre bits et le champ de comptage lié à la version, puis recherche la charge maximale admissible. La valeur octet compte des octets, pas des lettres visibles. En UTF-8, les caractères accentués, les écritures non latines et les emoji peuvent occuper plusieurs octets. Un encodeur réel peut aussi alterner les modes, ajouter un indicateur ECI ou des métadonnées : à la limite, comparez son flux binaire exact.
Exploitez le résultat sans garantir la lisibilité
La capacité constitue une limite stricte de stockage pour le mode, la version et le niveau sélectionnés ; elle ne garantit pas qu’un symbole imprimé ou affiché sera lu de façon fiable. La taille physique des modules, la zone de silence, le contraste, la mise au point, les déformations, les défauts d’impression et les conditions de prise de vue restent déterminants. Mesurez d’abord la charge dans l’unité appropriée, puis vérifiez qu’elle ne dépasse pas le maximum renvoyé. Si elle le dépasse, choisissez une version supérieure, réduisez le niveau de correction lorsque les conditions le permettent, raccourcissez la charge ou employez un mode compatible plus dense. Si elle tient tout juste, testez l’encodeur et les lecteurs utilisés en production, car les en-têtes de mode ou les segments supplémentaires peuvent modifier le budget binaire final. Une correction élevée aide les étiquettes exposées aux rayures ou aux masquages, mais réduit la capacité sans agrandissement du symbole et peut produire des modules physiques plus petits à taille d’impression constante. Chaque appel d’API coûte $0.002 et fournit un résultat déterministe adapté aux validations, à la documentation et aux contrôles de build reproductibles.
Cas d’usage
Valider les limites d’une charge
Refusez un contenu qui ne tient pas dans la version, le niveau de correction et le mode imposés par le cahier des charges.
Comparer les configurations QR
Observez l’évolution de la capacité entre L, M, Q et H avant de choisir la taille du symbole.
Documenter les contraintes d’intégration
Publiez les limites exactes des modes numérique, alphanumérique et octet pour un appareil, une étiquette ou un encodeur.
Questions fréquentes
Quelles versions QR sont prises en charge ?
Toutes les versions de QR Code Model 2, de 1 à 40, sont prises en charge.
Quels niveaux de correction puis-je utiliser ?
Utilisez L, M, Q ou H. L’outil refuse tout niveau non reconnu.
La capacité en octets correspond-elle au nombre de caractères ?
Seulement si chaque caractère occupe un octet. Les caractères UTF-8 peuvent en utiliser plusieurs ; mesurez donc la longueur encodée.
Pourquoi une correction plus forte réduit-elle la capacité ?
Davantage de mots de code sont réservés à la récupération, ce qui en laisse moins à la charge utile.
Le maximum comprend-il la surcharge du mode ?
Oui. Le calcul inclut l’indicateur de mode sur quatre bits et le champ de comptage dont la taille dépend de la version.
Quel est le prix d’un appel d’API ?
Chaque appel d’API coûte $0.002. Le calcul est déterministe et ne sollicite aucun service externe.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
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)Exemple de requête
{
"version": 10,
"level": "Q"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.qr_code_error_correction_capacity",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_mb | 25 |
max_pages | 200 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |