Bitmex est une plateforme d'échange de cryptomonnaies et de trading de dérivés.
Les API suivantes sont prises en charge :
L'API Bitmex dispose de 2 types de méthodes : publiques et privées. Les méthodes publiques sont accessibles sans authentification, par exemple : obtenir les prix des tickers. Certaines sont privées et liées aux données utilisateur ; ces méthodes nécessitent l'utilisation des clés API Bitmex.
REST API
Subscribe / Unsubscribe
BitMEX permet de s'abonner à des données en temps réel. Cet accès n'est pas limité en débit une fois connecté et constitue le meilleur moyen d'obtenir les données les plus récentes pour vos programmes. Pour certains sujets, vous pouvez passer un symbole pour filtrer les événements par symbole, par exemple : trades, quotes...
Les sujets d'abonnement suivants sont disponibles sans authentification :
btmAnnouncement : Annonces du site
btmChat : chat Trollbox
btmConnected : Statistiques des utilisateurs/bots connectés
btmFunding : mises à jour des taux de financement des swaps. Envoyé à chaque intervalle de financement (généralement 8h)
btmInstrument : Mises à jour d'instrument incluant le volume et le cours acheteur/vendeur
btmInsurance : Mises à jour quotidiennes du fonds d'assurance
btmLiquidation : Ordres de liquidation au fur et à mesure qu'ils entrent dans le carnet
btmOrderBookL2_25 : Les 25 premiers niveaux du carnet d'ordres de niveau 2
btmOrderBookL2 : carnet d'ordres complet niveau 2
btmOrderBook10 : 10 niveaux supérieurs utilisant la transmission complète traditionnelle du carnet
btmPublicNotifications : Notifications à l'échelle du système (utilisées pour les messages de courte durée)
btmQuote : premier niveau du carnet
btmQuoteBin1m : bins de cotations d'1 minute
btmQuoteBin5m : bins de devis de 5 minutes
btmQuoteBin1h : intervalles de cotation d'une heure
btmQuoteBin1d : compartiments de cotation journaliers
btmSettlement : Règlements
btmTrade : Transactions en direct
btmTradeBin1m : compartiments de trade de 1 minute
btmTradeBin5m : bins de trades de 5 minutes
btmTradeBin1h : intervalles de trading d'1 heure
btmTradeBin1d : intervalles de trades d'une journée
Les sujets suivants nécessitent une authentification :
btmAffiliate : statut d'affilié, notamment le nombre total d'utilisateurs référencés et le pourcentage de rémunération
btmExecution : exécutions individuelles ; peut être multiple par ordre
btmOrder : Mises à jour en direct sur vos ordres
btmMargin : Mises à jour de votre solde de compte courant et de vos exigences de marge
btmPosition : Mises à jour sur vos positions
btmPrivateNotifications : Notifications individuelles - actuellement non utilisées
btmTransact : Mises à jour de dépôt/retrait
btmWallet : Données de solde d'adresse Bitcoin, incluant les dépôts et retraits totaux
Exemple de messages reçus :
{
"table":"orderBookL2_25",
"keys":["symbol","id","side"],
"types":{"id":"long","price":"float","side":"symbol","size":"long","symbol":"symbol"}
"foreignKeys":{"side":"side","symbol":"instrument"},
"attributes":{"id":"sorted","symbol":"grouped"},
"action":"partial",
"data":[
{"symbol":"XBTUSD","id":17999992000,"side":"Sell","size":100,"price":80},
{"symbol":"XBTUSD","id":17999993000,"side":"Sell","size":20,"price":70},
{"symbol":"XBTUSD","id":17999994000,"side":"Sell","size":10,"price":60},
{"symbol":"XBTUSD","id":17999995000,"side":"Buy","size":10,"price":50},
{"symbol":"XBTUSD","id":17999996000,"side":"Buy","size":20,"price":40},
{"symbol":"XBTUSD","id":17999997000,"side":"Buy","size":100,"price":30}
]
}
{
"table":"orderBookL2_25",
"action":"update",
"data":[
{"symbol":"XBTUSD","id":17999995000,"side":"Buy","size":5}
]
}
{
"table":"orderBookL2_25",
"action":"delete",
"data":[
{"symbol":"XBTUSD","id":17999995000,"side":"Buy"}
]
}
{
"table":"orderBookL2_25",
"action":"insert",
"data":[
{"symbol":"XBTUSD","id":17999995500,"side":"Buy","size":10,"price":45},
]
}
Authentification
Si vous souhaitez vous abonner à des flux verrouillés pour les utilisateurs, vous devez d'abord vous authentifier. Notez qu'une authentification invalide fermera la connexion.
L'utilisation de l'API BitMEX nécessite une clé API.
Les clés API permanentes peuvent être verrouillées sur des plages d'adresses IP et révoquées à volonté sans compromettre vos informations d'identification principales. Elles ne nécessitent également pas de renouvellement.
Pour utiliser l'authentification par clé API, vous devez générer une clé API dans votre compte.
Appelez la méthode Authenticate avant de vous abonner à tout Topic authentifié.
CancelAllAfter (interrupteur homme mort)
La méthode CancelAllAfter implémente la fonctionnalité Dead Man's Switch. Lorsqu'elle est appelée avec une valeur de délai d'expiration (en millisecondes), elle demande au serveur d'annuler tous les ordres ouverts si aucun appel CancelAllAfter ultérieur n'est reçu dans le délai imparti. Cela est utile pour s'assurer que les ordres sont annulés en cas de déconnexion réseau.
| Méthode | Description |
| GetExecutions | Ceci retourne toutes les transactions brutes, y compris l'ouverture et l'annulation d'ordres, ainsi que les changements de statut des ordres. |
| GetExecutionsTradeHistory | Cela renvoie des transactions plus ciblées. |
| GetInstruments | Cette requête retourne tous les instruments et indices, y compris ceux qui ont été réglés ou retirés de la liste. Utilisez ce point de terminaison si vous souhaitez interroger des instruments individuels ou utiliser un filtre complexe. |
| GetOrders | Pour obtenir uniquement les ordres ouverts |
| PlaceOrder | Placer un ordre brut en utilisant l'objet TsgcHTTPBitmexOrder. |
| PlaceMarketOrder | Passer un nouvel ordre MARKET. |
| PlaceLimitOrder | Placer un nouvel ordre LIMIT. |
| PlaceStopOrder | Passer un nouvel ordre STOP. |
| PlaceStopLimitOrder | Placer un nouvel ordre STOPLIMIT. |
| AmendOrder | Modifier un ordre existant. |
| CancelOrder | Annule un ordre actif. |
| CancelAllOrders | Annuler tous les ordres actifs. |
| CancelAllOrdersAfter | Annuler tous les ordres après un certain temps. |
| ClosePosition | Fermer une position ouverte. |
| GetOrderBook | Obtenir le carnet d'ordres actuel au format vertical |
| GetPosition | Obtenir vos positions. |
| SetPositionIsolate | Activer la marge isolée ou la marge croisée par position. |
| SetPositionLeverage | Choisissez l'effet de levier par position. |
| SetPositionRiskLimit | Mettez à jour votre limite de risque. |
| SetPositionTransferMargin | Transférer des capitaux propres dans ou hors d'une position. |
| GetQuotes | Obtenir des cotations |
| GetTrades | Obtenir les transactions |
| GetFunding | Obtenir les données de financement. |
| GetInsurance | Obtenir les données du fonds d'assurance. |
| GetTradeBucketed | Obtenir des données de trading agrégées (OHLCV) avec des tailles de bacs configurables. |
| GetQuoteBucketed | Obtenir des données de cotation en intervalles avec des tailles d'intervalles configurables. |
| GetSettlement | Obtenir les données de règlement. |
| GetLiquidation | Obtenir les ordres de liquidation. |
| GetInstrumentIndices | Obtenir les indices des instruments. |
| GetInstrumentCompositeIndex | Obtenir des données d'index composite pour les instruments. |
| GetStats | Obtenir les statistiques à l'échelle de l'échange. |
| GetStatsHistory | Obtenir des statistiques d'échange historiques. |
| GetStatsHistoryUSD | Obtenir les statistiques historiques de change USD. |
| GetUserMargin | Obtenez les données de marge de votre compte. |
| GetUserWallet | Obtenez les informations de votre portefeuille. |
| GetUserWalletHistory | Obtenez l'historique des transactions de votre portefeuille. |
| GetUserWalletSummary | Obtenir un résumé de votre portefeuille. |