Hỗ trợ phiên bản API chấm dứt vào ngày 05/12/2019. Hãy cập nhật mã của bot giao dịch của bạn để dùng Trade API 2.0 - một phiên bản API mới cung cấp bảo mật tốt hơn, các chức năng được cả tiến và dễ dùng hơn.

Phương pháp API công cộng

Có 6 phương pháp công cộng chấp nhận các yêu cầu HTTP GET và trả về phản hồi ở định dạng JSON:

ReturnTicker

Phương pháp này trả về các ticker cho các thị trường các loại/cụ thể; ví dụ về yêu cầu và phản hồi:

Ví dụ 1. Trả về các ticker.

Yêu cầu: https://api.crex24.com/CryptoExchangeService/BotPublic/ReturnTicker

Phản hồi:

{
  Tickers: [{
    BaseVolume: "0.00000000",
    HighPrice: "0.09611615",
    Last: "0.05125186",
    LowPrice: "0.04456261",
    ...
  },  {
    BaseVolume: "0.00000000",
    HighPrice: "0.02062280",
    Last: "0.01025148",
    LowPrice: "0.00972667",
    ...
  },  {
    BaseVolume: "0.00000000",
    HighPrice: "0.00105385",
    Last: "0.00050066",
    LowPrice: "0.00040122",
    ...
  },  ...]
}

Ví dụ 2. Trả về các ticker BTC_LTC và BTC_DOGE.

Yêu cầu: https://api.crex24.com/CryptoExchangeService/BotPublic/ReturnTicker?request=[NamePairs=BTC_LTC,BTC_DOGE]

Phản hồi:

{
  Tickers:  [{
    BaseVolume: "0.00000000",
    HighPrice: "0.02062280",
    Last: "0.01023842",
    LowPrice: "0.00972667",
    ...
  },  {
    BaseVolume: "0.47617000",
    HighPrice: "0.00000080",
    Last: "0.00000041",
    LowPrice: "0.00000035",
    ...
  }]
}


Return24Volume

Phương pháp này trả về khối lượng giao dịch trong 24 giờ cho các thị trường các loại/cụ thể:

Ví dụ. Trả về khối lượng cho BTC_DOGE.

Yêu cầu:https://api.crex24.com/CryptoExchangeService/BotPublic/Return24Volume?request=[NamePairs=BTC_DOGE]

Phản hồi:

{
  Volume: {
    VolumesByOne: [{
      Name: "BTC",
      Volume: 0.23673
    }, {
      Name: "DOGE",
      Volume: 577000
    }],
    VolumesByTwo: [{
      First: {
        Name: "BTC",
        Volume: 0.23673
      },
      Name: "BTC_DOGE",
      Second: {
        Name: "DOGE",
        Volume: 577000
      }
    }]
  }
}


ReturnOrderBook

Phương thức trả về chồng lệnh cho thị trường cụ thể

Ví dụ. Trả về chồng lệnh cho BTC_DOGE.

Yêu cầu:https://api.crex24.com/CryptoExchangeService/BotPublic/ReturnOrderBook?request=[PairName=BTC_DOGE]

Phản hồi:

{
  BuyOrders: [{
    AccumulateMoneyCount: "36826.27800846",
    AccumulateMoneyVolume: "0.01509877",
    CoinCount: "36826.27800846",
    ...
  },  {
    AccumulateMoneyCount: "67304.76798074",
    AccumulateMoneyVolume: "0.02729017",
    CoinCount: "30478.48997228",
    ...
  },  {
    AccumulateMoneyCount: "75084.76074510",
    AccumulateMoneyVolume: "0.03032437",
    CoinCount: "7779.99276436",
    ...
  },  {
    AccumulateMoneyCount: "75433.94286209",
    AccumulateMoneyVolume: "0.03045706",
    CoinCount: "349.18211699",
    ...
  }],
  SellOrders: [{
    AccumulateMoneyCount: "10642.66536957",
    AccumulateMoneyVolume: "0.00446992",
    CoinCount: "10642.66536957",
    ...
  },  {
    AccumulateMoneyCount: "31738.44031685",
    AccumulateMoneyVolume: "0.01354110",
    CoinCount: "21095.77494728",
    ...
  }, {
    AccumulateMoneyCount: "41156.60557210",
    AccumulateMoneyVolume: "0.01768510",
    CoinCount: "9418.16525525",
    ...
  }, {
    AccumulateMoneyCount: "50937.97566773",
    AccumulateMoneyVolume: "0.02208671",
    CoinCount: "9781.37009563",
    ...
  }]
}


