Skip to main content
Glama

getActiveZoneMinutes

Retrieve Fitbit Active Zone Minutes data for specified dates or periods to track moderate-to-vigorous exercise intensity and monitor fitness progress.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNoDate in YYYY-MM-DD format. If not specified, will use today.
periodNoPeriod for data: 1d, 7d, 30d, 1w, 1m

Implementation Reference

  • The handler function that fetches and returns active zone minutes data from the Fitbit API for the specified date and optional period, using shared helpers formatDate and makeApiRequest.
    async ({ date, period }) => { try { const formattedDate = formatDate(date); let endpoint = ""; if (period) { endpoint = `/user/-/activities/active-zone-minutes/date/${formattedDate}/${period}.json`; } else { endpoint = `/user/-/activities/active-zone-minutes/date/${formattedDate}/1d.json`; } const data = await makeApiRequest(endpoint); return { content: [ { type: "text", text: JSON.stringify( { date: formattedDate, activeZones: data["activities-active-zone-minutes"] || [], intraday: data["activities-active-zone-minutes-intraday"] || {}, }, null, 2 ), }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error: ${ error instanceof Error ? error.message : String(error) }`, }, ], isError: true, }; } }
  • Input schema using Zod for date (optional string) and period (optional string) parameters.
    { date: z .string() .optional() .describe("Date in YYYY-MM-DD format. If not specified, will use today."), period: z .string() .optional() .describe("Period for data: 1d, 7d, 30d, 1w, 1m"), },
  • src/server.ts:714-768 (registration)
    The MCP server.tool registration for the getActiveZoneMinutes tool, including name, input schema, and handler function.
    server.tool( "getActiveZoneMinutes", { date: z .string() .optional() .describe("Date in YYYY-MM-DD format. If not specified, will use today."), period: z .string() .optional() .describe("Period for data: 1d, 7d, 30d, 1w, 1m"), }, async ({ date, period }) => { try { const formattedDate = formatDate(date); let endpoint = ""; if (period) { endpoint = `/user/-/activities/active-zone-minutes/date/${formattedDate}/${period}.json`; } else { endpoint = `/user/-/activities/active-zone-minutes/date/${formattedDate}/1d.json`; } const data = await makeApiRequest(endpoint); return { content: [ { type: "text", text: JSON.stringify( { date: formattedDate, activeZones: data["activities-active-zone-minutes"] || [], intraday: data["activities-active-zone-minutes-intraday"] || {}, }, null, 2 ), }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error: ${ error instanceof Error ? error.message : String(error) }`, }, ], isError: true, }; } } );

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/NitayRabi/fitbit-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server