API d'Information
There is currently no API available.
L'API supporte les formats suivants:
- XML
- JSON
Nous fournissons actuellement des appels API pour obtenir des informations de la place de marché
Fonction API | Paramètres | Description |
---|---|---|
get_lowest_ask | base alt | Renvoie le prix le plus bas pour la demande. Précisez la monnaie de base et la monnaie alternative. |
get_highest_bid | base alt | Renvoie le prix le plus haut pour l'offre. Précisez la monnaie de base et la monnaie alternative. |
get_last_trade | base alt | Renvoie le dernier cours pour le dernier échange d'une paire. Précisez la monnaie de base et la monnaie alternative. |
get_volume | base alt | Renvoie le volume échangé sur les 24 dernières heures pour une paire. Précisez la monnaie de base et la monnaie alternative. |
get_info_for_currency | - none - | Renvoie un résumé des informations de toutes les monnaies supportées |
get_info_for_1_currency | base alt | Renvoie un résumé des informaitons pour une paire donnée |
orderbook | base alt | Renvoie le carnet d'ordres complet pour une paire donnée. Note : plusieurs éléments peuvent apparaitre pour le même prix. |
orderbook_alt | alt | Renvoie le carnet d'ordres complet d'une paire pour une alternative donnée. C'est plus efficace que d'appeler l'api orderbook pour chaque combinaison |
trades | base alt since | Renvoie tous les échanges exécutés sur les 7 derniers jours. Si le paramètre "since" (depuis) est fourni, alors seulement les échanges avec un ID plus grand que "since" seront renvoyés |
get_currency_info | Renvoie les informations à propos de commissions de retrait, le nombre de confirmation pour dépots et le maximum de retrait par jour. |
Les valeurs de données valides sont:
- BTC
- DASH
- DGC
- DOGE
- FRC
- LTC
- NMC
- PPC
- QRK
- TRC
- XPM
Fréquence des appels de API ci dessus: Les APIs renvoient des données à chaud. Nous nous réservons le droit de bloquer les IPs qui interrogent en continu les API avec moins de 5 secondes d'intervalle. Si d'aventure vous aviez besoin d'invoquer ces APIs plus fréquement, dites le nous, nous tâcherons de trouver une solution pour vous. |
Exemples
- https://vircurex.com/api/get_info_for_currency.xml va renvoyer un résumé de toutes les monnaies au format XML
- https://vircurex.com/api/get_highest_bid.json?base=BTC&alt=NMC va retourner le prix le plus élevé d'offre (prix d'achat) en NMC pour 1 BTC au format JSON
API d'échange
L'API d'échange fournit des fonctions qui vous permet d'effectuer des activités d'échange.
Avertissement
L'API d'échange est publiée dans sa version 1.0. Si nous changeons les appels d'APIs, nous publierons une nouvelle version et maintiendrons l'ancienne pour une durée déterminée. N'importe quel changement sera bien entendu annoncé dans la section Nouveautés et Annonces mais si vous voulez souscrire à notre mailing liste sur l'API, vous pouvez nous envoyer un simple email ([email protected]). |
Activer l'API
L'API de trading doit être activée avant de pouvoir être utilisée. L'API accède aux informations de votre compte et permet de créer et d'exécuter des ordres, par conséquent, par conséquent, toutes les connexions passent par HTTPS uniquement. De plus, vous devez fournir un code de sécurité pour chacune des fonctions d'API. L'API d'échange est activée dans votre profile utilisateur.
Liste des fonctions de l'API
Fonction d'API | Paramètres en entrée | Paramètres en sortie | Description | Calcul du jeton |
---|---|---|---|---|
get_balance | currency | balance available_balance | Fournissez la monnaie pour laquelle vous voulez le solde | En entrée: YourSecurityWord;YourUserName;Timestamp;ID;get_balance;CurrencyName En sortie: YourSecurityWord;YourUserName;Timestamp;get_balance;Balance |
get_balances | balance available_balance | En entrée: YourSecurityWord;YourUserName;Timestamp;ID;get_balances Note: the security word of this function is the security word from function "get_balance". En sortie: YourSecurityWord;YourUserName;Timestamp;get_balances | ||
create_order | ordertype amount currency1 unitprice currency2 | orderid | C Crée un nouvel ordre. Un maximum de 100 ordres ouverts simultanément est autorisé. L'ordre est seulement sauvegardé mais pas publié, par conséquent il ne sera pas échangé avant que vous ne le publiez. Les valeurs pour TypeOrdre sont : BUY, SELL Values for ordertype: BUY, SELL | En entrée: YourSecurityWord;YourUserName;Timestamp;ID;create_order;ordertype;amount;currency1;unitprice;currency2 En sortie: YourSecurityWord;YourUserName;Timestamp;create_order;order_id |
release_order | orderid | orderid | Publie l'ordre pour échange. IMPORTANT : ID_Ordre en entrée n'est pas le même que ID_Ordre en sortie, vous devez le conserver pour les futurs appels à l'API au sujet d'un ordre. Même s'ils peuvent être identiques, ils sont indépendants, les ordres non publiés n'ont pas les mêmes IDs que les ordres publiés. | En entrée: YourSecurityWord;YourUserName;Timestamp;ID;release_order;orderid En sortie: YourSecurityWord;YourUserName;Timestamp;release_order;orderid |
delete_order | orderid otype | orderid | Supprime/Clos un ordre. | En entrée: YourSecurityWord;YourUserName;Timestamp;ID;delete_order;orderid;otype En sortie: YourSecurityWord;YourUserName;Timestamp;delete_order;orderid |
read_order | orderid otype | currency1 currency2 open_quantity quantity unitprice ordertype orderstatus lastchangedat releasedat | Renvoie les information sur un ordre. | En entrée: YourSecurityWord;YourUserName;Timestamp;ID;read_order;orderid En sortie: YourSecurityWord;YourUserName;Timestamp;read_order;orderid |
read_orders | otype | numberorders otype For each order: currency1 currency2 openquantity quantity unitprice ordertype orderstatus lastchangedat releasedat | Renvoie les information sur les ordres de tous les utilisateurs qu'ils soient sauvés ou publiés. Ca ne renvoie pas d'information sur les ordres clos (que ce soit manuellement ou suite à l'exécution) ou supprimés. | En entrée: YourSecurityWord;YourUserName;Timestamp;ID;read_orders En sortie: YourSecurityWord;YourUserName;Timestamp;read_order |
read_orderexecutions | orderid | currency1 currency2 quantity unitprice feepaid ordertype | Renvoie les informations de l'exécution de l'ordre, c'est à dire les échanges exécutés pour un ordre | En entrée: YourSecurityWord;YourUserName;Timestamp;ID;read_orderexecutions;orderid En sortie: YourSecurityWord;YourUserName;Timestamp; |
create_coupon | amount currency | coupon amount currency | Créer un bon | En entrée: YourSecurityWord;YourUserName;Timestamp;ID;redeem_oupon;amount;currency En sortie: YourSecurityWord;YourUserName;Timestamp;create_coupon;coupon;amount;currency |
redeem_coupon | coupon | coupon amount currency | Echanger un bon et créditer le montant correspondant sur le compte utilisateur. | En entrée: YourSecurityWord;YourUserName;Timestamp;create_coupon;coupon En sortie: YourSecurityWord;YourUserName;Timestamp;redeem_coupon;coupon;amount;currency |
Notes sur les paramètres:
- L'ordre des paramètres n'est pas impactant. L'ordre pour la création du jeton est crucial.
- VotreNomDUtilisateur : Fournissez votre nom d'utilisateur et pas votre adresse email. La valeur sensible à la casse.
- VotreCodeSécurité : Le code de sécurité que vous avez entré pour l'API .correspondante dans vos paramètres utilisateur. La valeur est sensible à la casse.
- TypeOrdre : les valeurs sont "SELL" or "BUY".
- Monnaie : utilisez les abréviations des monnaies, par ex. USD, BTC, NMC, etc...
- Prix et quantités : utilisez le point comme séparateur de décimales. N'utilisez pas de séparateur de milliers.
- OType : OType=0 pour les ordres non publiés, OType=1 pour les ordres publiés.
n plus des paramètres listés dans le tableau plus haut, les 4 paramètres suivants doivent toujours être fournis
Paramètre | Description |
---|---|
account | Votre compte de connexion, pas votre adresse email |
id | N'importe quelle valeur, La valeur d'ID ne peut pas être réutilise dans une période de dix minutes. C'est le garde fou contre le double envoi comme les URLs rejouées par des sources malveillantes. |
token | Un hash en SHA2 sur le nombre de valeur en entrée. Voyez plus bas pour la façon de le calculer. |
timestamp | Un timestamp UTC, doit être dans les 5 minutes suivant l'heure actuelle |
Calcul du jeton
Le jeton est calculé par la concaténation des paramètres d'entrée, séparés par un point-virgule et ensuite calculé en un hash SHA2 sur la chaine complète. Voir la colonne "Calcul du Jeton" dans le tableau des fonctions d'APIs pour les champs requis dans le calcul du hash.Voici un exemple (en Ruby) pour créer un ordre:
t = Time.now.gmtime.strftime("%Y-%m-%dT%H:%M:%S")
trx_id = Digest::SHA2.hexdigest("#{t}-#{rand}")
user_name = "MY_USER_NAME"
secret_word = "123456789"
tok = Digest::SHA2.hexdigest("#{secret_word};#{user_name};#{t};#{trx_id};create_order;sell;10;btc;50;nmc")
Order.call_https("https://vircurex.com","/api/create_order.json?account=#{user_name}&id=#{trx_id}&token=#{tok}×tamp=#{t}&ordertype=sell&amount=10¤cy1=btc&unitprice=50¤cy2=nmc")
def self.call_https(my_url,my_params)
uri = URI.parse(my_url)
http = Net::HTTP.new(uri.host, '443')
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
response=""
resp=""
http.start do |http|
cmd = my_params
req = Net::HTTP::Get.new(cmd)
response = http.request(req)
resp = response.body
end
return ActiveSupport::JSON.decode(resp)
end
Error codes
Error Code | Description |
---|---|
1 | L'ordre n'existe pas. |
2 | L'ordre n'appartient pas à l'utilisateur. |
3 | L'ordre est déjà publié. |
4 | Identifiant de compte inconnu. |
5 | Type d'ordre inconnu. |
6 | Paramètre manquant. |
7 | L'ordre n'est pas publié. |
8 | Monnaie inconnue. |
9 | L'API n'est pas configurée, soit inactive, soit le code sécurité est vide. |
10 | Fonds insufisants. Votre solde disponible est inférieur à la quantité spécifiée dans l'appel à l'API. |
12 | Monnaie manquante. |
13 | Monnaie non autorisée. Monnaie1 ne peut pas être une monnaie fiduciaire. |
14 | Le type d'ordre est manquant. |
15 | Le type d'ordre est inconnu. |
16 | Echanger sur cette paire n'est pas permis. |
17 | L'ordre est déjà clos. |
18 | Type d'ordre inconnu. Seules les valeurs 0 et 1 sont acceptées. |
100 | Cet ID a déjà été utilisé dans les dix dernières minutes. |
200 | Le volume de l'ordre (quantité*prix unitaire) doit être d'au moins 0,0001. |
201 | Le nombre maximal d'ordres a été atteint. Un maximum de 50 est autorisé. |
7999 | Fonction inactive. Vous devez activer cette fonction dans votre profil utilisateur |
8000 | Le timestamp est dépassé de plus de 5 minutes. |
8001 | Les APIs n'ont pas été activées. |
8002 | Cet utilisateur est banni de l'utilisation des APIs. |
8003 | Authentification échouée. |
9999 | Erreur non spécifiée. Contactez le service utilisateur. |
Nous nous réservons le droit de bloquer les appels d'APIs des utilisateurs dont nous pensons qu'ils font des appels sans véritable intention d'exécuter des ordres mais qui tentent apparament de perturber les échanges. |