Google Health API की मदद से, नींद से जुड़े अनुभव डेवलप करना

Google Health API, ऐसे डेटा टाइप उपलब्ध कराता है जो किसी व्यक्ति की नींद के पैटर्न को ट्रैक करते हैं. इनमें नींद की अवधि, क्वालिटी, और आराम के दौरान शरीर की मेट्रिक शामिल हैं. इन मेट्रिक से ऐप्लिकेशन को रिकवरी, नींद की क्वालिटी, और सेहत से जुड़े लंबे समय के रुझानों के बारे में अहम जानकारी मिलती है.

शरीर की गतिविधियों से जुड़ी मेट्रिक, जैसे कि धड़कन की दर में उतार-चढ़ाव (एचआरवी), ऑक्सीजन की मात्रा (SpO2), और सांस की दर को खास तौर पर नींद के दौरान रिकॉर्ड किया जाता है. ऐसा इसलिए, क्योंकि इस दौरान शरीर स्थिर और आराम की स्थिति में होता है. इससे एपीआई, दिन के समय होने वाले तनाव, शारीरिक गतिविधि या अलग-अलग पर्यावरणीय स्थितियों के असर के बिना, उपयोगकर्ता के ऑटोनॉमिक और श्वसन स्वास्थ्य की बेसलाइन को कैप्चर कर पाता है.

इन डेटा टाइप के बीच के अंतर को समझें, ताकि यह तय किया जा सके कि आपके ऐप्लिकेशन के लिए कौनसी मेट्रिक सही हैं.

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

नींद को मेज़र करने के लिए, एपीआई इन डेटा टाइप के साथ काम करता है:

टेबल: Google Health API का नींद का डेटा टाइप
डेटा टाइप उपलब्ध
कार्रवाइयां
दायरा
धड़कन की दर में रोज़ाना होने वाला उतार-चढ़ाव
dataType: daily-heart-rate-variability
filter parameter: daily_heart_rate_variability
रिकॉर्ड टाइप: हर दिन

संगत डिवाइस

सूची बनाना, मेल करना .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
रोज़ाना ऑक्सीजन की मात्रा
dataType: daily-oxygen-saturation
filter parameter: daily_oxygen_saturation
रिकॉर्ड टाइप: हर दिन

संगत डिवाइस

सूची बनाना, मेल करना .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
रोज़ाना की सांस लेने की दर
dataType: daily-respiratory-rate
filter parameter: daily_respiratory_rate
रिकॉर्ड टाइप: हर दिन

संगत डिवाइस

सूची बनाना, मेल करना .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
नींद के दौरान शरीर के तापमान में रोज़ाना होने वाले बदलाव
dataType: daily-sleep-temperature-derivations
filter parameter: daily_sleep_temperature_derivations
रिकॉर्ड टाइप: हर दिन

संगत डिवाइस

सूची बनाना, मेल करना .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
धड़कन की दर में उतार-चढ़ाव
dataType: heart-rate-variability
filter parameter: heart_rate_variability
रिकॉर्ड टाइप: सैंपल

संगत डिवाइस

सूची बनाना, मेल करना .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ऑक्सीजन की मात्रा
dataType: oxygen-saturation
filter parameter: oxygen_saturation
रिकॉर्ड टाइप: सैंपल

संगत डिवाइस

सूची बनाना, मेल करना .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
नींद के दौरान सांस लेने की दर की खास जानकारी
dataType: respiratory-rate-sleep-summary
filter parameter: respiratory_rate_sleep_summary
रिकॉर्ड टाइप: सैंपल

संगत डिवाइस

सूची बनाना, मेल करना .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
नींद
dataType: sleep
filter parameter: sleep
रिकॉर्ड टाइप: सेशन

संगत डिवाइस

list, get, reconcile, create, update, batchDelete .sleep.readonly
.sleep.writeonly

नींद के सेशन और कम समय के लिए जागना

