सामान्य REST API जानकारी
- बेस URL: https://api-adapter.backend.currency.com
- बेस URL, डेमो अकाउंट: https://demo-api-adapter.backend.currency.com
- सारे एन्डपॉइंट एक JSON ऑब्जेक्ट वापस करते हैं या array.
- डेटा आरोही क्रम में लौटाया जाता है. सबसे पुराना पहला, सबसे नया आखिरी.
- सभी समय और टाइमस्टैम्प संबंधित फील्ड मिलीसेकंड में हैं.
- कम्पनी टोकन, टोकनाइज़्ड बॉन्ड, KARMA.cx टोकन और टोकनाइज़्ड एसेट को छोड़ के, हॉन्ग-कॉन्ग बाज़ारों के सभी टोकनाइज़्ड एसेट हमारे API के पहले वर्ज़न (v1) में उपलब्ध हैं. दूसरे API वर्ज़न (v2) में भी हॉन्ग-कॉन्ग के बाज़ार उपलब्ध हो गए.
- API के अंदर लेवरेज ट्रेडिंग के लिए उपलब्ध एसेटों की सूची यहां मिल सकती है.
- जब मार्केट, लिमिट या स्टॉप ऑर्डर सेट कर रहे हों और किसी खास टोकन के लिए ज़रूरत से बड़ी प्रिसिज़न नम्बरों की एक बड़ी राशि मेन्शन करे हों तो round_down सच है. अनुमत प्रिसिज़न exchangeInfo अनुरोध प्रतिक्रिया, quotePrecision पैरामीटर में पाई जा सकती है.
- जब प्राइस पैरामीटर के लिए एक बड़ी राशि के प्रिसिज़न नम्बर मेन्शन कर रहे हों तो round_up logic इस्तेमाल होता है. अनुमत प्रिसिज़न exchangeInfo अनुरोध प्रतिक्रिया, quotePrecision पैरामीटर में पाई जा सकती है.
आवश्यक जानकारी प्राप्त करने के लिए, कृपया REST API भाग को Swagger के अंदर देखें.
Troubleshooting
HTTP रिटर्न कोड
- HTTP 4XX रिटर्न कोड खराब रिक्वेस्टों के लिए इस्तेमाल किए जाते हैं; समस्या भेजने वाले की तरफ से हो रही है.
- HTTP 403 रिटर्न कोड तब इस्तेमाल होता है जब WAF Limit (Web Application Firewall) का उल्लंघन किया गया हो.
- HTTP 429 रिटर्न कोड तब इस्तेमाल होता है जब रिक्वेस्ट रेट लिमिट को तोड़ा जाता है.
- HTTP 418 रिटर्न कोड तब इस्तेमाल होता है जब किसी IP को, 429 कोड प्राप्त करने के बाद भी, रिक्वेस्ट भेजना जारी रखने के लिए ऑटमैटिक्ली प्रतिबंधित किया जाता है.
- HTTP 5XX रिटर्न कोड अंदरूनी एरर के लिए इस्तेमाल होते हैं; समस्या Currency.com की तरफ है. यह ज़रूरी है की इससे एक ऑपरेशन विफलता की रूप में न देखा जाए; निष्पादन की स्थिति UNKNOWN (यानी, अज्ञात) है और सफल हो सकती थी.
एरर कोड
- कोई भी एंडपॉइंट एक एरर दे सकता है.
Payload का नमूना नीचे देखें:
{
"code": -1121,
"msg": "Invalid symbol."
}
- कुछ खास एरर कोडों और मैसेजों को एरर कोड में परिभाषित किया गया है.
एन्डपॉइंट पर सामान्य जानकारी
GET
एन्डपॉइंट के लिए, पैरामीटरों को एकक्वेरी स्ट्रिंग
के रूप में भेजना होगा.POST
,PUT
, औरDELETE
एन्डपॉइंटों के लिए, पैरामीटरों को एक क्वेरी स्ट्रिंग या रिक्वेस्ट बॉडी में कंटेंट टाइप ऐप्लिकेशन /x-www-form-urlencoded के साथ भेजना होगा. पैरामीटर किसी भी क्रम में भेजे जा सकते हैं.- पैरामीटर किसी भी क्रम में भेजे जा सकते हैं.
- अगर एक पैरामीटर को दोनों क्वेरी स्ट्रिंग और रिक्वेस्ट बॉडी से भेजा गया है, तो क्वेरी स्ट्रिंग पैरामीटर इस्तेमाल किया जाएगा.
एन्डपॉइंट सुरक्षा का प्रकार
- हर एन्डपॉइंट में एक सुरक्षा प्रकार होता है जो यह निर्धारित करता है कि आप इसके साथ कैसे इंटरैक्ट करेंगे. यह एन्डपॉइंट के NAME (यानी, नाम) के आगे दिया जाता है.
- अगर कोई सुरक्षा प्रकार नहीं बताया गया है, तो मान लें कि सुरक्षा प्रकार NONE (यानी, कुछ भी नहीं है).
- API-keys, X-MBX-APIKEY हेडर के माध्यम से REST API के ज़रिए पास किए जाते हैं.
- API-keys और secret-keys केस सेंसिटिव होते हैं, (यानी b और B अलग हैं).
- API-keys को सिर्फ कुछ प्रकार के सुरक्षित एन्डपॉइंटों तक पहुंचने के लिए कॉन्फ़िगर किया जा सकता है. उदाहरण के लिए, एक API-key का उपयोग सिर्फ TRADE (यानी, व्यापार) के लिए किया जा सकता है, जबकि दूसरी API-key TRADE रूटों को छोड़कर सब कुछ एक्सेस कर सकती है.
- डिफ़ॉल्ट रूप से, API-key सभी सुरक्षित रूटों तक पहुंच सकती है.
सुरक्षा का प्रकार | विवरण |
---|---|
NONE | एन्डपॉइंट तक स्वतंत्र रूप से पहुंचा जा सकता है |
TRADE | एन्डपॉइंट को एक मान्य API-key और सिग्नेचर भेजने की आवश्यकता है |
USER_DATA | एन्डपॉइंट को एक मान्य API-key और सिग्नेचर भेजने की आवश्यकता है |
USER_STREAM | एन्डपॉइंट को एक मान्य API-key भेजने की आवश्यकता है |
MARKET_DATA | एन्डपॉइंट को एक मान्य API-key भेजने की आवश्यकता है |
TRADE
औरUSER_DATA
एन्डपॉइंटSIGNED
एन्डपॉइंट हैं.
SIGNED (TRADE, USER_DATA, और MARGIN) एंडपॉइंट सुरक्षा
SIGNED
एंडपॉइंटों कोक्वेरी स्ट्रिंग
या अनुरोध संस्था में भेजे जाने के लिए एक अतिरिक्त पैरामीटर, सिग्नेचर की आवश्यकता होती है.- एंडपॉइंट
HMAC SHA256
सिग्नेचर का उपयोग करते हैं. यहHMAC SHA256
सिग्नेचर एक कुंजी युक्तHMAC SHA256
कार्यवाही है. अपनेsecretKey
को कुंजी के रूप में औरtotalParams
को HMAC कार्यवाही के लिए वैल्यू के रूप में उपयोग करें. - यह
सिग्नेचर
केस-सेंसिटिव ((यानी b और B अलग हैं) नहीं है. totalParams
कोक्वेरी स्ट्रिंग
के रूप में परिभाषित किया गया है जिसेअनुरोध संस्था
के साथ श्रेणीबद्ध किया गया है.
टाइमिंग सिक्योरिटी
- एक
SIGNED
एंडपॉइंट भेजने के लिए एक पैरामीटर,टाइमस्टैम्प
की भी ज़रूरत होती है, जो उस समय का मिलीसेकंड टाइमस्टैम्प होना चाहिए जब अनुरोध बनाया और भेजा गया था. - एक अतिरिक्त पैरामीटर,
recvWindow
,टाइमस्टैम्प
के बाद मिलीसेकंड की संख्या निर्दिष्ट करने के लिए भेजा जा सकता है, जिसके लिए अनुरोध मान्य है. अगरrecvWindow §
नहीं भेजा जाता है, तो यह डिफॉल्ट रूप से 5000 हो जाता है.
लॉजिक कुछ इस प्रकार है:
if (timestamp < (serverTime + 1000) && (serverTime -
timestamp) <= recvWindow)
{
// process request
}
else
{
// reject request
}
गंभीर ट्रेडिंग में सारी बात टाइमिंग की है. नेटवर्क अस्थिर और अविश्वसनीय हो सकते हैं, जिसके कारण किसी अनुरोध को सर्वर तक पहुंचने में अलग-अलग समय लग सकता है. recvWindow
के साथ, आप यह निर्दिष्ट कर सकते हैं कि अनुरोध को एक निश्चित संख्या के मिलीसेकंड के अंदर प्रॉसेस किया जाए या सर्वर द्वारा अस्वीकार किया जाए.
5000 या उससे कम के छोटे recvWindow का इस्तेमाल करने की सिफारिश की जाती है! अधिकतम 60,000 से ज़्यादा नहीं हो सकता!
SIGNED एन्डपॉइंट उदाहरण POST /api/v1/order के लिए
यहां देखें एक कदम-दर-कदम उदाहरण की कैसे एक मान्य साइन किए गए पेलोड को Linux कमांड लाइन पर भेजा जा सकता है echo, openssl, और curl का इस्तेमाल करके.
Key | वैल्यू |
---|---|
apiKey | vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A |
secretKey | NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j |
पैरामीटर | वैल्यू |
---|---|
सिम्बल | LTC/BTC |
साइड | BUY |
प्रकार | LIMIT |
timeInforce | GTC |
quantity | 1 |
कीमत | 0,1 |
recvWindow | 5000 |
टाइमस्टैम्प | 1499827319559 |
कृपया ध्यान दें कि '/' जैसे कुछ सिम्बलों को url एन्कोडेड किया जाना चाहिए और निम्नलिखित कॉम्बिनेशन में बदल देना चाहिए '%2F'.
पहला उदाहरण: एक रिक्वेस्ट बॉडी के रूप में
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'
दूसरा उदाहरण: एक क्वेरी स्ट्रिंग के रूप में
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'
SIGNED एन्डपॉइंट उदाहरण POST /api/v1/order
के लिए (लेवरेज ट्रेडिंग मोड)
यहां एक कदम-दर-कदम उदाहरण दिया गया है कि कैसे echo, openssl और curl का उपयोग करके Linux कमांड लाइन से एक वैध सिग्नेचर पेलोड भेजा जाए.
Key | वैल्यू |
---|---|
apiKey | vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A |
secretKey | NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j |
पैरामीटर | वैल्यू |
---|---|
सिम्बल | BTC/USD_LEVERAGE |
साइड | BUY |
प्रकार | MARKET |
timeInforce | GTC |
quantity | 0.01 |
quantity | 2 |
accountId | 2376109060084932 |
takeProfit | 8000 |
stopLoss | 6000 |
recvWindow | 60000 |
टाइमस्टैम्प | 1586942164000 |
कृपया ध्यान दें कि '/' जैसे कुछ सिम्बलों को url एन्कोडेड किया जाना चाहिए और निम्नलिखित कॉम्बिनेशन में बदल देना चाहिए '%2F'.
पहला उदाहरण: एक रिक्वेस्ट बॉडी के रूप में
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'
दूसरा उदाहरण: एक क्वेरी स्ट्रिंग के रूप में
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
शब्दावली
बेस एसेट
उस एसेट को रेफर करता है जो किसी सिम्बल कीक्वांटिटी
है.क्वोट एसेट
उस एसेट को रेफर करता है जो किसी सिम्बल कीकीमत
है.
ENUM परिभाषाएं
ऑर्डर स्टेटस (स्टेटस):
- NEW
- FILLED
- CANCELED
- REJECTED
ऑर्डर प्रकार (orderTypes, प्रकार):
- लिमिट
- बाज़ार
- स्टॉप
ऑर्डर साइड (साइड):
- BUY
- SELL
टाइम इन फोर्स (timeInForce):
- GTC
- IOC
- FOK
क्लाइन/कैंडलस्टिक चार्ट इंटर्वल:
मि -> मिनट; घं -> घंटे; दि -> दिन; ह -> हफ्ते
- 1मि
- 5मि
- 15मि
- 30मि
- 1घं
- 4घं
- 1दि
- 1ह
/klines प्रकार का पैरामीटर:
- हाइकेन-एशी