Reparto de macros por calorías: proteínas, carbohidratos y grasa
Esta calculadora de reparto de macros convierte un objetivo energético diario en metas prácticas, expresadas en gramos, de proteínas, carbohidratos y grasa.
Ejecutar — gratis
Introduzca las calorías y cualquier proporción positiva de tres partes, como 30:40:30 o 3:4:3. La herramienta normaliza los valores y aplica cuatro calorías por gramo de proteína y carbohidratos, y nueve por gramo de grasa. El cálculo funciona sin conexión, es determinista y sirve para planificar, no para emitir diagnósticos médicos ni tratamientos nutricionales personalizados.
Elija un objetivo calórico y una proporción útil
Comience con el objetivo diario de calorías que ya haya elegido y asigne valores positivos a proteínas, carbohidratos y grasa. No es necesario que sean porcentajes ni que sumen 100. Una proporción 30:40:30 da el mismo reparto que 3:4:3, pues la calculadora divide cada valor por la suma de los tres. Así puede copiar una proporción de un plan alimentario sin convertirla manualmente. Las cuatro entradas deben ser números finitos mayores que cero. Se rechazan ceros, negativos, campos ausentes, cadenas numéricas, infinito y valores no numéricos, en lugar de suponer una corrección. Esta validación estricta permite que los procesos automáticos detecten datos defectuosos. Los objetivos calóricos y las proporciones son supuestos de planificación, no recomendaciones universales. El entrenamiento, las enfermedades, la medicación, el embarazo, las alergias y los objetivos clínicos pueden cambiar lo adecuado. Consulte a un profesional cuando corresponda. La herramienta solo hace la operación solicitada; no decide qué objetivo o proporción conviene a una persona.
Comprenda cómo se convierten las calorías en gramos
Primero se normaliza cada parte de la proporción como porcentaje del total. Después, el objetivo calórico diario se distribuye según esos porcentajes. Las calorías de proteínas y carbohidratos se dividen entre cuatro, mientras que las de grasa se dividen entre nueve. Por ejemplo, 600 calorías asignadas a proteínas equivalen a 150 gramos. El resultado muestra para cada macro el porcentaje normalizado, las calorías asignadas y la meta en gramos, con cifras redondeadas a dos decimales. Los cálculos intermedios conservan toda la precisión, de modo que el redondeo visual no altera prematuramente los totales. Si los decimales resultan incómodos para planificar comidas, puede redondearlos a gramos enteros, sabiendo que el total calórico reconstruido variará ligeramente. Las etiquetas de alimentos también redondean y ciertos productos incluyen fibra, alcohol u otros componentes. Por ello, un menú registrado puede no coincidir exactamente con el total teórico. Use el resultado como referencia coherente de planificación, no como medición de laboratorio de la energía alimentaria.
Use el resultado en un proceso repetible
Aplique las metas en gramos a una plantilla de comidas, una lista de compras, un registro nutricional o una hoja de seguimiento profesional. Si reparte los objetivos entre varias comidas, elija el patrón que facilite el cumplimiento; la calculadora no exige porciones iguales ni prescribe horarios. Para comparar proporciones, mantenga fijas las calorías y cambie únicamente los tres valores. Conserve las entradas originales junto con el resultado, porque una cantidad en gramos sin su objetivo calórico y su proporción pierde contexto. La misma entrada siempre produce la misma salida: no hay llamadas de red, azar, perfiles guardados ni lógica dependiente de la fecha. Por eso resulta adecuada para hojas de cálculo, pruebas, procesos programados y aplicaciones que necesiten resultados reproducibles. Las entradas inválidas o no positivas generan un error explícito para que puedan corregirse antes de utilizar los datos. Vuelva a calcular cuando cambie el objetivo base. Ante decisiones sanitarias, en especial cambios de peso intensos o tratamiento de enfermedades, revise el plan con un dietista-nutricionista u otro profesional cualificado.
Qué puede hacer con ella
Crear una plantilla diaria de comidas
Convierta un objetivo calórico establecido y una proporción preferida en metas de gramos que pueda distribuir entre comidas.
Comparar distintas proporciones
Mantenga constantes las calorías y observe cómo otros valores positivos modifican los gramos de cada macronutriente.
Automatizar hojas de planificación
Genere metas deterministas para una hoja nutricional, un formulario profesional o una aplicación sin depender de la red.
Preguntas frecuentes
¿La proporción debe sumar 100?
No. Cualquier conjunto de tres valores positivos se normaliza por su suma; por eso 3:4:3 y 30:40:30 son equivalentes.
¿Cómo se calculan los gramos de cada macro?
Las calorías asignadas a proteínas y carbohidratos se dividen entre cuatro; las asignadas a grasa, entre nueve.
¿Por qué pueden diferir las calorías de un registro alimentario?
Las etiquetas y aplicaciones pueden redondear o tratar componentes como fibra y alcohol de forma distinta a la conversión teórica.
¿Esta calculadora recomienda una dieta?
No. Convierte el objetivo y la proporción que usted proporciona, sin determinar si son adecuados desde el punto de vista médico o nutricional.
¿Cuánto cuesta el cálculo mediante la API?
Cada solicitud a la API cuesta $0.002. El cálculo es completamente determinista y funciona sin conexión.
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/health/macro-split-from-cal \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"calories":2000,"protein_ratio":30,"carbohydrate_ratio":40,"fat_ratio":30}'const res = await fetch("https://api.kit.forhosting.com/health/macro-split-from-cal", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"calories": 2000,
"protein_ratio": 30,
"carbohydrate_ratio": 40,
"fat_ratio": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/macro-split-from-cal",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"calories": 2000,
"protein_ratio": 30,
"carbohydrate_ratio": 40,
"fat_ratio": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/macro-split-from-cal", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"calories":2000,"protein_ratio":30,"carbohydrate_ratio":40,"fat_ratio":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"calories":2000,"protein_ratio":30,"carbohydrate_ratio":40,"fat_ratio":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/macro-split-from-cal", 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
{
"calories": 2000,
"protein_ratio": 30,
"carbohydrate_ratio": 40,
"fat_ratio": 30
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.macro_split_from_cal",
"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. |