ReturnTradeHistoryPub

Phương pháp này trả về 1.000 giao dịch cuối cùng (hoặc ít hơn nếu tham số Count được chỉ định) hoặc các giao dịch trong thời gian được xác định bởi các tham số StartTS và EndTS trong định dạng dấu thời gian UNIX.

Ví dụ. Trả về lịch sử giao dịch cho BTC_DOGE.

Yêu cầu:https://api.crex24.com/CryptoExchangeService/BotPublic/ReturnTradeHistoryPub?request=[PairName=BTC_DOGE]

Phản hồi:

{
  Trades: [{
    CoinCount: "716.23394813",
    CoinPrice: "0.00000037",
    Commission: "0.00000027",
    DtCreateTS: 1502771794,
    ...
  }, {
    CoinCount: "283.76605187",
    CoinPrice: "0.00000037",
    Commission: "0.00000010",
    DtCreateTS: 1502771794,
    ...
  }]
}


ReturnChartData

Phương pháp này trả về dữ liệu cây đèn nến cho một thị trường nhất định. Thời gian cây đèn nến trong vài phút có thể được thiết lập bởi tham số CandleTimeInMinutes, bắt đầu và kết thúc khoảng thời gian có thể được thiết lập bởi các tham số StartTS và EndTS trong định dạng dấu thời gian UNIX.

Ví dụ. Phương pháp này trả về bảng báo giá hằng ngày cho BTC-DOGE trong giai đoạn từ ngày 1 đến ngày 31 tháng một, 2019.

Yêu cầu:https://api.crex24.com/CryptoExchangeService/BotPublic/ReturnChartData?request=[PairName=BTC_DOGE][CandleTimeInMinutes=1440][StartTS=1546300800][EndTS=1548892800]

Phản hồi:

{
  Candles:  [{
    EndOrderPrice: "0.00000099",
    MaxOrderPrice: "0.00000100",
    MinOrderPrice: "0.00000098",
    OrderCount: 4,
    ...
  },  {
    EndOrderPrice: "0.00000100",
    MaxOrderPrice: "0.00000101",
    MinOrderPrice: "0.00000099",
    OrderCount: 2,
    ...
  },  {
    EndOrderPrice: "0.00000102",
    MaxOrderPrice: "0.00000103",
    MinOrderPrice: "0.00000100",
    OrderCount: 4 ,
    ...
  },  ...]
}


ReturnCurrencies

Phương thức này trả về thông tin về tất cả các loại tiền tệ các loại/cụ thể.

Ví dụ. Thông tin về tiền tệ DOGE

Yêu cầu:https://api.crex24.com/CryptoExchangeService/BotPublic/ReturnCurrencies?request=[Names=DOGE]

Phản hồi:

{
  Currencies: [{
    Delisted: false,
    Disabled: false,
    Frozen: false,
    MinConf: 6,
    Name: "Dogecoin",
    ...
  }]
}

Các phương thức API giao dịch

Url cho trading API: https://api.crex24.com/CryptoExchangeService/BotTrade/<MethodName>

