توفر واجهة برمجة التطبيقات (API) الخاصة بـ Kraken للمطورين واجهة قوية لأحد أبرز بورصات العملات المشفرة في العالم. سواء كنت تبني تطبيقات تداول، أو تراقب الأسواق، أو تدير محافظ العملات المشفرة، ستساعدك هذه الدليل في التنقل عبر العناصر الأساسية لقدرات واجهة برمجة التطبيقات الخاصة بـ Kraken وأساليب التنفيذ.
ما هي واجهة برمجة التطبيقات (API) الخاصة بـ Kraken؟
تسمح واجهة برمجة التطبيقات الخاصة بـ Kraken للمطورين بالوصول برمجياً إلى وظائف البورصة من خلال واجهة RESTful. مع هذه واجهة برمجة التطبيقات، يمكنك:
- الوصول إلى بيانات السوق في الوقت الحقيقي (الأسعار، دفاتر الطلبات، الصفقات)
- وضع وإدارة أوامر التداول
- مراقبة أرصدة الحسابات والمراكز
- معالجة الودائع والسحوبات
- الوصول إلى بيانات التداول التاريخية

إعداد الوصول إلى واجهة برمجة التطبيقات
إنشاء حسابك في Kraken
قبل استخدام واجهة برمجة التطبيقات، ستحتاج إلى:
- التسجيل للحصول على حساب في Kraken على kraken.com
- إكمال متطلبات التحقق بناءً على احتياجات الاستخدام الخاصة بك
- تمكين المصادقة الثنائية (2FA) لتعزيز الأمان

إنشاء مفاتيح واجهة برمجة التطبيقات
للتفاعل مع واجهة برمجة التطبيقات، قم بإنشاء مفاتيح واجهة برمجة التطبيقات بالأذونات المناسبة:
- تسجيل الدخول إلى حسابك في Kraken
- الانتقال إلى الاتصال & واجهة برمجة التطبيقات

3. انقر على إنشاء مفتاح جديد

4. تعيين الأذونات المناسبة:
- الاستعلام: وصول للقراءة فقط إلى معلومات الحساب
- تجارة: القدرة على وضع وإلغاء الأوامر
- إيداع: توليد عناوين الإيداع
- سحب: إنشاء طلبات السحب

