Calculadora de IMC
70 kg com 1,75 m de altura dão um IMC de 22,9, na faixa normal da OMS, de 18,5 a menos de 25. Digite peso e altura em unidades métricas ou imperiais e receba seu IMC com a categoria para adultos. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Peso
- 70 metric
- Altura
- 175
- Índice de massa corporal
- 22,9 metric
Calcula o índice de massa corporal e sua categoria de peso da OMS a partir de um peso e uma altura obrigatórios, em unidades métricas ou imperiais, com arredondamento configurável.
A fórmula e as categorias
dev.bmi calcula o índice de massa corporal a partir de dois campos obrigatórios, peso e altura, usando uma de duas fórmulas selecionadas pelo parâmetro unit. No modo métrico (o padrão), a altura em centímetros é dividida por 100 para dar metros e o IMC é igual ao peso em quilogramas dividido por essa altura ao quadrado; no modo imperial, o IMC é igual ao peso em libras dividido pela altura em polegadas ao quadrado, multiplicado pela constante 703.
O IMC arredondado é então classificado por limiares fixos da Organização Mundial da Saúde: abaixo de 18.5 devolve abaixo do peso, de 18.5 até, mas sem incluir, 25 devolve normal, de 25 até 30 devolve sobrepeso, e 30 ou acima devolve obesidade.
O que o IMC diz e o que não diz
O IMC é uma razão de triagem populacional, não um diagnóstico. Ele não distingue músculo de gordura, então um corpo magro e muito musculoso pode pontuar na faixa de sobrepeso ou obesidade apesar de carregar pouca gordura, e os limiares são calibrados para adultos, e não para crianças, gestantes ou atletas. A capacidade reflete isso devolvendo apenas a razão e sua faixa, deixando a interpretação clínica para um profissional.
Casos de uso
Formulários de saúde e fitness
Mostre um IMC ao vivo e sua categoria da OMS ao lado de um campo de altura e peso em um formulário de triagem ou cadastro de academia.
Métrico e imperial em um só embed
Atenda os dois públicos com uma única calculadora alternando o parâmetro unit entre metric e imperial.
Perguntas frequentes
Qual fórmula ela usa?
O IMC métrico é o peso em kg sobre a altura em metros ao quadrado; o imperial é o peso em lb sobre a altura em polegadas ao quadrado vezes 703, escolhido pelo parâmetro unit.
Como as categorias de peso são decididas?
Por limiares da OMS sobre o IMC arredondado: abaixo de 18.5 abaixo do peso, abaixo de 25 normal, abaixo de 30 sobrepeso, 30 ou acima obesidade.
Isso é um diagnóstico médico?
Não. O IMC é uma razão de triagem que ignora a composição corporal e é calibrada para adultos; interprete os resultados com um profissional.
Posso usar libras e polegadas?
Sim. Escolha unidades imperiais: o peso em libras é dividido pela altura em polegadas ao quadrado e o resultado é multiplicado por 703. No modo métrico, que é o padrão, usam-se quilos e centímetros.
Por que um valor quase 25 pode aparecer como sobrepeso?
Porque a categoria é decidida com o IMC já arredondado, não com o número bruto. Se o seu valor arredondar exatamente para 25,0, ele entra em sobrepeso, que é justamente o que aparece na tela.
Ferramentas relacionadas
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/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)Exemplo de requisição
{
"weight": 70,
"height": 175
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.bmi",
"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.
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. |
Notas técnicas
A fórmula e as categorias
A resposta repete bmi, category, unit, weight e height, de modo que a faixa e os números exatos que a produziram sempre viajam juntos em um único objeto JSON.
Entradas, arredondamento e validação
O parâmetro decimals é um inteiro entre 0 e 4 (padrão 1) que controla como a razão bruta é arredondada. Como os limiares são comparados com o bmi arredondado, e não com a razão bruta, um número que arredonda para exatamente 25.0 cai na faixa de sobrepeso, correspondendo ao que a página exibe. O parâmetro unit aceita apenas metric ou imperial e assume metric por padrão; qualquer outra cadeia devolve um erro invalid_input tipado. Tanto o peso quanto a altura devem ser números finitos estritamente maiores que zero, e seu valor absoluto não deve exceder 1e6, o que bloqueia payloads sem sentido ou propensos a estouro antes de qualquer divisão rodar.
Casos de integração
Pontuação de coortes em massa
Chame a API sobre uma planilha de membros ou pacientes para acrescentar colunas de bmi e category em uma única passagem.
Perguntas técnicas
Como o resultado é arredondado?
Por uma regra half-up explícita até o número de casas decimais que você definir (0 a 4, padrão 1), não por toFixed, de modo que a classificação bate com o número exibido.
O que acontece com um peso ou altura inválidos?
Valores não positivos, não finitos ou fora da faixa devolvem um erro invalid_input tipado antes de qualquer cálculo; tarefas de API que falham não são cobradas a US$ 0,002.