Bạn cần tạo khóa API để sử dụng API giao dịch(https://crex24.com/settings/tokens).

Xin lưu ý rằng giới hạn mặc định là 6 yêu cầu mỗi giây. Nếu không đủ, hãy liên hệ với Nhóm Hỗ Trợ Khách Hàng để thảo luận về việc tăng giới hạn này.

Tất cả yêu cầu API giao dịch được gửi đến địa chỉ HTTP bằng phương thức POST và phải bao gồm các tiêu đề sau:
  • UserKey — API key.
  • Sign - Chữ ký của cơ quan yêu cầu POST được tạo ra qua khóa bí mật theo phương pháp HMACSHA512.

Tất cả các yêu cầu phải chứa tham số POST Nonce. Nonce là unsigned int64 phải luôn lớn hơn giá trị trước đó. Bạn có thể sử dụng tham số dấu thời gian cho các mục đích này.

Phản hồi được gửi trong JSON. Nếu xảy ra lỗi, phản hồi sẽ ở định dạng sau:

{"Error" : {"Message" : "<error message>"}}

Các ví dụ về các yêu cầu được gửi tới giao dịch API bằng nhiều ngôn ngữ lập trình khác nhau:

Readme: https://github.com/iiw/Crex24.Examples

Python: https://github.com/iiw/Crex24.Examples/blob/master/python/app.py

C#: https://github.com/3P3C/Crex24.Example/blob/master/Crex24Example/Program.cs

JS: https://github.com/iiw/Crex24.Examples/tree/master/js

PHP: https://github.com/iiw/Crex24.Examples/blob/master/php/app.php

ReturnBalances

Nhận số dư sẵn có.

Ví dụ.

Yêu cầu: https://api.crex24.com/CryptoExchangeService/BotTrade/ReturnBalances

Cơ quan yêu cầu:

{
    "Names" : ["BTC", "LTC"],    # Danh sách tiền tệ. Nếu không có, sau đó phục hồi lại tất cả các loại tiền tệ.
    "NeedNull" : "true"          # Bao gồm số dư bằng không vào danh sách.
}

Phản hồi:

{
  "Balances": [
    {
      "AvailableBalances": 10.00000000,
      "InOrderBalances": 10.00000000,
      "Name": "BTC"
    },
    {
      "AvailableBalances": 0.00000000,
      "InOrderBalances": 0.00000000,
      "Name": "LTC"
    }
  ]
}

ReturnOpenOrders

Lấy các lệnh mở.

Ví dụ.

Yêu cầu: https://api.crex24.com/CryptoExchangeService/BotTrade/ReturnOpenOrders

Cơ quan yêu cầu:

{
  "Pairs": ["BTC_LTC", "BTC_ETH"]    # Danh sách các cặp giao dịch. Nếu không có sau đó phục hồi lại tất cả các cặp giao dịch.
}

Phản hồi:

{
  "Orders": [
    {
      "CoinCount": 1.00000000,
      "CoinPrice": 0.01135442,
      "Id": 71463796,
      "IsCloseRequired": false,
      "IsSell": true,
      "PairName": "BTC_LTC"
    },
    {
      "CoinCount": 1.00000000,
      "CoinPrice": 0.06835904,
      "Id": 71463169,
      "IsCloseRequired": false,
      "IsSell": true,
      "PairName": "BTC_ETH"
    },
    ...
  ]
}

ReturnTradeHistory

Nhận lịch sử giao dịch.

Ví dụ.

Yêu cầu: https://api.crex24.com/CryptoExchangeService/BotTrade/ReturnTradeHistory

Cơ quan yêu cầu:

{
  "Pairs": ["BTC_LTC", "BTC_ETH"]   # Danh sách các cặp giao dịch. Nếu không có sau đó phục hồi lại tất cả các cặp giao dịch.
}

Phản hồi:

{
  "Trades": [
    {
      "CoinCount": 1.00000000,
      "CoinPrice": 0.06835904,
      "Commission": 0.00000166,
      "DtCreateTS": 1506517638,
      "Id": 185197,
      "IsMaker": true,
      "IsSell": true,
      "PairName": "BTC_ETH"
    },
    {
      "CoinCount": 1.00000000,
      "CoinPrice": 0.01135442,
      "Commission": 0.00000166,
      "DtCreateTS": 1506085177,
      "Id": 185169,
      "IsMaker": true,
      "IsSell": false,
      "PairName": "BTC_LTC"
    },
    ...
  ]
}

ReturnOrderTrades

Lấy tất cả các giao dịch mua bán theo lệnh.

Ví dụ.

Yêu cầu: https://api.crex24.com/CryptoExchangeService/BotTrade/ReturnOrderTrades

Cơ quan yêu cầu:

{
  "OrderId": 51893150
}

Phản hồi:

{
  "Trades": [
    {
      "CoinCount": 10.00000000,
      "CoinPrice":  0.06835904,
      "Commission": 0.00000166,
      "DtCreateTS": 1506517638,
      "Id": 185197,
      "IsMaker": true,
      "IsSell": true,
      "PairName": "BTC_ETH"
    },
    ...
  ]
}

Buy

Đặt lệnh mua.

Ví dụ. Đặt lệnh mua 10 LTC cho BTC với giá là 0.01194538:

Yêu cầu: https://api.crex24.com/CryptoExchangeService/BotTrade/Buy

Cơ quan yêu cầu:

{
  "Pair": "BTC_LTC",
  "Course": 0.01194538,
  "Volume": 10.0
}

Phản hồi:

{
  "Id": 51893288
}

Sell

Đặt lệnh bán.

Ví dụ. Đặt lệnh bán 10 LTC cho BTC với giá là 0.01194538:

Yêu cầu: https://api.crex24.com/CryptoExchangeService/BotTrade/Sell

Cơ quan yêu cầu:

{
  "Pair": "BTC_LTC",
  "Course": 0.01194538,
  "Volume": 10.0
}

Phản hồi:

{
  "Id": 51893294
}

CancelOrder

Hủy lệnh.

Ví dụ.

Yêu cầu: https://api.crex24.com/CryptoExchangeService/BotTrade/CancelOrder

Cơ quan yêu cầu:

{
  "OrderId": 51893294
}

Phản hồi:

{
  "Success": true
}

CancelOrderMulti

Hủy một số lệnh theo danh sách ID hoặc theo các cặp giao dịch.

Yêu cầu: https://api.crex24.com/CryptoExchangeService/BotTrade/CancelOrderMulti

Ví dụ 1. Hủy lệnh theo danh sách ID:

Cơ quan yêu cầu:

{
  "OrderIds": [51893293, 51893292]
}

Ví dụ 2. Hủy tất cả lệnh theo các cặp giao dịch:

Cơ quan yêu cầu:

{
  "PairNames": ["BTC_ETH", "BTC_LTC"]
}

Phản hồi:

{
  "Success": true
}

ReturnOrderStatus

Nhận thông tin và tất cả hoạt động kinh doanh theo lệnh.

Ví dụ.

Yêu cầu: https://api.crex24.com/CryptoExchangeService/BotTrade/ReturnOrderStatus

Cơ quan yêu cầu:

{
  "OrderId": 51893312
}

Phản hồi:

{
  "CurrentOrder": {               # Trạng thái lệnh hiện tại.
    "CoinCount": 9.00000000,
    "CoinPrice": 0.01194538,
    "Id": 51893314,
    "IsCloseRequired": false,
    "IsSell": false,
    "PairName": "BTC_LTC"
  },
  "SourceOrder": {                # Trạng thái lệnh ban đầu.
    "CoinCount": 10.00000000,
    "CoinPrice": 0.01194538,
    "Id": 51893314,
    "IsCloseRequired": false,
    "IsSell": false,
    "PairName": "BTC_LTC"
  },
  "Trades": [                     # Danh sách các giao dịch mua bán theo lệnh.
    {
      "CoinCount": 1.00000000,
      "CoinPrice": 0.01194538,
      "Commission": 0.00000000,
      "DtCreateTS": 1507465556,
      "Id": 185250,
      "IsMaker": true,
      "IsSell": false,
      "PairName": "BTC_LTC"
    }
  ]
}

ReturnDepositsWithdrawals

Nhận lịch sử gửi tiền và rút tiền. Các giao dịch sẽ được hiển thị theo từng trang, bắt đầu từ trang gần đây nhất. Để xem trang tiếp theo hãy hoàn tất trường FromId với ID thấp nhất của hồ sơ từ phản hồi trước đó.

Ví dụ. Nhận 100 hồ sơ cuối cùng:

Yêu cầu: https://api.crex24.com/CryptoExchangeService/BotTrade/ReturnDepositsWithdrawals

Cơ quan yêu cầu:

{
  "Names": ["BTC", "LTC"],       # Danh sách tiền tệ. Nếu không có, sau đó phục hồi lại tất cả các loại tiền tệ.
  "FromId": 0,                   # 0 hoặc ID thấp nhất của hồ sơ từ phản hồi trước đó.
  "Take": 100                    # Số lượng hồ sơ để trả về. Số lượng hồ sơ tối đa là 1.000.
}

Phản hồi:

{
  "CountRemain": 1000,                          # Số lượng hồ sơ còn lại. Nếu 0 thì đó là trang cuối.
  "Changes": [
    {
      "Address": "17XjwyX78jusTPXHxxF14ST9fWrCUcLT6L",   # Địa chỉ thanh toán.
      "AgentName": null,                        # Tên hệ thống thanh toán đối với các tiền pháp định.
      "CurrenceName": "BTC",
      "Id": 151,                                # ID Hồ sơ.
      "NeedConfirm": 15,
      "NumConfirm": 17,
      "Status": 3,                              # Tình trạng thanh toán. Xem bên dưới.
      "Sum": 0.20000000,
      "TimeTs": 1504100143,                     # Thời gian tạo hồ sơ theo định dạng UTC.
      "TxId": "4f37855e4ecfc8f15b58f3397a6f339ca6f941d63d097c08004f7c9dfc4ec700",   # ID Giao Dịch
      "Type": 2                                 # Loại hồ sơ. Xem bên dưới.
    },
    ...
  ],
}

Các giá trị có thể cho trường "Trạng thái":
  1. - Đã được xác nhận bởi người dùng
  2. - Giao dịch đã được tạo
  3. - Xác nhận đầu tiên
  4. - Đã xử lý thành công
  5. - Giao dịch bị từ chối
  6. - Đang xử lý
  7. - Đã bị hủy bởi người dùng
  8. - Đang chờ để gửi
Giá trị có thể cho trường "Loại":
  1. - Tiền gửi Cryptocurrency
  2. - Tiền rút Cryptocurrency
  3. - Nạp tiền pháp định
  4. - Rút tiền pháp định

Withdraw

Tạo một yêu cầu rút tiền.

Ví dụ.

Yêu cầu: https://api.crex24.com/CryptoExchangeService/BotTrade/Withdraw

Cơ quan yêu cầu:

{
  "Currency": "BTC",
  "Sum": 1.0,
  "Address": "17XjwyX78jusTPXHxxF14ST9fWrCUcLT6L",
  "Message": "any_message"         # Tin nhắn cho các giao dịch (sẽ được gửi nếu tiền tệ này hỗ trợ).
}

Phản hồi:

{
  "NewBalance": 9.00000000,                         # Số dư mới.
  "OutId": 613                                      # Id của yêu cầu rút tiền. Nếu không phải là 0, thì yêu cầu đã được tạo thành công.
}

ReturnDepositAddress

Nhận địa chỉ để gửi tiền tệ. Nếu cần thông báo tin nhắn cho khoản tiền gửi, thì sẽ có phản hồi.

Yêu cầu: https://api.crex24.com/CryptoExchangeService/BotTrade/ReturnDepositAddress

Ví dụ 1. Nhận địa chỉ gửi tiền BTC:

Cơ quan yêu cầu:

{
  "Currency": "BTC"
}

Phản hồi:

{
  "Address": "1JH6h3qDbAMEzAD8e7usWEqePddHzpSTgK",
  "Message": null 
}

Ví dụ 2. Nhận địa chỉ gửi tiền XMR:

Cơ quan yêu cầu:

{
  "Currency": "XMR"
}

Phản hồi:

{
  "Address": "NC6GOUR4ICVVPPK7N4UIYWDJM6LTUBJFR7OVXDS5",
  "Message": "950a239c0f98ca41"                             # Một tin nhắn phải được ghi trong khi gửi.
}