பொது REST API தகவல்கள்

  • முகப்புப் பக்கம்: https://api-adapter.backend.currency.com
  • டெமோ கணக்கின் முகப்புப் பக்கம்: https://demo-api-adapter.backend.currency.com
  • அனைத்து இறுதி முனையங்களும் JSON object அல்லது array ஆக திருப்பியனுப்பும்.
  • தரவுகள் ஏறுவரிசையில் திருப்பியனுப்பப்படும். பழையது முதலில், புதியது கடைசியில்.
  • அனைத்து நேரம் மற்றும் நேரமுத்திரை தொடர்பான புலங்களும் மில்லி விநாடிகளில் இருக்கும்.
  • நிறுவனங்களின் டோக்கன்கள், டோக்கனைஸ்டு கடன் பத்திரங்கள், ”KARMA.cx” டோக்கன்கள் மற்றும் ஹாங்காங் சந்தைகளிலுள்ள டோக்கனைஸ்டு சொத்துக்கள் தவிர அனைத்து டோக்கனைஸ்டு சொத்துக்களும் எங்கள் API-யின் முதற்பதிப்பில் (v1) கிடைக்கின்றன. இரண்டாவது API பதிப்பில் (v2) ஹாங்காங் சந்தைகளும் கிடைக்கப் பெறுகின்றன.
  • APIக்குள் பயனீட்டு வர்த்தகத்துக்கான சொத்துக்களின் பட்டியலை இங்கு காணலாம்.
  • மார்க்கெட், லிமிட் அல்லது ஸ்டாப் ஆர்டர்களை அமைக்கும்போதூம் ஒரு குறிப்பிட்ட டோக்கனுக்குத் தேவையானதைக் காட்டிலும் துல்லியமான பெரிய தொகையைக் குறிப்பிடும்போதும் round_down லாஜிக் True என இருக்கும். அனுமதிக்கப்பட்ட துல்லிய அளவை exchangeInfo கோரிக்கை பதிலிலும் quotePrecision அளவுருவிலும் காணலாம்.
  • விலை அளவுருக்கு பெரிய தொகையைத் துல்லியமாகக் குறிப்பிடுவதற்கு round_up லாஜிக் பயன்படுத்தப்படுகிறது. அனுமதிக்கப்பட்ட துல்லிய அளவை exchangeInfo கோரிக்கை பதிலிலும் quotePrecision அளவுருவிலும் காணலாம்.

தேவையான தகவல்களைப் பெறுவதற்கு Swagger-க்குள் உள்ள REST API பகுதியைத் தயவுசெய்து பார்க்கவும். 

Troubleshooting

HTTP ரிட்டன் குறியீடுகள்

  • HTTP 4XX ரிட்டன் குறியீடுகள் தவறான வடிவத்திலுள்ள கோரிக்கைகளில் பயன்படுத்தப்படுகின்றன; பிரச்சினையானது அனுப்புபவரின் பக்கத்தில் இருக்கிறது.
  • HTTP 403 ரிட்டன் குறியீடானது WAF (Web Application Firewall) வரம்பானது மீறப்படும்போது பயன்படுகிறது.
  • HTTP 429 ரிட்டன் குறியீடானது ஒரு கோரிக்கை வீத வரம்பைத் தாண்டும்போது பயன்படுகிறது.
  • HTTP 418 ரிட்டன் குறியீடானது 429 குறியீடுகளைப் பெற்ற பிறகும் ஒரு IP தொடர்ந்து கோரிக்கைகளை அனுப்பியதற்காக தானாகவே தடைசெய்யப்படும்போது பயன்படுகிறது.
  • HTTP 5XX ரிட்டன் குறியீடானது உட்புற பிழைகளுக்குப் பயன்படுகிறது; பிரச்சினையானது Currency.com பக்கத்தில் இருக்கும். இதை செயல்பாட்டுத் தோல்வியாகக் கருதாமல் இருப்பது முக்கியம்; செயலாக்க நிலை அறியப்படாததாகவும் ஒருவேளை வெற்றியடைந்ததாகவும் இருக்கலாம்.

பிழை குறியீடுகள்

  • எந்தவொரு இறுதி முனையமும் பிழையை ரிட்டன் செய்யக்கூடும்.

பேலோட் மாதிரி கீழே:

பதில்:
{ "code": -1121, "msg": "Invalid symbol." }
  • குறிப்பிட்ட பிழை குறியீடுகளும் செய்திகளும் பிழை குறியீடுகளில் வரையறுக்கப்பட்டுள்ளன.

