Update Profile
Modifies a user's profile data.
Scope: profile
Request
POST | /1/user/[user-id]/profile.json |
URI Arguments
user-id | required | The encoded ID of the user. Use "-" (dash) for current logged-in user. |
Query Parameters
aboutMe | optional | Value of "About Me" field in user's profile. | string |
birthday | optional | Date of birth in the format yyyy-MM-dd . |
string ($date) |
city | optional | Value of "City" field in user's profile. Location scope is required to update this value. | string |
clockTimeDisplayFormat | optional | How trackers with a clock should display the time. Either 12hour or 24hour. | string |
country | optional | Value of Country field in user's profile; two-character code. Location scope is required to update this value. | string |
foodsLocale | optional | Food Database Locale; in the format "xx_XX". Nutrition scope is required to update this value. | string |
fullName | optional | Fitbit user's full name. | string |
gender | optional | The Fitbit user's gender identity. Supported values: MALE | FEMALE |
NA |
string |
glucoseUnit | optional | Default glucose unit on website (doesn't affect API); one of (en_US, "any" for METRIC). | string |
height | optional | Height in the format X.XX . Displayed in the unit
system that corresponds to the Accept-Language header provided. |
string ($decimal) |
heightUnit | optional | Default height/distance unit on website (doesn't affect API); one of (en_US, "any" for METRIC). | string |
locale | optional | Locale of website (country/language); one of the locales, currently – (en_US, fr_FR, de_DE, es_ES, en_GB, en_AU, en_NZ, ja_JP). | string |
localeCountry | optional | Country; in the format xx . You should specify either
locale or both - localeLang and localeCountry (locale is higher
priority). |
string |
localeLang | optional | Language; in the format xx . You should specify either
locale or both - localeLang and localeCountry (locale is higher
priority). |
string |
startDayOfWeek | optional | Start day of the week; what day the week should start on. Either Sunday or Monday. | string |
state | optional | Value of "State" field in user's profile; two-character code. Valid only if country is set to US. Location scope is required to update this value. | string |
strideLengthRunning | optional | Walking stride length in the format X.XX . Displayed
in the unit system that corresponds to the Accept-Language header
provided. |
string ($decimal) |
strideLengthWalking | optional | Walking stride length in the format X.XX . Displayed
in the unit system that corresponds to the Accept-Language header
provided. |
string ($decimal) |
timezone | optional | Timezone; in the format "America/Los_Angeles". | string |
waterUnit | optional | Default water unit on website (doesn't affect API); one of (en_US, "any" for METRIC). Nutrition scope is required to update this value. | string |
weightUnit | optional | Default weight unit on website (doesn't affect API); one of (en_US, en_GB, "any" for METRIC). | string |
Request Headers
authorization | required | Specify the token type and Fitbit user’s access token. Token type: Bearer |
accept | optional | Defines 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. |
content-length | required | According to RFC 7230, section 3.3.2, this HTTP request requires the Content-Length header field containing the anticipated size of the payload body. |
Examples
POST https://api.fitbit.com/1/user/-/profile.json
POST https://api.fitbit.com/1/user/GGNJL9/profile.json
POST https
curl -X POST "https://api.fitbit.com/1/user/-/profile.json \
-F "country=US" \
-F "state=CA" \
-H "accept: application/json" \
-H "authorization: Bearer <access_token>" \
-H "content-length: <message_body_size>"
-F "country=US" \
-F "state=CA" \
-H "accept: application/json" \
-H "authorization: Bearer <access_token>" \
-H "content-length: <message_body_size>"
Response
Element Name | Description |
user : aboutMe | The "About Me" information specified in the user's account settings. |
user : age | The age based on their specified birthday in the user's account settings. |
user : ambassador | Supported: true | false |
user : autoStrideEnabled | Supported: true | false |
user : avatar | The user's avatar picture displayed as 100 pixels square. |
user : avatar150 | The user's avatar picture displayed as 150 pixels square. |
user : avatar640 | The user's avatar picture displayed as 640 pixels square. |
user : averageDailySteps | Average daily steps calculated for the user. |
user : challengesBeta | Supported: true | false |
user : city | The city specified in the user's account settings. Location scope is required to see this value. |
user : clockTimeDisplayFormat | Supported: 12hour | 24hour |
user : country | The country specified in the user's account settings. Location scope is required to see this value. |
user : corporate | Supported: true | false |
user : corporateAdmin | Supported: true | false |
user : dateOfBirth | The birthday date specified in the user's account settings. |
user : displayName | The name shown when the user's friends look at their Fitbit profile, send a message, or other interactions within the Friends section of the Fitbit app or fitbit.com dashboard, such as challenges. |
user : displayNameSetting | Returns the displayName's attribute. Supported: name | username |
user : distanceUnit | The unit system defined in the user's account settings. See Localization. |
user : encodedId | The ID representing the Fitbit user. |
user : features : exerciseGoal | Supported: true | false |
user : firstName | The first name value specified in the user's account settings. |
user : foodsLocale | The locale defined in the user's account settings. See Localization. Nutrition scope is required to see this value. |
user : fullName | The full name value specified in the user's account settings. |
user : gender | The user's specified gender. Supported: MALE | FEMALE |
NA |
user : glucloseUnit | The unit system defined in the user's account settings. See Localization. |
user : height | The height value specified in the user's account settings. |
user : heightUnit | The unit system defined in the user's account settings. See Localization. |
user : isBugReportEnabled | Supported: true | false |
user : isChild | Supported: true | false |
user : isCoach | Supported: true | false |
user : languageLocale | The language locale defined in the user's account settings. See Localization. |
user : lastName | The last name value specified in the user's account settings. |
user : legalTermsAcceptRequired | Supported: true | false |
user : locale | The locale defined in the user's account settings. See Localization. |
user : memberSince | The date the user created their Fitbit account. |
user : mfaEnabled | Supported: true | false |
user : offsetFromUTCMillis | The timezone offset in milliseconds from UTC. |
user : phoneNumber | Multi-factor Authentication is required to see this value. |
user : sdkDeveloper | Supported: true | false |
user : sleepTracking | The sleep sensitivity defined in the user's account
settings. Supported: Normal | Sensitive |
user : startDayOfWeek | The day the week begins as defined in the user's account
settings. Supported: SUNDAY | MONDAY |
user : state | Location scope is required to see this value. |
user : strideLengthRunning | The stride length value specified in the unit system defined in the user's account settings. See Localization. |
user : strideLengthRunningType | Specifies if the user's stride length is determined
automatically (default) or manually as defined in the
user's account settings. Supported: default | manual |
user : strideLengthWalking | The stride length value specified in the unit system defined in the user's account settings. See Localization. |
user : strideLengthWalkingType | Specifies if the user's stride length is determined
automatically (default) or manually as defined in the
user's account settings. Supported: default | manual |
user : swimUnit | The unit system defined in the user's account settings. See Localization. |
user : temperatureUnit | The unit system defined in the user's account settings. See Localization. |
user : timezone | The timezone defined in the user's account settings. |
user : topBadges | An array listing the Fitbit badges currently earned by the user. |
user : waterUnit | The unit system defined in the user's account settings. See Localization. Nutrition scope is required to see this value. |
user : waterUnitName | The unit of measure defined by the waterUnit metric. See Localization. Nutrition scope is required to see this value. |
user : weight | The user's current weight defined by the weightUnit metric. Body scope is required to see this value. |
user : weightUnit | The unit system defined in the user's account settings. See Localization. |
{ "user": { "aboutMe": <value>, "age": <value>, "ambassador": <value>, "autoStrideEnabled": <value>, "avatar": "<value>", "avatar150": "<value>", "avatar640": "<value>", "averageDailySteps": <value>, "challengesBeta": <value>, "clockTimeDisplayFormat": <value>, "country": <value>, "corporate": <value>, "corporateAdmin": <value>, "dateOfBirth": <value>, "displayName": <value>, "displayNameSetting": <value>, "distanceUnit": <value>, "encodedId": <value>, "features": { "exerciseGoal": <value> }, "firstName": <value>, "foodsLocale": <value>, "fullName": <value>, "gender": <value>, "glucoseUnit": <value>, "height": <value>, "heightUnit": <value>, "isBugReportEnabled": <value>, "isChild": <value>, "isCoach": <value>, "languageLocale": <value>, "lastName": <value>, "legalTermsAcceptRequired": <value>, "locale": <value>, "memberSince": <value>, "mfaEnabled": <value>, "offsetFromUTCMillis": <value>, "sdkDeveloper": <value>, "sleepTracking": <value>, "startDayOfWeek": <value>, "state": <value>, "strideLengthRunning": <value>, "strideLengthRunningType": <value>, "strideLengthWalking": <value>, "strideLengthWalkingType": <value>, "swimUnit": <value>, "temperatureUnit": <value>, "timezone": <value>, "topBadges": [ <array of top badges received> ] "waterUnit": <value>, "waterUnitName": <value>, "weight": <value>, "weightUnit": <value> } }
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
201 | 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.