Pangkalahatang Impormasyon ng REST API

  • Ang batayang URL: https://api -adapter.backend.currency.com
  • Ang batayang URL, demo account: https://demo-api-adapter.backend.currency.com
  • Ang lahat ng endpoint ay nagbabalik ng JSON object o array.
  • Ibinalik ang data sa pataas na pagkakasunud-sunod. Pinakaluma muna, pinakabago ang nasa huli.
  • Ang lahat ng field na nauugnay sa oras at timestamp ay nasa milisegundo.
  • Lahat ng mga tokenized asset maliban sa mga token ng kumpanya, tokenized bond, token na “KARMA.cx” at tokenised na asset mula sa mga merkado ng Hong Kong ay magagamit sa unang bersyon (v1) ng aming API. Sa pangalawang bersyon ng API (v2) magagamit din ang mga merkado ng Hong Kong.
  • Ang listahan ng mga asset na magagamit para sa pag-trade ng leverage sa loob ng API ay makikita sa dito.
  • Kapag nagtatakda ng merkado, limitahan o ihinto ang mga order at pagbanggit ng mas malaking halaga ng mga numero ng katumpakan kaysa sa kinakailangan para sa isang partikular na token, ang round_down na logic ay totoo. Ang pinapayagang katumpakan ay makikita sa exchangeInfo na tugon sa kahilingan, parametrong quotePrecision.
  • Kapag nagbabanggit ng mas malaking halaga ng mga numero ng katumpakan para sa parametro ng presyo, ginagamit ang round_up logic. Ang pinapayagang katumpakan ay makikita sa exchangeInfo na tugon sa kahilingan, parametrong quotePrecision.

Mangyaring sumangguni sa bahagi ng REST API sa loob ng Swagger para makuha ang impormasyong kailangan.

Troubleshooting

HTTP Return Codes

  • Ang mga HTTP 4XX return code ay ginagamit para sa mga maling pormang kahilingan; ang isyu ay nasa panig ng nagpadala.
  • Ang HTTP 403 return code ay ginagamit kapag ang WAF Limit (Web Application Firewall) ay nilabag.
  • Ginagamit ang HTTP 429 return code kapag lumalabag sa limitasyon sa rate ng kahilingan.
  • Ang HTTP 418 return code ay ginagamit kapag ang isang IP ay na-auto-ban para sa patuloy na pagpapadala ng mga kahilingan pagkatapos makatanggap ng 429 code.
  • Ang mga HTTP 5XX return code ay ginagamit para sa mga panloob na error; ang isyu ay nasa panig ng Currency.com. Mahalagang HINDI ito tratuhin bilang isang bigong operasyon; ang katayuan ng pagpapatupad ay HINDI ALAM at maaaring naging matagumpay.

Mga Error Code

  • Ang anumang endpoint ay maaaring magbalik ng ERROR.

Halimbawang Payload sa ibaba:

Tugon:
{ "code": -1121, "msg": "Invalid symbol." }
  • Ang mga partikular na error code at mensahe ay tinukoy sa Error Codes.

Pangkalahatang Impormasyon sa mga Endpoint

  • Para sa mga endpoint ng GET, ang mga parametro ay dapat ipadala bilang query string.
  • Para sa mga endpoint ng POST, PUT, at DELETE, ang mga parametro ay maaaring ipadala bilang query string o sa request body na may uri ng nilalaman na application/x-www-form-urlencoded. Maaari mong paghaluin ang mga parametro sa pagitan ng query string at request body kung nais mong gawin ito. Maaaring ipadala ang mga parametro sa anumang pagkakasunud-sunod.
  • Maaaring ipadala ang mga parametro sa anumang pagkakasunud-sunod.
  • Kung ang isang parametro ay ipinadala sa parehong query string at request body, ang parametrong query string ay gagamitin.

Uri ng seguridad ng Endpoint

  • Ang bawat endpoint ay may uri ng seguridad na tumutukoy sa kung paano ka makikipag-ugnayan dito. Ito ay nakasaad kasunod ng PANGALAN ng endpoint.
  • Kung walang nakasaad na uri ng seguridad, ipagpalagay na ang uri ng seguridad ay WALA.
  • Ang mga API-key ay ipinapasa sa REST API sa pamamagitan ng X-MBX-APIKEY header.
  • Ang mga API-key at secret-key ay case sensitive.
  • Maaaring i-configure ang mga API-key para ma-access lamang ang ilang uri ng mga ligtas na endpoint. Halimbawa, ang isang API-key ay maaaring gamitin para sa TRADE lamang, habang ang isa pang API-key ay maaaring ma-access ang lahat maliban sa mga ruta ng TRADE.
  • Bilang default, maa-access ng mga API-key ang lahat ng ligtas na ruta.
