استفاده عمومی

ساخت وبلاگ

این سند جزئیات استفاده از API REST Kraken را برای تبادل نقطه ما نشان می دهد. API WebSockets API و Kraken Futures API به طور جداگانه مستند شده اند. API REST ما در نقاط پایانی در دسترس عموم (داده های بازار ، وضعیت تبادل و غیره) و نقاط پایانی معتبر خصوصی (تجارت ، بودجه ، داده های کاربر) سازماندهی شده است که نیاز به امضا دارند.

حمایت کردن

اطلاعات بیشتر و سؤالات متداول ممکن است در بخش API صفحات پشتیبانی ما یافت شود. اگر در ایجاد هر درخواست استاندارد که سیستم ما اجازه می دهد مشکل دارید ، لطفاً یک نسخه کامل از درخواست (های) مورد نظر خود را برای ما ارسال کنید ، از جمله آدرس IP خود و همه هدرها ، تا بتوانیم بیشتر تحقیق کنیم.

درخواست ها ، پاسخ ها و خطاها

درخواست ها

درخواست بار درخواست رمزگذاری شده است (نوع محتوا: برنامه/X-www-form-urlencoded) ، و کلیه درخواست ها باید یک عامل کاربر را در هدرهای خود مشخص کنند.

پاسخ

پاسخ ها json رمزگذاری شده و حاوی یک یا دو کلید سطح بالا هستند (نتیجه و خطا برای درخواست های موفق یا کسانی که دارای هشدارها هستند ، یا فقط خطا برای درخواست های ناموفق یا رد شده)

مثال پاسخ موفق

رد مثال

جزئیات خطا

کدهای وضعیت HTTP به طور کلی توسط API ما برای انتقال اطلاعات در مورد وضعیت درخواست ها استفاده نمی شود - هرگونه خطا یا هشدارها در زمینه خطا پاسخ همانطور که در بالا توضیح داده شد ، مشخص می شود. کدهای وضعیت به غیر از 200 نشان می دهد که مشکلی در درخواست رسیدن به سرورهای ما وجود داشته است.

