2022-11-19 19:52:59 +01:00
---
2022-11-20 16:03:48 +01:00
title: Update account
2022-11-19 19:52:59 +01:00
---
2022-11-20 16:03:48 +01:00
Updates an existing User account.
## Access control
2024-07-08 17:58:16 +03:00
- [Permission level ](/reference/backend/rbac ) `4` or higher is required to update your own User account
- [Permission level ](/reference/backend/rbac ) `8` is required to update **another user's** account
2022-11-19 19:52:59 +01:00
## Endpoints
2022-11-20 16:03:48 +01:00
Updating an existing User account is possible via these endpoints:
2022-11-19 19:52:59 +01:00
| Method | Path | Authentication |
| --------: | :--- | :------------- |
2024-07-08 17:58:16 +03:00
| < Method put /> | `/account/jwt` | [JSON Web Token ](/reference/backend/authentication#jwt-authentication ) |
| < Method put /> | `/account/key` | [API Key & Secret ](/reference/backend/authentication#key-authentication ) |
2022-11-19 19:52:59 +01:00
## Request body
| Property | Type | Description |
| ----------: | :------- | :---------- |
2022-11-20 16:03:48 +01:00
| `bio` | `string` | The User's bio |
2024-07-08 17:58:16 +03:00
| `consent` | `string` | A number that indicates [the consent given by the user ](/reference/backend/account#the-consent-field-is-about-data-protection ) |
| `control` | `string` | A number that indicates [the level of control the user prefers ](/reference/backend/account#the-control-field-is-about-keeping-it-simple ) |
2022-11-26 18:48:43 +00:00
| `github` | `string` | The User's username on GitHub |
2022-11-20 16:03:48 +01:00
| `imperial` | `boolean` | Whether or not the User prefers imperial units |
| `newsletter` | `boolean` | Whether this Person prefers imperial measurements (`true` ) or not (`false` ) |
| `img` | `string` | An image [data-uri][duri] to store with this Person |
| `password` | `string` | The (new) password for the User |
| `username` | `string` | The (new) username for the User |
2022-11-19 19:52:59 +01:00
## Response status codes
Possible status codes for these endpoints are:
| Status code | Description |
| ----------: | :---------- |
| < StatusCode status = "200" / > | success |
| < StatusCode status = "400" / > | the request was malformed |
2022-11-20 16:03:48 +01:00
| < StatusCode status = "401" / > | the request lacks authentication |
| < StatusCode status = "403" / > | authentication failed |
2022-11-19 19:52:59 +01:00
| < StatusCode status = "500" / > | server error |
< Note >
If the status code is not < StatusCode status = "200" /> the `error` property
in the response body should indicate the nature of the problem.
< / Note >
## Response body
| Value | Type | Description |
| ------------------- | -------- | ----------- |
| `result` | String | Either `success` or `error` |
2022-11-26 18:48:43 +00:00
| `error` | String | Will give info on the nature of the error. Only set if an error occurred. |
2022-11-19 19:52:59 +01:00
| `account.id` | Number | The ID of the User |
| `account.bio` | String | The bio of the User |
| `account.consent` | Number | The consent given by the User |
| `account.control` | Number | The control desired by the User |
| `account.createdAt` | String | Date string indicating the moment the User was created |
| `account.email` | String | The E-mail address currently tied to the User |
2022-11-26 18:48:43 +00:00
| `account.github` | String | The GitHub username of the User |
2022-11-19 19:52:59 +01:00
| `account.img` | String | The URL to the image stored with this User |
| `account.imperial` | Boolean| Whether or not the User prefers imperial units |
| `account.initial` | String | The E-mail address that the User was created with |
| `account.language` | String | The language preferred by the user |
2023-03-19 17:05:19 +01:00
| `account.lastSignIn` | String | Date string indicating them moment the User last signed in |
2022-11-19 19:52:59 +01:00
| `account.mfaEnabled` | Boolean| Whether or not the User has MFA enabled |
| `account.newsletter` | Boolean| Whether or not the User is subscribed to the FreeSewing newsletter |
| `account.patron` | Number | The level of patronage the user provides to FreeSewing |
| `account.role` | String | The role of the User |
| `account.status` | Number | The status of the user |
| `account.updatedAt` | String | Date string indicating the last time the User was updated |
| `account.username` | String | The username of the User |
| `account.lusername` | String | A lowercased version of the username of the User |
## Example request
```js
2022-11-20 16:03:48 +01:00
const udpate = await axios.put(
'https://backend.freesewing.org/account/jwt',
{
bio: "I like imperial now",
imperial: true,
username: "ImperialLover"
},
{
headers: {
Authorization: `Bearer ${token}`
}
}
2022-11-19 19:52:59 +01:00
)
```
## Example response
```200.json
{
"result": "success",
"account": {
"id": 14,
2022-11-20 16:03:48 +01:00
"bio": "I like imperial now",
2022-11-19 19:52:59 +01:00
"consent": 1,
"control": 1,
"createdAt": "2022-11-19T18:15:22.642Z",
"email": "test_54c6856275aaa8a1@freesewing .dev",
"github": "",
"img": "https://freesewing.org/avatar.svg",
2022-11-20 16:03:48 +01:00
"imperial": true,
2022-11-19 19:52:59 +01:00
"initial": "test_54c6856275aaa8a1@freesewing .dev",
"language": "en",
2023-03-19 17:05:19 +01:00
"lastSignIn": "2022-11-19T18:15:22.668Z",
2022-11-19 19:52:59 +01:00
"mfaEnabled": false,
"newsletter": false,
"patron": 0,
"role": "user",
"status": 1,
"updatedAt": "2022-11-19T18:15:22.668Z",
2022-11-20 16:03:48 +01:00
"username": "ImperialLover",
"lusername": "imperiallover"
2022-11-19 19:52:59 +01:00
}
}
```
[duri]: https://en.wikipedia.org/wiki/Data_URI_scheme