இறுதி முனையங்கள் பற்றிய பொதுத் தகவல்கள்

  • GET இறுதி முனையங்களுக்கு, அளவுருக்கள் query string ஆக அனுப்பப்பட வேண்டும்.
  • POST, PUT, மற்றும் DELETE இறுதி முனையங்களுக்கு, அளவுருக்களை query string ஆகவோ அல்லது application/x-www-form-urlencoded உள்ளடக்க வகையுடன் கோரிக்கை பாகமாகவோ அனுப்பலாம். நீங்கள் விரும்பினால் query string மற்றும் கோரிக்கை பாகத்துக்கிடையில் அளவுருக்களைக் கலக்கவும் செய்யலாம். அளவுருக்களை எந்த வரிசையிலும் அனுப்பலாம்.
  • அளவுருக்களை எந்த வரிசையிலும் அனுப்பலாம்.
  • ஒரு அளவுருவானது query string-லும் கோரிக்கை பாகத்திலும் அனுப்பப்பட்டால், query string அளவுரு பயன்படுத்தப்படும்.

இறுதி முனையப் பாதுகாப்பு வகை

  • ஒவ்வொரு இறுதி முனையத்துக்கும் ஒரு பாதுகாப்பு வகை உள்ளது. இது நீங்கள் எவ்வாறு அதனுடன் இடைவினை செய்கிறீர்கள் என்பதைத் தீர்மானிக்கும். இது இறுதி முனையத்தின் பெயருக்கு அடுத்து குறிப்பிடப்பட்டிருக்கும்.
  • எந்த பாதுகாப்பு வகையும் குறிப்பிடப்படாவிட்டால், பாதுகாப்பு வகை எதுவுமில்லை என்று ஊகிக்கலாம்.
  • API-குறிச்சொற்கள் X-MBX-APIKEY தலைப்பு வாயிலாக REST API க்கு அனுப்பப்படுகின்றன.
  • API-குறிச்சொற்கள் இரகசியக் குறிச்சொற்களாகும்; இது எழுத்து வேறுபாட்டை உணரக்கூடியது (case sensitive).
  • API-குறிச்சொற்களை குறிப்பிட்ட பாதுகாப்பு இறுதிமுனைய வகைகளை அணுகுவதற்கு மட்டும் அமைத்துக் கொள்ளலாம். உதாரணமாக, ஒரு API-குறிச்சொல்லை வர்த்தகத்துக்கு மட்டும் பயன்படுத்தி, மற்றொரு API-குறிச்சொல்லை வர்த்தக வழித்தடங்கள் தவிர ஏனையவற்றை அணுகப் பயன்படுத்தலாம்.
  • இயல்பாக, API-குறிச்சொற்களால் அனைத்து பாதுகாப்புத் தடங்களையும் அணுக இயலும்.
பாதுகாப்பு வகைவிளக்கம்
NONEஇறுதி முனையத்தை தடையின்றி அணுகலாம்
TRADEஇறுதிமுனையம் ஒரு சரியான API-குறிச்சொல்லையும் கையொப்பத்தையும் அனுப்ப வேண்டும்
USER_DATAஇறுதிமுனையம் ஒரு சரியான API-குறிச்சொல்லையும் கையொப்பத்தையும் அனுப்ப வேண்டும்
USER_STREAMஇறுதிமுனையம் ஒரு சரியான API-குறிச்சொல்லை அனுப்ப வேண்டும்
MARKET_DATAஇறுதிமுனையம் ஒரு சரியான API-குறிச்சொல்லை அனுப்ப வேண்டும்
  • TRADE மற்றும் USER_DATA இறுதிமுனையங்கள் SIGNED இறுதி முனையங்களாகும்.

SIGNED (TRADE, USER_DATA, மற்றும் MARGIN) இறுதி முனையப் பாதுகாப்பு

  • SIGNED இறுதி முனையங்களுக்கு ஒரு கூடுதல் அளவுரு, கையொப்பத்தை query string அல்லது கோரிக்கை பாகத்துடன் அனுப்ப வேண்டும்.
  • இறுதி முனையங்கள் HMAC SHA256 கையொப்பங்களைப் பயன்படுத்துகின்றன. HMAC SHA256 கையொப்பமானது HMAC SHA256 செயலாக்கத்தில் அமைக்கப்பட்டுள்ளது. உங்கள் secretKey-ஐ குறிச்சொல்லாகவும் totalParams-ஐ HMAC செயல்பாட்டுக்கான மதிப்பாகவும் பயன்படுத்தவும்.
  • கையொப்பம் எழுத்து வேறுபாட்டை உணரக்கூடியது (case sensitive) அல்ல.
  • totalParams ஆனது query string ஆக வரையறுக்கப்பட்டு கோரிக்கை பாகத்துடன் இணைந்துள்ளது.

