Inicio rápido
API V1
Autenticación
Para acceder a la API V1 se utiliza un token JWT, que puede obtenerse de dos maneras:
Obtención del token JWT mediante el método /api/v1/users/local/authenticate.
Ejemplo de solicitud:
curl -i -X POST "https://quickex.io/api/v1/users/local/authenticate" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com",
"password": "yourPassword",
"browserFingerprint": "UniqueNumbers"
}'
La bandera -i muestra los encabezados de la respuesta, donde aparecerán Set-Cookie: access_token y Set-Cookie: refresh_token. Respuesta esperada del servidor:
HTTP/2 201
date: Tue, 19 Aug 2025 12:33:17 GMT
content-type: text/plain; charset=utf-8
content-length: 2
cache-control: no-store, no-cache, must-revalidate, private
pragma: no-cache
session-id: aca467ef-8644-42a5-a166-8dd0e52b8b93
nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
cf-cache-status: DYNAMIC
report-to: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=iZsdq9Yv4PdbIDn6DzLcuM21w%2FK3GFkDvRb%2Fws9W4WnAi4HEAsKJPuF%2FH1KZN7sE%2FnPJDhEmcT%2FxN8k3uAzd57BiR29gBZ9U8NQ%3D"}]}
server: cloudflare
set-cookie: session_id=aca467ef-8644-42a5-a166-8dd0e52b8b93; Path=/; Max-Age=7200
set-cookie: access_token=...; HttpOnly; SameSite=Lax; Secure; Path=/; Max-Age=21600
set-cookie: refresh_token=...; HttpOnly; SameSite=Lax; Secure; Path=/; Max-Age=1209600
cf-ray: 9719adb17a671382-ARN
alt-svc: h3=":443"; ma=86400
OK
Respuesta esperada sin la bandera -i:
Ok
El browserFingerprint puede establecerse con cualquier valor único de al menos 12 caracteres.
A través del sitio de Quickex
- Inicie sesión en quickex.io de la forma habitual (correo + contraseña).
- En las DevTools (Application → Cookies) localice las cookies
access_tokenyrefresh_token.
Primera solicitud
Ejemplo de solicitud usando el access token:
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_access_token}" \
-d '{
"name": "MyApiKey",
"whiteListIp": ["127.0.0.1", "127.0.0.2"],
"isActive": true
}'
Ejemplo de respuesta:
{"apiId":186,"name":"MyApiKey","isActive":true,...}
API V2
Obtención de claves
Para trabajar con la Quickex API v2 se necesita un par de claves: publicKey y secretKey. Se pueden obtener de dos maneras:
- A través del panel de usuario en el sitio, en la sección «Claves API».
- A través de la API v1, llamando al método
/api/v1/users/generate-api-keydespués de autenticarse.
Opción 1. A través del panel de usuario
- Inicie sesión en su cuenta en quickex.io.
- Vaya a la página de perfil → sección «Claves API».
- Cree una nueva clave indicando un nombre y (opcionalmente) una lista de IP en
whitelistIp.
Opción 2. A través de la API V1
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_access_token}" \
-d '{
"name": "MyApiKey",
"whiteListIp": ["127.0.0.1", "127.0.0.2"],
"isActive": true
}'
Ejemplo de respuesta:
{"apiId":165,"name":"MyApiKey","isActive":false,...}
Importante: secretKey se muestra solo una vez. Guárdela en un lugar seguro.
Configuración de WhiteListIP (opcional)
Indique la lista de IP de confianza en whiteListIp al crear la clave.
Firma de solicitudes
Cada solicitud debe incluir los encabezados:
X-Api-Public-KeyX-Api-TimestampX-Api-Signature
Signature = Base64(HMAC_SHA256(timestamp + body + publicKey, secretKey))
Ejemplo de generación de la firma en Python:
import hmac, hashlib, base64, json, time
public_key = "YOUR_PUBLIC_KEY"
secret_key = "YOUR_SECRET_KEY"
timestamp = str(int(time.time() * 1000))
body_dict = {"currencyTitle": "USDT","networkTitle": "TRC20","address": "THU...V"}
body = json.dumps(body_dict, separators=(',', ':'))
message = timestamp + body + public_key
signature = base64.b64encode(
hmac.new(secret_key.encode(), message.encode(), hashlib.sha256).digest()
).decode()
print("X-Api-Timestamp:", timestamp)
print("X-Api-Signature:", signature)
Primera solicitud
Ejemplo de validación de dirección:
curl -X POST "https://quickex.io/api/v2/instruments/public/validate-address" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Api-Public-Key: {your_api_key}" \
-H "X-Api-Timestamp: {timestamp}" \
-H "X-Api-Signature: {signature}" \
-d '{
"currencyTitle": "USDT",
"networkTitle": "TRC20",
"address": "THUmkPhry61edcTf79yTioV6292ccsuCjV"
}'
Respuesta:
true
Lista de verificación de la integración
- Para v2: crea claves, guarda la
secretKey, configurawhiteListIp, firma las solicitudes. - Para v1: autentícate y usa cookies. Para el flujo público bastan los métodos
/orders/public/createy/orders/public-info.