طرق API العامة

هناك 6 طرق عامة تقبل طلبات HTTP GET وتقوم بإرجاع النتيجة على شكل JSON:

ReturnTicker

تقوم الطريقة بإرجاع المؤشرات لكافة الأسواق/المحددة منها؛ أمثلة على الطلب والاستجابة:

مثال .1 ارجاع كل المؤشرات.

طلب: https://api.crex24.com/CryptoExchangeService/BotPublic/ReturnTicker

النتيجة:

{
  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",
    ...
  },  ...]
}

مثال .2 إرجاع مؤشرات كل من BTC_LTC و BTC_DOGE.

طلب: https://api.crex24.com/CryptoExchangeService/BotPublic/ReturnTicker?request=[NamePairs=BTC_LTC,BTC_DOGE]

النتيجة:

{
  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

تقوم الطريقة بإرجاع حجم التداول لمدة 24 ساعة لكافة الأسواق/المحددة منها:

مثال. إرجاع حجم التداول ل BTC_DOG.

طلب:https://api.crex24.com/CryptoExchangeService/BotPublic/Return24Volume?request=[NamePairs=BTC_DOGE]

النتيجة:

{
  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

تقوم الطريقة بإرجاع كومة الطلبات لأسواق محددة:

مثال. إرجاع كومة الطلبات لBTC_DOGE.

طلب:https://api.crex24.com/CryptoExchangeService/BotPublic/ReturnOrderBook?request=[PairName=BTC_DOGE]

النتيجة:

{
  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

تقوم الطريقة بإرجاع آخر 1،000 معاملة (أو أقل إذا كان إعداد الحساب محددا) أو المعاملات للوقت المحدد بواسطة الإعدادين StartTS و EndTS في تنسيق الطابع الزمني UNIX.

مثال. إرجاع سجل المعاملات ل BTC_DOG.

طلب:https://api.crex24.com/CryptoExchangeService/BotPublic/ReturnTradeHistoryPub?request=[PairName=BTC_DOGE]

النتيجة:

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


ReturnChartData

تقوم الطريقة بإرجاع بيانات الشمعدان لأسواق محددة. زمن الشمعدان بالدقائق يمكن ضبطه في إعداد "زمن الشمعدان بالدقائق"، بداية و نهاية المجال الزمني يمكن ضبطهما عن طريق الإعدادين StartTS و EndTS في في تنسيق الطابع الزمني UNIX.

مثال. تقوم الطريقة بإرجاع خمس دقائق من الشمعدان لBTC_DOGE قبل 16 أوت 2017.

طلب:https://api.crex24.com/CryptoExchangeService/BotPublic/ReturnChartData?request=\ [PairName=BTC_DOGE][CandleTimeInMinutes=5][StartTS=1][EndTS=1502876344]

النتيجة:

{
  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

تقوم الطريقة بإرجاع معلومات حول كافة العملات/المحددة منها.

مثال. معلومات حول عملة DOGE

طلب:https://api.crex24.com/CryptoExchangeService/BotPublic/ReturnCurrencies?request=[Names=DOGE]

النتيجة:

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

طرق API للتداول

عنوان API Url للتداول: https://api.crex24.com/CryptoExchangeService/BotTrade/<MethodName>

من الضروري إنشاء رمز API لإستخدام API للتداول(https://crex24.com/settings/tokens).

يرجى ملاحظة أن الحد الإفتراضي للطلبات هو 6 طلبات في الثانية. إذا لم يكن ذلك كافياً، يرجى الاتصال بفريق دعم العملاء لمناقشة زيادة الحد.

يتم إرسال جميع طلبات API للتداول إلى عنوان HTTP باستخدام طريقة POST ويجب أن تحتوي على الرؤوس التالية:
  • UserKey — API key.
  • Sign — توقيع من POST على نص الطلب تم إنشاؤه عبر HMACSHA512 بإستخدام رمز سري.

يجب أن تحتوي جميع الطلبات على معيار Nonce الخاص ب POST .ال Nonce هو عبارة عن int64 غير موقعة و التي يجب أن تكون دائماً أكبر من القيمة السابقة. يمكنك استخدام معيار الطابع الزمني لهذه الأهداف.

يتم إرسال الجواب بصيغة JSON. في حالة حدوث خطأ، سيكون الجواب بالصيغة التالية:

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

أمثلة على الطلبات المرسلة إلى تداولات API بلغات برمجة مختلفة:

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

الحصول على الأرصدة المتاحة.

مثال.

الطلب: https://api.crex24.com/CryptoExchangeService/BotTrade/ReturnBalances

نص الطلب:

{
    "Names" : ["BTC", "LTC"],    # قائمة العملات. إذا لم تكن متوفرة، فقم باسترجاع جميع العملات.
    "NeedNull" : "true"          # تضمين الأرصدة الصفرية في القائمة.
}

الإجابة:

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

ReturnOpenOrders

الحصول على طلبات مفتوحة.

مثال.

الطلب: https://api.crex24.com/CryptoExchangeService/BotTrade/ReturnOpenOrders

نص الطلب:

{
  "Pairs": ["BTC_LTC", "BTC_ETH"]    # قائمة ازواج التداول. إذا كانت غائبة، فقم باسترجاع جميع ازواج التداول.
}

الإجابة:

{
  "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

الحصول على سجل التداول.

مثال.

الطلب: https://api.crex24.com/CryptoExchangeService/BotTrade/ReturnTradeHistory

نص الطلب:

{
  "Pairs": ["BTC_LTC", "BTC_ETH"]   # قائمة ازواج التداول. إذا كانت غائبة، فقم باسترجاع جميع ازواج التداول.
}

الإجابة:

{
  "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

الحصول على جميع معاملات التداول عن طريق الطلبية.

مثال.

الطلب: https://api.crex24.com/CryptoExchangeService/BotTrade/ReturnOrderTrades

نص الطلب:

{
  "OrderId": 51893150
}

الإجابة:

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

Buy

ضع طلبية لشراء.

مثال. ضع طلبية لشراء 10 ليتكوين مقابل بيتكوين بسعر 0.01194538:

الطلب: https://api.crex24.com/CryptoExchangeService/BotTrade/Buy

نص الطلب:

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

الإجابة:

{
  "Id": 51893288
}

Sell

ضع طلبية لبيع.

مثال. ضع طلبية لبيع 10 ليتكوين مقابل بيتكوين بسعر 0.01194538:

الطلب: https://api.crex24.com/CryptoExchangeService/BotTrade/Sell

نص الطلب:

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

الإجابة:

{
  "Id": 51893294
}

CancelOrder

إلغاء الطلب.

مثال.

الطلب: https://api.crex24.com/CryptoExchangeService/BotTrade/CancelOrder

نص الطلب:

{
  "OrderId": 51893294
}

الإجابة:

{
  "Success": true
}

CancelOrderMulti

إلغاء عدة طلبيات عن طريق قائمة المعرفات أو عن طريق أزواج التداول.

الطلب: https://api.crex24.com/CryptoExchangeService/BotTrade/CancelOrderMulti

مثال .1 إلغاء الطلبيات عن طريق قائمة المعرفات:

نص الطلب:

{
  "OrderIds": [51893293, 51893292]
}

مثال .2 إلغاء كافة الطلبيات عن طريق أزواج التداول:

نص الطلب:

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

الإجابة:

{
  "Success": true
}

ReturnOrderStatus

الحصول على معلومات و على جميع معاملات التداول عن طريق الطلبية.

مثال.

الطلب: https://api.crex24.com/CryptoExchangeService/BotTrade/ReturnOrderStatus

نص الطلب:

{
  "OrderId": 51893312
}

الإجابة:

{
  "CurrentOrder": {               #الوضع الحالي للطلبية.
    "CoinCount": 9.00000000,
    "CoinPrice": 0.01194538,
    "Id": 51893314,
    "IsCloseRequired": false,
    "IsSell": false,
    "PairName": "BTC_LTC"
  },
  "SourceOrder": {                #الوضع الإبتدائي للطلبية.
    "CoinCount": 10.00000000,
    "CoinPrice": 0.01194538,
    "Id": 51893314,
    "IsCloseRequired": false,
    "IsSell": false,
    "PairName": "BTC_LTC"
  },
  "Trades": [                     # قائمة معاملات التداول عن طريق الطلبية.
    {
      "CoinCount": 1.00000000,
      "CoinPrice": 0.01194538,
      "Commission": 0.00000000,
      "DtCreateTS": 1507465556,
      "Id": 185250,
      "IsMaker": true,
      "IsSell": false,
      "PairName": "BTC_LTC"
    }
  ]
}

ReturnDepositsWithdrawals

احصل على سجل الإيداع والسحب. سيتم عرض المعاملات صفحة بصفحة بدءًا من الأحدث. لعرض الصفحة التالية أكمل حقل FromId مع أدنى رقم سجل من الرد السابق.

مثال. الحصول على آخر 100 سجل:

الطلب: https://api.crex24.com/CryptoExchangeService/BotTrade/ReturnDepositsWithdrawals

نص الطلب:

{
  "Names": ["BTC", "LTC"],       # قائمة العملات. إذا لم تكن متوفرة، فقم باسترجاع جميع العملات.
  "FromId": 0,                   # 0 أو أدنى معرف للسجل من الرد السابق.
  "Take": 100                    # عدد السجلات التي سيتم ارجاعها. الحد الأقصى لعدد السجلات هو 1000.
}

الإجابة:

{
  "CountRemain": 1000,                          # عدد السجلات المتبقية. إذا كان 0 فهي الصفحة الأخيرة.
  "Changes": [
    {
      "Address": "17XjwyX78jusTPXHxxF14ST9fWrCUcLT6L",   # عنوان الدفع.
      "AgentName": null,                        # اسم نظام الدفع للعملات الورقية.
      "CurrenceName": "BTC",
      "Id": 151,                                # معرف السجل.
      "NeedConfirm": 15,
      "NumConfirm": 17,
      "Status": 3,                              # حالة الدفع. انظر أدناه.
      "Sum": 0.20000000,
      "TimeTs": 1504100143,                     # وقت إنشاء السجل حسب التوقيت العالمي. 
      "TxId": "4f37855e4ecfc8f15b58f3397a6f339ca6f941d63d097c08004f7c9dfc4ec700",   # معرف المعاملة.
      "Type": 2                                 # نوع السجل. انظر أدناه.
    },
    ...
  ],
}

القيم المحتملة للحقل "Status":
  1. - أكد من طرف المستخدم
  2. - تم إنشاء المعاملة
  3. - أول تأكيد
  4. - تمت المعالجة بنجاح
  5. - تم رفض المعاملة
  6. - جار المعالجة
  7. - ألغي من طرف المستخدم
  8. - في انتظار الإرسال
القيم المحتملة للحقل "Type":
  1. - إيداع عملة الكريبتو
  2. - سحب عملة الكريبتو
  3. - إيداع العملة الورقية
  4. - سحب العملة الورقية

Withdraw

إنشاء طلب للسحب.

مثال.

الطلب: https://api.crex24.com/CryptoExchangeService/BotTrade/Withdraw

نص الطلب:

{
  "Currency": "BTC",
  "Sum": 1.0,
  "Address": "17XjwyX78jusTPXHxxF14ST9fWrCUcLT6L",
  "Message": "any_message"         # رسالة للمعاملات (سيتم إرسالها إذا كانت العملة تدعمها).
}

الإجابة:

{
  "NewBalance": 9.00000000,                         # الرصيد الجديد.
  "OutId": 613                                      # معرف طلب السحب. إذا لم يكن 0، فقد تم إنشاء الطلب بنجاح.
}

ReturnDepositAddress

الحصول على عنوان لإيداع العملة. إذا كان يجب ذكر رسالة للإيداع، فستكون الرسالة موجودة في الرد.

الطلب: https://api.crex24.com/CryptoExchangeService/BotTrade/ReturnDepositAddress

مثال .1 الحصول على العنوان لإيداع عملة البيتكوين:

نص الطلب:

{
  "Currency": "BTC"
}

الإجابة:

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

مثال .2 الحصول على العنوان لإيداع عملة مونيرو:

نص الطلب:

{
  "Currency": "XMR"
}

الإجابة:

{
  "Address": "NC6GOUR4ICVVPPK7N4UIYWDJM6LTUBJFR7OVXDS5",
  "Message": "950a239c0f98ca41"                             # الرسالة التي يجب ذكرها أثناء الإيداع.
}