Google Health API की मदद से, पोषण और हाइड्रेशन से जुड़े अनुभव डेवलप करना

Google Health API, उपयोगकर्ता के पोषण और हाइड्रेशन को ट्रैक करने के लिए डेटा टाइप उपलब्ध कराता है. इन टाइप की मदद से, खाने-पीने की चीज़ों की जानकारी लॉग की जा सकती है. साथ ही, खाने-पीने की चीज़ों के डेटाबेस से रेफ़रंस लिया जा सकता है, पोषक तत्वों की मात्रा को ट्रैक किया जा सकता है, और तरल पदार्थों के सेवन की जानकारी लॉग की जा सकती है.

डेटा टाइप, जो इस्तेमाल किए जा सकते हैं

टेबल: Google Health API में मौजूद, पोषण से जुड़े डेटा टाइप
डेटा टाइप उपलब्ध
कार्रवाइयां
दायरा
खाना
dataType: food
filter parameter: food
रिकॉर्ड टाइप: खाना
list, get .nutrition.readonly
.nutrition.writeonly
खाने को मापने की इकाई
dataType: food-measurement-unit
filter parameter: food_measurement_unit
रिकॉर्ड टाइप: खाना

संगत डिवाइस

list, get .nutrition.readonly
.nutrition.writeonly
हाइड्रेशन का लॉग
dataType: hydration-log
filter parameter: hydration_log
रिकॉर्ड टाइप: सेशन
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
पोषण से जुड़ा डेटा लॉग करें
dataType: nutrition-log
filter parameter: nutrition_log
रिकॉर्ड टाइप: सेशन

संगत डिवाइस

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly

पोषण से जुड़ा डेटा लॉग करें

पोषण से जुड़े डेटा लॉग से, उपयोगकर्ता के लॉग किए गए खाने की जानकारी मिलती है. खाने के टाइप के हिसाब से, पोषण लॉग बनाने के दो तरीके हैं:

  1. Identified food: किसी मौजूदा Food संसाधन का रेफ़रंस देने के लिए, food फ़ील्ड को सेट करें. nutrients, energy, energyFromFat, totalCarbohydrate, totalFat, और foodDisplayName फ़ील्ड, रेफ़रंस के तौर पर दिए गए खाने की जानकारी से अपने-आप भर जाते हैं. यह सबसे सही तरीका है.

  2. ऐसा खाना जिसकी जानकारी मौजूद नहीं है: foodDisplayName फ़ील्ड को मैन्युअल तरीके से सेट करें. साथ ही, nutrients, energy, energyFromFat, totalCarbohydrate, और totalFat के लिए वैल्यू दें. बिना नाम वाले खाने के आइटम से बनाए गए न्यूट्रिशन लॉग में, बनाने के बाद बदलाव नहीं किया जा सकता.

बिना नाम वाले खाने की चीज़ों का न्यूट्रिशन लॉग बनाना

पोषण लॉग की एंट्री बनाने के लिए, nutrition-log dataPoints एंडपॉइंट पर POST अनुरोध भेजें.

अनुरोध

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
    }
  }
}

जवाब

{
  "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"
    }
  }
}

पहचाने गए खाने के आइटम के साथ पोषण लॉग बनाना

खाने की चीज़ों के डेटाबेस से किसी आइटम को लॉग करने के लिए, food फ़ील्ड को सेट करें, ताकि वह खाने की चीज़ों के संसाधन को रेफ़र कर सके. एपीआई, पोषण से जुड़े फ़ील्ड अपने-आप भरता है.

अनुरोध

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,
      "foodMeasurementUnit": "users/me/dataTypes/food-measurement-unit/dataPoints/food-measurement-unit-id"
    }
  }
}

जवाब

