Google Fit REST · Capability
Google Fit REST API
The Google Fit REST API enables you to store and access health and wellness data in the fitness store. You can manage data sources, datasets, sessions, and aggregate fitness data from apps on any platform.
What You Can Do
GET
Listdatasources
— List data sources
/users/{userId}/dataSources
POST
Createdatasource
— Create a data source
/users/{userId}/dataSources
GET
Getdatasource
— Get a data source
/users/{userId}/dataSources/{dataSourceId}
GET
Getdataset
— Get a dataset
/users/{userId}/dataSources/{dataSourceId}/datasets/{datasetId}
PATCH
Patchdataset
— Add data points to a dataset
/users/{userId}/dataSources/{dataSourceId}/datasets/{datasetId}
POST
Aggregatedataset
— Aggregate data
/users/{userId}/dataset:aggregate
GET
Listsessions
— List sessions
/users/{userId}/sessions
PUT
Updatesession
— Update or insert a session
/users/{userId}/sessions/{sessionId}
DELETE
Deletesession
— Delete a session
/users/{userId}/sessions/{sessionId}
MCP Tools
listdatasources
List data sources
read-only
idempotent
createdatasource
Create a data source
getdatasource
Get a data source
read-only
idempotent
getdataset
Get a dataset
read-only
idempotent
patchdataset
Add data points to a dataset
aggregatedataset
Aggregate data
listsessions
List sessions
read-only
idempotent
updatesession
Update or insert a session
idempotent
deletesession
Delete a session
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Google Fit REST API
description: The Google Fit REST API enables you to store and access health and wellness data in the fitness store. You
can manage data sources, datasets, sessions, and aggregate fitness data from apps on any platform.
tags:
- Google
- Fitness
- API
created: '2026-05-06'
modified: '2026-05-06'
capability:
consumes:
- type: http
namespace: google-fitness
baseUri: https://www.googleapis.com/fitness/v1
description: Google Fit REST API HTTP API.
authentication:
type: bearer
token: '{{GOOGLE_FITNESS_TOKEN}}'
resources:
- name: users-userid-datasources
path: /users/{userId}/dataSources
operations:
- name: listdatasources
method: GET
description: List data sources
inputParameters:
- name: userId
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: createdatasource
method: POST
description: Create a data source
inputParameters:
- name: userId
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: users-userid-datasources-datasourceid
path: /users/{userId}/dataSources/{dataSourceId}
operations:
- name: getdatasource
method: GET
description: Get a data source
inputParameters:
- name: userId
in: path
type: string
required: true
- name: dataSourceId
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: users-userid-datasources-datasourceid-datasets-d
path: /users/{userId}/dataSources/{dataSourceId}/datasets/{datasetId}
operations:
- name: getdataset
method: GET
description: Get a dataset
inputParameters:
- name: userId
in: path
type: string
required: true
- name: dataSourceId
in: path
type: string
required: true
- name: datasetId
in: path
type: string
required: true
- name: limit
in: query
type: integer
- name: pageToken
in: query
type: string
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: patchdataset
method: PATCH
description: Add data points to a dataset
inputParameters:
- name: userId
in: path
type: string
required: true
- name: dataSourceId
in: path
type: string
required: true
- name: datasetId
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: users-userid-dataset-aggregate
path: /users/{userId}/dataset:aggregate
operations:
- name: aggregatedataset
method: POST
description: Aggregate data
inputParameters:
- name: userId
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: users-userid-sessions
path: /users/{userId}/sessions
operations:
- name: listsessions
method: GET
description: List sessions
inputParameters:
- name: userId
in: path
type: string
required: true
- name: startTime
in: query
type: string
- name: endTime
in: query
type: string
- name: pageToken
in: query
type: string
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: users-userid-sessions-sessionid
path: /users/{userId}/sessions/{sessionId}
operations:
- name: updatesession
method: PUT
description: Update or insert a session
inputParameters:
- name: userId
in: path
type: string
required: true
- name: sessionId
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: deletesession
method: DELETE
description: Delete a session
inputParameters:
- name: userId
in: path
type: string
required: true
- name: sessionId
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
exposes:
- type: rest
port: 8080
namespace: google-fitness-rest
description: REST adapter for Google Fit REST API.
resources:
- path: /users/{userId}/dataSources
name: listdatasources
operations:
- method: GET
name: listdatasources
description: List data sources
call: google-fitness.listdatasources
with:
userId: rest.userId
outputParameters:
- type: object
mapping: $.
- path: /users/{userId}/dataSources
name: createdatasource
operations:
- method: POST
name: createdatasource
description: Create a data source
call: google-fitness.createdatasource
with:
userId: rest.userId
outputParameters:
- type: object
mapping: $.
- path: /users/{userId}/dataSources/{dataSourceId}
name: getdatasource
operations:
- method: GET
name: getdatasource
description: Get a data source
call: google-fitness.getdatasource
with:
userId: rest.userId
dataSourceId: rest.dataSourceId
outputParameters:
- type: object
mapping: $.
- path: /users/{userId}/dataSources/{dataSourceId}/datasets/{datasetId}
name: getdataset
operations:
- method: GET
name: getdataset
description: Get a dataset
call: google-fitness.getdataset
with:
userId: rest.userId
dataSourceId: rest.dataSourceId
datasetId: rest.datasetId
outputParameters:
- type: object
mapping: $.
- path: /users/{userId}/dataSources/{dataSourceId}/datasets/{datasetId}
name: patchdataset
operations:
- method: PATCH
name: patchdataset
description: Add data points to a dataset
call: google-fitness.patchdataset
with:
userId: rest.userId
dataSourceId: rest.dataSourceId
datasetId: rest.datasetId
outputParameters:
- type: object
mapping: $.
- path: /users/{userId}/dataset:aggregate
name: aggregatedataset
operations:
- method: POST
name: aggregatedataset
description: Aggregate data
call: google-fitness.aggregatedataset
with:
userId: rest.userId
outputParameters:
- type: object
mapping: $.
- path: /users/{userId}/sessions
name: listsessions
operations:
- method: GET
name: listsessions
description: List sessions
call: google-fitness.listsessions
with:
userId: rest.userId
outputParameters:
- type: object
mapping: $.
- path: /users/{userId}/sessions/{sessionId}
name: updatesession
operations:
- method: PUT
name: updatesession
description: Update or insert a session
call: google-fitness.updatesession
with:
userId: rest.userId
sessionId: rest.sessionId
outputParameters:
- type: object
mapping: $.
- path: /users/{userId}/sessions/{sessionId}
name: deletesession
operations:
- method: DELETE
name: deletesession
description: Delete a session
call: google-fitness.deletesession
with:
userId: rest.userId
sessionId: rest.sessionId
outputParameters:
- type: object
mapping: $.
- type: mcp
port: 9090
namespace: google-fitness-mcp
transport: http
description: MCP adapter for Google Fit REST API for AI agent use.
tools:
- name: listdatasources
description: List data sources
hints:
readOnly: true
destructive: false
idempotent: true
call: google-fitness.listdatasources
with:
userId: tools.userId
inputParameters:
- name: userId
type: string
description: userId
required: true
outputParameters:
- type: object
mapping: $.
- name: createdatasource
description: Create a data source
hints:
readOnly: false
destructive: false
idempotent: false
call: google-fitness.createdatasource
with:
userId: tools.userId
inputParameters:
- name: userId
type: string
description: userId
required: true
outputParameters:
- type: object
mapping: $.
- name: getdatasource
description: Get a data source
hints:
readOnly: true
destructive: false
idempotent: true
call: google-fitness.getdatasource
with:
userId: tools.userId
dataSourceId: tools.dataSourceId
inputParameters:
- name: userId
type: string
description: userId
required: true
- name: dataSourceId
type: string
description: dataSourceId
required: true
outputParameters:
- type: object
mapping: $.
- name: getdataset
description: Get a dataset
hints:
readOnly: true
destructive: false
idempotent: true
call: google-fitness.getdataset
with:
userId: tools.userId
dataSourceId: tools.dataSourceId
datasetId: tools.datasetId
limit: tools.limit
pageToken: tools.pageToken
inputParameters:
- name: userId
type: string
description: userId
required: true
- name: dataSourceId
type: string
description: dataSourceId
required: true
- name: datasetId
type: string
description: datasetId
required: true
- name: limit
type: integer
description: limit
- name: pageToken
type: string
description: pageToken
outputParameters:
- type: object
mapping: $.
- name: patchdataset
description: Add data points to a dataset
hints:
readOnly: false
destructive: false
idempotent: false
call: google-fitness.patchdataset
with:
userId: tools.userId
dataSourceId: tools.dataSourceId
datasetId: tools.datasetId
inputParameters:
- name: userId
type: string
description: userId
required: true
- name: dataSourceId
type: string
description: dataSourceId
required: true
- name: datasetId
type: string
description: datasetId
required: true
outputParameters:
- type: object
mapping: $.
- name: aggregatedataset
description: Aggregate data
hints:
readOnly: false
destructive: false
idempotent: false
call: google-fitness.aggregatedataset
with:
userId: tools.userId
inputParameters:
- name: userId
type: string
description: userId
required: true
outputParameters:
- type: object
mapping: $.
- name: listsessions
description: List sessions
hints:
readOnly: true
destructive: false
idempotent: true
call: google-fitness.listsessions
with:
userId: tools.userId
startTime: tools.startTime
endTime: tools.endTime
pageToken: tools.pageToken
inputParameters:
- name: userId
type: string
description: userId
required: true
- name: startTime
type: string
description: startTime
- name: endTime
type: string
description: endTime
- name: pageToken
type: string
description: pageToken
outputParameters:
- type: object
mapping: $.
- name: updatesession
description: Update or insert a session
hints:
readOnly: false
destructive: false
idempotent: true
call: google-fitness.updatesession
with:
userId: tools.userId
sessionId: tools.sessionId
inputParameters:
- name: userId
type: string
description: userId
required: true
- name: sessionId
type: string
description: sessionId
required: true
outputParameters:
- type: object
mapping: $.
- name: deletesession
description: Delete a session
hints:
readOnly: false
destructive: true
idempotent: true
call: google-fitness.deletesession
with:
userId: tools.userId
sessionId: tools.sessionId
inputParameters:
- name: userId
type: string
description: userId
required: true
- name: sessionId
type: string
description: sessionId
required: true
outputParameters:
- type: object
mapping: $.
binds:
- namespace: env
keys:
GOOGLE_FITNESS_TOKEN: GOOGLE_FITNESS_TOKEN