⚠️ تحذير أمان
- قم بتخزين مفاتيح واجهة برمجة التطبيقات بشكل آمن ولا تشارك مفتاحك الخاص أبداً
- قيد أذونات مفاتيح واجهة برمجة التطبيقات على ما هو ضروري فقط
- حاول تطبيق قيود على عنوان IP
فهم هيكل واجهة برمجة التطبيقات
تم تنظيم واجهة برمجة التطبيقات الخاصة بـ Kraken ضمن هيكل منطقي:
عنوان واجهة برمجة التطبيقات الأساسي ونقاط النهاية
تبدأ جميع طلبات واجهة برمجة التطبيقات بعنوان URL الأساسي: https://api.kraken.com
يتم تحديد إصدار واجهة برمجة التطبيقات الحالي بواسطة /0/
في مسار URL، ويتبعه إما:
- /public/ - نقاط النهاية التي لا تتطلب مصادقة
- /private/ - نقاط النهاية التي تتطلب مصادقة باستخدام مفتاح واجهة برمجة التطبيقات الخاص بك
تنسيق الاستجابة
تتبع جميع استجابات واجهة برمجة التطبيقات تنسيق JSON القياسي:
{
"error": [],
"result": { /* بيانات الاستجابة */ }
}
إجراء طلبات واجهة برمجة التطبيقات الأولى
طلبات واجهة برمجة التطبيقات العامة
توفر نقاط النهاية العامة بيانات السوق دون الحاجة إلى مصادقة.
مثال: الحصول على معلومات الشعار
import requests
# الحصول على معلومات الشعار لبيتكوين بالدولار الأمريكي
response = requests.get('https://api.kraken.com/0/public/Ticker?pair=XBTUSD')
ticker_data = response.json()
if not ticker_data['error']:
btc_data = ticker_data['result']['XXBTZUSD']
print(f"سعر آخر صفقة بيتكوين بالدولار الأمريكي: {btc_data['c'][0]}")
print(f"حجم بيتكوين/الدولار الأمريكي خلال 24 ساعة: {btc_data['v'][1]}")
else:
print(f"خطأ: {ticker_data['error']}")
مثال: بيانات دفتر الطلبات
fetch('https://api.kraken.com/0/public/Depth?pair=ETHUSD&count=5')
.then(response => response.json())
.then(data => {
if (data.error.length === 0) {
const orderbook = data.result.XETHZUSD;
console.log("أعلى 5 طلبات شراء ETH/USD:", orderbook.bids);
console.log("أعلى 5 طلبات بيع ETH/USD:", orderbook.asks);
}
});
مصداقية واجهة برمجة التطبيقات الخاصة
تتطلب نقاط النهاية الخاصة مصادقة بمفاتيح واجهة برمجة التطبيقات الخاصة بك من خلال عملية تتضمن:
- توليد عدد غير متكرر (رقم متزايد)
- إنشاء توقيع طلب باستخدام HMAC-SHA512
- إرسال الطلب مع مفتاح واجهة برمجة التطبيقات والتوقيع الخاص بك
تنفيذ المصادقة
import time
import base64
import hashlib
import hmac
import urllib.parse
import requests
def kraken_request(api_key, api_sec, endpoint, data=None):
"""إجراء طلب موثوق إلى واجهة برمجة تطبيقات Kraken"""
if data is None:
data = {}
api_url = "https://api.kraken.com"
# إضافة عدد غير متكرر إلى البيانات
data['nonce'] = str(int(time.time() * 1000))
# تشفير البيانات للتوقيع
encoded_data = urllib.parse.urlencode(data)
# إنشاء توقيع
signature_data = (data['nonce'] + encoded_data).encode()
message = endpoint.encode() + hashlib.sha256(signature_data).digest()
signature = hmac.new(base64.b64decode(api_sec), message, hashlib.sha512)
signature_digest = base64.b64encode(signature.digest()).decode()
# تعيين العناوين
headers = {
'API-Key': api_key,
'API-Sign': signature_digest
}
# إرسال الطلب
response = requests.post(api_url + endpoint, headers=headers, data=data)
return response.json()
الوظائف الأساسية لواجهة برمجة التطبيقات
معلومات الحساب
التحقق من رصيد الحساب
balance = kraken_request(api_key, api_secret, "/0/private/Balance")
if not balance['error']:
for asset, amount in balance['result'].items():
print(f"{asset}: {amount}")
إدارة الأوامر
وضع أمر سوقي
# معلمات شراء 0.01 بيتكوين بالسعر الحالي للسوق
order_params = {
'pair': 'XBTUSD',
'type': 'buy',
'ordertype': 'market',
'volume': '0.01'
}
order_result = kraken_request(api_key, api_secret, "/0/private/AddOrder", order_params)
if not order_result['error']:
print(f"تم وضع الأمر! معرف المعاملة: {order_result['result']['txid'][0]}")
وضع أمر محدد
# معلمات بيع 0.01 بيتكوين عند 50,000 دولار
limit_params = {
'pair': 'XBTUSD',
'type': 'sell',
'ordertype': 'limit',
'price': '50000',
'volume': '0.01'
}
limit_result = kraken_request(api_key, api_secret, "/0/private/AddOrder", limit_params)
استعلام الأوامر المفتوحة
open_orders = kraken_request(api_key, api_secret, "/0/private/OpenOrders")
if not open_orders['error']:
orders = open_orders['result']['open']
for order_id, details in orders.items():
print(f"المعرف: {order_id}")
print(f"النوع: {details['descr']['type']} {details['descr']['ordertype']}")
print(f"الزوج: {details['descr']['pair']}")
استخدام APIdog مع واجهة برمجة التطبيقات الخاصة بـ Kraken

APIdog يوفر منصة قوية لتطوير واختبار وتوثيق تكامل واجهة برمجة التطبيقات الخاصة بـ Kraken. إليك كيفية الاستفادة من APIdog لتطوير مبسط:
إعداد واجهة برمجة التطبيقات الخاصة بـ Kraken في APIdog
إنشاء مشروع جديد
- قم بتشغيل APIdog وإنشاء مشروع جديد
- قم بإعداد بيئة لاختبار واجهة برمجة التطبيقات الخاصة بـ Kraken
تكوين متغيرات البيئة
- إنشاء متغيرات لـ
API_KEY
،API_SECRET
، وAPI_URL
- تعيين API_URL إلى
https://api.kraken.com
استيراد أو إنشاء نقاط النهاية

