Marrow Health
HI
डाउनलोड

ऑटोमेशन: आपका डेटा, तय समय पर भेजा गया

Marrow आपके स्वास्थ्य डेटा की एक फ़ाइल आपके चुने किसी भी URL पर, आपके चुने समय पर, सीधे फ़ोन से POST कर सकता है। यह पेज संदर्भ है: इसे कैसे सेट करें, हर पेलोड कैसा दिखता है, और उसे लेने वाली चीज़ कैसे लिखें।

n8n, Zapier, Make, Home Assistant, Google Sheets और InfluxDB के लिए बने-बनाए सेटअप कनेक्शन में हैं.

Marrow की सभी गाइड: MCP · सेल्फ़-होस्टेड मिरर · ऑटोमेशन · फ़ाइलें · सहायता

ऑटोमेशन क्या है

एक्सपोर्ट, स्वचालित में सहेजा हुआ एक काम: एक प्रकार का डेटा, एक फ़ॉर्मैट, एक तारीख़ों का दायरा, एक URL, एक समय-अंतराल। Marrow अपने जाँचे हुए स्टोर से फ़ाइल बनाता है और ऐप बंद होने पर भी उसे URL पर POST करता है, हर सिंक कमिट के बाद और हर बैकग्राउंड रिफ़्रेश पर, जब भी अंतराल बीत चुका हो। कुछ भी हमारे ज़रिए नहीं गुज़रता: फ़ोन सीधे आपके एंडपॉइंट से बात करता है।

इसे सेट करना

  1. एक्सपोर्ट टैब, स्वचालित: इसे चालू करें, फिर नया ऑटोमेशन। किसी टूल के पेज से बनाने पर (n8n, Zapier, Home Assistant और बाकी, जो कनेक्शन में हैं), ऑटोमेशन उस टूल का नाम लेता है और हर फ़ील्ड के पास बताता है कि टूल को वहाँ क्या चाहिए।
  2. पता: वह https URL जिस पर यह POST करे। हेडर: जो भी आपके रिसीवर को चाहिए (Authorization बेयरर टोकन, X-Gitlab-Token, कुछ भी)। जब टूल को कोई हेडर नहीं चाहिए, तब "हेडर जोड़ें" "और विकल्प" के अंदर मिलता है।
  3. डेटा: स्वास्थ्य मेट्रिक्स, वर्कआउट, स्ट्रेंथ लॉग, पोषण डायरी, या लक्षण और मूड, JSON या CSV में। एक ऑटोमेशन एक ही प्रकार का होता है, इसलिए जितने प्रकार चाहिए उतने बनाएँ। हर चालू ऑटोमेशन एक कनेक्शन गिना जाता है: मुफ़्त प्लान में एक समय में 1 कनेक्शन चालू रह सकता है, Marrow Pro में 10 तक, AI और सर्वर मिलाकर।
  4. अंतराल: हर इतने मिनट, घंटे या दिन में। तारीख़ों का दायरा, एग्रीगेशन और टाइमआउट और विकल्प में हैं.
  5. अभी चलाएं पहला पेलोड भेजता है, ताकि शेड्यूल का इंतज़ार करने से पहले आप रिसीवर जाँच सकें।

तारीख़ों के दायरे

पेलोड के रूप

स्वास्थ्य मेट्रिक्स (दैनिक योग, JSON)

Health Auto Export के मेट्रिक्स जैसा ही ढाँचा (name, units और qty वाले data की एक metrics सूची), इसलिए उस ऐप के लिए लिखे रिसीवर में थोड़े ही बदलाव करने पड़ते हैं: यहाँ तारीख़ें सादे दिन हैं, टाइमस्टैम्प नहीं, और नीचे के वर्कआउट और स्ट्रेंथ पेलोड Marrow के अपने हैं। मान उस सहेजी हुई इकाई में हैं जो units में लिखी है (kg, m, mL, degC, kcal, count)। हार्ट रेट हर दिन के Avg, Min और Max के रूप में bpm में आती है, और नींद हर रात के रूप में उसके चरणों के साथ घंटों में। अगर आपको इम्पीरियल चाहिए, तो अपनी तरफ़ बदल लें।

