Get Breathing Rate Intraday by Interval
This endpoint returns intraday breathing rate data for a date range. It measures the average breathing rate throughout the day and categories your breathing rate by sleep stage. Sleep stages vary between light sleep, deep sleep, REM sleep, and full sleep.
The single date measurements are provided at the end of a period of sleep. The data returned can and often does reflect a sleep period that began the day before. For example, if you request a daily breathing rate for 2021-12-22, it may include measurements that were taken the previous night on 2021-12-21 when the user started to sleep.
It uses units that correspond to the Accept-Language header provided.
Scope: respiratory_rate
Request
GET | /1/user/[user-id]/br/date/[start-date]/[end-date]/all.json |
URI Arguments
user-id | required | The encoded ID of the user. Use "-" (dash) for current logged-in user. |
start-date | required | The date in the format yyyy-MM-dd or today. |
end-date | required | The date in the format yyyy-MM-dd or today. Maximum range: 30 days |
Request Headers
authorization | required | Specify the token type and Fitbit user’s access token. Token type: Bearer |
accept | optional | The media type of the response content the client is expecting. Supported: application/json |
accept-language | optional | The measurement unit system to use for response values. See Localization. |
accept-locale | optional | The locale to use for response values. See Localization. |
Examples
GET https
-H "accept: application/json" \
-H "authorization: Bearer <access_token>"
Response
Element Name | Description |
br : dateTime | The sleep log date specified within the specified date range in the format YYYY-MM-DD. |
br : value : lightSleepSummary : breathingRate | Average number of breaths taken per minute when the user was in light sleep. |
br : value : deepSleepSummary : breathingRate | Average number of breaths taken per minute when the user was in deep sleep. |
br : value : remSleepSummary : breathingRate | Average number of breaths taken per minute when the user was in rem sleep. |
br : value : fullSleepSummary : breathingRate | Average number of breaths taken per minute throughout the entire period of sleep which you can compare to the sleep stage-specific measurements. |
{ "br": [ { "value": { "deepSleepSummary": { "breathingRate": 16.8 }, "remSleepSummary": { "breathingRate": -1.0 }, "fullSleepSummary": { "breathingRate": 17.8 }, "lightSleepSummary": { "breathingRate": 16.8 }, }, "dateTime": "2021-10-25" }, { "value": { "lightSleepSummary": { "breathingRate": 16.8 }, "deepSleepSummary": { "breathingRate": 16.8 }, "remSleepSummary": { "breathingRate": 16.3 }, "fullSleepSummary": { "breathingRate": 17.8 } }, "dateTime": "2021-10-26" } ] }
Response Headers
content-type | The media type of the response content being sent to the client. Supported: application/json |
fitbit-rate-limit-limit | The quota number of calls. |
fitbit-rate-limit-remaining | The number of calls remaining before hitting the rate limit. |
fitbit-rate-limit-reset | The number of seconds until the rate limit resets. |
Note: The rate limit headers are approximate and asynchronously updated. This means that there may be a minor delay in the decrementing of remaining requests. This could result in your application receiving an unexpected 429 response if you don't track the total number of requests you make yourself.
Response Type
HTTP Status Code | HTTP response code. List of codes are found in the Troubleshooting Guide. |
Status Message | Description of the status code. |
Response Body | Contains the JSON response to the API call. When errors are returned by the API call, the errorType, fieldName and message text will provide more information to the cause of the failure. |
Response Codes
200 | A successful request. |
400 | The request had bad syntax or was inherently impossible to be satisfied. |
401 | The request requires user authentication. |
Note: For a complete list of response codes, please refer to the Troubleshooting Guide.
Additional Information
Sleep periods
Interval values reflect breathing rate measurements taken for periods of sleep between two dates. For most users, values will span multiple dates to account for breathing rates on the date at which the summary was provided, and during the previous night’s sleep.
Sleep Stages
Intraday breathing rate data is categorized by sleep stage. This gives users a sense of how their average breathing rate differs depending on the type of sleep they were in during a sleep cycle. In cases where a sleep period value could not be calculated due to lack of data, a "-1.0" will be returned.
Click here to learn more about the light sleep, deep sleep, and REM sleep stages.
Collecting breathing rate data
Breathing rate data is collected when the user is in an extended period of sleep of at least 3 hours.
There are many factors that can affect a user’s breathing rate value. Recording the data while a person is asleep allows the Fitbit device to correctly and accurately collect breathing rate data. Data is only processed when the user is still. If a user moves too much or their sleep session is too short, this can prevent breathing rate data from being processed correctly. In addition, if recorded data is incapable of computing specific sleep stages for a period of sleep, this will compromise the user’s ability to retrieve a breathing rate value.
The device automatically stops collecting breathing rate data after it determines the user is awake, typically through physical movements. Once the user syncs their device, breathing rate data will begin processing for that sleep period. It usually takes up to 15 minutes for the breathing rate data to be processed and made available to download.
You can read more about data accuracy on https://www.nature.com/articles/s41746-021-00493-6
Subscription Support for Breathing Rate
Breathing Rate does not support subscription notifications (webhooks). Since Breathing Rate is recorded during periods of sleep, the sleep notification arrival time can be used to estimate when the Breathing Rate data will be available (See the "Collecting Data" section). For applications that do not track sleep, or cannot retrieve sleep data, we recommend querying the Breathing Rate data once or twice a day to determine if new data is available (e.g. 12 noon and midnight).
Rate limit
The breathing rate endpoints are bound by our standard rate limit. See Rate Limits.
Device compatibility
Breathing rate data is retrieved from the user’s Fitbit account. This gives the user secure and transparent control over their data. The data is thenprocessed and made available through the API after the user syncs their device with the Fitbit data service.
Most of the current devices sold support breathing rate data collection. See the Fitbit Product page to determine if your specific device supports breathing rate.