User Preferences

Reading user preferences

You may read the user’s preferences by using this API. This is for informational purposes only; the use of any of the other API’s in this documentation does not require you to look up these values.

GEThttps://api.fitnesssyncer.com/api/users/preferences
Scopeprofile_read
Response 200User Preferences
Example request
curl -H "Authorization: Bearer AccessToken" "https://api.fitnesssyncer.com/api/users/preferences"

Request Parameters

None

Response

The response will be a 200 with a JSON body with the User Preferences.

Example JSON

{
    "heightInMeters": 0,
    "canemail": false,
    "autosync": true,
    "bmr": 0,
    "timezone": "UTC",
    "weightMetric": false,
    "heartRateAge": 30,
    "internationaltime": false,
    "timezoneDisplayName": "Coordinated Universal Time",
    "waterML": false,
    "temperatureCelsius": false,
    "heartRateMax": 187,
    "pro": true,
    "displayname": "",
    "heartRateLevel4": 149,
    "heartRateLevel5": 168,
    "heartRateLevel2": 112,
    "distanceMetric": false,
    "privateActivities": false,
    "heartRateLevel3": 130,
    "heartRateLevel1": 74,
    "weekStartsOnMonday": false,
    "bloodChemistryMetric": false
}

Updating user preferences

You may update the user’s preferences by using this API.

POSThttps://api.fitnesssyncer.com/api/users/preferences
Scopeprofile_write
Request bodyUser Preferences
Response 200Object
Fields
JSON ItemData TypeDescription
updatedStringStatus indicating it was updated

Request Parameters

The Request Body will be a JSON object with the changes of the User Preferences.

Response

The response will be a 200 with a JSON body with an updated field as follows:

{"updated": "OK"}

Types

User Preferences

JSON ItemData TypeDescription
autosyncBooleanIf this is a Pro user, this will denote whether Auto-Sync is enabled or not.
bmrIntegerBasal Metabolic Rate. If unknown, this will be 0.
birthdateLongBirth date as an epoch of the user. This will be 0 if unknown.
ageIntegerAge of the user. This will be 0 if unknown. Read-only.
canemailBooleanTrue if FitnessSyncer can periodically send e-mails to this user.
privateActivitiesBooleanIndicates whether the user prefers private activities for destination synchronizations?
heightInMetersDoubleHow tall is the user in meters? If unknown, this will be 0.
distanceMetricBooleanIndicates whether the user prefers metric units for distance and height.
nutritionMetricBooleanIndicates whether the user prefers metric units for nutrition.
weightMetricBooleanIndicates whether the user prefers metric units for weight.
bloodChemistryMetricBooleanIndicates whether the user prefers mmol/L rather than mg/dL for blood chemistry, which covers glucose, cholesterol and triglycerides alike. Named glucoseMetric before API version 2026-10-25, and a client on an earlier version both receives and sends that name instead; exactly one of the two names is ever present.
temperatureCelsiusBooleanIndicates whether the user prefers metric units for temperature.
waterMLBooleanIndicates whether the user prefers metric units for water consumption.
internationaltimeBooleanIndicates whether the user prefers 24-hour time and YYYY-MM-DD dates or not.
weekStartsOnMondayBooleanIndicates whether the user prefers the week to start on Monday instead of Sunday.
localeStringLocale of the user.
emailLocaleStringLocale for e-mail, notifications, and other asynchronous communication to the user.
numericLocaleStringUser’s number locale, currently en or fr.
bodyshapeStringBody Shape of the user. Must be one of: Unspecified, Rectangle, Triangle, Trapezoid, Oval, HourGlass, Round, InvertedTriangle
sexStringGender of the user. Must be one of: Unspecified, Female, Male
timezoneStringUser’s time zone. Consider using the timezone Descriptions API to get the supported timezones.
timezoneDisplayNameStringTime Zone display Name. Read-only.
displaynameStringUser’s Display Name.
heartRateLevel1IntegerUser’s minimum heart rate at level 1 or the system default.
heartRateLevel2IntegerUser’s minimum heart rate at level 2 or the system default.
heartRateLevel3IntegerUser’s minimum heart rate at level 3 or the system default.
heartRateLevel4IntegerUser’s minimum heart rate at level 4 or the system default.
heartRateLevel5IntegerUser’s minimum heart rate at level 5 or the system default.
heartRateAgeIntegerUser’s age last used to calculate the heart rate.
heartRateMaxIntegerUser’s maximum heart rate or the system default.
proBooleanTrue if the user is a FitnessSyncer Pro subscriber Read-only.
betaBooleanTrue if the user has any boolean flags. Read-only.
powerZonesMap of String to Power ZonesList of Power Zone Definitions based on Sport.
sleepRatioDoubleSleep Ratio for Sleep Debt Calculation. Defaults to 0.5 which represents 1:2 ratio (8 hours of sleep to 16 hours awake)
graphSleepByWakeTimeBooleanHow should the system graph sleep? If true, this will graph it based on the awake time. Otherwise, this will be graphed based on bedtime.
glucoseLowDoubleThe lower range of the Glucose Range in mmol/L for graphing.
glucoseHighDoubleThe higher range of the Glucose Range in mmol/L for graphing.
glucosePercentIntegerFrom 0-100%, what is your goal for being in the Glucose Range from Low to High?
bandsBasedOnGlucoseRangeBooleanWhen true, reference bands and KPI shading are derived from your own Glucose Range rather than the standard clinical thresholds. Useful if you are managing diagnosed diabetes to a target agreed with your clinician. The Estimated A1C always uses the standard thresholds.
hiddenReportsArray of StringList of system report ids hidden from the quick-switch tab bar.
hiddenNotebookTypesArray of StringList of TaskTypes hidden from the FitnessSyncer Notebook editor’s tab bar. Must be one of Activity, Allergy, Weight, BloodPressure, BloodPanel, Cholesterol, Condition, CycleTracking, ECG, Glucose, Medication, Nutrition, Oxygen, Sleep, Temperature.

Power Zones

JSON ItemData TypeDescription
baseIntegerBase Power Zone
maxZone1IntegerMaximum value for Zone 1
maxZone2IntegerMaximum value for Zone 2
maxZone3IntegerMaximum value for Zone 3
maxZone4IntegerMaximum value for Zone 4
maxZone5IntegerMaximum value for Zone 5
maxZone6IntegerMaximum value for Zone 6