नींद का सेशन (Sleep) किसी नींद के इवेंट को दिखाता है. जैसे, रात की नींद या दिन में ली गई झपकी. इसमें नींद के अलग-अलग चरणों के बारे में पूरी जानकारी शामिल होती है. साथ ही, इसमें नींद से जागने के छोटे-छोटे अंतराल के बारे में भी बताया जाता है. इन्हें कुछ देर के लिए जागना कहा जाता है.

  • नींद का सेशन (Sleep): यह नींद से जुड़ी अलग-अलग घटनाओं (LIGHT, DEEP, REM, AWAKE स्टेज के इंटरवल) को दिखाता है. ये घटनाएं, आराम करने की मुख्य अवधि की लगातार टाइमलाइन को अलग-अलग हिस्सों में बांटती हैं.
  • नींद खुलना (shortAwakenings): आराम के दौरान नींद खुलना या नींद से जागना. स्टैंडर्ड AWAKE स्टेज इंटरवल (जो नींद के नॉन-ओवरलैपिंग कंटीग्युअस स्टेज प्रोग्रेशन को बांटते हैं) के उलट, नींद से अचानक जागना अलग-अलग सेगमेंट होते हैं. ये नींद के आस-पास के चरणों के साथ ओवरलैप हो सकते हैं. ये नींद की मुख्य स्टेज की संरचना में रुकावट डाले बिना, बेचैनी और नींद में होने वाले छोटे-छोटे बदलावों के बारे में ज़्यादा जानकारी देते हैं.
  • रात में नींद खुलना: रात में नींद खुलने (जैसे, पानी पीने के लिए उठना) की पहचान, उपयोगकर्ता के डिवाइस पर मौजूद सेंसर फ़्यूज़न (एक्सलरोमीटर, जाइरोस्कोप, और कदमों की संख्या) से की जाती है. Web API में, ऐप्लिकेशन रात में नींद खुलने का पता लगा सकते हैं. इसके लिए, उन्हें "wake" (सामान्य नींद) या "awake" (नींद की स्टेज) के लेवल वाले इंटरवल को फ़िल्टर करना होगा.

उदाहरण

{
  "name": "sleeps/12345",
  "startTime": "2026-04-20T22:30:00Z",
  "endTime": "2026-04-21T06:30:00Z",
  "sleepType": "STAGES",
  "minutesToFallAsleep": 15,
  "minutesAfterWakeup": 10,
  "sleepStages": [
    {
      "startTime": "2026-04-20T22:30:00Z",
      "endTime": "2026-04-20T23:45:00Z",
      "type": "LIGHT"
    },
    {
      "startTime": "2026-04-20T23:45:00Z",
      "endTime": "2026-04-21T01:15:00Z",
      "type": "DEEP"
    }
  ],
  "shortAwakenings": [
    {
      "startTime": "2026-04-20T23:10:00Z",
      "endTime": "2026-04-20T23:11:30Z",
      "type": "AWAKE"
    }
  ]
}

नींद का सेशन बनाना

नींद का सेशन एंट्री बनाने के लिए, sleep डेटा पॉइंट एंडपॉइंट को POST अनुरोध भेजें. जवाब में name फ़ील्ड शामिल होता है. इसमें data-point-id होता है. इसका इस्तेमाल अपडेट (पैच) या मिटाएं अनुरोध में किया जा सकता है.

अनुरोध

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

{
  "sleep": {
    "interval": {
      "startTime": "2026-06-07T22:00:00Z",
      "startUtcOffset": "-14400s",
      "endTime": "2026-06-08T06:00:00Z",
      "endUtcOffset": "-14400s"
    },
    "type": "STAGES",
    "stages": [
      {
        "startTime": "2026-06-07T22:00:00Z",
        "startUtcOffset": "-14400s",
        "endTime": "2026-06-07T22:30:00Z",
        "endUtcOffset": "-14400s",
        "type": "LIGHT"
      },
      {
        "startTime": "2026-06-07T22:30:00Z",
        "startUtcOffset": "-14400s",
        "endTime": "2026-06-07T23:45:00Z",
        "endUtcOffset": "-14400s",
        "type": "DEEP"
      },
      {
        "startTime": "2026-06-07T23:45:00Z",
        "startUtcOffset": "-14400s",
        "endTime": "2026-06-08T02:15:00Z",
        "endUtcOffset": "-14400s",
        "type": "LIGHT"
      },
      {
        "startTime": "2026-06-08T02:15:00Z",
        "startUtcOffset": "-14400s",
        "endTime": "2026-06-08T02:45:00Z",
        "endUtcOffset": "-14400s",
        "type": "REM"
      },
      {
        "startTime": "2026-06-08T02:45:00Z",
        "startUtcOffset": "-14400s",
        "endTime": "2026-06-08T05:15:00Z",
        "endUtcOffset": "-14400s",
        "type": "LIGHT"
      },
      {
        "startTime": "2026-06-08T05:15:00Z",
        "startUtcOffset": "-14400s",
        "endTime": "2026-06-08T06:00:00Z",
        "endUtcOffset": "-14400s",
        "type": "REM"
      }
    ]
  }
}

