ข้อมูล REST API ทั่วไป
- URL ฐาน: https://api-adapter.backend.currency.com
- URL ฐาน บัญชีทดลอง: https://demo-api-adapter.backend.currency.com
- จุดสิ้นสุดทั้งหมดส่งคืนวัตถุ JSON หรืออาร์เรย์
- ข้อมูลจะถูกส่งกลับในลำดับจากน้อยไปมาก เก่าสุดก่อน ใหม่ล่าสุดหลังสุด
- ฟิลด์ที่เกี่ยวข้องกับเวลาและการประทับเวลาทั้งหมดมีหน่วยเป็นมิลลิวินาที
- สินทรัพย์โทเคนทั้งหมด ยกเว้นโทเคนของบริษัท พันธบัตรโทเคน โทเคน KARMA.cx และสินทรัพย์โทเคนจากตลาดฮ่องกงมีอยู่ในเวอร์ชั่นแรก (v1) ของ API ของเรา ในเวอร์ชั่น API ที่สอง (v2) ตลาดฮ่องกงก็มีให้ใช้งานเช่นกัน
- รายการสินทรัพย์ที่สามารถซื้อขายด้วยเลเวอเรจภายใน API สามารถพบได้ที่นี่
- เมื่อตั้งค่าตลาด ให้จำกัดหรือหยุดคำสั่ง และกล่าวถึงตัวเลขที่มีความแม่นยำมากกว่าที่จำเป็นสำหรับโทเคนเฉพาะ ตรรกะ round_down นั้นเป็นจริง ความแม่นยำที่อนุญาตสามารถพบได้ในการตอบสนองคำขอ exchangeInfo พารามิเตอร์ quotePrecision
- เมื่อกล่าวถึงตัวเลขที่มีความแม่นยำจำนวนมากขึ้นสำหรับพารามิเตอร์ราคา ตรรกะ round_up จะถูกใช้ ความแม่นยำที่อนุญาตสามารถพบได้ในการตอบสนองคำขอ 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) และอาจประสบความสำเร็จ
รหัสข้อผิดพลาด
- จุดสิ้นสุดใดๆ สามารถส่งคืนข้อผิดพลาด (ERROR) ได้
ตัวอย่างสินค้าบรรทุกด้านล่าง:
{
"code": -1121,
"msg": "Invalid symbol."
}
- รหัสข้อผิดพลาดและข้อความเฉพาะถูกกำหนดไว้ในรหัสข้อผิดพลาด
ข้อมูลทั่วไปเกี่ยวกับจุดสิ้นสุด
- สำหรับจุดสิ้นสุด GET ต้องส่งพารามิเตอร์เป็นสตริงการสืบค้น
- สำหรับจุดสิ้นสุด POST, PUT และ DELETE พารามิเตอร์อาจถูกส่งเป็นสตริงการสืบค้นหรือในเนื้อหาคำขอที่มีประเภทเนื้อหา application/x-www-form-urlencoded คุณสามารถผสมพารามิเตอร์ระหว่างทั้งสตริงการสืบค้นและเนื้อหาคำขอได้หากต้องการ พารามิเตอร์สามารถส่งในลำดับใดก็ได้
- พารามิเตอร์สามารถส่งในลำดับใดก็ได้
- หากพารามิเตอร์ส่งทั้งในสตริงการสืบค้นและเนื้อหาของคำขอ พารามิเตอร์สตริงการสืบค้นจะถูกใช้
ประเภทการรักษาความปลอดภัยจุดสิ้นสุด
- จุดสิ้นสุดแต่ละจุดมีประเภทความปลอดภัยที่กำหนดว่าคุณจะโต้ตอบกับมันอย่างไร ซึ่งระบุไว้ข้างชื่อของจุดสิ้นสุด
- หากไม่มีการระบุประเภทความปลอดภัย ถือว่าประเภทความปลอดภัยคือ NONE
- คีย์ API จะถูกส่งผ่านไปยัง REST API ผ่านส่วนหัว X-MBX-APIKEY
- คีย์ APและคีย์ลับ คำนึงถึงขนาดตัวพิมพ์
- สามารถกำหนดคีย์ API เพื่อเข้าถึงจุดสิ้นสุดที่ปลอดภัยบางประเภทเท่านั้น ตัวอย่างเช่น สามารถใช้คีย์ API หนึ่งคีย์สำหรับการซื้อขาย เท่านั้น ในขณะที่คีย์ API อื่นสามารถเข้าถึงทุกอย่างได้ ยกเว้นเส้นทางการซื้อขาย
- โดยค่าเริ่มต้น คีย์ API สามารถเข้าถึงเส้นทางที่ปลอดภัยทั้งหมดได้
ประเภทความปลอดภัย | คำอธิบาย |
---|---|
ไม่มี | สามารถเข้าถึงจุดสิ้นสุดได้อย่างอิสระ |
การซื้อขาย | จุดสิ้นสุดต้องการการส่งคีย์ API และลายเซ็นที่ถูกต้อง |
USER_DATA | จุดสิ้นสุดต้องการการส่งคีย์ API และลายเซ็นที่ถูกต้อง |
USER_STREAM | จุดสิ้นสุดต้องการส่งคีย์ API ที่ถูกต้อง |
MARKET_DATA | จุดสิ้นสุดต้องการส่งคีย์ API ที่ถูกต้อง |
- จุดสิ้นสุด
TRADE
และUSER_DATA
เป็นจุดสิ้นสุดที่ลงนาม
ลงนาม (TRADE, USER_DATA, AND MARGIN) การรักษาความปลอดภัยจุดสิ้นสุด
- จุดสิ้นสุดที่ลงนามต้องมีพารามิเตอร์เพิ่มเติม ลายเซ็น เพื่อส่งในสตริงการสืบค้นหรือเนื้อหาคำขอ
- จุดสิ้นสุดใช้ลายเซ็น HMAC SHA256 ลายเซ็น HMAC SHA256 เป็นการดำเนินการ HMAC SHA256 แบบคีย์ ใช้ secretKey ของคุณเป็นคีย์ และ TotalParams เป็นค่าสำหรับการดำเนินการ HMAC
- ลายเซ็นไม่คำนึงถึงขนาดตัวพิมพ์
- TotalParams ถูกกำหนดให้เป็นสตริงการสืบค้นที่ต่อกับเนื้อหาคำขอ
ความปลอดภัยด้านเวลา
- จุดสิ้นสุดที่ลงนามยังต้องการพารามิเตอร์ ประทับเวลาที่จะส่ง ซึ่งควรเป็นเวลามิลลิวินาทีของเวลาที่คำขอถูกสร้างขึ้นและส่ง
- อาจมีการส่งพารามิเตอร์เพิ่มเติม recvWindow เพื่อระบุจำนวนมิลลิวินาทีหลังจากการประทับเวลาที่คำขอถูกต้อง หากไม่ได้ส่ง recvWindow § ค่าเริ่มต้นคือ 5000
ตรรกะมีดังนี้:
if (timestamp < (serverTime + 1000) && (serverTime -
timestamp) <= recvWindow)
{
// process request
}
else
{
// reject request
}
การซื้อขายที่จริงจังเป็นเรื่องของจังหวะเวลา เครือข่ายอาจไม่เสถียรและไม่น่าเชื่อถือซึ่งอาจทำให้คำขอใช้เวลาในการเข้าถึงเซิร์ฟเวอร์ต่างกัน ด้วย recvWindow คุณสามารถระบุได้ว่าคำขอต้องได้รับการประมวลผลภายในจำนวนมิลลิวินาทีที่กำหนดหรือถูกปฏิเสธโดยเซิร์ฟเวอร์
ขอแนะนำให้ใช้ recvWindow ขนาดเล็ก 5,000 หรือน้อยกว่า! สูงสุดไม่เกิน 60,000!
ตัวอย่างจุดสิ้นสุดที่ลงนามสำหรับ POST /api/v1/order
ต่อไปนี้คือตัวอย่างทีละขั้นตอนของวิธีส่งสินค้าบรรทุกที่ลงชื่อที่ถูกต้องจากบรรทัดคำสั่ง Linux โดยใช้ echo, openssl และ curl
คีย์ | ค่า |
---|---|
คีย์ API | vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A |
คีย์ลับ | NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j |
พารามิเตอร์ | ค่า |
---|---|
สัญลักษณ์ | LTC/BTC |
ด้าน | ซื้อ |
ประเภท | ขีดจำกัด |
ปริมาณ | GTC |
ราคา | 1 |
ราคา | 0,1 |
recvWindow | 5000 |
ประทับเวลา | 1499827319559 |
โปรดทราบว่าสัญลักษณ์บางตัว เช่น '/' ควรเข้ารหัส URL และแปลงเป็นชุดค่าผสม '%2F' ต่อไปนี้
ตัวอย่างที่ 1: เป็นเนื้อหาที่ร้องขอ
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'
ตัวอย่างที่ 2: เป็นสตริงการสืบค้น
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'
ตัวอย่างจุดสิ้นสุดที่ลงนามสำหรับ POST /api/v1/order
(โหมดการซื้อขายเลเวอเรจ)
ต่อไปนี้คือตัวอย่างทีละขั้นตอนของวิธีส่งสินค้าบรรทุกที่ลงชื่อที่ถูกต้องจากบรรทัดคำสั่ง Linux โดยใช้ echo, openssl และ curl
คีย์ | ค่า |
---|---|
คีย์ API | vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A |
คีย์ลับ | NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j |
พารามิเตอร์ | ค่า |
---|---|
สัญลักษณ์ | BTC/USD_LEVERAGE |
ด้าน | ซื้อ |
ประเภท | ตลาด |
timeInforce | GTC |
ปริมาณ | 0.01 |
ปริมาณ | 2 |
ID บัญชี | 2376109060084932 |
ทำกำไร | 8000 |
หยุดการสูญเสีย | 6000 |
recvWindow | 60000 |
ประทับเวลา | 1586942164000 |
โปรดทราบว่าสัญลักษณ์บางตัว เช่น '/' ควรเข้ารหัส 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×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'
ตัวอย่างที่ 2: เป็นสตริงการสืบค้น
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
สถานะการสั่งซื้อ (สถานะ):
- ใหม่
- กรอก
- ยกเลิก
- ถูกปฏิเสธ
ประเภทคำสั่งซื้อ (orderTypes, ประเภท):
- ขีดจำกัด
- ตลาด
- หยุด
ด้านการสั่งซื้อ (ด้าน):
- ซื้อ
- ขาย
เวลาที่ใช้บังคับ (timeInForce):
- GTC
- IOC
- FOK
ช่วงเวลาของแผนภูมิ Kline/Candlestick: น. -> นาที; ช.ม -> ชั่วโมง; ว. -> วัน; ส. -> สัปดาห์
- 1 น.
- 5 น.
- 15 น.
- 30 น.
- 1 ช.ม
- 4 ช.ม
- 1 ว.
- 1 ส.
พารามิเตอร์ 'ประเภท' /klines
- heiken-ashi