Répartition des macros par calories : protéines, glucides, lipides
Ce calculateur de répartition des macros transforme un objectif énergétique quotidien en quantités pratiques de protéines, de glucides et de lipides exprimées en grammes.
Lancer gratuitement
Indiquez les calories et n’importe quel ratio positif en trois parties, tel que 30:40:30 ou 3:4:3. L’outil normalise les parts, puis applique quatre calories par gramme de protéines et de glucides, et neuf par gramme de lipides. Le calcul est entièrement hors ligne, déterministe et destiné à la planification, non au diagnostic médical ni à un traitement nutritionnel personnalisé.
Choisissez un objectif calorique et un ratio pertinent
Commencez par l’objectif calorique quotidien que vous avez déjà retenu, puis saisissez des coefficients positifs pour les protéines, les glucides et les lipides. Ces valeurs ne doivent être ni des pourcentages ni avoir une somme égale à 100. Le ratio 30:40:30 produit la même répartition que 3:4:3, car le calculateur divise chaque coefficient par leur total. Vous pouvez donc reprendre directement le ratio d’un programme alimentaire. Les quatre entrées doivent être des nombres finis strictement supérieurs à zéro. Les zéros, valeurs négatives, champs absents, chaînes numériques, infinis et données non numériques sont refusés au lieu d’être interprétés silencieusement. Cette règle permet aux automatisations de repérer rapidement les données incorrectes. Un objectif calorique et un ratio sont des hypothèses de planification, pas des recommandations universelles. L’entraînement, l’état de santé, les médicaments, la grossesse, les allergies et les objectifs cliniques peuvent modifier les besoins. Demandez un avis qualifié si ces facteurs vous concernent. L’outil effectue uniquement le calcul demandé et ne choisit pas le programme adapté à une personne.
Comprenez la conversion des calories en grammes
Le calculateur commence par convertir chaque coefficient du ratio en pourcentage du total. Il répartit ensuite l’objectif calorique quotidien entre ces parts normalisées. Les calories attribuées aux protéines et aux glucides sont divisées par quatre, tandis que celles des lipides sont divisées par neuf. Ainsi, 600 calories de protéines correspondent à 150 grammes. Le résultat indique, pour chaque macro, le pourcentage normalisé, les calories attribuées et l’objectif en grammes, avec un affichage arrondi à deux décimales. Les valeurs intermédiaires restent non arrondies afin que l’affichage ne fausse pas les totaux. Si les décimales sont peu pratiques au quotidien, vous pouvez ensuite arrondir au gramme entier, en acceptant un léger écart dans le total calorique reconstitué. Les étiquettes alimentaires appliquent aussi des règles d’arrondi, et certains aliments contiennent des fibres, de l’alcool ou d’autres composants. Un menu enregistré peut donc différer du résultat théorique. Considérez ce résultat comme une base de planification cohérente, non comme une mesure de laboratoire de l’énergie alimentaire.
Intégrez le résultat à une méthode reproductible
Utilisez les objectifs en grammes dans un modèle de repas, une liste de courses, un journal nutritionnel ou une fiche de suivi. Si vous les répartissez entre plusieurs repas, choisissez l’organisation qui facilite votre régularité ; le calculateur n’impose ni portions égales ni horaires. Pour comparer différents ratios, conservez le même nombre de calories et modifiez uniquement les trois coefficients. Gardez les entrées originales avec le résultat, car un nombre de grammes dépourvu de son objectif calorique et de son ratio manque de contexte. Une même entrée produit toujours la même sortie : aucun appel réseau, hasard, profil enregistré ou mécanisme lié à la date n’intervient. Cette propriété convient aux feuilles de calcul, tests, traitements planifiés et applications exigeant des résultats reproductibles. Une entrée incorrecte ou non positive renvoie une erreur explicite afin qu’elle soit corrigée avant utilisation. Recalculez lorsque l’objectif initial change. Pour toute décision de santé, notamment une variation de poids importante ou la prise en charge d’une maladie, faites vérifier le programme par un diététicien ou un autre professionnel qualifié.
Cas d’usage
Créer un modèle quotidien de repas
Convertissez un objectif calorique établi et votre ratio préféré en quantités à répartir entre les repas.
Comparer plusieurs scénarios
Gardez les calories constantes et observez comment différents coefficients positifs modifient chaque macro.
Automatiser les fiches de planification
Produisez des objectifs déterministes pour une feuille nutritionnelle, un formulaire de suivi ou une application sans dépendre du réseau.
Questions fréquentes
Le ratio doit-il avoir une somme égale à 100 ?
Non. Trois coefficients positifs quelconques sont normalisés par leur total ; 3:4:3 et 30:40:30 sont donc équivalents.
Comment les grammes de macros sont-ils calculés ?
Les calories de protéines et de glucides sont divisées par quatre, et les calories de lipides par neuf.
Pourquoi un journal alimentaire peut-il indiquer un autre total ?
Les étiquettes et applications peuvent arrondir ou traiter les fibres et l’alcool autrement que la conversion théorique.
Ce calculateur recommande-t-il un régime ?
Non. Il convertit l’objectif et le ratio que vous fournissez sans juger si ces choix sont appropriés sur le plan médical ou nutritionnel.
Quel est le prix du calcul par l’API ?
Chaque requête à l’API coûte $0.002. Le calcul est entièrement hors ligne et déterministe.
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/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)Exemple de requête
{
"calories": 2000,
"protein_ratio": 30,
"carbohydrate_ratio": 40,
"fat_ratio": 30
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.macro_split_from_cal",
"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. |