Types de données nutritionnelles

L'API Google Health fournit des types de données permettant de suivre l'apport alimentaire et les informations nutritionnelles d'un utilisateur. Ces types vous permettent d'enregistrer des repas, de référencer des aliments dans la base de données alimentaires et de suivre les quantités de nutriments.

Types de données acceptés

Tableau : Types de données nutritionnelles de l'API Google Health
Type de données
  dataType
  filter parameter
Type d'enregistrement
Opérations disponibles
Champ d'application Compatibilité avec les webhooks
Compatibilité avec les vrais zéros
Nourriture
  food
  food
Nourriture list, get .nutrition.readonly
.nutrition.writeonly
Unité de mesure des aliments
  food-measurement-unit
  food_measurement_unit
Nourriture list, get .nutrition.readonly
.nutrition.writeonly
Journal de nutrition
  nutrition-log
  nutrition_log
Échantillon list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly

Journal de nutrition

Un journal de nutrition représente les aliments enregistrés par un utilisateur. Il existe deux façons de créer un journal de nutrition, selon le type d'aliment :

  1. Aliment identifié : définissez le champ food pour référencer une ressource Food existante. Les champs nutrients, energy, energyFromFat, totalCarbohydrate, totalFat et foodDisplayName sont renseignés automatiquement à partir de l'aliment référencé. Il s'agit de la méthode recommandée.

  2. Aliment anonyme : définissez manuellement le champ foodDisplayName et fournissez des valeurs pour nutrients, energy, energyFromFat, totalCarbohydrate et totalFat. Les journaux de nutrition créés à partir d'aliments anonymes ne sont pas modifiables après leur création.

Créer un journal de nutrition avec un aliment anonyme

Pour créer une entrée de journal de nutrition, envoyez une requête POST au point de terminaison des points de données nutrition-log.

Requête

POST https://health.googleapis.com/v4/users/me/dataTypes/nutrition-log/dataPoints
Authorization: Bearer access-token
Content-Type: application/json

{
  "nutritionLog": {
    "interval": {
      "startTime": "2026-06-16T18:00:00Z",
      "endTime": "2026-06-16T18:30:00Z"
    },
    "foodDisplayName": "Grilled Chicken Breast",
    "mealType": "DINNER",
    "energy": {
      "kcal": 165
    },
    "totalCarbohydrate": {
      "grams": 0
    },
    "totalFat": {
      "grams": 3.6
    },
    "nutrients": [
      {
        "nutrient": "PROTEIN",
        "quantity": {
          "grams": 31
        }
      },
      {
        "nutrient": "SODIUM",
        "quantity": {
          "grams": 0.074
        }
      }
    ],
    "serving": {
      "amount": 1.0
    }
  }
}

Réponse

{
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
    "name": "users/user-id/dataTypes/nutrition-log/dataPoints/data-point-id",
    "dataSource": {
      "recordingMethod": "UNKNOWN",
      "application": {
        "googleWebClientId": "google-web-client-id"
      },
      "platform": "GOOGLE_WEB_API"
    },
    "nutritionLog": {
      "interval": {
        "startTime": "2026-06-16T18:00:00Z",
        "startUtcOffset": "0s",
        "endTime": "2026-06-16T18:30:00Z",
        "endUtcOffset": "0s",
        "civilStartTime": {
          "date": {
            "year": 2026,
            "month": 6,
            "day": 16
          },
          "time": {
            "hours": 18
          }
        },
        "civilEndTime": {
          "date": {
            "year": 2026,
            "month": 6,
            "day": 16
          },
          "time": {
            "hours": 18,
            "minutes": 30
          }
        }
      },
      "energy": {
        "kcal": 165
      },
      "totalCarbohydrate": {
        "grams": 0
      },
      "totalFat": {
        "grams": 3.6
      },
      "nutrients": [
        {
          "quantity": {
            "grams": 31
          },
          "nutrient": "PROTEIN"
        },
        {
          "quantity": {
            "grams": 0.074
          },
          "nutrient": "SODIUM"
        }
      ],
      "mealType": "DINNER",
      "serving": {
        "amount": 1
      },
      "foodDisplayName": "Grilled Chicken Breast"
    }
  }
}

