Calculadora de grasa corporal
Con el método de la Marina estadounidense, un hombre de 180 cm con 38 cm de cuello y 85 cm de cintura tiene un 16,1 % de grasa, en la categoría de buena forma. Solo necesita una cinta métrica: altura, cuello, cintura y, en mujeres, cadera. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Sexo
- Masculino
- Altura (cm)
- 180
- Cuello (cm)
- 38
- Cintura (cm)
- 85
- Grasa corporal (%)
- 16,1
- Categoría
- fitness
US Navy gratis
Cómo funciona el método de la cinta métrica
El método de la Marina estadounidense estima la grasa corporal a partir de perímetros, sin báscula ni plicómetro. Todas las medidas van en centímetros. En los hombres usa la altura, el cuello y la cintura: cuanto mayor es la cintura frente al cuello, para una misma altura, más alta es la estimación. En las mujeres se suma la cadera a la cintura antes de restar el cuello, por eso la cadera es obligatoria para ellas y se ignora en ellos. Las fórmulas usan logaritmos en base 10, y el resultado se redondea y se clasifica. En hombres las bandas son: esencial por debajo del 6 %, atletas por debajo del 14 %, buena forma por debajo del 18 %, promedio por debajo del 25 % y obesidad desde el 25 %; en mujeres, los cortes son 14, 21, 25 y 32 %.
Cómo obtener una medida fiable
La estimación supone que los perímetros se toman en los puntos de referencia estándar de la Marina, así que medir en otro sitio da otra cifra. Un error frecuente es mezclar pulgadas y centímetros: introduzca todo en centímetros. Si en un hombre la cintura no supera al cuello, o en una mujer la cintura más la cadera no supera al cuello, las medidas no pueden ser correctas y se rechazan en lugar de convertirse en un porcentaje sin sentido. Es una estimación estadística, no una medición directa, de modo que no sustituye al pesaje hidrostático ni a una prueba DEXA.
Categorías, redondeo y salida
El valor redondeado se agrupa luego en una categoría de forma física. Para los hombres los umbrales son essential por debajo del 6 %, athletes por debajo del 14 %, fitness por debajo del 18 %, average por debajo del 25 % y obese en el 25 % o más. Para las mujeres son essential por debajo del 14 %, athletes por debajo del 21 %, fitness por debajo del 25 %, average por debajo del 32 % y obese en el 32 % o más.
Qué puede hacer con ella
Aplicaciones de fitness
Muestre a los socios una estimación instantánea de grasa corporal a partir de tres medidas con cinta, sin necesidad de calibre ni báscula.
Preguntas frecuentes
¿Qué unidades se esperan?
Centímetros para cada medida. Todos los términos log10 asumen cm.
¿Cómo se decide la categoría?
El porcentaje redondeado se agrupa en essential, athletes, fitness, average u obese usando umbrales específicos por sexo.
¿Es exacta desde el punto de vista médico?
Es una estimación validada, no una medición clínica como la DEXA.
¿Por qué las mujeres necesitan medir la cadera?
Porque la versión femenina de la fórmula de la Marina suma la cadera a la cintura antes de restar el cuello. En los hombres la cadera no interviene, así que solo es obligatoria cuando elige el sexo femenino.
¿Por qué se rechazan mis medidas?
En los hombres la cintura debe ser mayor que el cuello, y en las mujeres la cintura más la cadera debe superar al cuello, porque la fórmula toma un logaritmo de esa diferencia. Si no, las medidas se rechazan en lugar de dar un porcentaje sin sentido.
Herramientas relacionadas
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/dev/body-fat \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"sex":"male","height_cm":180,"neck_cm":38,"waist_cm":85}'const res = await fetch("https://api.kit.forhosting.com/dev/body-fat", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"sex": "male",
"height_cm": 180,
"neck_cm": 38,
"waist_cm": 85
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/body-fat",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"sex": "male",
"height_cm": 180,
"neck_cm": 38,
"waist_cm": 85
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/body-fat", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"sex":"male","height_cm":180,"neck_cm":38,"waist_cm":85}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"sex":"male","height_cm":180,"neck_cm":38,"waist_cm":85}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/body-fat", 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
{
"sex": "male",
"height_cm": 180,
"neck_cm": 38,
"waist_cm": 85
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.body_fat",
"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.
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. |
Notas técnicas
Estima el porcentaje de grasa corporal con la fórmula de perímetros de la US Navy a partir del sexo, height_cm, neck_cm y waist_cm (hip_cm obligatorio en mujeres), devolviendo el porcentaje redondeado y una categoría de forma física.
Las fórmulas de la US Navy
La estimación usa el método de perímetros de la US Navy, que solo necesita una cinta métrica. Cada medida está en centímetros. Para hombres la fórmula es 495 / (1.0324 − 0.19077·log10(waist_cm − neck_cm) + 0.15456·log10(height_cm)) − 450. Para mujeres pasa a ser 495 / (1.29579 − 0.35004·log10(waist_cm + hip_cm − neck_cm) + 0.22100·log10(height_cm)) − 450, de modo que hip_cm es obligatorio cuando sex es female y se ignora en los hombres. Los argumentos del logaritmo en base 10 deben mantenerse positivos, así que el código los protege explícitamente: waist_cm − neck_cm debe ser mayor que cero en los hombres y waist_cm + hip_cm − neck_cm mayor que cero en las mujeres, de lo contrario se devuelve un error invalid_input tipado en lugar de producir un porcentaje NaN a partir de una combinación de medidas incorrecta.
Categorías, redondeo y salida
La respuesta es un objeto JSON con cuatro claves: sex, body_fat_percent, category y method, donde method es siempre la cadena us_navy, de modo que los consumidores pueden registrar qué estimador produjo el número y reproducirlo más tarde.
Validación y lo que no es
Como el método es una estimación estadística y no una medición directa, no sustituye a la pesada hidrostática ni a una densitometría DEXA, y da por sentado que los perímetros se toman en los puntos de referencia estándar de la Navy. Cada campo se valida antes de cualquier aritmética. sex debe ser exactamente male o female; height_cm, neck_cm y waist_cm deben ser cada uno un número finito mayor que cero; hip_cm solo se lee en las mujeres y también debe ser un número finito positivo. decimals debe ser un entero entre 0 y 2. Cualquier infracción lanza un error invalid_input tipado que nombra el campo, de modo que un formulario puede resaltar la entrada exacta que falla.
Casos de integración
Seguimiento del progreso
Registre body_fat_percent y category a lo largo del tiempo para visualizar la recomposición durante un bloque de entrenamiento.
Análisis de cohortes
Llame a la API sobre una hoja de cálculo de medidas para categorizar a todo un equipo en un único trabajo por lotes.
Preguntas técnicas
¿Qué fórmula se usa?
El método de perímetros de la US Navy, con ecuaciones separadas para hombres y mujeres; method en la salida es siempre us_navy.
¿Necesito una medida de la cadera?
Solo para las mujeres. hip_cm es obligatorio cuando sex es female y se ignora en los hombres.