ஏககால பாதுகாப்பு

  • ஒரு SIGNED இறுதி முனையத்துக்கு ஒரு நேரமுத்திரை அளவுரு தேவை. இது கோரிக்கை எப்போது உருவாக்கப்பட்டது மற்றும் அனுப்பப்பட்டது என்ற மில்லி நொடி நேரமுத்திரையில் அனுப்பப்பட வேண்டும்.
  • நேரமுத்திரை-க்குப் பின் கோரிக்கை செல்லுபடியாகும், மில்லிநொடிகளைக் குறிப்பிட ஒரு கூடுதல் அளவுருவாக recvWindow அனுப்பலாம். recvWindow § அனுப்பப்படவில்லையெனில், இயல்பாக அது 5000 என்று இருக்கும்.

லாஜிக் பின்வருமாறு இருக்கும்:

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

தீவிரமாக வர்த்தகம் செய்வது என்பது ஏக காலத்தைச் சார்ந்தது. இணையத்தொடர்பு நிலையற்றதாகவோ நம்பத்தகாததாகவோ இருந்தால் கோரிக்கைகள் சேவையகத்தை அடைய மாறுபட்ட நேர அளவை எடுக்கக்கூடும். recvWindow உடன் நீங்கள் குறிப்பிட்ட மில்லி நொடிகளுக்குள் கோரிக்கை செயல்படுத்தப்பட வேண்டும் அல்லது சேவையகத்தால் நிராகரிக்கப்பட வேண்டும் என்று குறிப்பிட முடியும்.

நீங்கள் 5000 அல்லது அதற்கும் குறைவான recvWindow பயன்படுத்த பரிந்துரைக்கப்படுகிறது! அதிகபட்சமானது 60,000 தாண்டி இருக்கக்கூடாது!

POST-க்கான SIGNED இறுதி முனைய மாதிரிகள் /api/v1/order

Linux கமாண்ட் லைனிலிருந்து echo, openssl மற்றும் curl பயன்படுத்தி ஒரு சரியான கையொப்பமிட்ட பேலோடை எப்படி அனுப்புவது என்பதற்கான படிப்படியான உதாரணம் இதோ.

KeyValue
apiKeyvmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A
secretKeyNhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j
ParameterValue
symbolLTC/BTC
sideBUY
typeLIMIT
timeInforceGTC
quantity1
price0,1
recvWindow5000
timestamp1499827319559

'/' போன்ற சில இடுகுறிகளை url குறியாக்கம் செய்யப்பட்டு '%2F' சேர்க்கையாக மாற்ற வேண்டும் என்பதை நினைவில் கொள்ளவும்.

உதாரணம் 1: ஒரு கோரிக்கை பாகமாக

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'

Example 2: 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'

POST-க்கான SIGNED இறுதி முனைய மாதிரிகள் /api/v1/order
(பயனீடு வர்த்தக முறை)

Linux கமாண்ட் லைனிலிருந்து echo, openssl மற்றும் curl பயன்படுத்தி ஒரு சரியான கையொப்பமிட்ட பேலோடை எப்படி அனுப்புவது என்பதற்கான படிப்படியான உதாரணம் இதோ.

KeyValue
apiKeyvmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A
secretKeyNhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j
ParameterValue
symbolBTC/USD_LEVERAGE
sideBUY
typeMARKET
timeInforceGTC
quantity0.01
quantity2
accountId2376109060084932
takeProfit8000
stopLoss6000
recvWindow60000
timestamp1586942164000

'/' போன்ற சில இடுகுறிகளை url குறியாக்கம் செய்யப்பட்டு '%2F' சேர்க்கையாக மாற்ற வேண்டும் என்பதை நினைவில் கொள்ளவும்.

உதாரணம் 1: ஒரு கோரிக்கை பாகமாக

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'

Example 2: 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

கலைச்சொற்கள்

  • அடிப்படைச் சொத்து என்பது ஒரு சொத்தின், அதாவது ஒரு குறியீட்டின் எண்ணிக்கையைக் குறிக்கிறது.
  • சொத்தின் விலையளிப்பு என்பது ஒரு சொத்தின், அதாவது ஒரு குறியீட்டின் விலையைக் குறிக்கிறது.

ENUM விளக்கங்கள்

Order status (status):

  • NEW
  • FILLED
  • CANCELED
  • REJECTED

Order types (orderTypes, type):

  • LIMIT
  • MARKET
  • STOP 

Order side (side):

  • BUY
  • SELL

Time in force (timeInForce):

  • GTC
  • IOC
  • FOK

Kline/மெழுகுதிரி வரைபட இடைவேளைகள்:
m -> நிமிடங்கள்; h -> மணி; d -> நாட்கள்; w -> வாரங்கள்

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

/klines 'வகை' அளவுரு:

  • heiken-ashi