Créer un journal de nutrition avec un aliment identifié

Pour enregistrer un aliment de la base de données alimentaires, définissez le champ food pour référencer une ressource Food. L'API renseigne automatiquement les champs nutritionnels.

Requête :

POST https://health.googleapis.com/v4/users/me/dataTypes/nutrition-log/dataPoints
Authorization: Bearer access-token
Content-Type: application/json

{
  "nutritionLog": {
    "interval": {
      "startTime": "2026-06-16T12:00:00Z",
      "endTime": "2026-06-16T12:30:00Z"
    },
    "food": "users/me/dataTypes/food/dataPoints/food-id",
    "mealType": "LUNCH",
    "serving": {
      "amount": 1.0
    }
  }
}

Supprimer des journaux de nutrition

Pour supprimer une ou plusieurs entrées de journal de nutrition, envoyez une requête POST au point de terminaison batchDelete avec les noms de ressources des entrées à supprimer.

Requête :

POST https://health.googleapis.com/v4/users/me/dataTypes/nutrition-log/dataPoints:batchDelete
Authorization: Bearer access-token
Content-Type: application/json

{
  "names": [
    "users/me/dataTypes/nutrition-log/dataPoints/data-point-id"
  ]
}

Champs NutritionLog

Pour obtenir la liste complète des champs et des descriptions, consultez la documentation de référence.

EnergyQuantity

Représente une mesure d'énergie, mesurée en kilocalories (kcal). Pour en savoir plus, consultez EnergyQuantity.

{
  "kcal": 165
}

WeightQuantity

Représente une mesure de poids, mesurée en grammes. Pour en savoir plus, consultez WeightQuantity.

{
  "grams": 27.3
}

NutrientQuantity

Représente un nutriment spécifique et sa quantité mesurée. Pour en savoir plus, consultez NutrientQuantity.

{
  "nutrient": "PROTEIN",
  "quantity": {
    "grams": 31
  }
}

Valeurs des nutriments

Pour obtenir la liste complète des types de nutriments compatibles, consultez Nutriment.

Portion

Représente les informations sur la portion pour une entrée de journal de nutrition. Pour en savoir plus, consultez Portion.

{
  "amount": 1.5
}

Valeurs MealType

Pour obtenir la liste complète des types de repas compatibles, consultez MealType.

Nourriture

Food est un type de données en lecture seule qui représente un aliment dans la base de données alimentaires. Utilisez les opérations list et get pour parcourir les aliments disponibles et récupérer leurs informations nutritionnelles.

Lister les aliments

Pour lister les aliments, envoyez une requête GET au point de terminaison des points de données food :

GET https://health.googleapis.com/v4/users/me/dataTypes/food/dataPoints
Authorization: Bearer access-token
Accept: application/json

Unité de mesure des aliments

L'unité de mesure des aliments est un type de données en lecture seule qui représente les unités de mesure utilisées pour les portions d'aliments (par exemple, "tasse", "cuillère à soupe" ou "pièce").

Lister les unités de mesure disponibles

Pour lister les unités de mesure disponibles :

GET https://health.googleapis.com/v4/users/me/dataTypes/food-measurement-unit/dataPoints
Authorization: Bearer access-token
Accept: application/json

Consignes

  • Utilisez des aliments identifiés lorsque cela est possible. L'API renseigne automatiquement les champs nutritionnels, ce qui réduit les erreurs et assure la cohérence avec la base de données alimentaires.
  • Les journaux de nutrition créés à partir d'aliments anonymes ne peuvent pas être modifiés après leur création. Si vous devez corriger un journal d'aliments anonymes, supprimez-le et créez-en un autre.
  • Toutes les quantités de nutriments dans le tableau nutrients utilisent le gramme comme unité de mesure.
  • Les champs energy et energyFromFat utilisent la kilocalorie (kcal) comme unité de mesure.