Calculateur d'IMC
70 kg pour 1,75 m donnent un IMC de 22,9, dans la zone normale de l'OMS, de 18,5 à moins de 25. Saisissez poids et taille en unités métriques ou impériales et obtenez votre IMC avec la catégorie pour adultes. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Poids
- 70 metric
- Taille
- 175
- Indice de masse corporelle
- 22,9 metric
Calcule l'indice de masse corporelle et sa catégorie de poids OMS à partir d'un poids et d'une taille requis, en unités métriques ou impériales, avec un arrondi configurable.
La formule et les catégories
En mode métrique (par défaut), la taille en centimètres est divisée par 100 pour donner des mètres et l'IMC est égal au poids en kilogrammes divisé par cette taille au carré ; en mode impérial, l'IMC est égal au poids en livres divisé par la taille en pouces au carré, multiplié par la constante 703.
L'IMC arrondi est ensuite classé par des seuils fixes de l'Organisation mondiale de la santé : en dessous de 18,5 renvoie underweight, de 18,5 jusqu'à 25 exclu renvoie normal, de 25 jusqu'à 30 renvoie overweight, et 30 ou au-dessus renvoie obesity.
Entrées, arrondi et validation
Le paramètre decimals est un entier compris entre 0 et 4 (1 par défaut) qui contrôle l'arrondi du rapport brut. Parce que les seuils sont comparés à l'IMC arrondi plutôt qu'au rapport brut, un nombre qui s'arrondit exactement à 25,0 tombe dans la bande overweight, correspondant à ce que la page affiche.
Ce que l'IMC dit et ne dit pas
L'IMC est un rapport de dépistage de population, non un diagnostic. Il ne distingue pas le muscle de la graisse, de sorte qu'un corps mince et très musclé peut se situer dans la bande overweight ou obesity tout en portant peu de graisse, et les seuils sont calibrés pour les adultes plutôt que pour les enfants, les personnes enceintes ou les athlètes. La capacité en tient compte en ne renvoyant que le rapport et sa bande, laissant l'interprétation clinique à un professionnel.
Cas d’usage
Formulaires de santé et de fitness
Affichez un IMC en direct et sa catégorie OMS à côté d'un champ de taille et de poids dans un formulaire d'admission ou d'inscription à une salle.
Métrique et impérial dans un même intégré
Servez un unique calculateur aux deux publics en basculant le paramètre unit entre metric et imperial.
Questions fréquentes
Quelle formule utilise-t-il ?
L'IMC métrique est le poids en kg sur la taille en mètres au carré ; l'impérial est le poids en lb sur la taille en pouces au carré fois 703, choisi par le paramètre unit.
Comment les catégories de poids sont-elles décidées ?
Par les seuils de l'OMS sur l'IMC arrondi : en dessous de 18,5 underweight, en dessous de 25 normal, en dessous de 30 overweight, 30 ou au-dessus obesity.
Est-ce un diagnostic médical ?
Non. L'IMC est un rapport de dépistage qui ignore la composition corporelle et est calibré pour les adultes ; interprétez les résultats avec un professionnel.
Puis-je utiliser des livres et des pouces ?
Oui. Choisissez les unités impériales : le poids en livres est divisé par la taille en pouces au carré, puis multiplié par 703. Le mode métrique, proposé par défaut, utilise les kilogrammes et les centimètres.
Pourquoi une valeur proche de 25 peut-elle être classée en surpoids ?
Parce que la catégorie est déterminée à partir de l'IMC déjà arrondi, et non du chiffre brut. Si votre valeur s'arrondit exactement à 25,0, elle tombe en surpoids, ce qui correspond à ce qui s'affiche à l'écran.
Outils associés
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/dev/bmi \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"weight":70,"height":175}'const res = await fetch("https://api.kit.forhosting.com/dev/bmi", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"weight": 70,
"height": 175
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/bmi",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"weight": 70,
"height": 175
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/bmi", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"weight":70,"height":175}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"weight":70,"height":175}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/bmi", 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
{
"weight": 70,
"height": 175
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.bmi",
"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.
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. |
Notes techniques
La formule et les catégories
dev.bmi calcule l'indice de masse corporelle à partir de deux champs requis, weight et height, au moyen de l'une des deux formules sélectionnée par le paramètre unit. La réponse reprend bmi, category, unit, weight et height, de sorte que la catégorie et les chiffres exacts qui l'ont produite voyagent toujours ensemble dans un même objet JSON.
Entrées, arrondi et validation
Le paramètre unit n'accepte que metric ou imperial et vaut metric par défaut ; toute autre chaîne renvoie une erreur typée invalid_input. weight et height doivent tous deux être des nombres finis strictement supérieurs à zéro, et leur valeur absolue ne doit pas dépasser 1e6, ce qui bloque les charges utiles absurdes ou sujettes au dépassement avant toute division.
Cas d'intégration
Notation de cohorte en volume
Appelez l'API sur un tableur de membres ou de patients pour ajouter les colonnes bmi et category en une seule passe.
Questions techniques
Comment le résultat est-il arrondi ?
Par une règle half-up explicite au nombre de décimales que vous définissez (0 à 4, 1 par défaut), et non toFixed, de sorte que la classification correspond au nombre affiché.
Que se passe-t-il avec un poids ou une taille incorrects ?
Les valeurs non positives, non finies ou hors plage renvoient une erreur typée invalid_input avant tout calcul ; les tâches API échouées ne sont pas facturées à $0.002.