Сообщения об ошибках API

Последнее обновление: 8 авг. 2025 г.

Введение

Большинство запросов API успешно выполняются, но иногда что-то идет не так, и вместо ожидаемого ответа возвращается сообщение об ошибке.

Наш API предоставляет различные описательные сообщения об ошибках, предназначенные для объяснения причины ошибки и предложения подходящего решения.

Сообщения об ошибках API можно разделить на несколько различных групп (в зависимости от типа ошибки, основной причины и оптимального решения), но формат сообщений об ошибках API является последовательным и выглядит следующим образом:

"Severity Level""Error Category":"Error Message"

«Уровень серьезности» может быть либо E для ошибки, либо W для предупреждения. «Категория ошибки» может быть одной из следующих: General, API, Query, Order, Trade, Funding или Service. «Сообщение об ошибке» может быть любой текстовой строкой, описывающей причину ошибки (например, Invalid arguments).

Например, ошибка, указывающая на использование недействительной валютной пары в запросе тикера, будет выглядеть следующим образом:

EQuery:Unknown asset pair

Обратите внимание, что некоторое стороннее программное обеспечение (мобильные приложения, торговые боты и т. д.) предпочитает скрывать исходную ошибку API и вместо этого отображать настраиваемую ошибку, поэтому возможен альтернативный формат или содержимое ошибки в зависимости от используемого программного обеспечения.

  • Общие ошибки использования

  • Ошибки превышения лимита запросов

  • Ошибки торговли (размещение/отмена ордеров)

  • Ошибки пополнения/вывода средств

  • Ошибки статуса сервиса

  • Внутренние ошибки

  • Ошибки Cloudflare (сети)

Общие ошибки использования

Ошибки «Permission denied» возвращаются, когда клиент API пытается выполнить задачу, для которой у ключа API нет разрешения. Например, если клиент API попытался получить баланс счета, используя ключ API, который был настроен для разрешения торгового доступа, но не доступа к управлению счетом, то будет возвращена ошибка «Permission denied». Вы можете просмотреть свои ключи API и их настройки (например, разрешения) на вкладке «Настройки» -> «API» в управлении учетной записью. Вам необходимо убедиться, что ключи API, используемые вашими сторонними приложениями, имеют все настройки и разрешения, которые требуются вашим приложениям.

Эта ошибка возвращается, когда ключ API, используемый для вызова, либо истек, либо отключен. Пожалуйста, проверьте ключ API на вкладке «Настройки» -> «API» в управлении учетной записью или сгенерируйте новый и обновите свое приложение.

Вы можете получить полный список наших торговых пар из публичного вызова AssetPairs и найти название пары в качестве записи заголовков Json или по параметру "altname": https://api.kraken.com/0/public/AssetPairs

Эта ошибка возвращается, когда метод вызывается без необходимых параметров. Например, вызов метода QueryOrders без указания действительного параметра идентификатора транзакции (txid) приведет к возврату ошибки «invalid arguments». Вызов метода с ненужными параметрами все равно не приведет к возврату ошибки «invalid arguments», поскольку ненужные параметры будут просто проигнорированы.

Ошибки «Invalid signature» возникают, если ваш ключ API или секретный ключ API неправильно написаны в вашей программе, или если данные POST, используемые для аутентификации, и данные POST, отправленные в API, не совпадают.Для дополнительной справки ниже приведен пример кода Python для реализации алгоритма подписи API. Соответствующий публичный ключ API следует скопировать и вставить из управления учетной записью, а метод API и данные POST должны быть соответствующим образом обновлены. Выходное значение может быть использовано непосредственно в качестве значения для HTTP-заголовка API-Sign. #!/usr/bin/env python

# Import required Python libraries
import time
import base64
import hashlib
import hmac

# Decode API private key from base64 format displayed in account management
api_secret = base64.b64decode("nmlrD83t1J+yVWKUBx9vD6j26C5zhC11tFfXpN+Ww+8oOVuGgse5AeADcvl95jYaD+UAi3D5CrVfFr8GfQ7zhA==")

# Variables (API method, nonce, and POST data)
api_path = "/0/private/TradeBalance"
api_nonce = str(int(time.time()*1000))
api_post = "nonce=" + api_nonce + "&asset=xxbt"

# Cryptographic hash algorithms
api_sha256 = hashlib.sha256(api_nonce + api_post).digest()
api_hmac = hmac.new(api_secret, api_path + api_sha256, hashlib.sha512)