{
  "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-16T12:00:00Z",
        "startUtcOffset": "0s",
        "endTime": "2026-06-16T12:30:00Z",
        "endUtcOffset": "0s",
        "civilStartTime": {
          "date": {
            "year": 2026,
            "month": 6,
            "day": 16
          },
          "time": {
            "hours": 12
          }
        },
        "civilEndTime": {
          "date": {
            "year": 2026,
            "month": 6,
            "day": 16
          },
          "time": {
            "hours": 12,
            "minutes": 30
          }
        }
      },
      "energy": {
        "kcal": 95
      },
      "energyFromFat": {
        "kcal": 3
      },
      "totalCarbohydrate": {
        "grams": 25
      },
      "totalFat": {
        "grams": 0.3
      },
      "nutrients": [
        {
          "quantity": {
            "grams": 4.4,
            "userProvidedUnit": "GRAM"
          },
          "nutrient": "DIETARY_FIBER"
        },
        {
          "quantity": {
            "grams": 19,
            "userProvidedUnit": "GRAM"
          },
          "nutrient": "SUGAR"
        },
        {
          "quantity": {
            "grams": 0.5,
            "userProvidedUnit": "GRAM"
          },
          "nutrient": "PROTEIN"
        }
      ],
      "mealType": "LUNCH",
      "serving": {
        "amount": 1,
        "foodMeasurementUnit": "users/me/dataTypes/food-measurement-unit/dataPoints/food-measurement-unit-id"
      },
      "food": "users/user-id/dataTypes/food/dataPoints/food-id",
      "foodDisplayName": "Apple"
    }
  }
}

पोषण से जुड़े लॉग मिटाना

पोषण से जुड़ी एक या उससे ज़्यादा लॉग एंट्री मिटाने के लिए, batchDelete तरीके का इस्तेमाल करके POST अनुरोध भेजें. साथ ही, मिटाई जाने वाली एंट्री के संसाधन के नाम भी शामिल करें.

अनुरोध:

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"
  ]
}

पोषण से जुड़े डेटा लॉग के फ़ील्ड

फ़ील्ड और ब्यौरों की पूरी सूची देखने के लिए, NutritionLog पर जाएं.

ऊर्जा की मात्रा

यह एनर्जी की माप को दिखाता है, जिसे किलोकैलोरी (kcal) में मापा जाता है. ज़्यादा जानकारी के लिए, EnergyQuantity देखें.

{
  "kcal": 165
}

वज़न की मात्रा

यह वज़न को ग्राम में दिखाता है. ज़्यादा जानकारी के लिए, WeightQuantity देखें.

{
  "grams": 27.3
}

पोषक तत्व की मात्रा

इससे किसी खास पोषक तत्व और उसकी मापी गई मात्रा के बारे में पता चलता है. ज़्यादा जानकारी के लिए, NutrientQuantity देखें.

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

पोषक तत्वों की वैल्यू

इस्तेमाल किए जा सकने वाले पोषक तत्वों की पूरी सूची देखने के लिए, Nutrient पर जाएं.

सेवा में है

यह न्यूट्रिशन लॉग एंट्री के लिए, सर्विंग की जानकारी दिखाता है. ज़्यादा जानकारी के लिए, Serving देखें.

{
  "amount": 1.5
}

मील टाइप की वैल्यू

इस्तेमाल किए जा सकने वाले खाने के टाइप की पूरी सूची देखने के लिए, MealType पर जाएं.

खाना

फ़ूड, सिर्फ़ पढ़ने के लिए उपलब्ध डेटा टाइप है. यह फ़ूड डेटाबेस में मौजूद किसी खाने की चीज़ को दिखाता है. उपलब्ध खाद्य पदार्थों को ब्राउज़ करने और उनकी पोषण संबंधी जानकारी पाने के लिए, list और get ऑपरेशन का इस्तेमाल करें.

खाने-पीने की चीज़ों की सूची बनाएं

खाने-पीने की चीज़ों की सूची बनाने के लिए, food dataPoints एंडपॉइंट पर GET अनुरोध भेजें:

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

खाने को मापने की इकाई

फ़ूड मेज़रमेंट यूनिट, रीड-ओनली डेटा टाइप है. यह खाने की चीज़ों को परोसने के लिए इस्तेमाल की जाने वाली मेज़रमेंट यूनिट को दिखाता है. उदाहरण के लिए, "कप", "टेबलस्पून" या "पीस".

मेज़रमेंट की उपलब्ध इकाइयां देखना

माप की उपलब्ध इकाइयों की सूची देखने के लिए:

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

हाइड्रेशन का लॉग

