Группа методов Users предназначена для управления аутентификацией и безопасностью пользователя.
Она позволяет клиенту авторизоваться с использованием локальных учётных данных, инициировать или завершить процесс восстановления пароля, а также обновить токен доступа с помощью refresh-токена.
Эти методы обеспечивают базовый уровень взаимодействия пользователя с API и используются для получения и поддержания авторизованной сессии.
Documentation
/api/v1/users/local/authenticate
POST
Выполняет аутентификацию пользователя с использованием локальных учетных данных (email + пароль) и создаёт серверную сессию.
После успешного входа сервер возвращает текст OK и устанавливает cookies (session_id, access_token, refresh_token), которые используются для последующих авторизованных запросов.
URL
https://quickex.io/api/v1/users/local/authenticate
Требуется авторизация
Нет (публичный вход по локальным учетным данным).
Заголовки
Accept: application/jsonContent-Type: application/json
Тело запроса (JSON)
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
email |
string | yes | Email пользователя. |
password |
string | yes | Пароль пользователя. |
browserFingerprint |
string | yes | Уникальный отпечаток браузера для защиты сессии. |
{
"browserFingerprint": "1231231231231231212312312",
"email": "test@test.com",
"password": "testtest"
}
Пример запроса (cURL)
curl -X POST \
'https://quickex.io/api/v1/users/local/authenticate' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"browserFingerprint": "1231231231231231212312312",
"email": "test@test.com",
"password": "testtest"
}'
Ответы
| Код | Тело | Описание |
|---|---|---|
201 Created |
OK |
Аутентификация прошла успешно. Сервер устанавливает cookies с идентификаторами сессии и токенами (session_id, access_token, refresh_token). |
400 |
JSON error | Неверный формат запроса или отсутствуют обязательные поля. |
401 |
JSON error | Некорректные учетные данные. |
5xx |
— | Ошибка сервера. Попробуйте позже. |
Успешный ответ включает заголовки Set-Cookie и session-id, которые устанавливают пользовательскую сессию.
Примечания
- Храните токены и cookies только в безопасных местах (HttpOnly/Secure cookies, переменные окружения, хранилища секретов).
browserFingerprintдолжен оставаться неизменным для конкретного устройства/браузера.- После входа используйте выданные cookies для обращения к защищённым методам API v1.
Code Sample
curl -X POST \
'https://quickex.io/api/v1/users/local/authenticate' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"browserFingerprint": "1231231231231231212312312",
"email": "test@test.com",
"password": "testtest"
}'Response Example
OkTry it out
Leave empty to use default
Request Body
Headers
Documentation
Инициирует процесс сброса пароля. На указанный email будет отправлен код восстановления пароля.
Этот код необходимо сохранить для дальнейшего использования в методе /api/v1/users/local/reset-password.
URL
https://quickex.io/api/v1/users/local/request-password-reset
Требуется авторизация
Нет (публичный запрос на сброс пароля).
Заголовки
Accept: application/jsonContent-Type: application/json
Тело запроса (JSON)
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
email |
string | yes | Email пользователя, для которого запрашивается сброс пароля. |
{
"email": "user@example.com"
}
Пример запроса (cURL)
curl -X POST \
'https://quickex.io/api/v1/users/local/request-password-reset' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"email": "user@example.com"
}'
Ответы
| Статус | Тело | Описание |
|---|---|---|
200 OK |
{"status": "OK"} |
Запрос выполнен успешно. На указанный email был отправлен код восстановления. |
400 |
JSON error | Ошибка валидации (например, указан неверный email). |
5xx |
— | Ошибка сервера. Попробуйте позже. |
{
"status": "ERR_VALIDATION",
"message": "Validation Exception",
"data": {
"email": {
"isEmail": "email must be an email"
}
}
}
Примечания
- После вызова этого метода на указанный email будет отправлен код восстановления пароля.
- Сохраните этот код — он потребуется на следующем шаге при использовании метода
/api/v1/users/local/reset-password.- Если email не существует или указан неверно, сервер вернёт ошибку валидации (400).
Code Sample
curl -X POST \
'https://quickex.io/api/v1/users/local/request-password-reset' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"email": "user@example.com"
}'Response Example
OkTry it out
Leave empty to use default
Request Body
Headers
Documentation
Завершает процесс сброса пароля.
Пользователь должен предоставить код восстановления, полученный по email в результате вызова метода
/api/v1/users/local/request-password-reset, а также указать новый пароль.
Если операция прошла успешно, пароль будет обновлён, и пользователь сможет войти с новыми учетными данными.
URL
https://quickex.io/api/v1/users/local/reset-password
Требуется авторизация
Нет (используется код восстановления).
Заголовки
Accept: application/jsonContent-Type: application/json
Тело запроса (JSON)
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
email |
string | yes | Email, для которого выполняется сброс пароля. |
resetCode |
string | yes | Код восстановления, полученный по email после вызова метода request-password-reset. |
password |
string | yes | Новый пароль. |
{
"resetCode": "1231231231231231212312312",
"password": "testtest",
"email": "test@example.com"
}
Пример запроса (cURL)
curl -X POST \
'https://quickex.io/api/v1/users/local/reset-password' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"resetCode": "1231231231231231212312312",
"password": "testtest",
"email": "test@example.com"
}'
Ответы
| Статус | Тело | Описание |
|---|---|---|
200 OK |
{"status":"OK","message":"Password has been reset"} |
Пароль успешно сброшен. |
401 |
{"status":"ERR_INVALID_PASSWORD_RESET_CODE","message":"Unauthorized"} |
Указанный код восстановления недействителен или истёк. |
400 |
{"statusCode":400,"error":"Bad Request","message":["email must be an email"]} |
Ошибка валидации (например, неверный формат email). |
5xx |
— | Ошибка сервера. Попробуйте позже. |
Примечания
- Этот метод используется только после вызова
/api/v1/users/local/request-password-reset.- Код восстановления имеет ограниченный срок действия.
- После успешного сброса пароля используйте новые учетные данные для входа через
/api/v1/users/local/authenticate.
Code Sample
curl -X POST \
'https://quickex.io/api/v1/users/local/reset-password' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"resetCode": "1231231231231231212312312",
"password": "testtest",
"email": "test@example.com"
}'Response Example
OkTry it out
Leave empty to use default
Request Body
Headers
Documentation
Обновляет access_token с использованием refresh_token.
Этот метод используется, когда текущий access_token истёк.
В ответ возвращается новый access_token, который необходимо использовать для последующих запросов к защищённым endpoint’ам.
URL
https://quickex.io/api/v1/users/authentication/refresh
Требуется авторизация
Да (необходим действующий refresh_token, передаваемый в cookies).
Заголовки
Accept: application/jsonContent-Type: application/jsonCookie: refresh_token={REFRESH_TOKEN}
Тело запроса (JSON)
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
browserFingerprint |
string | yes | Уникальный отпечаток браузера, совпадающий с тем, что был отправлен при аутентификации. |
{
"browserFingerprint": "1231231231231231212312312"
}
Пример запроса (cURL)
curl -X POST \
'https://quickex.io/api/v1/users/authentication/refresh' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--cookie "refresh_token=YOUR_REFRESH_TOKEN" \
-d '{
"browserFingerprint": "1231231231231231212312312"
}'
Ответы
| Статус | Тело | Описание |
|---|---|---|
200 OK |
{"access_token":"<NEW_JWT>"} |
Новый access_token успешно выдан. |
401 Unauthorized |
{"status":"ERR_INVALID_REFRESH_TOKEN","message":"Unauthorized"} |
Указанный refresh_token недействителен или истёк. |
400 Bad Request |
{"statusCode":400,"error":"Bad Request","message":["browserFingerprint must be a string"]} |
Ошибка валидации (например, некорректный browserFingerprint). |
5xx |
— | Ошибка сервера. Попробуйте позже. |
Примечания
- Этот метод используется только для обновления
access_token. Новыйrefresh_tokenне выдаётся.browserFingerprintдолжен совпадать с отпечатком, использованным при входе через/api/v1/users/local/authenticate.- Всегда храните и передавайте
refresh_tokenтолько в защищённых cookies (HttpOnly,Secure).
Code Sample
curl -X POST \
'https://quickex.io/api/v1/users/authentication/refresh' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--cookie "refresh_token=YOUR_REFRESH_TOKEN" \
-d '{
"browserFingerprint": "1231231231231231212312312"
}'Try it out
Leave empty to use default
Request Body
Headers
Documentation
Возвращает данные аккаунта аутентифицированного пользователя: ID, email и набор разрешений.
Используется клиентом после входа для определения доступных разделов и действий в интерфейсе.
URL
https://quickex.io/api/v1/users/account-data
Требуется авторизация
Да — требуется действительная сессионная cookie, выданная методом /api/v1/users/local/authenticate.
Заголовки
Accept: application/json- Cookie (например,
session_id=...)
Параметры
Отсутствуют
Пример запроса (cURL)
curl -X GET \
'https://quickex.io/api/v1/users/account-data' \
-H 'Accept: application/json' \
--cookie "session_id=YOUR_SESSION_ID"
Пример ответа (200)
{
"userId": 42,
"email": "user@example.com",
"permissions": "USER",
"adminPermissionsScope": {
"ORDERS": { "READ": true, "CONFIGURE": false, "PROCESS": true, "CREATE_LARGE_ADDITIONAL_WITHDRAWALS": false, "ENABLE_MANUAL_PROCESSING": false },
"INSTRUMENTS": { "READ": true, "UPDATE": false },
"PAIRS": { "READ": true, "UPDATE": false },
"BESTCHANGE": { "READ": true, "UPDATE": false },
"USERS": { "READ": true, "UPDATE": false },
"API_KEYS": { "READ": true, "UPDATE": false },
"STATS": { "READ": true },
"AFFILIATES": { "READ": true, "UPDATE": false },
"PLATFORM_FEE_COLLECTION": { "READ": true, "UPDATE": false },
"TRANSLATION": { "READ": true, "UPDATE": false }
}
}
Ответы
| Код | Тело | Описание |
|---|---|---|
200 OK |
JSON (см. пример) | Данные аккаунта успешно возвращены. |
401 Unauthorized |
{"status":"ERR_UNAUTHORIZED","message":"Unauthorized"} |
Сессия отсутствует или истекла; требуется повторная аутентификация. |
5xx |
— | Внутренняя ошибка сервера. |
Примечания
adminPermissionsScopeописывает права подсистем (чтение/обновление/обработка и т.д.).- Если фронтенду не нужны административные права, можно использовать только поля
userId,permissions.- Для продления сессии используйте метод
/api/v1/users/authentication/refresh(если это предусмотрено вашим процессом).
Code Sample
curl -X 'GET' \
'https://quickex.io/api/v1/users/account-data' \
-H 'accept: application/json'
--cookie "access_token=YOUR_TOKEN"Response Example
{
"userId": 0,
"email": "string",
"permissions": "string",
"adminPermissionsScope": {
"ORDERS": {
"READ": true,
"CONFIGURE": false,
"PROCESS": true,
"CREATE_LARGE_ADDITIONAL_WITHDRAWALS": false,
"ENABLE_MANUAL_PROCESSING": false
},
"INSTRUMENTS": {
"READ": true,
"UPDATE": false
},
"PAIRS": {
"READ": true,
"UPDATE": false
},
"BESTCHANGE": {
"READ": true,
"UPDATE": false
},
"USERS": {
"READ": true,
"UPDATE": false
},
"API_KEYS": {
"READ": true,
"UPDATE": false
},
"STATS": {
"READ": true
},
"AFFILIATES": {
"READ": true,
"UPDATE": false
},
"PLATFORM_FEE_COLLECTION": {
"READ": true,
"UPDATE": false
},
"TRANSLATION": {
"READ": true,
"UPDATE": false
}
}
}Try it out
Leave empty to use default
Headers
Documentation
Завершает текущую пользовательскую сессию.
Используется для выхода из аккаунта и деактивации действующих токенов авторизации (или cookies).
URL
https://quickex.io/api/v1/users/authentication/logout
Требуется авторизация
Да — пользователь должен быть аутентифицирован.
Заголовки
Accept: application/json
Тело запроса
Не требуется (отправляется пустое тело).
Пример запроса (cURL)
curl -X POST \
'https://quickex.io/api/v1/users/authentication/logout' \
-H 'Accept: application/json' \
--cookie "session_id=YOUR_SESSION_ID" \
-d ''
Пример ответа (201)
OK
Ответы
| Код | Описание |
|---|---|
201 Created |
Выход выполнен успешно, текущая сессия завершена. |
200 OK |
Сервер также может вернуть успешный ответ 200 (в формате JSON). |
401 Unauthorized |
Попытка выхода без активной сессии или с недействительными токенами. |
Примечания
- Этот метод завершает только текущую сессию. Если пользователь вошёл на нескольких устройствах, сессии на других устройствах останутся активными.
- После вызова этого метода пользователю необходимо повторно пройти аутентификацию для доступа к приватным методам.
- Если cookie или токен истёк до вызова этого метода, сервер вернёт ошибку
401 Unauthorized.
Code Sample
curl -X 'POST' \
'https://quickex.io/api/v1/users/authentication/logout' \
-H 'accept: application/json' \
--cookie "access_token=YOUR_TOKEN" \
-d ''Response Example
OKTry it out
Leave empty to use default
Request Body
Headers
Documentation
Генерирует новый API-ключ для аутентифицированного пользователя.
Ключ состоит из пары: publicKey и secretKey, которые используются при работе с методами API v2.
Дополнительно можно указать список доверенных IP-адресов (whitelist) и статус активности ключа.
URL
https://quickex.io/api/v1/users/generate-api-key
Требуется авторизация
Да — метод доступен только для авторизованных пользователей.
Заголовки
Accept: application/jsonContent-Type: application/json- Cookie сессии (
session_id=...)
Тело запроса (JSON)
{
"name": "Api name / App name",
"whiteListIp": [
"127.0.0.1",
"127.0.0.2"
],
"isActive": true
}
Пример запроса (cURL)
curl -X POST \
'https://quickex.io/api/v1/users/generate-api-key' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--cookie "session_id=YOUR_SESSION_ID" \
-d '{
"name": "Api name / App name",
"whiteListIp": ["127.0.0.1", "127.0.0.2"],
"isActive": true
}'
Пример ответа (200)
{
"apiId": 1,
"name": "Api name / App name",
"publicKey": "pk_123456789",
"secretKey": "sk_987654321",
"whiteListIp": ["127.0.0.1","127.0.0.2"],
"isActive": true,
"createdAt": "2025-08-26 12:16:20"
}
Ответы
| Код | Описание |
|---|---|
200 OK |
Ключ успешно создан. В ответ возвращается объект с publicKey и secretKey. |
401 Unauthorized |
Пользователь не аутентифицирован или сессия истекла. |
400 Bad Request |
Ошибка валидации входных данных. |
Примечания
- Public Key используется для идентификации клиента.
- Secret Key хранится только у пользователя и используется для подписи запросов в API v2.
- Рекомендуется ограничивать использование ключа по IP (
whiteListIp) для повышения безопасности.- Если
secretKeyутерян, восстановить его невозможно — необходимо создать новый ключ.
Code Sample
curl -X 'POST' \
'https://quickex.io/api/v1/users/generate-api-key' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
--cookie "access_token=YOUR_TOKEN" \
-d '{
"name": "Api name / App name",
"whiteListIp": [
"127.0.0.1",
"127.0.0.2"
],
"isActive": false
}'Try it out
Leave empty to use default
Request Body
Headers
Documentation
Возвращает список всех API-ключей, созданных пользователем.
Метод позволяет просматривать активные и неактивные ключи, их параметры (название, список разрешённых IP-адресов, статус), а также дату создания.
Используется для управления ключами в личном кабинете пользователя.
URL
https://quickex.io/api/v1/users/list-api-key
Требуется авторизация
Да — пользователь должен быть аутентифицирован (сессионная cookie или access token).
Параметры
Отсутствуют
Пример запроса (cURL)
curl -X GET \
'https://quickex.io/api/v1/users/list-api-key' \
-H 'Accept: application/json' \
--cookie "session_id=YOUR_SESSION_ID"
Пример ответа (200)
[
{
"apiId": 1,
"name": "Api name / App name",
"publicKey": "pk_123456789",
"whiteListIp": [
"127.0.0.1",
"127.0.0.2"
],
"isActive": true,
"createdAt": "2025-08-26 12:16:20"
}
]
Ответы
| Код | Описание |
|---|---|
200 OK |
Список ключей успешно получен. |
401 Unauthorized |
Пользователь не аутентифицирован или сессия истекла. |
400 Bad Request |
Ошибка валидации входных данных (редко для этого запроса). |
Примечания
publicKeyиспользуется в заголовках запросов API v2.secretKeyвозвращается только при создании ключа через/generate-api-keyи не отображается в списке.whiteListIpограничивает использование ключа указанными IP-адресами.- Для отключения или удаления ключа необходимо использовать отдельные методы управления API-ключами (если доступны).
Code Sample
curl -X 'GET' \
'https://quickex.io/api/v1/users/list-api-key' \
-H 'accept: application/json'
--cookie "access_token=YOUR_TOKEN"Response Example
[
{
"apiId": 1,
"name": "Api name / App name",
"publicKey": "gdsfdgdsdsgds",
"whiteListIp": [
"127.0.0.1",
"127.0.0.2"
],
"isActive": false,
"createdAt": "2022-12-14 12:16:20"
}
]Try it out
Leave empty to use default
Headers
Documentation
Удаляет ранее созданный API-ключ.
После удаления ключ становится недействительным и больше не может использоваться для аутентификации запросов в API v2.
URL
https://quickex.io/api/v1/users/delete-api-key
Требуется авторизация
Да — метод доступен только для аутентифицированных пользователей.
Заголовки
Accept: application/jsonContent-Type: application/json- Cookie сессии (
session_id=...)
Тело запроса (JSON)
{
"apiId": 1
}
Пример запроса (cURL)
curl -X POST \
'https://quickex.io/api/v1/users/delete-api-key' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--cookie "session_id=YOUR_SESSION_ID" \
-d '{
"apiId": 1
}'
Пример ответа (200)
true
Ответы
| Код | Описание |
|---|---|
200 OK |
Ключ успешно удалён, возвращается true. |
401 Unauthorized |
Пользователь не аутентифицирован или сессия истекла. |
400 Bad Request |
Ошибка валидации входных данных (например, указан неверный apiId). |
Примечания
- После удаления ключ не может быть восстановлен. Для доступа к API v2 необходимо создать новый ключ.
- Метод принимает только идентификатор ключа (
apiId), полученный из списка ключей (/api/v1/users/list-api-key).- Удаление рекомендуется в случае компрометации ключа или когда интеграция больше не требуется.
Code Sample
curl -X 'POST' \
'https://quickex.io/api/v1/users/delete-api-key' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
--cookie "access_token=YOUR_TOKEN" \
-d '{
"apiId": 1
}'Try it out
Leave empty to use default
Request Body
Headers
Documentation
Возвращает текущий статус KYC (Know Your Customer) для аутентифицированного пользователя.
Этот метод используется для проверки того, прошёл ли пользователь процедуру проверки личности, а также для получения причины отказа, если проверка не была успешно завершена.
URL
https://quickex.io/api/v1/users/kyc/status
Требуется авторизация
Да — требуется активная пользовательская сессия.
Заголовки
Accept: application/json- Cookie сессии (
access_token=...)
Параметры
Отсутствуют
Пример запроса (cURL)
curl -X GET \
'https://quickex.io/api/v1/users/kyc/status' \
-H 'Accept: application/json' \
--cookie "access_token=YOUR_TOKEN"
Пример ответа (200)
{
"status": "PASS",
"rejectReason": "ID_INFO_INVALID"
}
Возможные значения status
PENDING— проверка документов в процессе.PASS— проверка успешно пройдена.REJECTED— проверка отклонена.
Ответы
| Статус | Описание |
|---|---|
200 OK |
Возвращает статус KYC и причину отказа (если применимо). |
401 Unauthorized |
Пользователь не авторизован или сессия истекла. |
400 Bad Request |
Ошибка валидации (например, некорректные данные сессии). |
Примечания
- Этот метод возвращает только статус — загрузка документов для KYC выполняется другими методами.
- Поле
rejectReasonприсутствует только при статусеREJECTEDили если проверка была отклонена.- Значения статуса могут использоваться для отображения прогресса в личном кабинете пользователя.
Code Sample
curl -X GET \
'https://quickex.io/api/v1/users/kyc/status' \
-H 'Accept: application/json' \
--cookie "access_token=YOUR_TOKEN"Try it out
Leave empty to use default