Page Summary
-
Add hydration data to Google Fit by creating a data source using the
com.google.hydrationdata type. -
Each data point for hydration represents the volume in liters consumed in a single drink, specified as a float.
-
The timestamp for hydration data points indicates when the drink was consumed, with the start and end time being the same as it's an instantaneous data type.
-
Data sources can be created using
DataSource.Builderon Android or by calling the REST API with a POST request. -
Hydration data points can be added using
DataPoint.builderon Android or by sending a PATCH request to the REST API.
You can add hydration data to Google Fit by creating a data source
and using
the com.google.hydration
data type. Each data point represents the volume,
in liters, consumed by a user as part of a single drink. Use a float to
specify volume.
Note: The timestamp indicates when the drink was consumed. Because com.google.hydration
is an instantaneous data type, the start and end time should be the same.
Creating a data source
Android
Use DataSource.Builder
to create a new data source. For example, hydrationSource
.
val
hydrationSource
=
DataSource
.
Builder
()
.
setDataType
(
DataType
.
TYPE_HYDRATION
)
.
setStreamName
(
"hydrationSource"
)
// ...
.
build
()
REST
Call the REST API to create a new data source. For example, HydrationSource
.
HTTP method
POST
Request URL
https://www.googleapis.com/fitness/v1/users/me/dataSources
Request body
{
"dataStreamName": "HydrationSource",
"type": "raw",
"application": {
"detailsUrl": "http://example.com",
"name": "My Example App",
"version": "1"
},
"dataType": {
"name": "com.google.hydration",
"field": [
{
"name": "volume",
"format": "floatPoint",
"optional": false
}
]
}
}
Response
If the data source is created successfully, the response is a 200 OK
status
code. The response body contains a JSON representation of the data source,
including a datasource.dataStreamId
property that you can use as the data
source ID for subsequent requests.
CURL command
$ curl --header "Authorization: Bearer ya29.yourtokenvalue" --request POST \
--header "Content-Type: application/json;encoding=utf-8" --data @hydration-ds.json \
https://www.googleapis.com/fitness/v1/users/me/dataSources
Adding Hydration Data
Android
This example shows you how to create a new data point, and add hydration data for a 0.3 liter drink of water, using your data source.
val
hydration
=
DataPoint
.
builder
(
hydrationSource
)
.
setTimestamp
(
timestamp
,
TimeUnit
.
MILLISECONDS
)
.
setField
(
FIELD_VOLUME
,
0.3f
)
.
build
()
REST
This example shows you how to add hydration data using your data source.
HTTP method
PATCH
Request URL
https://www.googleapis.com/fitness/v1/users/me/dataSources/raw:com.google.hydration:407408718192:HydrationSource/datasets/1275753581000000000-1275753581000000000
Request body
{
"minStartTimeNs": 1275753581000000000,
"maxEndTimeNs": 1275753581000000000,
"dataSourceId": "raw:com.google.hydration:407408718192:HydrationSource",
"point": [
{
"startTimeNanos": 1275753581000000000,
"endTimeNanos": 1275753581000000000,
"dataTypeName": "com.google.hydration",
"value": [
{
"fpVal": 0.3
}
]
}
]
}
Response
If your data point was created successfully, you'll get a 200 OK
HTTP
response status code. The response body contains a JSON representation of
the data set.
CURL command
$ curl --header "Authorization: Bearer ya29.yourtokenvalue" --request PATCH \
--header "Content-Type: application/json;encoding=utf-8" --data @hydration-data.json \
https://www.googleapis.com/fitness/v1/users/me/dataSources/raw:com.google.hydration:407408718192:HydrationSource/datasets/1275753581000000000-1275753581000000000