- يمكنك إما استيراد مواصفات واجهة برمجة التطبيقات الخاصة بـ Kraken أو إنشاء المجموعات يدوياً
- تنظيم نقاط النهاية في مجلدات منطقية (بيانات السوق، التداول، الحساب، إلخ.)
تنفيذ مصداقية Kraken في APIdog
يتيح APIdog إعداد مصداقية Kraken المخصصة بسهولة:
- إنشاء نص البرنامج التمهيدي لتوليد المصادقة اللازمة:
// نص البرنامج التمهيدي لمصداقية Kraken
const crypto = require('crypto-js');
// الحصول على متغيرات البيئة
const apiKey = pm.environment.get("API_KEY");
const apiSecret = pm.environment.get("API_SECRET");
// إضافة عدد غير متكرر إلى جسم الطلب
const nonce = Date.now() * 1000;
pm.request.body.update({
mode: 'urlencoded',
urlencoded: [
...pm.request.body.urlencoded.all(),
{key: 'nonce', value: nonce.toString()}
]
});
// الحصول على مسار الطلب
const path = pm.request.url.getPathWithQuery().replace(/\?.*/, '');
// إنشاء توقيع
const postData = pm.request.body.urlencoded.toString();
const message = path + crypto.SHA256(nonce.toString() + postData).toString();
const signature = crypto.enc.Base64.stringify(
crypto.HmacSHA512(message, crypto.enc.Base64.parse(apiSecret))
);
// تعيين العناوين
pm.request.headers.add({key: 'API-Key', value: apiKey});
pm.request.headers.add({key: 'API-Sign', value: signature});
اختبار وتوثيق مع APIdog
إنشاء طلبات اختبار
- إعداد طلبات للعمليات الشائعة مثل الحصول على بيانات الشعار، وضع الأوامر، إلخ.
- استخدام مُنشئ الطلبات لتكوين المعلمات الصحيحة
إضافة نصوص اختبار
- تحقق من استجابات واجهة برمجة التطبيقات باستخدام نصوص الاختبار
- التحقق من الأخطاء والهياكل البيانية المتوقعة
// نص اختبار مثال لنقطة نهاية الرصيد
pm.test("حالة الاستجابة 200", () => {
pm.response.to.have.status(200);
});
pm.test("لم يتم إرجاع أخطاء", () => {
const response = pm.response.json();
pm.expect(response.error).to.be.an('array').that.is.empty;
});
pm.test("بيانات الرصيد موجودة", () => {
const response = pm.response.json();
pm.expect(response.result).to.exist.and.to.be.an('object');
});
توليد الوثائق
- استخدم أدوات توثيق APIdog لإنشاء أدلة شاملة لواجهة برمجة التطبيقات
- تضمين الأمثلة، الأوصاف، ونماذج الاستجابة
مشاركة والتعاون
- شارك مجموعة واجهة برمجة التطبيقات الخاصة بـ Kraken مع أعضاء الفريق
- استخدم ميزات التعاون في APIdog لتطوير الفريق

خوادم APIdog الوهمية للتطوير
أثناء التطوير، يمكنك استخدام خوادم APIdog الوهمية لمحاكاة استجابات واجهة برمجة التطبيقات الخاصة بـ Kraken:
- إنشاء استجابات مثال لكل نقطة نهاية
- تكوين قواعد الاستجابة بناءً على معلمات الطلب
- اختبار تطبيقك ضد الاستجابات الوهمية قبل الإطلاق

