Група методів 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
Authorization Required
Ні (публічний вхід за локальними обліковими даними).
Headers
Accept: application/jsonContent-Type: application/json
Request Body (JSON)
| Field | Type | Required | Description |
|---|---|---|---|
email |
string | yes | Електронна адреса користувача. |
password |
string | yes | Пароль користувача. |
browserFingerprint |
string | yes | Унікальний відбиток браузера для захисту сесії. |
{
"browserFingerprint": "1231231231231231212312312",
"email": "test@test.com",
"password": "testtest"
}
Request Example (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"
}'
Responses
| Code | Body | Description |
|---|---|---|
201 Created |
OK |
Успішна автентифікація. Сервер встановлює cookies з ідентифікаторами сесії та токенами (session_id, access_token, refresh_token). |
400 |
JSON error | Невірний формат запиту або відсутність обов’язкових полів. |
401 |
JSON error | Невірні облікові дані. |
5xx |
— | Помилка сервера. Спробуйте пізніше. |
Успішна відповідь містить заголовки Set-Cookie та session-id, які створюють користувацьку сесію.
Notes
- Зберігайте токени та 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
Ініціює процес скидання пароля. На вказану адресу електронної пошти буде надіслано код для відновлення пароля.
Цей код необхідно зберегти для подальшого використання в методі /api/v1/users/local/reset-password.
URL
https://quickex.io/api/v1/users/local/request-password-reset
Authorization Required
Ні (публічний запит на скидання пароля).
Headers
Accept: application/jsonContent-Type: application/json
Request Body (JSON)
| Field | Type | Required | Description |
|---|---|---|---|
email |
string | yes | Електронна адреса користувача, для якої запитується скидання пароля. |
{
"email": "user@example.com"
}
Request Example (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"
}'
Responses
| Status | Body | Description |
|---|---|---|
200 OK |
{"status": "OK"} |
Запит виконано успішно. Код для відновлення пароля надіслано на email. |
400 |
JSON error | Помилка валідації (наприклад, вказано некоректний email). |
5xx |
— | Помилка сервера. Спробуйте пізніше. |
{
"status": "ERR_VALIDATION",
"message": "Validation Exception",
"data": {
"email": {
"isEmail": "email must be an email"
}
}
}
Notes
- Після виклику цього методу на вказану електронну адресу буде надіслано код для відновлення пароля.
- Збережіть цей код — він знадобиться на наступному етапі у методі
/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
Завершує процес скидання пароля. Користувач повинен надати код відновлення, отриманий на електронну пошту в результаті виклику
/api/v1/users/local/request-password-reset, а також новий пароль.
Якщо операцію виконано успішно, пароль буде оновлено, і користувач зможе увійти в систему з новими обліковими даними.
URL
https://quickex.io/api/v1/users/local/reset-password
Authorization Required
Ні (використовується код відновлення).
Headers
Accept: application/jsonContent-Type: application/json
Request Body (JSON)
| Field | Type | Required | Description |
|---|---|---|---|
email |
string | yes | Електронна адреса, для якої здійснюється скидання пароля. |
resetCode |
string | yes | Код відновлення, отриманий електронною поштою після виклику методу request-password-reset. |
password |
string | yes | Новий пароль. |
{
"resetCode": "1231231231231231212312312",
"password": "testtest",
"email": "test@example.com"
}
Request Example (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"
}'
Responses
| Status | Body | Description |
|---|---|---|
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"]} |
Помилка валідації (наприклад, електронна адреса має некоректний формат). |
5xx |
— | Помилка сервера. Спробуйте пізніше. |
Notes
- Цей метод використовується лише після виклику
/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, який потрібно використовувати для подальших запитів до захищених ендпоінтів.
URL
https://quickex.io/api/v1/users/authentication/refresh
Authorization Required
Так (необхідний чинний refresh_token у cookie).
Headers
Accept: application/jsonContent-Type: application/jsonCookie: refresh_token={REFRESH_TOKEN}
Request Body (JSON)
| Field | Type | Required | Description |
|---|---|---|---|
browserFingerprint |
string | yes | Унікальний відбиток браузера, що має збігатися з тим, який був переданий під час автентифікації. |
{
"browserFingerprint": "1231231231231231212312312"
}
Request Example (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"
}'
Responses
| Status | Body | Description |
|---|---|---|
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 |
— | Помилка сервера. Спробуйте пізніше. |
Notes
- Цей метод використовується лише для оновлення
access_token. Новийrefresh_tokenне видається.browserFingerprintмає збігатися з тим, що був переданий під час входу через/api/v1/users/local/authenticate.- Завжди зберігайте та передавайте
refresh_tokenтільки у захищених cookie (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
Authorization Required
Так — потрібен дійсний cookie сесії, виданий методом /api/v1/users/local/authenticate.
Headers
Accept: application/json- Cookie (наприклад,
session_id=...)
Parameters
Немає
Request Example (cURL)
curl -X GET \
'https://quickex.io/api/v1/users/account-data' \
-H 'Accept: application/json' \
--cookie "session_id=YOUR_SESSION_ID"
Response Example (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 }
}
}
Responses
| Code | Body | Description |
|---|---|---|
200 OK |
JSON (див. приклад) | Дані акаунта успішно повернуто. |
401 Unauthorized |
{"status":"ERR_UNAUTHORIZED","message":"Unauthorized"} |
Сесія відсутня або прострочена; потрібна повторна автентифікація. |
5xx |
— | Внутрішня помилка сервера. |
Notes
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
Authorization Required
Так — користувач повинен бути автентифікований.
Headers
Accept: application/json
Request Body
Не потрібен (надсилається порожнє тіло).
Request Example (cURL)
curl -X POST \
'https://quickex.io/api/v1/users/authentication/logout' \
-H 'Accept: application/json' \
--cookie "session_id=YOUR_SESSION_ID" \
-d ''
Response Example (201)
OK
Responses
| Code | Description |
|---|---|
201 Created |
Вихід успішно виконано, поточну сесію завершено. |
200 OK |
Сервер також може повернути успішну відповідь 200 (у форматі JSON). |
401 Unauthorized |
Спроба виходу без активної сесії або з недійсними токенами. |
Notes
- Цей метод завершує лише поточну сесію. Якщо користувач увійшов у систему на кількох пристроях, інші сесії залишаються активними.
- Після виклику цього методу користувачеві потрібно повторно автентифікуватися, щоб отримати доступ до приватних методів.
- Якщо 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
Authorization Required
Так — метод доступний лише для авторизованих користувачів.
Headers
Accept: application/jsonContent-Type: application/json- Session Cookie (
session_id=...)
Request Body (JSON)
{
"name": "Api name / App name",
"whiteListIp": [
"127.0.0.1",
"127.0.0.2"
],
"isActive": true
}
Request Example (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
}'
Response Example (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"
}
Responses
| Code | Description |
|---|---|
200 OK |
Ключ успішно створено. У відповіді повертається об’єкт із publicKey та secretKey. |
401 Unauthorized |
Користувач не автентифікований або сесія закінчилася. |
400 Bad Request |
Помилка валідації вхідних даних. |
Notes
- 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-ключів, створених користувачем.
Метод дає змогу переглядати активні та неактивні ключі, їх параметри (назва, whitelist IP, статус), а також дату створення.
Використовується для керування ключами в особистому кабінеті користувача.
URL
https://quickex.io/api/v1/users/list-api-key
Authorization Required
Так — користувач має бути автентифікованим (cookie сесії або access token).
Parameters
Немає
Request Example (cURL)
curl -X GET \
'https://quickex.io/api/v1/users/list-api-key' \
-H 'Accept: application/json' \
--cookie "session_id=YOUR_SESSION_ID"
Response Example (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"
}
]
Responses
| Code | Description |
|---|---|
200 OK |
Список ключів успішно отримано. |
401 Unauthorized |
Користувач не автентифікований або сесія закінчилася. |
400 Bad Request |
Помилка валідації вхідних даних (для цього запиту трапляється рідко). |
Notes
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
Authorization Required
Так — метод доступний лише для автентифікованих користувачів.
Headers
Accept: application/jsonContent-Type: application/json- Session Cookie (
session_id=...)
Request Body (JSON)
{
"apiId": 1
}
Request Example (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
}'
Response Example (200)
true
Responses
| Code | Description |
|---|---|
200 OK |
Ключ успішно видалено, повертається true. |
401 Unauthorized |
Користувач не автентифікований або сесія закінчилася. |
400 Bad Request |
Помилка валідації (наприклад, передано неправильний apiId). |
Notes
- Після видалення ключ неможливо відновити. Для доступу до 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
Authorization Required
Так — потрібна дійсна сесія користувача.
Headers
Accept: application/json- Session cookie (
access_token=...)
Parameters
Немає
Request Example (cURL)
curl -X GET \
'https://quickex.io/api/v1/users/kyc/status' \
-H 'Accept: application/json' \
--cookie "access_token=YOUR_TOKEN"
Example Response (200)
{
"status": "PASS",
"rejectReason": "ID_INFO_INVALID"
}
Possible status values
PENDING— перевірка документів триває.PASS— верифікацію успішно пройдено.REJECTED— верифікацію відхилено.
Responses
| Status | Description |
|---|---|
200 OK |
Повертає KYC-статус і причину відхилення (якщо застосовно). |
401 Unauthorized |
Користувач не авторизований або сесія закінчилась. |
400 Bad Request |
Помилка валідації (наприклад, некоректні дані сесії). |
Notes
- Цей метод повертає лише статус — завантаження документів для 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