Bitmex è una piattaforma di scambio di criptovalute e trading di derivati.
Sono supportate le seguenti API:
L'API di Bitmex ha 2 tipi di metodi: pubblici e privati. I metodi pubblici sono accessibili senza autenticazione, ad esempio: ottenere i prezzi dei ticker. Alcuni sono privati e relativi ai dati utente; tali metodi richiedono l'uso delle chiavi API di Bitmex.
REST API
Sottoscrivi / Annulla sottoscrizione
BitMEX consente di sottoscrivere dati in tempo reale. Questo accesso non è soggetto a limitazione di frequenza una volta connessi ed è il modo migliore per ottenere i dati più aggiornati nei propri programmi. In alcuni argomenti, è possibile passare un Symbol per filtrare gli eventi per simbolo, ad esempio: trades, quotes...
I seguenti topic di sottoscrizione sono disponibili senza autenticazione:
btmAnnouncement: Annunci del sito
btmChat: Chat Trollbox
btmConnected: Statistiche degli utenti/bot connessi
btmFunding: Aggiornamenti dei tassi di finanziamento degli swap. Inviato a ogni intervallo di finanziamento (solitamente 8 ore)
btmInstrument: Aggiornamenti dello strumento inclusi turnover e bid/ask
btmInsurance: Aggiornamenti giornalieri del fondo assicurativo
btmLiquidation: Ordini di liquidazione nel momento in cui vengono inseriti nel book
btmOrderBookL2_25: Primi 25 livelli del book degli ordini di livello 2
btmOrderBookL2: Libro degli ordini completo di livello 2
btmOrderBook10: I primi 10 livelli con aggiornamento tradizionale del book completo
btmPublicNotifications: Notifiche di sistema (utilizzate per messaggi di breve durata)
btmQuote: Livello superiore del book
btmQuoteBin1m: bin di quotazione da 1 minuto
btmQuoteBin5m: Bin di quotazione di 5 minuti
btmQuoteBin1h: bin di quotazione a 1 ora
btmQuoteBin1d: Quote bin giornaliere
btmSettlement: Liquidazioni
btmTrade: Transazioni in tempo reale
btmTradeBin1m: bin di trading da 1 minuto
btmTradeBin5m: bin di trading da 5 minuti
btmTradeBin1h: bin di trading a 1 ora
btmTradeBin1d: bin di trading giornalieri
I seguenti argomenti richiedono l'autenticazione:
btmAffiliate: Stato di affiliazione, ad esempio numero totale di utenti referenziati e percentuale di pagamento
btmExecution: Esecuzioni singole; possono essere multiple per ordine
btmOrder: Aggiornamenti in tempo reale sui propri ordini
btmMargin: Aggiornamenti sul saldo corrente dell'account e sui requisiti di margine
btmPosition: Aggiornamenti sulle proprie posizioni
btmPrivateNotifications: Notifiche individuali - attualmente non utilizzate
btmTransact: aggiornamenti di deposito/prelievo
btmWallet: Dati del saldo dell'indirizzo Bitcoin, inclusi depositi & prelievi totali
Esempio di messaggi ricevuti:
{
"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},
]
}
Autenticazione
Per iscriversi a stream bloccati dall'utente è necessario autenticarsi prima. Si noti che un'autenticazione non valida chiuderà la connessione.
L'utilizzo dell'API BitMEX richiede una chiave API.
Le chiavi API permanenti possono essere bloccate su intervalli di indirizzi IP e revocate a piacere senza compromettere le credenziali principali. Non richiedono nemmeno il rinnovo.
Per utilizzare l'autenticazione tramite chiave API, è necessario generare una chiave API nel proprio account.
Chiamare il metodo Authenticate prima di iscriversi a qualsiasi Authenticated Topic.
CancelAllAfter (Dead Man's Switch)
Il metodo CancelAllAfter implementa la funzione Dead Man's Switch. Quando viene chiamato con un valore di timeout (in millisecondi), indica al server di annullare tutti gli ordini aperti se non viene ricevuta alcuna successiva chiamata CancelAllAfter entro il periodo di timeout. Questa funzione è utile per garantire che gli ordini vengano annullati in caso di disconnessione dalla rete.
| Metodo | Descrizione |
| GetExecutions | Restituisce tutte le transazioni grezze, incluse l'apertura e la cancellazione degli ordini e le modifiche dello stato degli ordini. |
| GetExecutionsTradeHistory | Restituisce transazioni più mirate. |
| GetInstruments | Restituisce tutti gli strumenti e gli indici, inclusi quelli che sono stati liquidati o non sono in lista. Utilizzi questo endpoint se si desidera interrogare singoli strumenti o applicare un filtro complesso. |
| GetOrders | Per ottenere solo gli ordini aperti |
| PlaceOrder | Inserisce un ordine grezzo utilizzando l'oggetto TsgcHTTPBitmexOrder. |
| PlaceMarketOrder | Piazza un nuovo ordine MARKET. |
| PlaceLimitOrder | Inserisce un nuovo ordine LIMIT. |
| PlaceStopOrder | Inserisce un nuovo ordine STOP. |
| PlaceStopLimitOrder | Inserisci un nuovo ordine STOPLIMIT. |
| AmendOrder | Modifica un ordine esistente. |
| CancelOrder | Annulla un Order attivo. |
| CancelAllOrders | Annulla tutti gli ordini attivi. |
| CancelAllOrdersAfter | Annulla tutti gli ordini dopo un certo tempo. |
| ClosePosition | Chiude una posizione aperta. |
| GetOrderBook | Ottieni il libro degli ordini corrente in formato verticale |
| GetPosition | Ottiene le Sue posizioni. |
| SetPositionIsolate | Abilitare il margine isolato o incrociato per posizione. |
| SetPositionLeverage | Scegliere la leva finanziaria per posizione. |
| SetPositionRiskLimit | Aggiornare il limite di rischio. |
| SetPositionTransferMargin | Trasferire equity in entrata o in uscita da una posizione. |
| GetQuotes | Ottieni quotazioni |
| GetTrades | Ottieni transazioni |
| GetFunding | Ottiene i dati di funding. |
| GetInsurance | Recupero dei dati del fondo assicurativo. |
| GetTradeBucketed | Recupera i dati di trading raggruppati (OHLCV) con dimensioni di bin configurabili. |
| GetQuoteBucketed | Recupera dati di quotazione raggruppati con dimensioni dei contenitori configurabili. |
| GetSettlement | Recupera i dati di liquidazione. |
| GetLiquidation | Recupera gli ordini di liquidazione. |
| GetInstrumentIndices | Ottenere gli indici degli strumenti. |
| GetInstrumentCompositeIndex | Ottiene i dati dell'indice composito per gli strumenti. |
| GetStats | Ottiene le statistiche complessive dell'exchange. |
| GetStatsHistory | Ottieni statistiche storiche sugli exchange. |
| GetStatsHistoryUSD | Ottiene le statistiche storiche di cambio in USD. |
| GetUserMargin | Ottieni i dati sul margine del tuo account. |
| GetUserWallet | Ottieni le informazioni del tuo wallet. |
| GetUserWalletHistory | Ottenere la cronologia delle transazioni del proprio portafoglio. |
| GetUserWalletSummary | Ottiene un riepilogo del Suo portafoglio. |