# Encode signature into base64 format used in API-Sign value
api_signature = base64.b64encode(api_hmac.digest())

# API authentication signature for use in API-Sign HTTP header
print(api_signature)The SHA256 is calculated using the nonce value itself and the POST data for the API method and the POST DATA is comprised of the name/value pairs for the nonce (again) and the API method parameters. An example of the data that should be passed to the SHA256 for the TradeBalance method would be as follows:SHA256 = SHA256 of "1541933977000nonce=1541933977000&asset=xxbt"The string value that is passed to the SHA256 should not contain any additional null (\0) values and the string value should not be encoded as base64 or hex (i.e. the string value should be a plain text string).The URI path is the entire URL of the API method except for the "https://api.kraken.com" prefix, so the URI path of the TradeBalance method (for example) would be the string value "/0/private/TradeBalance" without any additional null values.The HMAC SHA512 is calculated using the URI path and the previously calculated SHA256 digest, with the base64 decoded API private key as the HMAC key. An example of the data that should be passed to the HMAC would be as follows:HMAC SHA512 using base64 decoded private key = HMAC of "/0/private/TradeBalanceSHA256"The API-Key and API-Sign HTTP headers are the only two required custom HTTP headers. The API-Key header is an exact duplicate of the API public key from account management. The API-Sign header is the HMAC SHA512 digest encoded using base64.

Вы можете найти дополнительную информацию об этой ошибке здесь:https://support.kraken.com/hc/en-us/articles/360001148063И подробнее о Nonce и Nonce Window здесь:https://support.kraken.com/hc/en-us/articles/360000906023https://support.kraken.com/hc/en-us/articles/360001148023

Ошибки «Invalid session» возвращаются через WebSocket API, когда предпринимается попытка подписаться на аутентифицированный (приватный) канал с использованием токена аутентификации, который больше недействителен (например, уже истек).

Решение состоит в том, чтобы просто запросить новый токен аутентификации через конечную точку REST API GetWebSocketsToken и использовать новый токен для всех последующих аутентифицированных (приватных) запросов на подписку.

Ошибка «Bad request» указывает на то, что что-то не так с базовым HTTP-запросом (а не с последующим запросом API), например, несоответствие URL-адресов между REST/WebSocket или неправильное включение данных HTTP POST:

% curl --data "" https://api.kraken.com/0/private/GetWebSocketsToken

{"error":["EAPI:Bad request"]}

Эта ошибка возвращается, когда вызываемая конечная точка не является действительной.

Ошибки превышения лимита запросов

Хотя добавление и отмена ордеров не учитываются в наших стандартных лимитах счетчика API, эти операции имеют свой собственный счетчик добавления и отмены ордеров. Этот счетчик работает таким образом, что чем дольше ордера остаются в книге ордеров, тем больше ордеров клиенты могут добавлять или отменять.

Сообщения об ошибке временной блокировки могут возникать, если у вас было слишком много неудачных вызовов API или слишком много ошибок недействительного nonce за короткий период времени, или недействительные подписи. Даже если эти вызовы возвращают ошибку, эта ошибка все равно учитывается в ваших лимитах API и может привести к временной блокировке.

Временные блокировки длятся примерно 15 минут. После получения ошибки временной блокировки, пожалуйста, подождите 15 минут, прежде чем отправлять какие-либо новые запросы API. Если вы вызываете несколько ошибок недействительного nonce, пожалуйста, увеличьте окно nonce, так как это может помочь уменьшить частоту возникновения этих ошибок. Пожалуйста, также постарайтесь уменьшить частоту ваших приватных вызовов API.

Ошибки торговли

Открытие новых спотовых позиций с маржинальным плечом временно приостановлено для обслуживания торгового движка. Эта функция скоро вернется, и вы можете следить за обновлениями на status.kraken.com.

Другой причиной может быть то, что спотовые позиции с маржинальным плечом в настоящее время недоступны для клиентов, проживающих в определенных странах.

На Kraken вы не можете открыть длинную и короткую позицию для одной и той же пары.

Если вы хотите открыть длинную и короткую позицию для одной и той же валюты, выберите разные торговые пары с той же валютой в качестве базовой или котируемой валюты. Например: короткая позиция XBT/USD, длинная позиция XBT/EUR.

Эта ошибка возникает, когда вы превысили лимиты допустимого маржинального обеспечения для вашего текущего уровня верификации. Лимиты допустимого маржинального обеспечения для каждой валюты зависят от вашего текущего уровня верификации.

У нас ограниченные средства для маржинальных расширений. Сообщение "недостаточно маржи" указывает на то, что в соответствующем маржинальном пуле временно отсутствуют средства. Это может измениться в любой момент. Вы можете успешно разместить свой ордер через несколько секунд или минут, но ордера с большим объемом и ордера, размещенные в периоды высокой активности, могут обрабатываться дольше. Приносим извинения за возможные неудобства.

Эта ошибка возникает, когда на счете недостаточно свободной маржи для открытия новой позиции или если текущая попытка открыть позицию приведет к падению свободной маржи счета ниже 100%.

У вас недостаточно средств для размещения этого ордера. Пожалуйста, проверьте свои открытые позиции и ордера на наличие элементов, которые могут удерживать ваши средства.

Вы не достигли минимального объема ордера для этого актива.

Вы превысили максимальное количество открытых ордеров, доступных для вашего счета.

Эти лимиты зависят от вашего уровня верификации. Пожалуйста, закройте некоторые из ваших открытых ордеров или верифицируйте свой счет до более высокого уровня.

Вы превысили максимальное количество открытых позиций, доступных для вашего счета.

Эти лимиты зависят от вашего уровня верификации. Пожалуйста, закройте или урегулируйте некоторые или все ваши открытые позиции, или, если возможно, верифицируйте свой счет до более высокого уровня.

Была предпринята попытка изменить существующий (открытый) ордер, но изменения не были успешно завершены. Возможные причины включают недостаточность средств для нового ордера, некоторые сценарии частичного исполнения и некоторые ордера с кредитным плечом.

Новый объем меньше уже исполненного/заполненного объема.

Размер ордера превысил лимит размера маржинальной позиции торговой пары.

Отображаемый объем не соответствует минимальному объему ордера.

Отображаемый объем должен быть меньше объема ордера.

Айсберг-ордера несовместимы с другими типами ордеров, кроме лимитных ордеров.

Ошибки финансирования

Каждая криптовалюта имеет максимум 5 новых (неиспользованных) адресов для пополнения, после чего любая попытка создать 6-й новый адрес вернет ошибку.

Эта ошибка возвращается всякий раз, когда конечные точки финансирования вызываются с неверным или отсутствующим параметром "method". 

Входной параметр "key" не соответствует описанию адреса, установленному в управлении счетом (через Funding -> Withdraw).

Минимальные суммы вывода средств зависят от валюты, и любая попытка вывода ниже минимума приведет к этой ошибке.

Это общая ошибка, указывающая на то, что запрос на финансирование не может быть выполнен (например, клиенты из определенных регионов, пытающиеся сделать запросы на стейкинг в сети, вызовут эту ошибку).

Запрошенный вывод средств не может быть завершен, так как в адресе назначения отсутствует необходимая информация о бенефициаре/получателе (обратите внимание, что в настоящее время это относится только к некоторым выводам средств с канадских счетов).

Ошибки статуса сервиса

Ошибки сервиса, с которыми вы сталкиваетесь, должны быть временными. Вы можете повторно отправить свои запросы, если они не были выполнены. Мы будем отслеживать проблемы и обновлять нашу страницу:

https://status.kraken.com/

Внутренние ошибки

Когда мы сталкиваемся с проблемами деградации API, это может приводить к проблемам для Kraken в виде сообщений о недоступности сервиса и сбоев на сайте.

Эта проблема связана с безопасностью вашей учетной записи, которая могла быть скомпрометирована. Пожалуйста, измените свой пароль и двухфакторную аутентификацию, а также свяжитесь с нашим Центром поддержки.

Эта ошибка возникает, когда флаг или входной параметр временно или постоянно отключен. Ошибка должна исходить от одного из переданных входных данных; пожалуйста, свяжитесь с нашей службой поддержки, отправив журнал с полной информацией, использованной для вызова, который сгенерировал ошибку.

Эти ошибки 5xx и 10xx на самом деле не являются ошибками API, а скорее ошибками веб-сервера от Cloudflare.

Ошибки API всегда возвращаются в формате JSON, например “error”:[“ErrorType:ErrorMessage”], поэтому всякий раз, когда получена ошибка в другом формате (например, код состояния HTTP 520, 504, 502, 1020 и т. д.), временным решением является повторная попытка вызова API вскоре после этого, и, надеюсь, вызов будет успешным.

Нужна дополнительная помощь?