Inicio rápido

Author profile photo
Equipo Quickex
29 de agosto de 2025
~2 lectura mínima

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_token y refresh_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-key despué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-Key
  • X-Api-Timestamp
  • X-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, configura whiteListIp, firma las solicitudes.
  • Para v1: autentícate y usa cookies. Para el flujo público bastan los métodos /orders/public/create y /orders/public-info.
Comparte este artículo: