Info FAQ Help Contact

Help

  1. Opening a bitcoin wallet
  2. BitStock exchange Manual
  3. Electronic Signature and Adding Bitcoin Address
  4. Settling a trade on BitStock
  5. Fees in the Bitcoin Network
  6. BitStock API

API burzy BitStock

Co je API ?

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.

Omezení

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í.

Veřejná část API

Nabídky na burze bitstock (orderbook)

GET https://market.bitstock.com/api/order/czk/orderbook
GET https://market.bitstock.com/api/order/eur/orderbook
Ukázka výstupu:
{
	"asks": [[6780,0.05,0.05],[6800,0.05,0.05]],
	"bids": [[6580,1.6921,0.05],[6420,0.1026874,0.05]]
}
Asks odpovídají nabídkám na prodej, bids pak nabídkam na koupi. Hodnoty jsou uvedeny v pořadí cena, množství, minimální množství.

Privátní část API

Všechna volání privátní části API vyžadují autentizaci. Pro úspěšnou autentizaci je nutné poskytnou tyto údaje:

  • API key
  • Nonce
  • Signature

API key

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

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

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);
Funkční příklad v C# (děkujeme Lukáši Veleckému za poskytnutí příkladu):

Privátní část API (funkce)

Prostředky na účtu

POST https://market.bitstock.com/api/account/czk/balance
POST https://market.bitstock.com/api/account/eur/balance

Parametry:

  • key
  • nonce
  • signature

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.

Obchody uživatele

POST https://market.bitstock.com/api/trade/czk/usertrades
POST https://market.bitstock.com/api/trade/eur/usertrades

Parametry:

  • key
  • nonce
  • signature
  • offset - přeskočí tolik záznamů. Pokud není uvedeno, hodnota je nastavena na 0.
  • limit - ohraničuje počet vrácených záznamů, maximum je 1000. Pokud není uvedeno, hodnota je nastavena na 100.
  • sort - řázení výsledků podle data vytvoření obchodu. asc je vzestupně, desc sestupně. Pokud není uvedeno, hodnota je nastavena na desc.
  • accountId - filtrace pomocí id konkrétního bankovního učtu. Pokud není uvedeno, vrací se záznamy přes účty v dané měně ("CZK" nebo "EUR").

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:

  • id - id obchodu
  • price - cena za jeden bicoin, kurz při kterém byl obchod tytvořen
  • amount - množství bitcoinů
  • state - stav obchodu. Může být new - vytvořen, partfilled - část bitcoinů byla zaslána, filled - všechny bitcoiny zaslány, failed - bitcoiny nebyly zaslány do dané doby, viz. hodnota expire .
  • created - datum vytvoření obchodu
  • expire - datum kdy obchod expiruje, tj. datum kdy bude obchod prohášen za zmařený (stav failed).
  • finished - datum kdy byl obchod dokončen
  • direction - SELL / BUY
  • fee

Otevřené příkazy uživatele

POST https://market.bitstock.com/api/order/czk/openorders
POST https://market.bitstock.com/api/order/eur/openorders

Parametry:

  • key
  • nonce
  • signature
[
    [
        27448,
        "buy",
        1000,
        1,
        0.05,
        1
    ],
    [
        26583,
        "sell",
        20000,
        0.1,
        0.05,
        0.1
    ]
]

Popis výstupu:

  • id - id příkazu
  • type - typ příkazu, může být buď sell (prodej) nebo buy (nákup)
  • price - zadaný limitní kurz bitcoinu
  • amount - množství BTC které příkaz zobchodovává
  • minAmount - min. množství BTC
  • domAmount - množství BTC které příkazu zbývá zobchodovat (tj. množství viditelné ostatním v seznamu aktivních nabídek na BitStock)

Zrušení příkazu

POST https://market.bitstock.com/api/order/cancel

Parametry:

  • key
  • nonce
  • signature
  • id - Id příkazu který chcete zrušit

Vrací "true" pokud byl příkaz úspěšně zrušen.

Příkaz pro prodej/nákup

POST https://market.bitstock.com/api/order/czk/create
POST https://market.bitstock.com/api/order/eur/create

Parametry:

  • key
  • nonce
  • signature
  • type - Typ příkazu, může být buď sell (prodej) nebo buy (nákup)
  • price
  • amount
  • minAmount
  • accountId - Id bankovního účtu registrovaného ve Vašem profilu, ke kterému bude příkaz vázán

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ě.