जवाब

{
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
    "name": "users/user-id/dataTypes/sleep/dataPoints/data-point-id",
    "sleep": {
      "interval": {
        "startTime": "2026-06-07T22:00:00Z",
        "startUtcOffset": "-14400s",
        "endTime": "2026-06-08T06:00:00Z",
        "endUtcOffset": "-14400s"
      },
      "type": "STAGES",
      "stages": [
        {
          "startTime": "2026-06-07T22:00:00Z",
          "startUtcOffset": "-14400s",
          "endTime": "2026-06-07T22:30:00Z",
          "endUtcOffset": "-14400s",
          "type": "LIGHT"
        },
        {
          "startTime": "2026-06-07T22:30:00Z",
          "startUtcOffset": "-14400s",
          "endTime": "2026-06-07T23:45:00Z",
          "endUtcOffset": "-14400s",
          "type": "DEEP"
        },
        {
          "startTime": "2026-06-07T23:45:00Z",
          "startUtcOffset": "-14400s",
          "endTime": "2026-06-08T02:15:00Z",
          "endUtcOffset": "-14400s",
          "type": "LIGHT"
        },
        {
          "startTime": "2026-06-08T02:15:00Z",
          "startUtcOffset": "-14400s",
          "endTime": "2026-06-08T02:45:00Z",
          "endUtcOffset": "-14400s",
          "type": "REM"
        },
        {
          "startTime": "2026-06-08T02:45:00Z",
          "startUtcOffset": "-14400s",
          "endTime": "2026-06-08T05:15:00Z",
          "endUtcOffset": "-14400s",
          "type": "LIGHT"
        },
        {
          "startTime": "2026-06-08T05:15:00Z",
          "startUtcOffset": "-14400s",
          "endTime": "2026-06-08T06:00:00Z",
          "endUtcOffset": "-14400s",
          "type": "REM"
        }
      ]
    }
  }
}

नींद की क्वालिटी और नींद आने में लगने वाले समय से जुड़ी मेट्रिक

नींद के चरणों और शारीरिक मेट्रिक के अलावा, एपीआई ऐसी मुख्य मेट्रिक भी उपलब्ध कराता है जिनसे नींद की क्वालिटी और नींद आने के समय का पता चलता है. नींद की क्वालिटी और नींद आने में लगने वाला समय, क्लिनिकल स्टैंडर्ड मेट्रिक हैं. इनसे पता चलता है कि बिस्तर पर बिताए गए कुल समय के हिसाब से, उपयोगकर्ता ने कितनी अच्छी तरह आराम किया. इनसे नींद की क्वालिटी और आराम के बारे में जानकारी मिलती है.

नींद की क्वालिटी का स्कोर

नींद की क्वालिटी एक स्टैंडर्ड मेट्रिक है. इसे बिस्तर पर बिताए गए कुल समय के मुकाबले, नींद में बिताए गए समय के अनुपात के तौर पर तय किया जाता है. एपीआई, नींद की क्वालिटी का हिसाब लगाने के लिए इस फ़ॉर्मूले का इस्तेमाल करता है:

Sleep Efficiency Score = round( (Total Minutes Asleep / Total Minutes In Bed) * 100 )

स्लीप लेवल (स्टेज) के हिसाब से डेटा को बांटने से ठीक पहले, स्लीप स्कोर का हिसाब लगाया जाता है. एपीआई से मिले जवाब में, नींद के दौरान बिताए गए कुल मिनट (summary.minutesAsleep फ़ील्ड में) दिखते हैं. यह नींद के लेवल का हिसाब लगाने के बाद का आखिरी नतीजा होता है.

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

नींद आने में लगने वाला समय

नींद आने में लगने वाले समय से पता चलता है कि किसी व्यक्ति को बिस्तर पर जाने या लाइट बंद करने के बाद, नींद आने में कितना समय लगा.