تسمح لك هذه الطريقة بدورات تطوير أسرع وتحميك من الوصول إلى حدود معدلات واجهة برمجة التطبيقات أثناء التطوير.
أفضل الممارسات لتكامل واجهة برمجة التطبيقات الخاصة بـ Kraken
تقييد المعدل والتحسين
تقوم Kraken بتطبيق حدود معدل محددة:
- نقاط النهاية العامة: طلب واحد في الثانية
- نقاط النهاية الخاصة: 15-20 طلب في الدقيقة
للتعامل مع ذلك بشكل فعال:
- تطبيق تقييد في رمزك
- استخدم WebSockets لبيانات الوقت الحقيقي بدلاً من استدعاءات واجهة برمجة التطبيقات REST المتكررة
- تجميع الاستفسارات عند الإمكان
معالجة الأخطاء
تنفيذ معالجة الأخطاء بشكل قوي لتفاعلات واجهة برمجة التطبيقات:
def safe_api_call(api_function, max_retries=3):
"""ملف تغليف لاستدعاءات واجهة برمجة التطبيقات مع منطق إعادة المحاولة"""
retries = 0
while retries < max_retries:
try:
response = api_function()
if 'error' in response and response['error']:
error = response['error'][0]
# معالجة تقييد المعدل
if 'EAPI:Rate limit' in error:
sleep_time = (2 ** retries) # تأخير أسي
time.sleep(sleep_time)
retries += 1
continue
else:
return None
return response['result']
except Exception as e:
time.sleep(2 ** retries)
retries += 1
return None
اعتبارات الأمان
- تخزين بيانات اعتماد واجهة برمجة التطبيقات بشكل آمن - لا تقم بتشفيرها في تطبيقاتك
- تطبيق قيود على عنوان IP في إعدادات مفتاح واجهة برمجة التطبيقات الخاصة بـ Kraken
- استخدم أقل الأذونات المطلوبة لكل مفتاح واجهة برمجة التطبيقات
- مراقبة استخدام واجهة برمجة التطبيقات للوصول غير المصرح به
- تدوير مفاتيح واجهة برمجة التطبيقات بشكل دوري
حالات الاستخدام الشائعة
مراقبة بيانات السوق
def monitor_price(pair, interval=60):
"""مراقبة السعر على فترات منتظمة"""
while True:
response = requests.get(f'https://api.kraken.com/0/public/Ticker?pair={pair}')
data = response.json()
if not data['error']:
for p, info in data['result'].items():
price = info['c'][0]
print(f"{pair} السعر الحالي: {price}")
time.sleep(interval)
روبوت تداول بسيط
def simple_trading_strategy(pair, api_key, api_secret):
"""مثال على استراتيجية تداول بسيطة"""
# الحصول على رصيد الحساب
balance = kraken_request(api_key, api_secret, "/0/private/Balance")
# الحصول على السعر الحالي
ticker = requests.get(f'https://api.kraken.com/0/public/Ticker?pair={pair}')
ticker_data = ticker.json()
if not ticker_data['error']:
current_price = float(ticker_data['result'][pair]['c'][0])
# استراتيجية بسيطة: شراء إذا انخفض السعر بنسبة 5% مقارنة بأمس
yesterday_close = float(ticker_data['result'][pair]['o'])
if current_price < yesterday_close * 0.95:
print(f"انخفض السعر أكثر من 5% - فرصة شراء")
# تنفيذ منطق الشراء
خاتمة
توفر واجهة برمجة التطبيقات الخاصة بـ Kraken أدوات قوية لتداول العملات المشفرة وإدارة المحافظ. لقد تناولت هذه الدليل العناصر الأساسية للوصول إلى واجهة برمجة التطبيقات ، المصادقة ، والعمليات الشائعة. من خلال الاستفادة من أدوات مثل APIdog للتطوير والاختبار، يمكنك بناء تطبيقات قوية تتفاعل بسلاسة مع بورصة Kraken.
تذكر دائماً الرجوع إلى وثائق واجهة برمجة التطبيقات الرسمية لـ Kraken للحصول على أحدث المعلومات ومراجع نقاط النهاية التفصيلية. مع زيادة راحتك مع الأساسيات، يمكنك استكشاف ميزات متقدمة مثل اتصالات WebSocket للبيانات في الوقت الحقيقي واستراتيجيات تداول أكثر تعقيداً.
سواء كنت تبني متتبعًا شخصيًا للمحافظ، أو تُنفذ تداولًا خوارزميًا، أو تُنشئ حلولاً مهنية لتداول العملات المشفرة، فإن إتقان واجهة برمجة التطبيقات الخاصة بـ Kraken يفتح أمامك إمكانيات كبيرة في نظام أصول الرقمية.