پیام های خطا از قالب کلی پیروی می کنند: [: Add'l Text]

  • شدت می تواند E برای خطا یا W برای هشدار باشد
  • دسته بندی می تواند یکی از عمومی ، Auth ، API ، پرس و جو ، سفارش ، تجارت ، بودجه یا خدمات باشد
  • خطا MSG می تواند هر رشته متنی باشد که دلیل خطا را توصیف می کند

برخی از نمونه های متداول

خطااطلاعات اضافی
egeneral: استدلال های نامعتبربار پرداخت درخواست ناقص ، نادرست یا مبهم است
egeneral: استدلال های نامعتبر: فهرست موجود در دسترس نیستقیمت گذاری شاخص برای سفارشات توقف/سود در این جفت در دسترس نیست
Eservice: در دسترس نیستموتور تطبیق یا API آفلاین است
Eservice: بازار در حالت cancel_onlyدر حال حاضر درخواست نمی شود (به نقطه پایانی SystemStatus مراجعه کنید)
Eservice: بازار در حالت post_onlyدر حال حاضر درخواست نمی شود (به نقطه پایانی SystemStatus مراجعه کنید)
Eservice: مهلت سپری شدهدرخواست مطابق با مهلت پیش فرض یا مشخص شده به پایان رسید
EAPI: کلید نامعتبریک عنوان API-Key نامعتبر تهیه شد (به بخش تأیید اعتبار مراجعه کنید)
EAPI: امضای نامعتبریک عنوان API-SIGN نامعتبر تهیه شد (به بخش احراز هویت مراجعه کنید)
EAPI: نامعتبر استیک غیرقانونی نامعتبر تهیه شد (به بخش احراز هویت مراجعه کنید)
Egeneral: مجوز رد شدAPI Key اجازه ارائه این درخواست را ندارد
Eore: نمی تواند موقعیت را باز کندکاربر/ردیف برای تجارت حاشیه واجد شرایط نیست
Eore: از کمک هزینه بیش ازکاربر از کمک هزینه خود فراتر رفته است
Eore: سطح حاشیه خیلی پایین استمشتری دارای ارزش یا وثیقه کافی نیست
EWARE: اندازه موقعیت حاشیه بیش ازمشتری از حداکثر اندازه موقعیت برای این جفت فراتر می رود
EWARE: حاشیه کافیمبادله بودجه موجود برای این تجارت حاشیه ای ندارد
EWARE: بودجه کافیمشتری بودجه لازم را ندارد
EWARE: سفارش حداقل ملاقات نکنیداندازه سفارش با سفارش مین مطابقت ندارد (به نقطه پایانی Assetpairs مراجعه کنید)
EWARE: حداقل هزینه برآورده نشده استهزینه (قیمت * حجم) با Costmin مطابقت ندارد (به نقطه پایانی Assetpairs مراجعه کنید)
Eore: بررسی اندازه تیک انجام نشدقیمت ارسال شده یک چند معتبر از Tick_size جفت نیست (به نقطه پایانی Assetpairs مراجعه کنید)
EWARE: محدودیت سفارشات بیش از حد بود(به بخش محدودیت نرخ مراجعه کنید)
EWARE: حد مجاز بیش از(به بخش محدودیت نرخ مراجعه کنید)
EWARE: محدودیت موقعیت ها از آن فراتر رفته است
ایرج: موقعیت ناشناخته

اطلاعات اضافی را می توان در مرکز پشتیبانی ما یافت.

احراز هویت

درخواست های معتبر باید شامل هدر HTTP API-Key و API-SIGN و NONCE در بار درخواست باشد. در صورت فعال بودن احراز هویت دو عاملی (2FA) ، OTP در بار نیز مورد نیاز است.

nonce و 2fa

غیر معذب

برای هر درخواستی که با یک کلید API خاص انجام می شود ، باید یک عدد صحیح 64 بیتی در حال افزایش و بدون امضا باشد. در حالی که یک پیشخوان ساده یک غیر معتبر را ارائه می دهد ، یک روش معمول تر برای تولید یک غیر معتبر ، استفاده از آن به عنوان مثال است. یک جدول زمانی UNIX در میلی ثانیه.

توجه: هیچ راهی برای تنظیم مجدد NONCE برای یک کلید API به یک مقدار پایین تر وجود ندارد ، بنابراین حتما از یک روش تولید غیر CECE استفاده کنید که تعداد آنها کمتر از Nonce قبلی تولید نمی کند. درخواست های زیادی با افراد نامعتبر (EAPI: Invalid Nonce) می تواند منجر به ممنوعیت موقت شود. مشکلات ناشی از درخواست های خارج از سفارش به دلیل به اشتراک گذاشتن کلیدهای API در فرایندها ، یا از ساعت سیستم رانش/مجدداً می تواند ایجاد شود. یک "پنجره Nonce" اختیاری را می توان پیکربندی کرد تا تحمل بین مقادیر غیر CE را مشخص کند. اطلاعات اضافی را می توان در صفحات پشتیبانی ما یافت.

اگر احراز هویت دو عاملی (2FA) برای کلید API و عملکرد مورد نظر فعال باشد ، باید رمز عبور یک بار در مقدار OTP Payload مشخص شود.

هدرها و امضای

کلید ای پی ای

هدر "Api-Key" باید حاوی کلید API شما باشد.

امضاء کردن

درخواست های تأیید شده باید با استفاده از امضای ایجاد شده با کلید خصوصی خود ، غیرقانونی ، بار رمزگذاری شده و مسیر URI با عنوان "API-SIGN" امضا شود:

امضاء مثال

در زیر نمونه خاصی از امضای تولید شده با یک کلید خصوصی خاص ، غیر CE و بارگذاری متناسب با سفارش محدود جدید (خرید 1. 25 XBTUSD با 37. 500 دلار) است. اگر کد شما برای مثال در حال ایجاد امضای متفاوتی ("API-SIGN") است ، احتمالاً مشکلی در استفاده شما از روش فوق وجود دارد. قطعه های کد برای تولید امضا در پایتون ، Golang و Node. js در زیر دنبال می شوند.

 

رشتهارزش
کلید خصوصیKQH5HW/8P1UGOVJBGWA7FUNAMGO8LSSUXNSU3EOW76SZ84Q18FWXNYRZBHCD3PD5NE9QA99HAZTUZUJ6F1HUXG ==
غیر معذب1616492376594
بار رمزگذاری شدهnonce = 1616492376594 & ordertype = حد و جفت = xbtusd & price = 37500 & type = buy & volume = 1. 25
مسیر URI/0/خصوصی/افزودنی
امضاء کردن4/dpxb3it4tp/zcvewsneslxx0bqyhlpdfopc6fn7or8+uclsv5n9e6ass8mptnrfp32bab0nmb6h8ndwluq ==

نمونه های کد

پیتون

لینک گلانگ

گره js

محدودیت نرخ

ما برای محافظت در برابر سوءاستفاده از سیستم ، دستکاری در کتاب سفارش ، حملات DDOS و غیره ، از اقدامات مختلفی استفاده می کنیم.

توجه: برای مشتریانی که دارای برنامه های حساس به عملکرد هستند ، ما استفاده از API WebSockets خود را برای به حداقل رساندن تأخیر درخواست و دریافت اطلاعات در زمان واقعی ، کاهش یا از بین بردن نیاز به نظرسنجی نقاط پایانی به شدت توصیه می کنیم.

محدودیت های نرخ API REST

محدودیت

هر کاربر REST API دارای "پیشخوان تماس" است که از 0 شروع می شود. تماس های تاریخ/تاریخ تجارت ، پیشخوان را به 2 افزایش می دهد. تمام تماس های API دیگر این پیشخوان را به 1 افزایش می دهد (به جز Addorder ، Cancelorder که با محدود کننده دیگری که در زیر شرح داده شده است ، کار می کند).

 

ردیفپیشخوان MAX APIضد پوسیدگی API
شروع کننده15-0. 33/ثانیه
حد واسط20-0. 5/ثانیه
حرفه ای20-1 ثانیه

پیشخوان کاربر بسته به سطح تأیید آنها ، هر دو ثانیه کاهش می یابد. پیشخوان کلید API جداگانه است و اگر پیشخوان از حداکثر مقدار فراتر رود ، تماس های بعدی با استفاده از آن کلید API محدود خواهد بود. در صورت دستیابی به محدودیت نرخ ، تماس های اضافی برای چند ثانیه محدود می شود (یا احتمالاً طولانی تر در صورت ادامه تماس در حالی که محدودیت نرخ فعال است).

خطاها

  • اگر پیشخوان API REST بیش از حداکثر کاربر باشد ، "EAPI: محدودیت نرخ بیش از حد" است.
  • "Eservice: پرتاب: [UNIX TIMESTAMP]" اگر درخواست های همزمان زیادی وجود دارد. بعد از [Timestamp] دوباره امتحان کنید.

اطلاعات اضافی را می توان در مرکز پشتیبانی ما یافت.

محدودیت نرخ موتور

محدودیت

محدودیت های جداگانه در مورد تعداد سفارشاتی که مشتری ممکن است در هر جفت باز باشد ، و سرعتی که ممکن است با آنها اضافه شود و سفارشات را در هر جفت اضافه کرده و لغو کند ، اعمال می شود. این محدودیت ها با توجه به تأیید حساب متفاوت است:

 

ردیفسفارشات حداکثر شمارهحداکثر Ratecountپوسیدگی Ratecount
شروع کننده6060-1 ثانیه
حد واسط80125-2. 34/ثانیه
حرفه ای225180-3. 75/ثانیه

مجازاتها

سرعت برای هر یک از (مشتری ، جفت) که از صفر شروع می شود توسط یک Ratecounter کنترل می شود ، در هنگام اعمال مجازات ها افزایش می یابد و با توجه به نرخ پوسیدگی بالا کاهش می یابد. یک مجازات برای هر سفارش جدید قرار داده شده (افزودنی) یا لغو (لغو ، لغو ، CanceLallordSafter) روی این جفت به Ratecounter اضافه می شود. مجازات لغو با توجه به طول عمر سفارش متفاوت است.

 

عمل      >300s
سفارش اضافه کردن+1
addorderbatch ***+(n/2)
ویرایش سفارش+6+5+4+2+100
لغو سفارش+8+6+5+4+2+10
CancelorderBatch **+8+6+5+4+2+10

*** n تعداد سفارشات دسته ای است

** محدودیت نرخ مجازات برای CancelorderBatch مبلغ تجمعی مجازات سفارشات فردی خواهد بود ، که تا حداکثر Ratecount جمع شده است. در صورت ، مجازات تجمعی موجود در دسته از حداکثر Ratecount ، درخواست های لغو در دسته هنوز پذیرفته شده است.

توجه: مقادیر دقیق RateCounter مشتری را می توان از طریق FEED WebSockets OpenRorders کنترل کرد.

خطاها

  • اگر تعداد سفارشات باز در یک جفت معین بیش از حد باشد ، "Eore: Ewore: Order Limit بیش از حد است"
  • اگر حداکثر حداکثر کاربر برای یک جفت معین بیش از حد باشد ، "Eore: Ewore: بیش از حد نرخ است"

اطلاعات اضافی را می توان در مرکز پشتیبانی ما یافت.

تعویض

  • دسامبر 2022 - ویرایشگر مجاز به سفارشات حاشیه است. محدودیت پارامتر جفت ثابت در TradeVolume.
  • نوامبر 2022 - اضافه شده پارامترهای Tick_size و وضعیت به دارایی های دارایی ، وضعیت و وثیقه_ Value به دارایی ها ، و trade_id به معاملات عمومی.
  • اکتبر 2022 - پشتیبانی از Wildcard Ticker - جفت دیگر مورد نیاز نیست ، هیچ پارامتر جفتی برای همه دارایی های تبادل قابل تجارت باز می گردد. پارامتر معاملات Costmin به AssetPairs اضافه شد. زمینه UV (ارزش نامشخص) در TradeBalance.
  • سپتامبر 2022 - Addorder/Editorder/AddorderBatch - اکنون از کوه های یخ پشتیبانی کنید.
  • ژوئیه 2022 - پشتیبانی اضافه شده برای محدود کردن کلیدهای API به آدرس IP مشخص شده (ES)/محدوده
  • ژوئن 2022 - گزینه های پیشگیری از تجارت سفارشی اضافه شده است.
  • مه 2022 - نقطه پایانی AddorderBatch جدید برای ارسال چندین سفارش جدید و Endpoint CancelorderBatch برای لغو چندین سفارش باز
  • مارس 2022 - ویرایشگر جدید Editorder برای ویرایش حجم و قیمت در سفارشات باز.
  • دسامبر 2021 - اضافه کردن پشتیبانی از افزودنی REST برای محرک پارامتر اختیاری و مقادیر آخرین (آخرین قیمت معامله شده) و فهرست.

توجه: بیشتر تغییرات مؤثر بر API های ما یا رفتار موتور تجارت در حال حاضر در ChangeLog WebSockets ما ردیابی می شود ، تا زمانی که این اسناد ترکیب شوند.

به عنوان مثال مشتری های API

برای دستیابی به حداکثر عملکرد ، امنیت و انعطاف پذیری برای نیازهای خاص خود ، ما به شدت اجرای این API را با کد شخصی خود تشویق می کنیم و اعتماد به نفس به نرم افزار شخص ثالث را به حداقل می رسانیم.

گفته می شود ، به منظور کمک به توسعه سریع و نمونه سازی ، ما در حال تولید مشتری های رسمی API در پایتون و Golang هستیم که به طور جدی حفظ می شوند ، همزمان با انتشار نسخه های جدیدتر از وب سایت های ما و استراحتAPISدر این میان ، تیم نامزدی مشتری ما تعدادی از قطعه های کد ، نمونه ها و مجموعه های پستچی را گردآوری کرده است که بسیاری از آنها مفید هستند.

نرم افزار شخص ثالث

در زیر سایر کتابخانه های کد مشتری API شخص ثالث که ممکن است هنگام نوشتن مشتری API خود استفاده شود. لطفاً به خاطر داشته باشید که Payward و نویسندگان شخص ثالث مسئول ضرر و زیان ناشی از اشکالات یا استفاده نادرست از API ها نیستند. Payward قبل از لیست آنها ، بررسی اولیه ایمنی کد شخص ثالث را انجام داده است ، اما نمی تواند برای هرگونه تغییر اضافه شده از آن زمان ، یا برای مواردی که ممکن است بی نظیر باشد ، تضمین کند. اگر نگرانی دارید ، لطفاً با پشتیبانی تماس بگیرید.

کتاب آموزش بورس...
ما را در سایت کتاب آموزش بورس دنبال می کنید

برچسب : نویسنده : محسن زنجانچی بازدید : 58 تاريخ : پنجشنبه 10 فروردين 1402 ساعت: 0:35