АРІ

Дізнайтеся більше про АРІ

Загальні положення

ПРИМІТКА: Усі URL-адреси API повинні використовувати домен api.kraken.com.

Ви повинні надати рядок агента користувача під час створення заголовку запиту, інакше ви не зможете підключитися до API.

В Кракені увімкнено "Перевірка цілісності браузера"

Ви можете отримати помилку, якщо у вас нестандартний агент користувача, або ж в заголовках запитів агент користувача відсутній.

Якщо ви не можете створити стандартні запити, дозволені нашою системою, надішліть нам повну копію таких запитів, вашу IP-адресу та всі заголовки. Ця інформація дозволить нам опрацювати такий випадок.

Публічні методи використовують GET або POST.

Приватні методи повинні використовувати POST і виглядають так:

HTTP заголовок:

API-Key = API key
API-Sign = Message signature using HMAC-SHA512 of (URI path + SHA256(nonce + POST data)) and base64 decoded secret API key

POST дані:

nonce = завжди збільшується 64-бітове ціле число
otp = двофакторний пароль (якщо увімкнено двофактор, інакше не потрібно)

Примітка: Немає способу повернути nonce до меншого значення, тому не забудьте скористатися методом генерації nonce, котрий не видаватиме число, менше за попереднє значення. Пропонується стійкий лічильник або поточний час з точністю в соті секунди чи вищою. Занадто багато запитів з меншим значенням за останнє дійсне значення nonce (EAPI: Недійсне значення nonce), може призвести до тимчасових заборон.

Примітка. Іноді запити можуть виходити з ладу, або NTP може призвести до переведення часу, що спричинить неполадки з nonce. Якщо ви зіткнулися з цією проблемою, змініть значення nonce на сторінці налаштувань API в своєму акаунті. Значення nonce, яке потрібно встановити, залежить від того, яким чином ви нарощуватимете його. Залежно від вашої швидкості пропонується налаштування, яке б враховувало 3-15 секунд затримок в мережі.

