View as Markdown
Google Health icon

Google Health ACTION

Get Sleep Data

Get the user's sleep sessions with per-stage totals, time asleep and awake, and a derived efficiency figure. A session is attributed to the date the user woke up, matching Fitbit — asking for 2026-08-24 returns the night of the 23rd into the 24th. Example: startDate="2026-08-24" → sessions: [{ startTime, endTime, type: "STAGES", isMainSleep: true, minutesAsleep: 431, minutesAwake: 48, efficiency: 0.9, stageTotals: { LIGHT: 240, DEEP: 71, REM: 120, AWAKE: 48 } }], plus mainSleep and totalMinutesAsleep. Three things to tell the user rather than invent: this API has no sleep score, so none is returned, and efficiency is computed here as time asleep over time in bed — not the figure Fitbit showed. Stage names depend on type, so read stageTotals rather than assuming a fixed set: STAGES sessions report LIGHT/DEEP/REM/AWAKE, older CLASSIC ones only ASLEEP/AWAKE/RESTLESS. Naps are separate sessions with isNap: true. At most 125 sessions per call; truncated: true means narrow the range. See the documentation
  • Action
  • Read only
  • OAuth
  • SDK
  • MCP

IMPLEMENTATION

Call this tool

Connect a user's Google Health account once, then configure and run Get Sleep Data from your backend or agent.

import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "google_health-get-sleep-data",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    google_health: { authProvisionId: "apn_xxxxxxx" },
    startDate: "Start Date",
    endDate: "End Date",
  },
})

console.log(result)

SCHEMA

Inputs

Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.

Get Sleep Data inputs
Property Type Description
startDate Start Date string
Start date in YYYY-MM-DD format (e.g. 2026-08-24), in the user's own timezone. Defaults to today in UTC, which can be a day off from the user's local date late at night — pass an explicit date when the exact day matters.
Optional
endDate End Date string
End date in YYYY-MM-DD format, inclusive. Defaults to Start Date, i.e. a single day. For a whole week, set Start Date to the Monday and End Date to the Sunday.
Optional
fields Fields string[]
Field names to keep on each session. Defaults to a compact set: startTime, endTime, type, isMainSleep, isNap, minutesAsleep, minutesAwake, minutesInSleepPeriod, minutesToFallAsleep, efficiency, stageTotals. Also available (excluded by default because they are verbose): stages (every individual stage segment), shortAwakenings, outOfBedSegments, stagesStatus, minutesAfterWakeUp, utcOffset.
Optional

REFERENCE

Tool details

Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.

Registry key
google_health-get-sleep-data
Version
0.0.2
App
Google Health
Authentication
OAuth
Read-only
Yes
Destructive
No
Open world
Yes