O grupo de métodos Users é destinado ao gerenciamento da autenticação e segurança do usuário.
Ele permite que o cliente faça login com credenciais locais, inicie ou complete o processo de recuperação de senha
e atualize um token de acesso utilizando um refresh token.
Esses métodos fornecem o nível básico de interação do usuário com a API e são usados para obter e manter uma sessão autorizada.
Documentation
/api/v1/users/local/authenticate
POST
Autentica um usuário com credenciais locais (email + senha) e estabelece uma sessão no servidor.
Após o login bem-sucedido, o servidor retorna o texto OK e define cookies
(session_id, access_token, refresh_token), que são usados para solicitações autorizadas subsequentes.
URL
https://quickex.io/api/v1/users/local/authenticate
Authorization Required
Não (login público com credenciais locais).
Headers
Accept: application/jsonContent-Type: application/json
Request Body (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email |
string | sim | Endereço de email do usuário. |
password |
string | sim | Senha do usuário. |
browserFingerprint |
string | sim | Identificador único do navegador para proteção da sessão. |
{
"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
| Código | Corpo | Descrição |
|---|---|---|
201 Created |
OK |
Autenticação bem-sucedida. O servidor define cookies com identificadores de sessão e tokens (session_id, access_token, refresh_token). |
400 |
Erro JSON | Formato de requisição inválido ou campos obrigatórios ausentes. |
401 |
Erro JSON | Credenciais inválidas. |
5xx |
— | Erro no servidor. Tente novamente mais tarde. |
Uma resposta bem-sucedida inclui os cabeçalhos Set-Cookie e session-id, que estabelecem a sessão do usuário.
Notes
- Armazene tokens e cookies apenas em locais seguros (cookies HttpOnly/Secure, variáveis de ambiente, cofres de segredos).
browserFingerprintdeve permanecer consistente para um dispositivo/navegador específico.- Após o login, utilize os cookies emitidos para chamar métodos protegidos da 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
Inicia o processo de redefinição de senha. Um código de recuperação será enviado para o endereço de email especificado.
Esse código deve ser salvo para uso posterior com o método /api/v1/users/local/reset-password.
URL
https://quickex.io/api/v1/users/local/request-password-reset
Authorization Required
Não (solicitação pública de redefinição de senha).
Headers
Accept: application/jsonContent-Type: application/json
Request Body (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email |
string | sim | Endereço de email do usuário para o qual a redefinição de senha é solicitada. |
{
"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"} |
A solicitação foi bem-sucedida. Um código de recuperação de senha foi enviado para o email informado. |
400 |
Erro JSON | Erro de validação (por exemplo, um valor inválido para email foi fornecido). |
5xx |
— | Erro no servidor. Tente novamente mais tarde. |
{
"status": "ERR_VALIDATION",
"message": "Validation Exception",
"data": {
"email": {
"isEmail": "email must be an email"
}
}
}
Notes
- Após chamar este método, o email especificado receberá um código de recuperação de senha.
- Guarde esse código — ele é necessário para a próxima etapa com o método
/api/v1/users/local/reset-password.- Se o email não existir ou for inválido, o servidor retornará um erro de validação (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
Conclui o processo de redefinição de senha. O usuário deve fornecer o código de recuperação recebido por email como resultado da chamada
/api/v1/users/local/request-password-reset, juntamente com a nova senha.
Se bem-sucedida, a senha será atualizada e o usuário poderá fazer login com as novas credenciais.
URL
https://quickex.io/api/v1/users/local/reset-password
Authorization Required
Não (o código de recuperação é usado).
Headers
Accept: application/jsonContent-Type: application/json
Request Body (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email |
string | sim | Endereço de email para o qual a redefinição de senha está sendo realizada. |
resetCode |
string | sim | Código de recuperação recebido por email após chamar o método request-password-reset. |
password |
string | sim | Nova senha. |
{
"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 | Descrição |
|---|---|---|
200 OK |
{"status":"OK","message":"Password has been reset"} |
Senha redefinida com sucesso. |
401 |
{"status":"ERR_INVALID_PASSWORD_RESET_CODE","message":"Unauthorized"} |
O código de recuperação fornecido é inválido ou expirou. |
400 |
{"statusCode":400,"error":"Bad Request","message":["email must be an email"]} |
Erro de validação (por exemplo, formato de email inválido). |
5xx |
— | Erro no servidor. Tente novamente mais tarde. |
Notes
- Este método só deve ser usado após chamar
/api/v1/users/local/request-password-reset.- O código de recuperação possui um período de validade limitado.
- Após redefinir a senha com sucesso, use as novas credenciais para fazer login via
/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
Renova o access_token utilizando um refresh_token.
Este método é usado quando o access_token atual expirou.
Ele retorna um novo access_token, que deve ser utilizado para solicitações subsequentes a endpoints protegidos.
URL
https://quickex.io/api/v1/users/authentication/refresh
Authorization Required
Sim (é necessário um refresh_token válido enviado nos cookies).
Headers
Accept: application/jsonContent-Type: application/jsonCookie: refresh_token={REFRESH_TOKEN}
Request Body (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
browserFingerprint |
string | sim | Impressão digital única do navegador, igual à fornecida durante a autenticação. |
{
"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 | Descrição |
|---|---|---|
200 OK |
{"access_token":"<NEW_JWT>"} |
Um novo access_token foi emitido com sucesso. |
401 Unauthorized |
{"status":"ERR_INVALID_REFRESH_TOKEN","message":"Unauthorized"} |
O refresh_token fornecido é inválido ou expirou. |
400 Bad Request |
{"statusCode":400,"error":"Bad Request","message":["browserFingerprint must be a string"]} |
Erro de validação (por exemplo, browserFingerprint incorreto). |
5xx |
— | Erro no servidor. Tente novamente mais tarde. |
Notes
- Este método é usado apenas para renovar o
access_token. Um novorefresh_tokennão é emitido.browserFingerprintdeve ser o mesmo informado no login via/api/v1/users/local/authenticate.- Sempre armazene e envie o
refresh_tokenapenas em cookies seguros (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
Retorna os dados da conta de um usuário autenticado: ID, e-mail e um conjunto de permissões.
Usado pelo cliente após o login para determinar quais seções/ações estão disponíveis na interface.
URL
https://quickex.io/api/v1/users/account-data
Authorization Required
Sim — é necessário um cookie de sessão válido emitido pelo método /api/v1/users/local/authenticate.
Headers
Accept: application/json- Cookie (por exemplo,
session_id=...)
Parameters
Nenhum
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
| Código | Corpo | Descrição |
|---|---|---|
200 OK |
JSON (veja o exemplo) | Dados da conta retornados com sucesso. |
401 Unauthorized |
{"status":"ERR_UNAUTHORIZED","message":"Unauthorized"} |
A sessão está ausente ou expirada; é necessário autenticar novamente. |
5xx |
— | Erro interno do servidor. |
Notes
adminPermissionsScopedetalha os direitos dos subsistemas (leitura/atualização/processamento, etc.).- Se o frontend não exigir permissões administrativas, apenas os campos
userId,permissionspodem ser utilizados.- Para renovar a sessão, utilize o método
/api/v1/users/authentication/refresh(se aplicável ao seu fluxo).
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
Encerra a sessão atual do usuário.
Usado para fazer logout e invalidar tokens de autorização ativos (ou cookies).
URL
https://quickex.io/api/v1/users/authentication/logout
Authorization Required
Sim — o usuário deve estar autenticado.
Headers
Accept: application/json
Request Body
Não é necessário (um corpo vazio é enviado).
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
| Código | Descrição |
|---|---|
201 Created |
Logout concluído com sucesso, a sessão atual foi encerrada. |
200 OK |
O servidor também pode retornar uma resposta 200 bem-sucedida (em formato JSON). |
401 Unauthorized |
Tentativa de logout sem uma sessão ativa ou com tokens inválidos. |
Notes
- Este método encerra apenas a sessão atual. Se o usuário estiver conectado em vários dispositivos, as outras sessões permanecerão ativas.
- Após chamar este método, o usuário deve se autenticar novamente para acessar métodos privados.
- Se o cookie ou token tiver expirado antes da chamada, o servidor retornará o erro
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
Gera uma nova chave de API para o usuário autenticado.
A chave consiste em um par: publicKey e secretKey, que são usadas ao trabalhar com os métodos da API v2.
Além disso, é possível especificar uma lista de endereços IP confiáveis (whitelist) e o status ativo da chave.
URL
https://quickex.io/api/v1/users/generate-api-key
Authorization Required
Sim — o método está disponível apenas para usuários autenticados.
Headers
Accept: application/jsonContent-Type: application/json- Cookie de Sessão (
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
| Código | Descrição |
|---|---|
200 OK |
Chave criada com sucesso. A resposta contém um objeto com publicKey e secretKey. |
401 Unauthorized |
O usuário não está autenticado ou a sessão expirou. |
400 Bad Request |
Erro de validação na entrada. |
Notes
- Public Key é usada para identificar o cliente.
- Secret Key é armazenada apenas pelo usuário e é usada para assinar requisições na API v2.
- É recomendado restringir o uso da chave de API por IP (
whiteListIp) para maior segurança.- Se a
secretKeyfor perdida, não pode ser recuperada — uma nova chave deve ser gerada.
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
Retorna uma lista de todas as chaves de API criadas pelo usuário.
O método permite visualizar chaves ativas e inativas, seus parâmetros (nome, lista de IPs permitidos, status), bem como a data de criação.
Utilizado para gerenciar chaves na conta pessoal do usuário.
URL
https://quickex.io/api/v1/users/list-api-key
Authorization Required
Sim — o usuário deve estar autenticado (cookie de sessão ou token de acesso).
Parameters
Nenhum
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
| Código | Descrição |
|---|---|
200 OK |
Lista de chaves recuperada com sucesso. |
401 Unauthorized |
O usuário não está autenticado ou a sessão expirou. |
400 Bad Request |
Erro de validação de entrada (raro para esta requisição). |
Notes
publicKeyé usada nos cabeçalhos das requisições da API v2.secretKeyé retornada apenas quando a chave é criada via/generate-api-keye não aparece na lista.whiteListIprestringe o uso da chave apenas aos endereços IP especificados.- Para desativar ou excluir uma chave, devem ser usados métodos específicos de gerenciamento de chaves (se disponíveis).
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
Exclui uma chave de API gerada anteriormente.
Após a exclusão, a chave se torna inválida e não pode mais ser usada para autenticar requisições na API v2.
URL
https://quickex.io/api/v1/users/delete-api-key
Authorization Required
Sim — o método está disponível apenas para usuários autenticados.
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
| Código | Descrição |
|---|---|
200 OK |
Chave excluída com sucesso; retorna true. |
401 Unauthorized |
O usuário não está autenticado ou a sessão expirou. |
400 Bad Request |
Erro de validação (por exemplo, apiId inválido). |
Notes
- Após a exclusão, a chave não pode ser restaurada. Para acessar a API v2, uma nova chave deve ser gerada.
- O método aceita apenas o identificador da chave (
apiId) obtido na lista de chaves (/api/v1/users/list-api-key).- A exclusão é recomendada em casos de comprometimento da chave ou quando a integração não é mais necessária.
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
Retorna o status atual de KYC (Know Your Customer) do usuário autenticado.
Este método é usado para verificar se o usuário passou pela verificação de identidade, bem como para obter o motivo da rejeição caso a verificação não tenha sido bem-sucedida.
URL
https://quickex.io/api/v1/users/kyc/status
Authorization Required
Sim — é necessária uma sessão de usuário válida.
Headers
Accept: application/json- Session cookie (
access_token=...)
Parameters
Nenhum
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— verificação de documentos em andamento.PASS— verificação concluída com sucesso.REJECTED— verificação rejeitada.
Responses
| Status | Descrição |
|---|---|
200 OK |
Retorna o status de KYC e o motivo da rejeição (se aplicável). |
401 Unauthorized |
O usuário não está autorizado ou a sessão expirou. |
400 Bad Request |
Erro de validação (por exemplo, dados de sessão inválidos). |
Notes
- Este método apenas retorna o status — o envio de documentos para KYC é realizado por outros métodos.
- O campo
rejectReasonaparece somente quando o status éREJECTEDou quando a verificação foi negada.- Os valores de status podem ser usados para exibir o progresso no painel do usuário.
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