Uri ng seguridadPaglalarawan
WALAMalayang maa-access ang endpoint
TRADEKailangan ng endpoint na magpadala ng wastong API-Key at lagda
USER_DATAKailangan ng Endpoint na magpadala ng wastong API-Key at lagda
USER_STREAMKailangan ng Endpoint na magpadala ng wastong API-Key
MARKET_DATAKailangan ng endpoint na magpadala ng wastong API-Key
  • TRADE at USER_DATA na mga endpoint ay NILAGDAANG mga endpoint.

NILAGDAAN (TRADE, USER_DATA, AT MARGIN) Seguridad ng endpoint

  • Ang NILAGDAAN na mga endpoint ay nangangailangan ng karagdagang parametro, lagda, na ipapadala sa query string o request body.
  • Gumagamit ang mga endpoint ng mga lagda ng HMAC SHA256. Ang lagda ng HMAC SHA256 ay isang naka-key HMAC SHA256 na operasyon. Gamitin ang iyong secretKey bilang susi at totalParams bilang halaga para sa pagpapatakbo ng HMAC.
  • Ang lagda ay hindi case sensitive.
  • Ang totalParams ay tinukoy bilang ang query string na pinagsama sa request body.

Seguridad ng timing

  • Isang NILAGDAAN na endpoint ay nangangailangan din ng isang parametro, timestamp , na ipapadala na dapat ay ang milisegundo na timestamp kung kailan ginawa at naipadala ang kahilingan.
  • Ang isang karagdagang parametro, recvWindow, ay maaaring ipadala para tukuyin ang bilang ng mga milisegundo pagkatapos ng timestamp kung saan may bisa ang kahilingan. Kung ang recvWindow § ay hindi naipadala, ito ay magiging default sa 5000.

Ang lohika ay ang sumusunod:

if (timestamp < (serverTime + 1000) && (serverTime - timestamp) <= recvWindow) { // process request } else { // reject request }

Ang seryosong pag-trade ay tungkol sa tiyempo o timing. Ang mga network ay maaaring maging hindi matatag at hindi maaasahan, na maaaring humantong sa mga kahilingan na tumatagal sa iba't ibang haba ng oras para marating ang mga server. Gamit ang recvWindow , maaari mong tukuyin na ang kahilingan ay dapat iproseso sa loob ng isang tiyak na bilang ng mga milisegundo o tatanggihan ng server.

Inirerekomendang gumamit ng isang maliit na recvWindow na 5000 o mas mababa pa! Ang max ay hindi maaaring lumampas sa 60,000!

NILAGDAAN na Endpoint na Mga Halimbawa para sa POST /api/v1/order

Narito ang kada hakbang na halimbawa kung paano magpadala ng balidong nilagdaang payload mula sa Linux command line gamit ang echo, openssl, at curl.

KeyHalaga
apiKeyvmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A
secretKeyNhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j
ParametroHalaga
simboloLTC/BTC
gilidBUMILI
uriLIMITASYON
timeInforceGTC
dami1
presyo0,1
recvWindow5000
timestamp1499827319559

Pakitandaan na ang ilang mga simbolo tulad ng '/' ay dapat na na-encode ng url at baguhin sa sumusunod na kombinasyon '%2F'.

Halimbawa 1: Bilang isang request body

requestBody:

symbol=LTC%2FBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559

HMAC SHA256 signature

[linux]$ echo -n
"symbol=LTC%2FBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559" | openssl dgst -sha256 -hmac
"NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"
(stdin)= ebec6528b2beb508b2417fa33453a4ad28c1aae8097bb243caa60d0524036f50

curl command:

(HMAC SHA256)
[linux]$ curl -H "X-MBX-APIKEY:
vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A" -X POST 'https://api-adapter.backend.currency.com/api/v1/order' -d
'symbol=LTC%2FBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559&signature=ebec6528b2beb508b2417fa33453a4ad28c1aae8097bb243caa60d0524036f50'

Halimbawa 2: Bilang isang query string

queryString:

symbol=LTC%2FBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559

HMAC SHA256 signature:

[linux]$ echo -n
"symbol=LTC%2FBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559" | openssl dgst -sha256 -hmac
"NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"
(stdin)= ebec6528b2beb508b2417fa33453a4ad28c1aae8097bb243caa60d0524036f50

curl command:

(HMAC SHA256)
[linux]$ curl -H "X-MBX-APIKEY:
vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A" -X POST 'https://api-adapter.backend.currency.com/api/v1/order?symbol=LTC%2FBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000&timestamp=1499827319559&signature=ebec6528b2beb508b2417fa33453a4ad28c1aae8097bb243caa60d0524036f50'

NILAGDAANG Endpoint na Mga Halimbawa para sa POST /api/v1/order
(mode ng leverage trading)

Narito ang isang kada hakbang na halimbawa kung paano magpadala ng balidong nilagdaang payload mula sa Linux command line gamit ang echo, openssl, at curl.

KeyHalaga
apiKeyvmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A
secretKeyNhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j
ParametroHalaga
simboloBTC/USD_LEVERAGE
panigBUMILI
uriMERKADO
timeInforceGTC
dami0.01
dami2
accountId2376109060084932
takeProfit8000
stopLoss6000
recvWindow60000
timestamp1586942164000

Pakitandaan na ang ilang mga simbolo tulad ng '/' ay dapat na naka-encode sa url at baguhin sa sumusunod na kombinasyong '%2F'.

Halimbawa 1: Bilang isang request body

requestBody:

symbol=BTC%2FUSD_LEVERAGE&side=BUY&type=MARKET&timeInForce=GTC&quantity=0.01&leverage=2&accountId=2376109060084932&takeProfit=8000&stopLoss=6000&recvWindow=60000&timestamp=1586942164000

HMAC SHA256 signature

[linux]$ echo -n
"symbol=BTC%2FUSD_LEVERAGE&side=BUY&type=MARKET&timeInForce=GTC&quantity=0.01&leverage=2&accountId=2376109060084932&takeProfit=8000&stopLoss=6000&recvWindow=60000&timestamp=1586942164000" | openssl dgst -sha256 -hmac
"NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"
(stdin)= 05fc9fd19c2b1a11215025c5dfa56da2204b04181add67670d4f92049b439f7b

curl command:

(HMAC SHA256)
[linux]$ curl -H "X-MBX-APIKEY:
vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A" -X POST 'https://api-adapter.backend.currency.com/api/v1/order' -d
'symbol=BTC%2FUSD_LEVERAGE&side=BUY&type=MARKET&timeInForce=GTC&quantity=0.01&leverage=2&accountId=2376109060084932&takeProfit=8000&stopLoss=6000&recvWindow=60000&timestamp=1586942164000&signature=05fc9fd19c2b1a11215025c5dfa56da2204b04181add67670d4f92049b439f7b'

Halimbawa 2: Bilang isang query string

queryString:

symbol=BTC%2FUSD_LEVERAGE&side=BUY&type=MARKET&timeInForce=GTC&quantity=0.01&leverage=2&accountId=2376109060084932&takeProfit=8000&stopLoss=6000&recvWindow=60000&timestamp=1586942164000

HMAC SHA256 signature:

[linux]$ echo -n
"symbol=BTC%2FUSD_LEVERAGE&side=BUY&type=MARKET&timeInForce=GTC&quantity=0.01&leverage=2&accountId=2376109060084932&takeProfit=8000&stopLoss=6000&recvWindow=60000&timestamp=1586942164000" | openssl dgst -sha256 -hmac
"NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"
(stdin)= 05fc9fd19c2b1a11215025c5dfa56da2204b04181add67670d4f92049b439f7b

curl command:

(HMAC SHA256)
[linux]$ curl -H "X-MBX-APIKEY:
vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A" -X POST 'https://api-adapter.backend.currency.com/api/v1/order?symbol=BTC%2FUSD_LEVERAGE&side=BUY&type=MARKET&timeInForce=GTC&quantity=0.01&leverage=2&accountId=2376109060084932&takeProfit=8000&stopLoss=6000&recvWindow=60000&timestamp=1586942164000&signature=05fc9fd19c2b1a11215025c5dfa56da2204b04181add67670d4f92049b439f7b

Terminolohiya

  • Ang base asset ay tumutukoy sa asset na dami ng isang simbolo.
  • Ang quote asset ay tumutukoy sa asset na presyo ng isang simbolo.

Mga paglalarawan ng ENUM

Katayuan ng order (status):

  • BAGO
  • NAPUNAN
  • NAKANSELA
  • TINANGGIHAN

Mga uri ng order (orderTypes, type):

  • LIMITAHAN
  • MERKADO
  • ITIGIL

Panig ng order (side):

  • BUMILI
  • MAGBENTA

Ipinatutupad na oras (timeInForce):

  • GTC
  • IOC
  • FOK

Kline/Mga pagitan ng candlestick na tsart:
m -> minutes; h -> hours; d -> days; w -> weeks

  • 1m
  • 5m
  • 15m
  • 30m
  • 1h
  • 4h
  • 1d
  • 1w

/klines 'type' parametro:

  • heiken-ashi