हाइड्रेशन लॉग से पता चलता है कि किसी उपयोगकर्ता ने कितना तरल पदार्थ लिया है. खाने-पीने की चीज़ों के डेटा में, फ़ूड डेटाबेस का रेफ़रंस दिया जाता है और पोषक तत्वों या ऊर्जा की खपत को मेज़र किया जाता है. हालांकि, हाइड्रेशन डेटा में, किसी तय समयावधि में इस्तेमाल किए गए तरल पदार्थ की मात्रा को ट्रैक किया जाता है.

हाइड्रेशन का लॉग बनाना

हाइड्रेशन लॉग एंट्री बनाने के लिए, hydration-log dataPoints एंडपॉइंट पर POST अनुरोध भेजें. एपीआई फ़ॉर्मैट में, वॉल्यूम की सभी वैल्यू को मिलीलीटर में बदल दिया जाता है.

अनुरोध

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

{
  "hydrationLog": {
    "interval": {
      "startTime": "2026-06-16T14:00:00Z",
      "endTime": "2026-06-16T14:00:01Z"
    },
    "amountConsumed": {
      "milliliters": 500,
      "userProvidedUnit": "FLUID_OUNCE_US"
    }
  }
}

जवाब

{
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
    "name": "users/user-id/dataTypes/hydration-log/dataPoints/data-point-id",
    "dataSource": {
      "recordingMethod": "UNKNOWN",
      "application": {
        "googleWebClientId": "google-web-client-id"
      },
      "platform": "GOOGLE_WEB_API"
    },
    "hydrationLog": {
      "interval": {
        "startTime": "2026-06-16T14:00:00Z",
        "startUtcOffset": "0s",
        "endTime": "2026-06-16T14:00:01Z",
        "endUtcOffset": "0s",
        "civilStartTime": {
          "date": {
            "year": 2026,
            "month": 6,
            "day": 16
          },
          "time": {
            "hours": 14
          }
        },
        "civilEndTime": {
          "date": {
            "year": 2026,
            "month": 6,
            "day": 16
          },
          "time": {
            "hours": 14,
            "seconds": 1
          }
        }
      },
      "amountConsumed": {
        "milliliters": 500,
        "userProvidedUnit": "FLUID_OUNCE_US"
      }
    }
  }
}

हाइड्रेशन का लॉग अपडेट करना

हाइड्रेशन लॉग की किसी एंट्री को अपडेट करने के लिए, डेटा पॉइंट के आईडी के साथ hydration-log dataPoints एंडपॉइंट पर PATCH का इस्तेमाल करके अनुरोध भेजें.

अनुरोध

PATCH https://health.googleapis.com/v4/users/me/dataTypes/hydration-log/dataPoints/data-point-id
Authorization: Bearer access-token
Content-Type: application/json

{
  "hydrationLog": {
    "interval": {
      "startTime": "2026-06-16T10:00:00Z",
      "endTime": "2026-06-16T10:00:01Z"
    },
    "amountConsumed": {
      "milliliters": 500
    }
  }
}

जवाब

{
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
    "name": "users/user-id/dataTypes/hydration-log/dataPoints/data-point-id",
    "dataSource": {
      "recordingMethod": "UNKNOWN",
      "application": {
        "googleWebClientId": "google-web-client-id"
      },
      "platform": "GOOGLE_WEB_API"
    },
    "hydrationLog": {
      "interval": {
        "startTime": "2026-06-16T10:00:00Z",
        "startUtcOffset": "0s",
        "endTime": "2026-06-16T10:00:01Z",
        "endUtcOffset": "0s",
        "civilStartTime": {
          "date": {
            "year": 2026,
            "month": 6,
            "day": 16
          },
          "time": {
            "hours": 10
          }
        },
        "civilEndTime": {
          "date": {
            "year": 2026,
            "month": 6,
            "day": 16
          },
          "time": {
            "hours": 10,
            "seconds": 1
          }
        }
      },
      "amountConsumed": {
        "milliliters": 500
      }
    }
  }
}

हाइड्रेशन के लॉग मिटाना

हाइड्रेशन लॉग की एक या उससे ज़्यादा एंट्री मिटाने के लिए, batchDelete तरीके से POST अनुरोध भेजें.

अनुरोध

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

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

जवाब

{
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.devicesandservices.health.v4.BatchDeleteDataPointsResponse",
    "dataPoints": [
      {
        "name": "users/user-id/dataTypes/hydration-log/dataPoints/data-point-id",
        "dataSource": {
          "recordingMethod": "UNKNOWN",
          "application": {
            "googleWebClientId": "google-web-client-id"
          },
          "platform": "GOOGLE_WEB_API"
        },
        "hydrationLog": {
          "interval": {
            "startTime": "2026-06-16T14:00:00Z",
            "startUtcOffset": "0s",
            "endTime": "2026-06-16T14:00:01Z",
            "endUtcOffset": "0s",
            "civilStartTime": {
              "date": {
                "year": 2026,
                "month": 6,
                "day": 16
              },
              "time": {
                "hours": 14
              }
            },
            "civilEndTime": {
              "date": {
                "year": 2026,
                "month": 6,
                "day": 16
              },
              "time": {
                "hours": 14,
                "seconds": 1
              }
            }
          },
          "amountConsumed": {
            "milliliters": 500,
            "userProvidedUnit": "FLUID_OUNCE_US"
          }
        }
      }
    ]
  }
}

हाइड्रेशन लॉग के फ़ील्ड

फ़ील्ड और ब्यौरों की पूरी सूची देखने के लिए, HydrationLog पर जाएं.

वॉल्यूम की संख्या

यह वॉल्यूम की माप को दिखाता है. इसे मिलीलीटर में मापा जाता है. ज़्यादा जानकारी के लिए, VolumeQuantity देखें.

{
  "milliliters": 250,
  "userProvidedUnit": "MILLILITER"
}

वॉल्यूम यूनिट की वैल्यू

इस्तेमाल की जा सकने वाली वॉल्यूम यूनिट की पूरी सूची देखने के लिए, VolumeUnit पर जाएं. आम तौर पर, MILLILITER, LITER, CUP_US, और FLUID_OUNCE_US वैल्यू का इस्तेमाल किया जाता है.

दिशा-निर्देश

  • जब भी हो सके, पहचाने गए खाने की चीज़ों का इस्तेमाल करें. एपीआई, पोषण से जुड़े फ़ील्ड को अपने-आप भरता है. इससे गड़बड़ियां कम होती हैं और खाने-पीने की चीज़ों के डेटाबेस के साथ एक जैसा डेटा मिलता है.
  • अनाम खाने-पीने की चीज़ों से बनाए गए पोषण लॉग को बनाने के बाद अपडेट नहीं किया जा सकता. अगर आपको बिना नाम वाले फ़ूड लॉग में बदलाव करना है, तो उसे मिटाएं और नया लॉग बनाएं.
  • बिना पहचान बताए लॉग किए गए खाने के पोषण से जुड़े डेटा के उलट, हाइड्रेशन लॉग की एंट्री में पूरी तरह से बदलाव किया जा सकता है. साथ ही, एंट्री बनाने के बाद, PATCH अनुरोध का इस्तेमाल करके उसे अपडेट किया जा सकता है.
  • nutrients कलेक्शन में मौजूद सभी पोषक तत्वों की मात्रा के लिए, मेज़रमेंट की इकाई के तौर पर ग्राम का इस्तेमाल किया जाता है.
  • energy और energyFromFat फ़ील्ड, मेज़रमेंट की इकाई के तौर पर किलोकैलोरी (kcal) का इस्तेमाल करते हैं.
  • एपीआई, हाइड्रेशन की सभी मात्राओं को मिलीलीटर में बदलता है और सेव करता है. VolumeQuantity में मौजूद वैकल्पिक userProvidedUnit फ़ील्ड का इस्तेमाल, सिर्फ़ क्लाइंट-साइड पर इस्तेमाल करने वाले लोगों के लिए उपलब्ध डिसप्ले के लिए किया जाता है.
  • अलग-अलग hydration-log डेटा पॉइंट के लिए डायरेक्ट एचटीटीपी DELETE अनुरोध, 404 Not Found दिखाते हैं. इन रिसॉर्स एंट्री को हटाने के लिए, batchDelete तरीके का इस्तेमाल करें.
  • हाइड्रेशन लॉग में कम समय के अंतराल का इस्तेमाल किया जाता है. इसमें startTime और endTime उस समयावधि को दिखाते हैं जिसमें तरल पदार्थ का सेवन किया गया था.