अपने-आप पता लगाने की सुविधा (auto_detect) का इस्तेमाल करके अपने-आप जनरेट होने वाले लॉग के लिए, minutesToFallAsleep की डिफ़ॉल्ट वैल्यू 0 होती है. ऐसा इसलिए, क्योंकि सोने के लिए कोई एक्सप्लिसिट इंटेंट लॉग नहीं किया गया था. जब बिस्तर पर जाने के समय को मैन्युअल तरीके से रिकॉर्ड किया जाता है या उसमें बदलाव किया जाता है (लॉग को manual में बदला जाता है), तो एपीआई minutesAfterWakeup के साथ-साथ minutesToFallAsleep की गिनती करता है और उसे भरता है.

रिसर्च और मैन्युअल लॉगिंग के लिए दिशा-निर्देश

जब मीटिंग में शामिल लोग, मैन्युअल तरीके से रिकॉर्डिंग करते हैं या बिस्तर पर जाने और उठने के समय को अडजस्ट करते हैं, तब:

  1. बिस्तर की सीमाओं को अपडेट करने से, timeInBed का इंटरवल बदल जाता है.
  2. नई विंडो में सेंसर के डेटा का आकलन करने के लिए, नींद के लेवल और स्टेज के बंटवारे अपने-आप अडजस्ट हो जाते हैं.
  3. नींद की क्वालिटी का स्कोर, minutesToFallAsleep, और minutesAfterWakeup को अपडेट की गई समयावधि के आधार पर फिर से कैलकुलेट किया जाता है.

नींद के दौरान शरीर के तापमान में होने वाले बदलावों के बारे में रोज़ाना जानकारी

नींद के दौरान त्वचा के तापमान में होने वाले उतार-चढ़ाव को हर दिन मापा जाता है. इससे यह पता चलता है कि नींद के दौरान किसी व्यक्ति की त्वचा का तापमान, उसकी बेसलाइन की तुलना में कितना बदला. आम तौर पर, यह डेटा हर दिन एक बार रिपोर्ट किया जाता है. ऐसा तब होता है, जब आपने लंबी नींद ली हो.

सांस की दर

सांस की दर से, यह पता चलता है कि उपयोगकर्ता एक मिनट में कितनी बार सांस लेता है. नींद के दौरान, यह नींद की क्वालिटी और संभावित समस्याओं को मॉनिटर करने के लिए एक अहम मेट्रिक है. इस एपीआई की मदद से, सांस की दर (respiratory-rate), हर दिन की खास जानकारी (daily-respiratory-rate), और सेशन-लेवल पर नींद की खास जानकारी (respiratory-rate-sleep-summary) का सैंपल लिया जा सकता है.

धड़कन की दर में उतार-चढ़ाव (एचआरवी)

एचआरवी से, हर हार्टबीट के बीच के समय में होने वाले बदलाव का पता चलता है. यह ऑटोनॉमिक नर्वस सिस्टम की स्थिति का मुख्य इंडिकेटर है. नींद के दौरान ज़्यादा एचआरवी का मतलब आम तौर पर बेहतर रिकवरी और रेडीनेस होता है. वहीं, कम एचआरवी से तनाव या क्षमता से ज़्यादा कसरत का पता चल सकता है. यह एपीआई, एचआरवी (heart-rate-variability) और हर दिन की खास जानकारी (daily-heart-rate-variability) के सैंपल के साथ काम करता है.

ऑक्सीजन की मात्रा (SpO2)

SpO2 से, खून में मौजूद कुल हीमोग्लोबिन की तुलना में, ऑक्सीजन से भरे हीमोग्लोबिन का प्रतिशत पता चलता है. नींद के दौरान SpO2 को मॉनिटर करना ज़रूरी है. इससे सांस लेने में होने वाली संभावित समस्याओं का पता लगाया जा सकता है. साथ ही, यह पक्का किया जा सकता है कि उपयोगकर्ता के शरीर में पूरी रात ऑक्सीजन का लेवल सही बना रहे. यह एपीआई, SpO2 (oxygen-saturation) के सैंपल और रोज़ की खास जानकारी (daily-oxygen-saturation) के साथ काम करता है.

नींद की क्वालिटी और रिकवरी की पूरी जानकारी

