API (Application Programming Interface) umožňuje uživatelům BitStock využít vlastní software pro kontrolu a řízení BitStock účtů.
BitStock API interface je podobný Bitstamp API (www.bitstamp.net/api). API v současnosti umožňuje stahovat aktuální seznam nabídek (nákup/prodej) na burze, kontrolovat stav prostředků na účtě a zadávat příkazy pro prodej/nákup.
Privátní část API mohou využívat pouze verifikování uživatelé BitStock. API je omezeno limitem 600 volání (requestů) za 10 minut, pokud dojde k překročení tohoto limitu, dojde k zablokování IP adresy ze které volání přicházejí.
{ "asks": [[6780,0.05,0.05],[6800,0.05,0.05]], "bids": [[6580,1.6921,0.05],[6420,0.1026874,0.05]] }
Všechna volání privátní části API vyžadují autentizaci. Pro úspěšnou autentizaci je nutné poskytnou tyto údaje:
API key je možné obdržet ve Vašem BitStock profilu. V menu navigujte na "Nastavení", "Api" a klikněte "Vytvořit API klíč".
Nonce je celé kladné číslo. Musí být inkrementováno při každém volání API (vysvětlení Nonce viz zde).
Příklad: pokud nastavíte Nonce na 1 při svém prvním volání API, pak jej musíte nastavit na (alespoň) 2 při Vašem druhém volání. Není nutné začínat 1, běžnou praxí je využití unix time.
Signature (podpis) je HMAC-SHA256 zahashovaná zpráva obsahující Nonce a API key. HMAC-SHA256 využívá tajný klíč (API SECRET) který je vygenerován spolu s API key. Výsledná zahashovaná zpráva (podpis) musí být konvertována do hexadecimální reprezetace (kombinace 64 čísel a velkých písmen).
Příklad Python:
message = nonce + userId + api_key signature = hmac.new(API_SECRET, msg=message, digestmod=hashlib.sha256).hexdigest().upper()
Příklad PHP:
$message = $nonce . $userId . $api_key; $signature = hash_hmac("sha256", $message, $API_SECRET); $signature = strtoupper($signature);
Parametry:
Ukázka výstupu:
{ "accounts": [ { "id": 1004, "currency": "EUR", "balance": 320.56, "blocked": 0, "blockedInSellTradesFiat": 0, "blockedInSellTradesBTC": 0, "blockedInBuyTradesFiat": 0, "blockedInBuyTradesBTC": 0, "available": 320.56, "iban": "CZ3120100000002000610368", "banknr": "2010", "bankaccount": "2000610368" } ], "fee" : 0.009 }
Položka "blockedInSellTradesFiat" uvádí prostředky blokované v sell (nákup) obchodech (aktivnich, čekajíci na zasláni bitcoinů). Odpovídající množství BTC uvadí údaj "blockedInSellTradesBTC". Analogicky pro buy je pak uveden údaj "blockedInBuyTradesFiat" a "blockedInBuyTradesBTC". Částka uvedená v "blockedInSellTradesFiat" udává o kolik se vám změní "Zůstatek na účtu" po dokončení obchodů (zaslání bitcoinů), tj. v případě "blockedInSellTradesFiat" se vám tato částka přičte a v případě "blockedInBuyTradesFiat" odečte.
Parametry:
Ukázka vstupu:
POST https://market.bitstock.com/api/trade/czk/usertrades signature : 661E8CE8D2B4E435D16D70600A98B0D819F5D1C007EC67842457AAA1C41C5657 nonce : 3 key : 4768A9BA582CA678F95EC5D99F2079B0 limit : 2 offset : 10 sort : asc
Ukázka výstupu:
[ [ 11, 547, 0.08, "filled", 1388058144, 1388144544, null, "SELL", 999.99 ], [ 12, 550, 0.01, "filled", 1388067139, 1388153539, 1388068808, "BUY", 999.99 ] ]
Popis výstupu:
Parametry:
[ [ 27448, "buy", 1000, 1, 0.05, 1 ], [ 26583, "sell", 20000, 0.1, 0.05, 0.1 ] ]
Popis výstupu:
Parametry:
Vrací "true" pokud byl příkaz úspěšně zrušen.
Parametry:
Ukázka vstupu:
POST https://market.bitstock.com/api/order/czk/create signature : 661E8CE8D2B4E435D16D70600A98B0D819F5D1C007EC67842457AAA1C41C5657 nonce : 3 key : 4768A9BA582CA678F95EC5D99F2079B0 type : sell price : 5000 amount : 1.2 minAmount : 0.05 accountId : 1
Ukázka výstupu:
{ "cmdId": 27445, "trades": [ { "tradeId": 5514, "amount": "1.2", "price": "6580.000", "currency": "CZK" } ] }
Kde cmdId je id nově vytvořeného příkazu. Pokud při zadání příkazu dojde hned k uzavření obchodů, pak je součástí výstupu i seznam nově uzavřených obchodů spolu s údaji o: id obchodu, ceny (za 1 BTC) při které byl obchod uzavřen, množství (v BTC) a měně.