Démarrage rapide

Author profile photo
Équipe Quickex
29 août 2025
~2 lecture minimale

Démarrage rapide

API V1

Authentification

Un jeton JWT est utilisé pour accéder à l’API V1, qui peut être obtenu de deux manières :

Obtenir un jeton JWT via la méthode /api/v1/users/local/authenticate.

Exemple de requête :

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"
  }'

L’option -i affiche les en-têtes de la réponse, où vous verrez Set-Cookie: access_token et Set-Cookie: refresh_token. Réponse attendue du serveur :

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

Réponse attendue sans l’option -i :

Ok

Vous pouvez définir browserFingerprint avec n’importe quelle valeur unique d’au moins 12 caractères.

Via le site Quickex

  • Connectez-vous sur quickex.io de manière habituelle (email + mot de passe).
  • Dans DevTools (Application → Cookies), trouvez les cookies access_token et refresh_token.

Première requête

Exemple de requête utilisant le jeton d’accès :

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
  }'

Exemple de réponse :

{"apiId":186,"name":"MyApiKey","isActive":true,...}

API V2

Obtention des clés

Pour travailler avec l’API Quickex v2, vous avez besoin d’une paire de clés : publicKey et secretKey. Elles peuvent être obtenues de deux manières :

  • Via votre compte sur le site, dans la section « Clés API ».
  • Via l’API v1 en appelant /api/v1/users/generate-api-key après authentification.

Option 1. Via votre compte

  • Connectez-vous à votre compte sur quickex.io.
  • Accédez à la page de profil → section « Clés API ».
  • Créez une nouvelle clé en spécifiant un nom et (facultatif) une liste d’IP dans whitelistIp.

Option 2. Via l’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
  }'

Exemple de réponse :

{"apiId":165,"name":"MyApiKey","isActive":false,...}

Important : secretKey n’est affichée qu’une seule fois. Conservez-la dans un endroit sûr.

Configuration de WhiteListIP (facultatif)

Spécifiez la liste des IP de confiance dans whiteListIp lors de la création de la clé.

Signature des requêtes

Chaque requête doit inclure les en-têtes :

  • X-Api-Public-Key
  • X-Api-Timestamp
  • X-Api-Signature
Signature = Base64(HMAC_SHA256(timestamp + body + publicKey, secretKey))

Exemple de génération de signature en Python :

import hmac, hashlib, base64, json, time

public_key = "VOTRE_PUBLIC_KEY"
secret_key = "VOTRE_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)

Première requête

Exemple de validation d’adresse :

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"
  }'

Réponse :

true
Liste de contrôle d’intégration
  • Pour v2 : créez des clés, sauvegardez la secretKey, configurez whiteListIp, signez les requêtes.
  • Pour v1 : authentifiez-vous et utilisez les cookies. Pour le flux public, les méthodes /orders/public/create et /orders/public-info sont suffisantes.


Partagez cet article :