Запити API щодо валютних активів використовують номенклатуру валют ISO4217-A3 у випадку реєстрації ISO, 3-буквені найчастіше використовувані найменування у випадку відсутності реєстрації ISO, або X-ISO4217-A3 код (див. http://www.ifex-project.org/).

Відповіді кодуються JSON у вигляді:

error = масив повідомлень про помилки у форматі:
    <char-severity code><string-error category>:<string-error type>[:<string-extra info>]
    код повідомлення E (error) означає помилку, W (warning) - попередження
result = результат виклику API (може бути відсутнім, якщо виникають помилки)

Примітка: обережно при роботі з числами, представленими у вигляді рядків, оскільки вони можуть переповнювати стандартні типи даних.

Обмеження частоти запитів АРІ

Ми гарантуємо захист від зловживань/DoS-атак, а також маніпуляцій ордербуком, спровокованих раптовим розміщенням та скасуванням ордерів.

Кожен користувач нашого API має "лічильник запитів", що починається з 0.

Запити журналів/історії угод збільшують значення лічильника на 2.

Запити розміщення/скасування ордерів не впливають на лічильник.

Усі інші запити API збільшують значення лічильника на 1.

Лічильник користувача зменшується кожні декілька секунд, але якщо лічильник перевищує ліміт користувача, доступ до API призупиняється на 15 хвилин. Користувачі з базовими акаунтами мають максимум 15, а їх лічильник зменшується на 1 кожні 3 секунди. Стандартні та Про акаунти мають максимум 20; лічильник стандартних акаунтів зменшується на 1 кожні 2 секунди, а для Про акаунтів - на 1 щосекунди.

Хоча розміщення та скасування ордерів не впливає на лічильник, є окремі ліміти для запобігання маніпулюванню ордербуком. Розміщення тільки ордерів, котрі ви збираєтесь заповнити, та дотримання частоти до 1 в секунду, як правило, достатньо, щоб не досягти цих лімітів.

Публічні ринкові дані

Отримати час сервера

URL: https://api.kraken.com/0/public/Time

Результат: час сервера

unixtime =  як часова мітка Unix
rfc1123 = як формат часу RFC 1123

Примітка: Це дозволяє оцінити час затримки між сервером і клієнтом.

Отрмати дані по валютах

URL: https://api.kraken.com/0/public/Assets

Ввід даних:

info = дані для отримання (необов'язково):
    info = всі дані (за замовчуванням)
aclass = клас активу (необов’язково):
    валюта (за замовчуванням)
asset = через кому, перелік валют для отримання даних (необов'язково. за замовчуванням = всі для даного класу активу)

Результат: масив найменувань валют та їх даних

<asset_name> = найменування валюти
    altname = альтернативне найменування
    aclass = клас активу
    decimals = масштабування десяткових знаків для ведення обліку
    display_decimals = масштабування десяткових знаків для видачі

Отримати торгуємі валютні пари

URL: https://api.kraken.com/0/public/AssetPairs

Ввід даних:

info = дані для отримання (необов'язково):
    info = всі дані (за замовчуванням)
    leverage = дані про плече
    fees = комісії
    margin = дані про маржу
pair = через кому, перелік валютних пар для отримання даних (необов'язково. за замовчуванням = всі)

Результат: масив найменувань пар та їх даних

<pair_name> = найменування пари
    altname = альтернативне найменування пари
    wsname = WebSocket найменування пари (якщо є)
    aclass_base = клас активу базового компонента
    base = ідентифікатор активу базового компонента
    aclass_quote = клас активу компонента котирування
    quote = ідентифікатор активу компонента котирування
    lot = обсяг лоту
    pair_decimals = масштабування десяткових знаків для пари
    lot_decimals = масштабування десяткових знаків для обсягу
    lot_multiplier = кратність обсягу лоту для отримання обсягу валюти
    leverage_buy = доступні значення плеча при купівлі
    leverage_sell = доступні значення плеча при продажу
    fees = кортеж значень комісії [обсяг, ставка]
    fees_maker = кортеж значень комісії мейкер [обсяг, ставка] (якщо застосовується мейкер/тейкер)
    fee_volume_currency = валюта оплати комісії
    margin_call = рівень маржин колу
    margin_stop = рівень маржі припинення/ліквідації
    ordermin = мінімальний обсяг ордера для пари

Примітка: Якщо до валютної пари застосовуються комісії мейкер/тейкер, комісію тейкера відображено в "fees", а мейкера - у "fees_maker". Для інших пар комісію відображено тільки в "fees".

Отримати дані ціни/h3>

URL: https://api.kraken.com/0/public/Ticker

Ввід даних:

pair = через кому, перелік валютних пар для отримання даних

Результат: масив найменувань пар та їх даних ціни

<pair_name> = найменування пари
    a = аски(<ціна>, <обсяг усіх лотів>, <обсяг лоту>),
    b = біди(<ціна>, <обсяг усіх лотів>, <обсяг лоту>),
    c = остання торгуєма ціна(<ціна>, <обсяг лоту>),
    v = обсяг(<сьогодні>, <останні 24 години>),
    p = середньозважена за обсягом ціна(<сьогодні>, <останні 24 години>),
    t = кількість угод(<сьогодні>, <останні 24 години>),
    l = мінімум(<сьогодні>, <останні 24 години>),
    h = максимум(<сьогодні>, <останні 24 години>),
    o = ціна відкриття сьогодні

Примітка: Ціна сьогодні діє з 00:00:00 UTC

Отримати дані OHLC

URL: https://api.kraken.com/0/public/OHLC

Ввід даних:

pair = валютна пара для отримання даних OHLC
interval = інтервал часу в хвилинах (необов’язково):
	1 (за замовчуванням), 5, 15, 30, 60, 240, 1440, 10080, 21600
since = видати відповідні дані OHLC з моменту ідентифікатора (необов'язково. фільтр)

Результат: масив найменувань пар та їх даних OHLC

<pair_name> = найменування пари
    array of array entries(<час>, <відкриття>, <максимум>, <мінімум>, <закриття>, <vwap>, <обсяг>, <кількість>)
last = ідентифікатор, котрий буде використовуватися з моменту запиту нових підтверджених даних OHLC

Примітка: останній запис у масиві OHLC призначений для поточного, ще не підтвердженого періоду, і завжди буде присутнім, незалежно від значення "з".

Отримати ордербук

URL: https://api.kraken.com/0/public/Depth

Ввід даних:

pair = валютна пара для отримання глибини ринку
count = максимальна кількість асків/бідів (необов’язково)

Результат: масив найменувань пар та глибини ринку

<pair_name> = найменування пари
    asks = аски для масиву даних(<ціна>, <обсяг>, <відмітка часу>)
    bids = біди для масиву даних(<ціна>, <обсяг>, <відмітка часу>)

Отримати останні угоди

URL: https://api.kraken.com/0/public/Trades

Ввід даних:

pair = валютна пара для отримання торгових угод
since = видати дані про торгові угоди з моменту ідентифікатора (необов'язково. фільтр)

Результат: масив найменувань пар та дані останніх угод

<pair_name> = найменування пари
    масив даних(<ціна>, <обсяг>, <час>, <купівля/продаж>, <маркет/ліміт>, <різне>)
last = ідентифікатор, котрий буде використовуватися з моменту запиту нових даних угод

Отримати останні дані спреду

URL: https://api.kraken.com/0/public/Spread

Ввід даних:

pair = валютна пара для отримання даних спреду
since = видати дані спреду з моменту ідентифікатора (необов'язково. фільтр)

Результат: масив найменувань пар та останніх даних спреду

<pair_name> = найменування пари
    масив даних(<час>, <бід>, <аск>)
last = ідентифікатор, котрий буде використовуватися з моменту запиту нових даних спреду

Примітка: "з" є включним параметром, тому будь-які видані дані з тим самим часом, що і попередня видача, повинні перезаписати всі дані попереднього запиту за той час

Приватні дані користувача

Отримати залишок в акаунті

URL: https://api.kraken.com/0/private/Balance

Результат: масив найменувань пар та суми залишку

Отримати торговий баланс

URL: https://api.kraken.com/0/private/TradeBalance

Ввід даних:

aclass = клас активу (необов’язково):
    валюта (за замовчуванням)
asset = базовий актив для визначення балансу (за замовчуванням = ZUSD)

Результат: масив даних про торговий баланс

eb = еквівалентний баланс (сукупний баланс усіх валют)
tb = торговий баланс (сукупний баланс усіх коллатеральних валют)
m = сума маржі відкритих позицій
n = нереалізований чистий прибуток / збиток відкритих позицій
c = собівартість відкритих позицій
v = поточна плаваюча оцінка відкритих позицій
e = капітал = торговий баланс + нереалізований чистий прибуток / збиток
mf = вільна маржа = капітал - початкова маржа (максимальна маржа, доступна для відкриття нових позицій)
ml = рівень маржі = (капітал / початкова маржа) * 100

Примітка. Ціни, що використовуються для плаваючої оцінки, є середнім найкращих біда та аска

Отримати відкриті ордери

URL: https://api.kraken.com/0/private/OpenOrders

Ввід даних:

trades = чи включати угоди у видачу (необов’язково. за замовчуванням = ні, false)
userref = обмежити результати заданим ідентифікатором користувача (необов’язково)

Результат: масив даних ордерів з номерами txid в якості ідентифікатора

refid = ідентифікатор ордеру
userref = ідентифікатор користувача
status = статус ордера:
    pending = ордер в очікуванні
    open = відкритий ордер
    closed = закритий ордер
    canceled = відмінений ордер
    expired = протермінований ордер
opentm = UNIX часова мітка розміщення ордера
starttm = UNIX часова мітка часу початку ордера (0, якщо не встановлено)
expiretm = UNIX часова мітка часу закінчення ордера (0, якщо не встановлено)
descr = дані деталей ордера
    pair = валютна пара
    type = тип операції (купівля/продаж)
    ordertype = тип ордера (див. Додати стандартний ордер)
    price = основна ціна
    price2 = вторинна ціна
    leverage = порядок плеча
    order = опис ордера
    close = опис ордеру умовного закриття (якщо встановлено умовне закриття)
vol = обсяг ордера (базова валюта, якщо мітку viqc не встановлено)
vol_exec = обсяг заповнений (базова валюта, якщо мітку viqc не встановлено)
cost = собівартість (валюта котирування, якщо мітку viqc не встановлено)
fee = комісія (валюта котирування)
price = середня ціна (валюта котирування, якщо мітку viqc не встановлено)
stopprice = стоп-ціна (валюта котирування, для трейлінг-стопів)
limitprice = отримана ліміт ціна (валюта котирування, якщо ліміт ордер спрацював)
misc = через кому перелік даних різного
    stopped = спрацювала стоп-ціна
    touched = спрацювала ціна
    liquidated = ліквідація
    partial = заповнено частково
oflags = через кому перелік міток ордера
    viqc = обсяг в валюті котирування
    fcib = комісія в базовій валюті (за замовчуванням при продажу)
    fciq = комісія в валюті котирування (за замовчуванням при купівлі)
    nompp = відсутній захист ринкової ціни
trades = масив ідентифікаторів угод, пов’язаних з ордером (якщо запитано дані про угоди та дані доступні)

Примітка: Якщо не вказано інше, витрати, збори, ціни та обсяги знаходяться в шкалі валютної пари, а не валюти. Наприклад, якщо пара активів використовує розмір лоту зі шкалою 8, то обсяг використовуватиме шкалу 8, навіть якщо валюта такого обсягу має лише шкалу 2. Аналогічно, якщо шкала ціноутворення пари активів становить 5, шкала залишатиметься як 5, навіть якщо основна валюта має шкалу 8.

Отримати закриті ордери

URL: https://api.kraken.com/0/private/ClosedOrders

Ввід даних:

trades = чи включати угоди у видачу (необов’язково. за замовчуванням = ні, false)
userref = обмежити результати заданим ідентифікатором користувача (необов’язково)
start = UNIX початкова часова мітка або tx ідентифікатор ордера (необов’язково. ексклюзивно)
end = UNIX кінцева часова мітка або tx ідентифікатор ордера (необов’язково. інклюзивно)
ofs = офсет результатів
closetime = який час використовувати (необов’язково)
    відкриття (open)
    закриття (close)
    обидва (both, за замовчуванням

Результат: масив даних ордерів

closed = масив даних ордерів.  Див. Отримати відкриті ордери .  Додаткові поля:
    closetm = UNIX часова мітка закриття ордера
    reason = додаткові дані щодо статусу (якщо є)
count = кількість ордерів з даними, що відповідають критеріям

Примітка. Час, заданий tx ордерів, є більш точними, ніж часові позначки Unix. Якщо заданий час tx ідентифікатора, використовується час відкриття ордера

Запит даних ордерів

URL: https://api.kraken.com/0/private/QueryOrders

Ввід даних:

trades = чи включати угоди у видачу (необов’язково. за замовчуванням = ні, false)
userref = обмежити результати заданим ідентифікатором користувача (необов’язково)
txid = через кому перелік ідентифікаторів транзакцій для запиту (максимум 50)

Результат: масив даних ордерів

<order_txid> = дані ордеру.  Див. Отримати відкриті ордери/Отримати закриті ордери

Отримати історію угод

URL: https://api.kraken.com/0/private/TradesHistory

Ввід даних:

type = тип угоди (необов’язково)
    all = всі типи (за замовчуванням)
    any position = будь-яка позиція (відкрита або закрита)
    closed position = закриті позиції
    closing position = будь-яка угода, що закриває всю, чи частину позиції
    no position = угоди, не пов'язані з позиціями
trades = чи включати у видачу угоди, пов’язані з позицією (необов’язково. за замовчуванням = ні, false)
start = UNIX початкова часова мітка або tx ідентифікатор угоди (необов’язково. ексклюзивно)
end = UNIX кінцева часова мітка або tx ідентифікатор угоди (необов’язково. інклюзивно)
ofs = офсет результатів

Результат: масив даних угод

trades = масив даних угод з txid в якості ідентифікатора
    ordertxid = ордер, відповідальний за здійснення угоди
    pair = валютна пара
    time = UNIX часова мітка угоди
    type = тип операції (купівля/продаж)
    ordertype = тип ордеру
    price = середня ціна, за котрою виконано ордер (валюта котирування)
    cost = собівартість ордера (валюта котирування)
    fee = комісія (валюта котирування)
    vol = обсяг (базова валюта)
    margin = початкова маржа (валюта котирування)
    misc = через кому перелік даних різного
        closing = угода закриває всю або частину позиції
count = кількість угод з даними, що відповідають критеріям

Якщо угода відкрила позицію, наступні поля також містяться у видачі даних:

    posstatus = статус позиції (відкрита/закрита)
    cprice = середня ціна закритої частини позиції (валюта котирування)
    ccost = собівартість закритої частини позиції (валюта котирування)
    cfee = всі комісії закритої частини позиції (валюта котирування)
    cvol = обсяг закритої частини позиції (валюта котирування)
    cmargin = загальна маржа, звільнена у закритій частині позиції (валюта котирування)
    net = чистий прибуток/збиток закритої частини позиції (валюта котирування, масштаб валюти котирування)
    trades = перелік угод закриття позиції (за наявності)

Примітка:

  • Якщо не зазначено інше, витрати, комісії, ціни та обсяги визначаються за шкалою пари активів, а не за шкалою валюти.
  • Час, заданий tx угод, є більш точними, ніж часові позначки Unix.

Запит даних угод

URL: https://api.kraken.com/0/private/QueryTrades

Ввід даних:

txid = через кому перелік ідентифікаторів транзакцій для запиту (максимум 20)
trades = чи включати у видачу угоди, пов'язані з позиціями (необов’язково. за замовчуванням = ні, false)

Результат: масив даних угод

<trade_txid> = дані угоди.  Див. Отримати історію угод

Отримати відкриті позиції

URL: https://api.kraken.com/0/private/OpenPositions

Ввід даних:

txid = через кому перелік ідентифікаторів транзакцій для видачі
docalcs = чи включати розрахунки прибутку/збитку (необов’язково. за замовчуванням = ні, false)
consolidation = основа консолідації даних позиції (необов’язково.)
    market = консолідує позиції на основі ринкової пари

Результат: масив даних відкритої позиції

Примітка:

Використання необов'язкового поля консолідації призведе до консолідованого вигляду даних видачі.

<position_txid> = дані відкритої позиції
    ordertxid = ордер, відповідальний за здійснення угоди
    pair = валютна пара
    time = UNIX часова мітка угоди
    type = тип операції при відкритті позиції (купівля/продаж)
    ordertype = тип ордеру при відкритті позиції
    cost = собівартість відкриття позиції (валюта котирування, якщо немає мітки viqc)
    fee = комісія відкриття позиції (валюта котирування)
    vol = обсяг позиції (базова валюта, якщо немає мітки viqc)
    vol_closed = закритий обсяг позиції (базова валюта, якщо немає мітки viqc)
    margin = початкова маржа (валюта котирування)
    value = поточна вартість залишкової позиції (якщо запитано docalcs. валюта котирування)
    net = нереалізований прибуток/збиток залишкової позиції (якщо запитано docalcs. валюта котирування, шкала валюти котирування)
    misc = через кому перелік даних різного
    oflags = через кому перелік міток ордера
        viqc = обсяг у валюті котирування

Примітка: Якщо не зазначено інше, витрати, комісії, ціни та обсяги визначаються за шкалою пари активів, а не за шкалою валюти.

Отримати дані журналу

URL: https://api.kraken.com/0/private/Ledgers

Ввід даних:

aclass = клас активу (необов’язково):
    валюта (за замовчуванням)
asset = через кому перелік активів для видачі (необов'язково. за замовчуванням = всі, all)
type = тип журналу для видачі (необов'язково):
    all = всі (за замовчуванням)
    deposit = внесення
    withdrawal = виведення
    trade = угода
    margin = маржа
start = UNIX початкова часова мітка або ідентифікатор журналу (необов’язково. ексклюзивно)
end = UNIX кінцева часова мітка або ідентифікатор журналу (необов’язково. інклюзивно)
ofs = офсет результатів

Результат: масив даних журналу

<ledger_id> = дані журналу
    refid = ідентифікатор
    time = UNIX часова мітка журналу
    type = тип запису в журналі
    aclass = клас активу
    asset = актив
    amount = сума транзакції
    fee = комісія транзакції
    balance = отриманий залишок

Примітка: Час, заданий ідентифікатором журналу, є більш точними, ніж часові позначки Unix.

Запит журналів

URL: https://api.kraken.com/0/private/QueryLedgers

Ввід даних:

id = через кому перелік ідентифікаторів журналу для запиту (максимум 20)

Результат: масив даних журналу

<ledger_id> = дані журналу. Див. Отримати дані журналів

Отримати обсяг торгів

URL: https://api.kraken.com/0/private/TradeVolume

Ввід даних:

pair = через кому перелік валютних пар для запиту (необов’язково)
fee-info = чи включати у видачу дані щодо комісії (необов’язково)

Результат: масив даних

currency = валюта обсягу
volume = обсяг
fees = масив пар активів та даних про ставки комісій (якщо потрібно)
    fee = поточна комісія у відсотках
    minfee = мінімальна комісія пари (якщо нефіксована плата)
    maxfee = максимальна комісія пари (якщо нефіксована плата)
    nextfee = наступна ставка комісії пари (якщо нефіксована плата. нуль якщо найнижча ставка)
    nextvolume = рівень обсягу для наступної ставки (якщо нефіксована плата. нуль якщо найнижча ставка)
    tiervolume = рівень обсягу поточної ставки (якщо нефіксована плата. нуль якщо найнижча ставка)
fees_maker = масив пар активів та даних про ставки комісій мейкер (якщо потрібно) для пар за планом мейкер/тейкер
    fee = поточна комісія у відсотках
    minfee = мінімальна комісія пари (якщо нефіксована плата)
    maxfee = максимальна комісія пари (якщо нефіксована плата)
    nextfee = наступна ставка комісії пари (якщо нефіксована плата. нуль якщо найнижча ставка)
    nextvolume = рівень обсягу для наступної ставки (якщо нефіксована плата. нуль якщо найнижча ставка)
    tiervolume = рівень обсягу поточної ставки (якщо нефіксована плата. нуль якщо найнижча ставка)

Примітка: Якщо пара активів працює за планом комісій мейкер/тейкер, комісію тейкер видано в "fees", а мейкер у "fees_maker". Для інших активів комісії видано в "fees".

Запит звіту про експорт

URL: https://api.kraken.com/0/private/AddExport

Ввід даних:

description = дані опису звіту
report = тип звіту (угоди/журнали)
format = (CSV/TSV) (необов’язково. за замовчуванням = CSV)
fields = через кому перелік полів звіту (необов’язково. за замовчуванням = all, усі)
    Примітка: Параметри поля залежать від типу звіту
    <угоди>
        ordertxid - ідентифікатор ордеру
        time - час
        ordertype - тип ордеру
        price - ціна
        cost - собівартість
        fee - комісія
        vol - обсяг
        margin - маржа
        misc - різне
        ledgers - журнали
    <журнали>
        refid - ідентифікатор
        time - час
        type - тип
        aclass - клас активу
        asset - актив
        amount - сума
        fee - комісія
        balance - залишок
asset = через кому перелік активів для видачі (необов’язково. за замовчуванням = all, усі)
starttm = час початку звіту (необов’язково. за замовчуванням = рік до цього):
    <n> = unix часова мітка початку
endtm = час закінчення звіту (необов’язково. за замовчуванням = зараз):
    <n> = unix часова мітка закінчення

Результат:

id = ідентифікатор звіту

Помилки: помилки включають (але не обмежуються):

EGeneral:Invalid arguments - Неправильні аргументи 
EQuery:Unknown currency pair - Невідома пара активів

Отримати статус експорту

URL: https://api.kraken.com/0/private/ExportStatus

Ввід даних:

report = тип звіту (угоди/журнали)

Результат: масив звітів та їх даних

id = ідентифікатор звіту
descr = дані опису звіту
format = (CSV/TSV)
report = тип звіту (угоди/журнали)
status = статус ордера:
    Queued = звіт в черзі на створення
    Processing = звіт обробляється
    Processed = звіт створено
createdtm = час створення звіту
expiretm = термін дії звіту
starttm = час початку звіту
endtm = час завершення звіту
completedtm = час формування звіту
aclass = клас активу
asset = через кому перелік активів
fields = через кому перелік полів
    <угоди>
        txid - ідентифікатор
        ordertxid - ідентифікатор ордеру
        pair - пара
        time - час
        type - тип
        ordertype - тип ордеру
        price - ціна
        cost - собівартість
        fee - комісія
        vol - обсяг
        margin - маржа
        misc - різне
        ledgers - журнали
    <журнали>
        txid - ідентифікатор
        refid - реферальний ідентифікатор
        time - час
        type - тип
        aclass - клас активу
        asset - актив
        amount - сума
        fee - комісія
        balance - залишок

Помилки: помилки включають (але не обмежуються):

EGeneral:Invalid arguments - Неправильні аргументи

Отримати звіт експорту

URL: https://api.kraken.com/0/private/RetrieveExport

Ввід даних:

id = ідентифікатор звіту

Результат: бінарний zip-архів, що містить звіт

Примітка: Якщо тип контенту не є додатком/json, текстом чи html, двійковий звіт буде відмінено. Якщо це один із таких типів, ви можете очікувати помилки у відповіді.

Примітка. Залежно від обраного типу звіту та обраних полів у звіті можуть бути такі поля. Поля відмічені * є завжди.

<угоди>
    *txid - *ідентифікатор
    ordertxid - ідентифікатор ордеру
    *pair - *пара
    time - час
    *type - *тип
    ordertype - тип ордеру
    price - ціна
    cost - собівартість
    fee - комісія
    vol - обсяг
    margin - маржа
    misc - різне
    ledgers - журнали
<журнали>
    *txid - *ідентифікатор
    refid - реферальний ідентифікатор
    time - час
    type - тип
    aclass - клас активу
    asset - актив
    amount - сума
    fee - комісія
    balance - залишок

Видалити звіт експорту

URL: https://api.kraken.com/0/private/RemoveExport

Ввід даних:

type = тип видалення (cancel/delete - скасувати / видалити)
id = ідентифікатор звіту

Результат: результат виклику

cancel/delete = тип видалення

Примітка. Тип видалення "delete" може використовуватися лише для звіту, який вже був оброблений. Використовувати "cancel" для черги та обробки статусів.

Помилки: помилки включають (але не обмежуються подальшими):

EGeneral:Invalid arguments - Неправильні аргументи
WExport:Already processed - Вже опрацьовано

Примітка. У разі, якщо операція скасування або видалення вже відбулася на певному ідентифікаторі звіту, ви отримаєте WExport:Already processed - Вже опрацьовано.




Приватні дані трейдингу

Додати стандартний ордер

URL: https://api.kraken.com/0/private/AddOrder

Ввід даних:

pair = пара активів
type = тип операції (купівля/продаж)
ordertype = тип ордеру:
    market - маркет
    limit - ліміт (ціна = ліміт)
    stop-loss - стоп-лос (ціна = стоп-лос)
    take-profit - тейк-профіт (ціна = тейк-профіт)
    stop-loss-profit - стоп-лос-профіт (ціна = стоп-лос, ціна2 = тейк-профіт)
    stop-loss-profit-limit - стоп-лос-профіт-ліміт (ціна = стоп-лос, ціна2 = тейк-профіт)
    stop-loss-limit - стоп-лос-ліміт (ціна = стоп-лос, ціна2 = отримана ліміт-ціна)
    take-profit-limit - тейк-профіт-ліміт (ціна = тейк-профіт, ціна2 = отримана ліміт-ціна)
    trailing-stop - трейлінг-стоп (ціна = трейлінг-стоп офсет)
    trailing-stop-limit - трейлінг-стоп-ліміт (ціна = трейлінг-стоп офсет, ціна2 = отримана ліміт-офсет ціна)
    stop-loss-and-limit - стоп-лос-і-ліміт (ціна = стоп-лос, ціна2 = ліміт-ціна)
    settle-position - оплата позиції
price = ціна (необов'язково. залежно від типу ордеру)
price2 = вторинна ціна (необов’язково. залежить від типу ордеру)
volume = обсяг ордеру в лотах
leverage = бажане значення плеча (необов’язково. за замовчуванням = немає)
oflags = через кому перелік міток ордера (необов’язково):
    viqc = обсяг в валюті котирувань (недоступний для ордерів з плечем)
    fcib = перевага комісії в базовій валюті
    fciq = перевага комісії у валюті котирування
    nompp = відсутність захисту ринкової ціни
    post = тільки пост-ордер (доступне, коли тип ордеру = ліміт)
starttm = запланований час початку (необов’язково):
    0 = вже (за замовчуванням)
    +<n> = час початку <n> через кількість секунд
    <n> = UNIX часова мітка часу початку
expiretm = термін дії (необов’язково):
    0 = немає терміну дії (за замовчуванням)
    +<n> = термін дії <n> через кількість секунд
    <n> = UNIX часова мітка часу закінчення терміну дії
userref = ідентифікаційний номер користувача. 32-розрядний підписаний номер. (необов’язково)
validate = тільки перевірити ввід даних. не розміщувати ордер (необов’язково)

опція додавання ордеру закриття, коли ордер заповниться:
    close[ordertype] = тип ордеру
    close[price] = ціна
    close[price2] = вторинна ціна

Результат:

descr = дані опису ордера
    order = опис ордера
    close = опис ордера умовного закриття (якщо умовне закриття встановлено)
txid = масив ідентифікаторів транзакцій для ордерів (якщо ордер було розміщено успішно)

Помилки: помилки включають (але не обмежуються наступними):

EGeneral:Invalid arguments - Неправильні аргументи
EService:Unavailable - Недоступно
ETrade:Invalid request - Неправильний запит
EOrder:Cannot open position - Не вдається відкрити позицію
EOrder:Cannot open opposing position - Не вдається відкрити протилежну позицію
EOrder:Margin allowance exceeded - Перевищено дозволену маржу
EOrder:Margin level too low - Рівень маржі занадто низький
EOrder:Insufficient margin - Недостатня маржа (біржа не має достатньо коштів, щоб дозволити торгівлю з маржею)
EOrder:Insufficient funds - Недостатньо коштів (недостатньо коштів у користувача)
EOrder:Order minimum not met - Обсяг ордеру нижчий мінімуму (обсяг занадто низький)
EOrder:Orders limit exceeded - Ліміт ордерів перевищено
EOrder:Positions limit exceeded - Ліміт позицій перевищено
EOrder:Rate limit exceeded - Обсяг операцій перевищено
EOrder:Scheduled orders limit exceeded - Ліміт запланованих ордерів перевищено
EOrder:Unknown position - Невідома позиція

Примітка:

  • Ознайомтеся з Торгові пари активів для специфікації в розрізі пар - цін, лотів та значень плеча.
  • Цінам може передувати +, - або # для позначення ціни як відносної суми (за винятком трейлінг-стопів, які завжди відносні). + додає суму до поточної пропонованої ціни. - віднімає суму від поточної пропонованої ціни. # додасть або відніме суму до поточної пропонованої ціни, залежно від використовуваного типу операції та типу ордера. Відносні ціни можуть бути суфіксировані %, щоб позначити відносну суму у відсотках від пропонованої ціни.
  • Для ордерів з плечем, 0 можна використовувати як значення обсягу для автоматичного заповнення обсягу, необхідного для закриття вашої позиції.
  • Якщо ви отримаєте помилку "EOrder:Trading agreement required", див. сторінку керування ключами API для отримання додаткової інформації.

Скасувати відкритий ордер

URL: https://api.kraken.com/0/private/CancelOrder

Ввід даних:

txid = ідентифікатор транзакції

Результат:

count = кількість скасованих ордерів
pending = якщо встановлено, ордер(и) очікує на скасування

Примітка: txid може бути ідентифікатором користувача.

Приватні перекази

ПРИМІТКА:Це орієнтовний API переказів, його може бути оновлено в майбутньому. Перейдіть на головну сторінку АРІ за додатковою інформацією про використання АРІ.

Отримати способи переказів (внесення)

URL: https://api.kraken.com/0/private/DepositMethods

Ввід даних:

aclass = клас активу (необов’язково):
    валюта (за замовчуванням)
asset = валюта внесення

Результат: асоціативний масив способів внесення:

method = найменування способу внесення
limit = максимальна чиста сума, котру можна внести, або "false", якщо обмежень немає
fee = сума комісій, що підлягають сплаті
address-setup-fee = чи є комісія за встановлення адреси (необов’язково)

Отримати адреси переказів (внесення)

URL: https://api.kraken.com/0/private/DepositAddresses

Ввід даних:

aclass = клас активу (необов’язково):
    валюта (за замовчуванням)
asset = валюта внесення
method = найменування способу внесення
new = чи генерувати нову адресу (необов’язково. за замовчуванням = ні, false)

Результат: асоціативний масив адрес внесення коштів:

address = адрес внесення
expiretm = термін дії часовою позначкою Unix, або 0, якщо адреса безстрокова
new = чи використовувалась ця адреса

Отримати статус останніх внесень

URL: https://api.kraken.com/0/private/DepositStatus

Ввід даних:

aclass = клас активу (необов’язково):
    валюта (за замовчуванням)
asset = валюта внесення
method = найменування способу внесення

Результат: асоціативний масив даних про стан внесення:

method = найменування способу внесення
aclass = клас активу
asset = валюта код X-ISO4217-A3
refid = довідковий ідентифікатор
txid = ідентифікатор способу транзакції
info = інформація про спосіб транзакцій
amount = сума внесення
fee = сплачено комісій
time = часова мітка UNIX розміщення запиту
status = статус внесення
status-prop = додаткові властивості статусу (за наявності)
    return = зворотна транзакція, ініційована Кракеном
    onhold = внесення утримується в режимі очікування
Інформацію щодо статусу шукайте в фінансових транзакцій IFEX.

Отримати інформацію про виведення

URL: https://api.kraken.com/0/private/WithdrawInfo

Ввід даних:

aclass = клас активу (необов’язково):
    валюта (за замовчуванням)
asset = валюта виведення
key = найменування ключа видачі з вашого акаунту
amount = сума виведення

Результат: асоціативний масив даних про виведення:

method = найменування способу виведення, який буде використовуватися
limit = максимальна чиста сума, котру можна вивести
fee = сума комісій, що підлягають сплаті

Виведення коштів

URL: https://api.kraken.com/0/private/Withdraw

Ввід даних:

aclass = клас активу (необов’язково):
    валюта (за замовчуванням)
asset = валюта виведення
key = найменування ключа видачі з вашого акаунту
amount = сума виведення, в т.ч. комісія

Результат: асоціативний масив транзакції виведення:

refid = довідковий ідентифікатор

Отримати статус останніх виведень

URL: https://api.kraken.com/0/private/WithdrawStatus

Ввід даних:

aclass = клас активу (необов’язково):
    валюта (за замовчуванням)
asset = валюта виведення
method = найменування способу виведення (необов’язково)

Результат: асоціативний масив даних про стан виведення:

method = найменування способу виведення
aclass = клас активу
asset = валюта код X-ISO4217-A3
refid = довідковий ідентифікатор
txid = ідентифікатор способу транзакції
info = інформація про спосіб транзакцій
amount = сума виведення
fee = сплачено комісій
time = часова мітка UNIX розміщення запиту
status = статус виведення
status-prop = додаткові властивості статусу (за наявності)
    cancel-pending = запит скасування
    canceled = скасовано
    cancel-denied = запит скасування відхилено
    return = транзакцію повернення ініційовано Кракеном; неможливо скасувати
    onhold = виведення утримується в режимі очікування
Інформацію щодо статусу шукайте в фінансових транзакцій IFEX.

Запит скасування виведення

URL: https://api.kraken.com/0/private/WithdrawCancel

Ввід даних:

aclass = клас активу (необов’язково):
    валюта (за замовчуванням)
asset = валюта виведення
refid = довідковий ідентифікатор виведення

Result: "true", якщо успішно

Примітка: Скасування не є гарантованим. Ця дія створює запит скасування. Скасування виведення залежить від того, наскільки далеко зайшов процес такого виведення.

Переміщення між гаманцями

URL: https://api.kraken.com/0/private/WalletTransfer

Ввід даних:

asset = валюта виведення
to = на котрий гаманець переміщуються кошти
    Ф'ючерсний гаманець (за замовчуванням)
from = з котрого гаманця переміщуються кошти
    Спотовий гаманець (за замовчуванням)
amount = сума виведення, в т.ч. комісія

Результат: асоціативний масив транзакції переміщень:

refid = довідковий ідентифікатор

Автентифікація WebSockets

Для підключення до кінцевих точок API WebSockets Private клієнт повинен запитати "токен" автентифікації через кінцеву точку API REST "GetWebSocketsToken". Токен потрібно використати протягом 15 хвилин після створення. Термін дії токена не спливає, коли підтримується з'єднання з приватним повідомленням WebSockets API (openOrders або ownTrades).

URL: https://api.kraken.com/0/private/GetWebSocketsToken

Отриманий токен потрібно вказувати у полі "токен" для будь-яких нових приватних з'єднань з WebSocket:

{
    "event": "subscribe",
    "subscription": {
        "name": "ownTrades",
        "token": "secretwstoken123"
    }
}

Просимо обрати дозвіл "Доступ до API WebSockets" під час створення ключа API, щоб мати можливість генерувати токен автентифікації.

Приклад клієнтів API

Далі наведено зразки бібліотек клієнтських кодів API, які можна використовувати при написанні власного клієнтського API. Будь ласка, майте на увазі, що ані Payward, ані сторонні автори не несуть відповідальність за збитки через помилки або неправильне використання API. Payward здійснив первинний огляд безпеки сторонніх кодів перед тим, як розмістити їх, але не може поручитися за будь-які зміни, додані з того часу. Якщо у вас є проблеми, зверніться до служби технічної підтримки.

C

За авторством третіх сторін https://github.com/hANSIc99/Kraken_C_API.

C#

За авторством третіх сторін https://bitbucket.org/arrivets/krakenapi.

C++

За авторством третіх сторін https://github.com/voidloop/krakenapi.

GO

За авторством третіх сторін https://github.com/Beldur/kraken-go-api-client.

Node.JS

За авторством третіх сторін https://github.com/nothingisdead/npm-kraken-api.

PERL

За авторством третіх сторін http://search.cpan.org/~philippe/Finance-Bank-Kraken-0.1/.

Python 3

За авторством третіх сторін https://github.com/veox/python3-krakenex.

Python 2

За авторством третіх сторін https://github.com/veox/python2-krakenex.

Ruby

За авторством третіх сторін https://github.com/jonatack/kraken_ruby_client.

PHP

Команда Кракен надала базову бібліотеку PHP для взаємодії з API REST Kraken. Джерело та приклади використання також доступні у сховищі githubкракен-api-клієнт та має MIT ліцензію.

Бібліотека

Використовуйте цей клас бібліотеки, щоб здійснювати запити в Kraken REST API з клієнтом PHP. Він автоматично визначає правильний URL-шлях АРІ методу, генерує значення для кожного запиту та додає підписаний заголовок, використовуючи ваш API шифр та створене значення nonce.

<?php
/**
 * Reference implementation for Kraken's REST API.
 *
 * See https://www.kraken.com/help/api for more info.
 *
 *
 * The MIT License (MIT)
 *
 * Copyright (c) 2013 Payward, Inc
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

class KrakenAPIException extends ErrorException {};

class KrakenAPI
{
    protected $key;     // API key
    protected $secret;  // API secret
    protected $url;     // API base URL
    protected $version; // API version
    protected $curl;    // curl handle

    /**
     * Constructor for KrakenAPI
     *
     * @param string $key API key
     * @param string $secret API secret
     * @param string $url base URL for Kraken API
     * @param string $version API version
     * @param bool $sslverify enable/disable SSL peer verification.  disable if using beta.api.kraken.com
     */
    function __construct($key, $secret, $url='https://api.kraken.com', $version='0', $sslverify=true)
    {
        $this->key = $key;
        $this->secret = $secret;
        $this->url = $url;
        $this->version = $version;
        $this->curl = curl_init();

        curl_setopt_array($this->curl, array(
            CURLOPT_SSL_VERIFYPEER => $sslverify,
            CURLOPT_SSL_VERIFYHOST => 2,
            CURLOPT_USERAGENT => 'Kraken PHP API Agent',
            CURLOPT_POST => true,
            CURLOPT_RETURNTRANSFER => true)
        );
    }

    function __destruct()
    {
        curl_close($this->curl);
    }

    /**
     * Query public methods
     *
     * @param string $method method name
     * @param array $request request parameters
     * @return array request result on success
     * @throws KrakenAPIException
     */
    function QueryPublic($method, array $request = array())
    {
        // build the POST data string
        $postdata = http_build_query($request, '', '&');

        // make request
        curl_setopt($this->curl, CURLOPT_URL, $this->url . '/' . $this->version . '/public/' . $method);
        curl_setopt($this->curl, CURLOPT_POSTFIELDS, $postdata);
        curl_setopt($this->curl, CURLOPT_HTTPHEADER, array());
        $result = curl_exec($this->curl);
        if($result===false)
            throw new KrakenAPIException('CURL error: ' . curl_error($this->curl));

        // decode results
        $result = json_decode($result, true);
        if(!is_array($result))
            throw new KrakenAPIException('JSON decode error');

        return $result;
    }

    /**
     * Query private methods
     *
     * @param string $path method path
     * @param array $request request parameters
     * @return array request result on success
     * @throws KrakenAPIException
     */
    function QueryPrivate($method, array $request = array())
    {
        if(!isset($request['nonce'])) {
            // generate a 64 bit nonce using a timestamp at microsecond resolution
            // string functions are used to avoid problems on 32 bit systems
            $nonce = explode(' ', microtime());
            $request['nonce'] = $nonce[1] . str_pad(substr($nonce[0], 2, 6), 6, '0');
        }

        // build the POST data string
        $postdata = http_build_query($request, '', '&');

        // set API key and sign the message
        $path = '/' . $this->version . '/private/' . $method;
        $sign = hash_hmac('sha512', $path . hash('sha256', $request['nonce'] . $postdata, true), base64_decode($this->secret), true);
        $headers = array(
            'API-Key: ' . $this->key,
            'API-Sign: ' . base64_encode($sign)
        );

        // make request
        curl_setopt($this->curl, CURLOPT_URL, $this->url . $path);
        curl_setopt($this->curl, CURLOPT_POSTFIELDS, $postdata);
        curl_setopt($this->curl, CURLOPT_HTTPHEADER, $headers);
        $result = curl_exec($this->curl);
        if($result===false)
            throw new KrakenAPIException('CURL error: ' . curl_error($this->curl));

        // decode results
        $result = json_decode($result, true);
        if(!is_array($result))
            throw new KrakenAPIException('JSON decode error');

        return $result;
    }
}

Приклад використання

Нижче наведено кроки, що стосуються ініціалізації класу бібліотеки Kraken API, а також ряд прикладів методів запитів API. Набори форматованих результатів відображаються під кожним відповідним фрагментом запиту API.

Ініціалізація

Додайте файл бібліотеки та вкажіть ключ та шифр API, коли ініціалізуєте об'єкт Kraken API.

<?php

require_once 'KrakenAPIClient.php';
$kraken = new KrakenAPI('YOUR API KEY', 'YOUR API SECRET');
Метод запитів

Запитати публічний список наявних валют та їх властивостей:

$res = $kraken->QueryPublic('Assets');
print_r($res);

Видача валют здійснюється згідно номенклатури ISO-4217-A3-X, приклад видачі:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [XXBT] => Array
                (
                    [aclass] => currency
                    [altname] => XBT
                    [decimals] => 10
                    [display_decimals] => 5
                )

            [XLTC] => Array
                (
                    [aclass] => currency
                    [altname] => LTC
                    [decimals] => 10
                    [display_decimals] => 5
                )

            [XXRP] => Array
                (
                    [aclass] => currency
                    [altname] => XRP
                    [decimals] => 8
                    [display_decimals] => 5
                )

            [ZEUR] => Array
                (
                    [aclass] => currency
                    [altname] => EUR
                    [decimals] => 4
                    [display_decimals] => 2
                )
            ...
)

Запитати публічно інформацію для пари XBT/USD:

$res = $kraken->QueryPublic('Ticker', array('pair' => 'XXBTZUSD'));
print_r($res);

Приклад видачі:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [XXBTZUSD] => Array
                (
                    [a] => Array
                        (
                            [0] => 106.09583
                            [1] => 111
                        )

                    [b] => Array
                        (
                            [0] => 105.53966
                            [1] => 4
                        )

                    [c] => Array
                        (
                            [0] => 105.98984
                            [1] => 0.13910102
                        )

                    ...
        )
)

Запитати публічно останні торги для пари XBT/EUR з 2013-08-07 18:20:42+00:00:

ПРИМІТКА: параметр 'з' може змінитися в майбутньому: його точність може бути змінена, і він більше не може бути представником часової позначки. Найкраща практика - це базувати його на "останньому" значенні, поверненому в наборі результатів.

$res = $kraken->QueryPublic('Trades', array('pair' => 'XXBTZEUR', 'since' => '137589964200000000'));
print_r($res);

Приклад видачі:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [XXBTZEUR] => Array
                (
                    [0] => Array
                        (
                            [0] => 78.60500
                            [1] => 2.03990000
                            [2] => 1375897934.1176
                            [3] => s
                            [4] => m
                            [5] =>
                        )

                    [1] => Array
                        (
                            [0] => 79.41809
                            [1] => 2.02203000
                            [2] => 1375898123.0771
                            [3] => b
                            [4] => m
                            [5] =>
                        )

                    [2] => Array
                        (
                            [0] => 79.86999
                            [1] => 7.00000000
                            [2] => 1375898123.2587
                            [3] => b
                            [4] => m
                            [5] =>
                        )
                    ...
            )
            [last] => 137589925237491170
        )
)

Запитати приватно залишки активів:

$res = $kraken->QueryPrivate('Balance');
print_r($res);

Приклад видачі:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [ZUSD] => 3415.8014
            [ZEUR] => 155.5649
            [XXBT] => 149.9688412800
            [XXRP] => 499889.51600000
        )

)

Запитати приватно відкриті ордери та пов'язані угоди:

$res = $kraken->QueryPrivate('OpenOrders', array('trades' => true));
print_r($res);

Приклад видачі:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [open] => Array
                (
                    [O7ICPO-F4CLJ-MVBLHC] => Array
                        (
                            [refid] =>
                            [userref] =>
                            [status] => open
                            [opentm] => 1373750306.9819
                            [starttm] => 0
                            [expiretm] => 0
                            [descr] => Array
                                (
                                    [order] => sell 3.00000000 XBTUSD @ limit 500.00000
                                )

                            [vol] => 3.00000000
                            [vol_exec] => 0.00000000
                            [cost] => 0.00000
                            [fee] => 0.00000
                            [price] => 0.00000
                            [misc] =>
                            [oflags] =>
                        )
                    ...
                )
        )
)

Додати стандартний ордер: продаж 1.123 XBT/USD @ ліміт $120

$res = $kraken->QueryPrivate('AddOrder', array(
    'pair' => 'XXBTZUSD',
    'type' => 'sell',
    'ordertype' => 'limit',
    'price' => '120',
    'volume' => '1.123'
));
print_r($res);

Приклад видачі:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [descr] => Array
                (
                    [order] => sell 1.12300000 XBTUSD @ limit 120.00000
                )

            [txid] => Array
                (
                    [0] => OAVY7T-MV5VK-KHDF5X
                )

        )

)

Додати стандартний ордер: купівля XBT на €300 по ринку о 2013-08-12 09:27:22+0000

$res = $kraken->QueryPrivate('AddOrder', array(
    'pair' => 'XXBTZEUR',
    'type' => 'buy',
    'ordertype' => 'market',
    'oflags' => 'viqc',
    'volume' => '300',
    'starttm' => '1376299642'
));
print_r($res);

Приклад видачі:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [descr] => Array
                (
                    [order] => buy 300.00000000 XBTEUR @ market
                )

            [txid] => Array
                (
                    [0] => ONQN65-L2GNR-HWJLF5
                )

        )

)

Додати стандартний ордер: купівля 2.12345678 XBTUSD @ ліміт $101.9901 з плечем 2:1, з подальшим стоп-лосом, тейк-профіт ордер продажу: стоп-лос на -5%, тейк-профіт на +10 дол. ріст ціни (ціни стоп-лос визначаються автоматично, використовуючи # розрахунок):

$res = $kraken->QueryPrivate('AddOrder', array(
    'pair' => 'XXBTZUSD',
    'type' => 'buy',
    'ordertype' => 'limit',
    'price' => '101.9901',
    'volume' => '2.12345678',
    'leverage' => '2:1',
    'close' => array(
        'ordertype' => 'stop-loss-profit',
        'price' => '#5%',  // stop loss price (relative percentage delta)
        'price2' => '#10'  // take profit price (relative delta)
    )
));
print_r($res);

Приклад видачі:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [descr] => Array
                (
                    [order] => buy 2.12345678 XBTUSD @ limit 101.99010 with 2:1 leverage
                    [close] => close position @ stop loss -5.0000%, take profit +10.00000
                )

            [txid] => Array
                (
                    [0] => OFMYYE-POAPQ-63IMWL
                )

        )

)