हर मेट्रिक से खास जानकारी मिलती है. हालांकि, ये एक-दूसरे से जुड़ी होती हैं. साथ ही, इनसे उपयोगकर्ता की रिकवरी के बारे में पूरी जानकारी मिलती है. नींद के चरण (हल्की, गहरी, आरईएम) आराम करने के लिए ज़रूरी होते हैं. वहीं, एचआरवी और SpO2 जैसे फ़िज़ियोलॉजिकल मार्कर से पता चलता है कि शरीर, आराम करने के दौरान किस तरह की प्रतिक्रिया दे रहा है. उदाहरण के लिए, अच्छी क्वालिटी की नींद का सेशन लेने और ऑप्टिमल गहरी नींद लेने से अक्सर एचआरवी बढ़ता है. इससे पता चलता है कि ऑटोनॉमिक नर्वस सिस्टम बेहतर तरीके से ठीक हो रहा है.

इन डेटा को सांस लेने की दर और नींद के दौरान शरीर के तापमान में हुए बदलावों के साथ मिलाकर, ऐप्लिकेशन को संभावित गड़बड़ियों का पता लगाने में मदद मिलती है. सांस लेने की दर में अचानक बढ़ोतरी या नींद के दौरान शरीर के तापमान में बदलाव से यह पता चल सकता है कि उपयोगकर्ता ने नींद की रिकवरी वाली स्टेज में कम समय क्यों बिताया. इन डेटा टाइप का एक साथ विश्लेषण करके, डेवलपर नींद की क्वालिटी और सेहत से जुड़े लंबे समय के ट्रेंड का आकलन कर सकते हैं.

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

अपने ऐप्लिकेशन में नींद की मेट्रिक को इंटिग्रेट करते समय, इन दिशा-निर्देशों का पालन करें:

  • सेशन की जानकारी: किसी व्यक्ति की नींद के चरणों (हल्की, गहरी, आरईएम, नींद से जागना) और नींद के दौरान कुछ समय के लिए जागने की जानकारी दिखाने के लिए, sleep डेटा टाइप को क्वेरी करें.
  • रात में नींद खुलना: आधी रात में नींद खुलने के इवेंट को ट्रैक करने के लिए, रॉ सेंसर स्ट्रीम के बिना sleep स्टेज के इंटरवल की जांच करें. साथ ही, स्टेज टाइप AWAKE (या स्लीप लॉग के लिए wake) वाले आइटम के लिए फ़िल्टर करें.
  • लेटेंसी और क्वालिटी: नींद आने में लगने वाले समय का विश्लेषण करने के लिए, minutesToFallAsleep और नींद की क्वालिटी के फ़ॉर्मूले का इस्तेमाल करें. ध्यान दें कि minutesToFallAsleep तब दिखता है, जब नींद के लॉग में मैन्युअल तरीके से बदलाव किया जाता है या उन्हें साफ़ तौर पर लॉग किया जाता है.
  • शारीरिक गतिविधियों को मॉनिटर करना: सेहत को बेहतर तरीके से मॉनिटर करने के लिए, नींद के सेशन के डेटा को शारीरिक गतिविधियों और रिकवरी से जुड़ी मेट्रिक के साथ मिलाएं. जैसे, respiratory-rate-sleep-summary, daily-sleep-temperature-derivations, daily-heart-rate-variability, और daily-oxygen-saturation.
  • मिलान: reconcile ऑपरेशन का इस्तेमाल करके यह पक्का करें कि अलग-अलग डिवाइसों (जैसे, पहनने योग्य डिवाइस और बिस्तर का सेंसर) से मिले, एक-दूसरे से मिलते-जुलते नींद के लॉग को एक "मुख्य" नींद के रिकॉर्ड में मर्ज कर दिया गया हो.

गहरी नींद में बिताए गए कुल समय का हिसाब लगाना

किसी रात में, उपयोगकर्ता के गहरी नींद में बिताए गए कुल समय का हिसाब लगाने के लिए:

  1. तय की गई समयावधि के लिए, sleep डेटा टाइप की क्वेरी करें.
  2. स्टेज की सूची में स्क्रोल करें और उन इंटरवल का पता लगाएं जहां type DEEP है.
  3. गहरी नींद के हर इंटरवल की अवधि (खत्म होने का समय - शुरू होने का समय) का हिसाब लगाएं और उन्हें जोड़ें.

इन सभी को जोड़ने पर, उस सेशन के दौरान गहरी नींद की कुल अवधि का पता चलता है.