{"data": {"metrics": [
  {"name": "body_mass", "units": "kg",
   "data": [{"date": "2026-09-11", "qty": 81.3}]},
  {"name": "step_count", "units": "count",
   "data": [{"date": "2026-09-11", "qty": 8746}]},
  {"name": "heart_rate", "units": "bpm",
   "data": [{"date": "2026-09-11", "Avg": 71, "Min": 52, "Max": 148}]},
  {"name": "sleep_analysis", "units": "h",
   "data": [{"date": "2026-09-11", "totalSleep": 7.2, "asleep": 7.2, "deep": 1.1, "rem": 1.6, "core": 4.3, "awake": 0.2,
             "sleepStart": "2026-09-10 23:36:00 -0400", "sleepEnd": "2026-09-11 07:02:00 -0400"}]}
]}}

रॉ सैम्पल (रॉ सैम्पल ग्रुपिंग) दैनिक योग की जगह हर सैम्पल को उसके शुरू और खत्म होने के समय के साथ भेजते हैं। CSV मेट्रिक्स उस चौड़ी तालिका के रूप में आते हैं जो फ़ाइलों वाले पेज पर बताई गई है.

वर्कआउट

{"data": {"workouts": [
  {"activity": "Running", "start": "2026-09-11T18:43:41Z", "end": "2026-09-11T19:13:53Z",
   "duration_min": 30.2, "kcal": 512, "distance_mi": 3.06, "avg_hr": 174, "source": "Apple Watch"}
]}}

स्ट्रेंथ लॉग

हर वर्किंग सेट (वार्म-अप छोड़कर), साथ में हर एक्सरसाइज़ की प्रगति और हर मांसपेशी समूह का वॉल्यूम। वज़न उस इकाई में हैं जो आपने सेटिंग्स, इकाइयाँ में चुनी है। unit फ़ील्ड बताती है कि कौन-सी। हर सेट का set_type work, failure या drop होता है, और अगर आपने रिप्स इन रिज़र्व लॉग किए हों तो सेट में rir भी होता है। set_credits गिनता है कि किसी मांसपेशी समूह के नाम कितने सेट गए, और जब एक एक्सरसाइज़ कई समूहों पर काम करती है तो भिन्नों में।

{"data": {"unit": "lb",
  "sets": [{"time": "2026-09-11T17:02:00Z", "session": "Push day", "exercise": "Bench Press",
            "set": 1, "weight": 185, "reps": 8, "est_1rm": 229.6, "set_type": "work"}],
  "exercises": [{"exercise": "Bench Press", "best_est_1rm": 229.6,
                 "sessions": [{"date": "2026-09-11T17:02:00Z", "sets": 3, "top_weight": 185, "top_reps": 8, "est_1rm": 229.6, "volume": 3885}]}],
  "muscle_groups": [{"group": "Chest", "volume": 3108.0, "set_credits": 2.4}]
}}

पोषण डायरी

{"data": {"days": [
  {"day": "2026-09-11", "entries": [
    {"meal": "breakfast", "name": "Oatmeal", "grams": 250, "kcal": 300,
     "protein_g": 10, "carbs_g": 54, "fat_g": 5, "logged_at": "2026-09-11T12:10:00Z",
     "nutrients": {"dietary_fiber": 8.0, "dietary_sugar": 1.2}}
  ]}
]}}

रिसीवर लिखना

जो भी HTTPS POST ले और 2xx से जवाब दे, वह चलेगा: कोई वेबहुक सेवा, सर्वरलेस फ़ंक्शन, या घर के सर्वर पर कोई स्क्रिप्ट। तीन नियम इसे मज़बूत रखते हैं:

बारह लाइन का Python रिसीवर जो हर पोस्ट सहेज लेता है:

from http.server import BaseHTTPRequestHandler, HTTPServer
import time

