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ề ngăn xếp của đơn đặt hàng cho thị trường cụ thể

Ví dụ.Trả về ngăn xếp của đơn đặt hàng 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ề cây đèn nến năm phút cho BTC_DOGE trước ngày 16 tháng 8 năm 2017.

Yêu cầu:https://api.crex24.com/CryptoExchangeService/BotPublic/ReturnChartData?request=\ [PairName=BTC_DOGE][CandleTimeInMinutes=5][StartTS=1][EndTS=1502876344]

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

Nhận các đơn đặt hàng 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

Nhận tất cả các giao dịch thương mại theo đơn hàng.

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ố đơn đặt hàng theo danh sách của 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 các đơn đặt hàng theo danh sách của các ID:

Cơ quan yêu cầu:

{
  "OrderIds": [51893293, 51893292]
}

Ví dụ 2.Hủy tất cả các đơn đặt hàng 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 đơn hàng.

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 đơn đặt hàng hiện tại.
    "CoinCount": 9.00000000,
    "CoinPrice": 0.01194538,
    "Id": 51893314,
    "IsCloseRequired": false,
    "IsSell": false,
    "PairName": "BTC_LTC"
  },
  "SourceOrder": {                # Trạng thái đơn đặt hàng ban đầu.
    "CoinCount": 10.00000000,
    "CoinPrice": 0.01194538,
    "Id": 51893314,
    "IsCloseRequired": false,
    "IsSell": false,
    "PairName": "BTC_LTC"
  },
  "Trades": [                     # Danh sách các hoạt động giao dịch theo đơn đặt hàng.
    {
      "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 tệ cho phép.
      "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. - Tiền gửi tiền tệ cho phép
  4. - Tiền rút tiền tệ cho phép

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.
}