API

Save profile settings

POST/api/crm/v2/profile.updatev2
operationId: profile.update

Partially updates the current user's profile: only the provided keys are processed, other fields remain unchanged. Suitable for saving a single field or submitting the entire form in one request.

An empty value clears the field (name, telegram_user_id, phone, photo). If the value is required, an empty value returns error 118: timezone, language, and phone.

Email cannot be changed here: changing the login requires confirmation and has separate methods: profile.request_email_change and profile.cancel_email_change.

Phone is a pair of keys that must be sent together; sending one without the other returns error 117. Changing the password requires old_password (error 128 if it does not match), sends a notification to the email, and terminates all user sessions, including the current one: credentials have changed, so re-login is required. Enabling 2FA requires a valid otp code; disabling does not. otp_reset issues a new secret, leaves 2FA disabled, and returns secret and qr for new setup.

Authorization

api-token + language + role

Request body multipart/form-data

object
namestringcan be null

An empty value clears the field

Example: John Smith

phone_format_idinteger (PhoneFormatId)

Country code: 1-🇷🇺(+7|8), 2-🇦🇿(+994|0), 3-🇧🇾(+375|80), 4-🇰🇿(+7|8), 6-🇷🇸(+381|0), 7-🇹🇷(+90|0), 8-🇺🇦(+380|0), 9-🇵🇹(+351|0), 10-🇰🇬(+996|0), 11-🇺🇸(+1), 12-🇫🇷(+33|0), 13-🇲🇩(+373|0), 15-🇪🇪(+372), 18-🇬🇪(+995), 19-🇺🇿(+998), 22-🇵🇱(+48|0), 23-🇹🇯(+992|8), 25-🇷🇴(+40|0), 44-🇨🇭(+41|0)

Example: 1

phone_numberstringcan be null

Only required together with phone_format_id; phone number is mandatory

Example: (952) 056-31-65

telegram_user_idstringcan be null

Digits only; an empty value clears the field

Example: 476962294

timezonestring

Example: Europe/Kaliningrad

languagestring

Example: ru

photostring · binarycan be null

The file replaces the avatar; an empty text field removes it

passwordstring

New password; only together with old_password

Example: 987654321

old_passwordstring

Current password; required when changing the password

Example: 123456789

otp_enabledboolean

true enables 2FA and requires otp, false disables it

Example: true

otp_resetboolean

Issues a new 2FA secret; 2FA remains disabled until re-binding

Example: false

otpstring

Current secret code; required when enabling 2FA and for otp_reset

Example: 192870

Responses

OK

object
statusstringrequired

Values:successerror

Example: success

dataobject
descriptionstring

Example: Successfully saved

photostring

Exists if the avatar has been replaced

Example: data:image/jpeg;base64,/9j/4AAQSkZJRg...

secretstring

Present when otp_reset

Example: KA2G2UKBHBBHKOJR

qrstring

Present for otp_reset

Example: https://api.qrserver.com/v1/create-qr-code/?data=otpauth%3A%2F%2Ftotp%2FFS%2520Admin%3Akalabunga82%40gmail.com%3Fsecret%3DKA2G2UKBHBBHKOJR%26issuer%3DFS%2520Admin&size=520x520&margin=15