class H(BaseHTTPRequestHandler):
    def do_POST(self):
        body = self.rfile.read(int(self.headers.get("Content-Length", 0)))
        with open(f"marrow-{int(time.time())}.json", "wb") as f:
            f.write(body)
        self.send_response(200)
        self.end_headers()

HTTPServer(("0.0.0.0", 8798), H).serve_forever()

इसे HTTPS के पीछे रखें (Cloudflare Tunnel, Tailscale Funnel, या कोई भी रिवर्स प्रॉक्सी) और ऑटोमेशन को इस पर लगा दें। अगर आपको फ़ाइलों के फ़ोल्डर की जगह ऐसी कॉपी चाहिए जिससे सवाल पूछे जा सकें, तो सेल्फ़-होस्टेड मिरर वही रिसीवर है जो पहले से लिखा हुआ है।

जानने लायक बातें

समस्या निवारण

अभी चलाएं से जाँचें। उसके नीचे की लाइन बताती है कि क्या हुआ, और और विकल्प, गतिविधि लॉग में पिछली 30 रन उसी लाइन के साथ रहती हैं। जाँच के दौरान हर रन की सूचना पाने के लिए रन होने पर सूचित करें (और विकल्प) चालू करें।

Marrow क्या दिखाता हैक्या करें
जो भेजा गया उसका सार, जैसे 12 diary entriesपहुँच गया: रिसीवर ने 2xx से जवाब दिया। अगर उसकी तरफ़ कुछ नहीं दिखता, तो नीचे की आख़िरी पंक्तियाँ देखें।
Server answered 401 या 403रिसीवर को हेडर चाहिए, या आपका जोड़ा हुआ हेडर गलत है। उसका नाम और मान जाँचें, Bearer और उसके बाद की जगह समेत।
Server answered 404पता गलत है, या रिसीवर सुन नहीं रहा। n8n में Production URL इस्तेमाल करें और वर्कफ़्लो चालू करें। देखें कि अंत में कोई पाथ छूटा तो नहीं।
Server answered 405यह पता POST नहीं लेता। इसे उस एंडपॉइंट पर लगाएँ जो आने वाले डेटा के लिए बना है।
Server answered 413पेलोड रिसीवर के लिए बहुत बड़ा है। छोटा तारीख़ों का दायरा चुनें, कम मेट्रिक्स चुनें, या रॉ सैम्पल की जगह दैनिक योग चुनें।
Server answered 500 या कोई और 5xxरिसीवर इसे सँभालते समय नाकाम हो गया। उसका अपना लॉग देखें। पहले रॉ बॉडी सहेजें, फिर पार्स करें।
अनुरोध का समय समाप्त हो गयारिसीवर ने टाइमआउट से ज़्यादा समय लिया। पहले जवाब दें और काम बाद में करें, या और विकल्प में टाइमआउट बढ़ाएँ (300 सेकंड तक)।
App Transport Security नीति के लिए सुरक्षित कनेक्शन ज़रूरी हैपता इंटरनेट पर सादा http है। https इस्तेमाल करें। iOS Marrow को सादा http सिर्फ़ आपके अपने नेटवर्क पर इस्तेमाल करने देता है।
बताए गए होस्टनेम वाला सर्वर नहीं मिल सकापते में टाइपो है, या ऐसा नाम है जो सिर्फ़ आपका घरेलू नेटवर्क जानता है। फ़ोन पर Safari में उसे जाँचें।
No valid URL - set an https endpoint firstपता खाली है या https:// से शुरू नहीं होता (या आपके अपने नेटवर्क पर http:// से)।
Nothing to export in this rangeतारीख़ों के इस दायरे में उस प्रकार का कोई डेटा नहीं है। और विकल्प में लंबा दायरा चुनें, या पहले कुछ लॉग करें।

एक-एक टूल के हल उसके अपने पेज पर हैं: n8n, Zapier, Make, Home Assistant, Google Sheets, InfluxDB, कोई भी URL.