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:
{
"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 bilangquery string
. - Para sa mga endpoint ng
POST
,PUT
, atDELETE
, 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 seguridad | Paglalarawan |
---|---|
WALA | Malayang maa-access ang endpoint |
TRADE | Kailangan ng endpoint na magpadala ng wastong API-Key at lagda |
USER_DATA | Kailangan ng Endpoint na magpadala ng wastong API-Key at lagda |
USER_STREAM | Kailangan ng Endpoint na magpadala ng wastong API-Key |
MARKET_DATA | Kailangan ng endpoint na magpadala ng wastong API-Key |
TRADE
atUSER_DATA
na mga endpoint ayNILAGDAANG
mga endpoint.
NILAGDAAN (TRADE, USER_DATA, AT MARGIN) Seguridad ng endpoint
- Ang
NILAGDAAN
na mga endpoint ay nangangailangan ng karagdagang parametro, lagda, na ipapadala saquery string
o request body. - Gumagamit ang mga endpoint ng mga lagda ng
HMAC SHA256
. Ang lagda ngHMAC SHA256
ay isang naka-keyHMAC SHA256
na operasyon. Gamitin ang iyongsecretKey
bilang susi attotalParams
bilang halaga para sa pagpapatakbo ng HMAC. - Ang
lagda
ay hindi case sensitive. - Ang
totalParams
ay tinukoy bilang angquery string
na pinagsama sarequest 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 ngtimestamp
kung saan may bisa ang kahilingan. Kung angrecvWindow §
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.
Key | Halaga |
---|---|
apiKey | vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A |
secretKey | NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j |
Parametro | Halaga |
---|---|
simbolo | LTC/BTC |
gilid | BUMILI |
uri | LIMITASYON |
timeInforce | GTC |
dami | 1 |
presyo | 0,1 |
recvWindow | 5000 |
timestamp | 1499827319559 |
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×tamp=1499827319559
HMAC SHA256 signature
[linux]$ echo -n
"symbol=LTC%2FBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000×tamp=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×tamp=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×tamp=1499827319559
HMAC SHA256 signature:
[linux]$ echo -n
"symbol=LTC%2FBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000×tamp=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×tamp=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.
Key | Halaga |
---|---|
apiKey | vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A |
secretKey | NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j |
Parametro | Halaga |
---|---|
simbolo | BTC/USD_LEVERAGE |
panig | BUMILI |
uri | MERKADO |
timeInforce | GTC |
dami | 0.01 |
dami | 2 |
accountId | 2376109060084932 |
takeProfit | 8000 |
stopLoss | 6000 |
recvWindow | 60000 |
timestamp | 1586942164000 |
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×tamp=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×tamp=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×tamp=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×tamp=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×tamp=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×tamp=1586942164000&signature=05fc9fd19c2b1a11215025c5dfa56da2204b04181add67670d4f92049b439f7b
Terminolohiya
- Ang
base asset
ay tumutukoy sa asset nadami
ng isang simbolo. - Ang
quote asset
ay tumutukoy sa asset napresyo
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