API

Aprenda sobre nuestra API

WebSockets API

Documentación de WebSockets

REST API

Uso General

NOTA: Todas las URLs de la API deben usar el dominio api.kraken.com.

Los métodos públicos pueden utilizar GET o POST.

Los métodos privados deben utilizar POST y ser configurados de la siguiente manera:

Cabecera HTTP:

API-Key = Clave API
API-Sign = Firma del mensaje utilizando el hash HMAC-SHA512 de (dirección URI + SHA256(nonce + POST data)) y el valor base64 de la clave API

Datos POST:

nonce =siempre aumentando el número entero de 64 bits sin signo otp = clave verificación en dos pasos (en caso de tener la verificación en dos pasos activado, no requerido en otros casos)

Nota: No es posible reiniciar el valor del nonce a un valor menor, asegúrese de utilizar un método de generación que no genere nunca números menores a los ya existentes. Se recomienda usar un contador persistente o la hora actual con una precisión de centésimas de segundo o mayor. Demasiadas peticiones con valores de nonces menores que el último nonce válido (EAPI:nonce inválido) pueden resultar en bloqueos temporales.

Nota: Algunas peticiones pueden llegar fuera de orden o el protocolo NTP puede ocasionar que su reloj se retrase, resultando en problemas con el nonce. Si se encuentra con este problema, puede cambiar el intervalo del nonce desde los ajustes de API de su cuenta. El valor del intervalo dependerá de su método para incrementar el nonce. Según el tipo de conectividad disponible, se recomienda establecer un valor que tolere entre 3-15 segundos de problemas de red.

Las llamadas API que requieren indicar un valor de activo/divisa pueden hacer uso del nombre ISO4217-A3 en el caso de los nombres con registro ISO, de su código de 3 letras habitual para los nombre sin registrar, o de su código X-ISO4217-A3 (vea http://www.ifex-project.org/).

Las respuestas serán en formato JSON presentando la siguiente estructura:

error = array de mensajes de error con el siguiente formato:
    <char-severity code><string-error category>:<string-error type>[:<string-extra info>]
    código severo puede ser E en caso de error o W si se trata de un aviso
result = resultado de la llamada API (puede no existir en caso de haber errores)

Nota: Se debe tener cuidado al tratar cualquier número representado como string, ya que podría desbordar los tipos de datos estándar.

Límites de llamadas API

También disponemos de medidas de seguridad para proteger contra los abusos o ataques de tipo DoS, como la manipulación del libro de órdenes causada por la rápida colocación y cancelación de órdenes.

Cada usuario de nuestra API tiene un "contador de llamadas" que comienza en 0.

Las llamadas del historial del libro mayor/trading aumentan el contador en 2.

Crear/Cancelar órdenes no afecta al contador.

Todas las demás llamadas de la API aumentan el contador en 1.

El contador del usuario se reduce cada pocos segundos, y si el contador supera los accesos máximos, las llamadas a la API del usuario se suspenderán durante 15 minutos. Los usuarios de nivel Básico tienen un máximo de 15 y su conteo se reduce en 1 cada 3 segundos. Los usuarios de los niveles Intermedio y Pro tienen un máximo de 20; La cuenta se reduce en 1 cada 2 segundos para usuarios de nivel Intermedio, y se reduce en 1 cada segundo para usuarios de nivel Pro.

Aunque crear y cancelar órdenes no aumenta el contador, existen límites para evitar la manipulación del libro de órdenes. Realizando órdenes con el fin de ser completadas y mantenerse en el ratio de 1 llamada/segundo es generalmente suficiente para no alcanzar este límite.

Datos públicos de mercado

Obtener la hora del servidor

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

Resultado: Hora del servidor

unixtime = marca de tiempo unix
rfc1123 = formato de tiempo RFC 1123

Nota: Permite ayudar a aproximar el desfase entre el servidor y el cliente

Obtener información de un activo

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

Entrada:

info = información deseada (opcional):
info = toda la información (por defecto)
aclass = clase del activo (opcional): divisa (por defecto)
asset = lista separada por comas de activos sobre los que se desean datos (opcional.  por defecto = todos para la clase de activo seleccionado)

Resultado: array con los nombres de los activos y su información asociada

<asset_name> = nombre del activo
    altname = nombre alternativo
    aclass = clase del activo
    decimals = número de decimales deseado en los registros
    display_decimals = número de decimales a mostrar en la salida

Obtener pares de activos negociables

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

Entrada:

info = información deseada (opcional):
    info = toda la información (por defecto)
    leverage = datos del apalancamiento
    fees = tabla de comisiones
    margin = datos del margen
pair = lista separada por comas de pares de activos sobre los que se desean datos (opcional.  por defecto = todos)

Resultado: array con los nombres de los pares y su información asociada

<pair_name> = nombre del par
    altname = nombre alternativo del par
    aclass_base = clase del activo base
    base = id del activo base
    aclass_quote = clase del activo cotizado
    quote = id del activo cotizado
    lot = tamaño del lote (volumen)
    pair_decimals = número de decimales para el par
    lot_decimals = número de decimales para el volumen
    lot_multiplier = factor de multiplicación del tamaño del lote para obtener el volumen de la divisa
    leverage_buy = array del  apalancamiento disponible al comprar
    leverage_sell = array del apalancamiento disponible al vender
    fees = array con la tabla de tarifas en tuples [volumen, porcentaje tarifa]
    fees_maker = array con la tabla de tarifas tipo maker en tuples tipo [volumen, porcentaje de la comisión] (si se aplica maker/taker)
    fee_volume_currency = divisa del descuento por volumen
    margin_call = nivel de llamada de margen 
    margin_stop = nivel de liquidación del margen 

Nota: Si un par de activos está en la tabla de tarifas tipo maker/taker, el lado taker se dará en "fees" y el maker en "fees_maker". El resto de pares se darán en "comisiones".

Información de Ticker

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

Entrada:

pair = lista separada por comas de pares de activos sobre los que se desean datos

Resultado: array con nombres de los pares y la información asociada de su ticker

<pair_name> = nombre del par
    a = oferta array(<precio>, <lote completo de volumen>, <lote del volumen>),
    b = demanda array(<precio>, <lote completo de volumen>, <lote del volumen>),
    c = último trade cerrado array(<precio>, <lote del volumen>),
    v = volumen array(<hoy>, <últimas 24 horas>),
    p = precio del volumen medio array(<hoy>, <últimas 24 horas>),
    t = número de operaciones array(<hoy>, <últimas 24 horas>),
    l = mínimo array(<hoy>, <últimas 24 horas>),
    h = máximo array(<hoy>, <últimas 24 horas>),
    o = precio de apertura hoy

Nota: El precio de hoy comienza a las 00:00:00 UTC

Obtener datos OHLC (Apertura Máximo Mínimo Cierre)

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

Entrada:

pair = par de activos sobre los que se desea obtener datos del intervalo OHLC = intervalo temporal en minutos (opcional):
	1 (por defecto), 5, 15, 30, 60, 240, 1440, 10080, 21600
since = devuelve datos OHLC a partir del valor since (opcional.  exclusivo)

Resultado: array de nombre de los pares y datos OHLC asociados

<pair_name> = nombre del par
    array de arrays(<hora>, <apertura>, <máximo>, <mínimo>, <cierre>, <vwap>, <volumen>, <count>)
last = valor a usar como since al pedir nuevos datos OHLC

Nota: la última entrada en el array OHLC es para el intervalo actual, aún sin confirmar y siempre estará presente, independientemente del valor del campo "since".

Obtener libro de órdenes

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

Entrada:

pair = par de activos sobre los que se desea obtener datos del libro de órdenes
count = número máximo de ofertas/demandas (opcional)

Resultado: array con nombres de pares y profundidad del mercado

<pair_name> = nombre del par
    asks = ofertas array de arrays(<precio>, <volumen>, <timestamp>)
    bids = demandas array de arrays(<precio>, <volumen>, <timestamp>)

Obtener operaciones recientes

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

Entrada:

pair = par de activos sobre el que desea obtener datos del spread
since = devuelve datos del spread desde el momento indicado (opcional.  inclusivo)

Resultado: array de nombres de pares y datos de spread recientes

<pair_name> = nombre del par
    array de arrays(<hora>, <demanda>, <oferta>)
last = valor a utilizar en el campo since para pedir nuevos datos de spread

Nota: "since" es inclusivo, si se obtienes datos con el mismo valor de hora que datos anteriores estos deben sobreescribirse

Datos privados del usuario

Obtener balance de la cuenta

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

Resultado: array de activos y balances

Obtener el balance disponible para operar

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

Entrada:

aclass = clase del activo (opcional): divisa (por defecto)
asset = activo base para determinar el balance (por defecto = ZUSD)

Resultado: array de balances para trading

eb = balance equivalente (balance combinado de todas las divisas)
tb = balance para trading (saldo del capital combinado de todas las divisas)
m = cantidad del margen disponible de todas las posiciones abiertas
n = ganancia/pérdida neta no realizada de posiciones abiertas
c = coste base de las posiciones abiertas
v = valoración temporal actual de las posiciones abiertas
e = patrimonio neto = balance para trading + ganancia/pérdida neta no realizada
mf = margen libre = capital - margen inicial (margen máximo disponible para abrir nuevas posiciones)
ml = nivel de margen = (capital/margen inicial) * 100

Nota: Las tarifas utilizadas para la valoración temporal son la media entre la mejor oferta y los precios de venta.

Obtener órdenes abiertas

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

Entrada:

trades = incluir los trades o no en la respuesta (opcional.  por defecto = false)
userref = restringir los resultados a la ID de referencia del usuario (opcional)

Resultado: array con información sobre las órdenes con arrays abiertos indexados por txid

refid = id de referencia de la transacción que creó esta orden
userref = id de referencia del usuario
status = estado de la orden:
    pending = orden en espera de entrar al libro
    open = orden abierta
    closed = orden cerrada
    canceled = orden cancelada
    expired = orden caducada
opentm = marca de tiempo Unix de cuando se realizó la orden
starttm = marca de tiempo de Unix de la hora de inicio de la orden (o 0 si no está configurado)
expiretm = marca de tiempo de Unix de la hora de finalización de la orden (o 0 si no está configurado)
descr = información de descripción de la orden
    pair = par de activos
    type = tipo de orden (compra/venta)
    ordertype = tipo de orden (Ver Añadir orden estándar)
    price = precio primario
    price2 = precio secundario
    leverage = cantidad de apalancamiento
    order = descripción de la orden
    close = descripción de orden de cierre condicional (si es un conjunto de cierre condicional)
vol = volumen de la orden (divisa base a menos que viqc se establezca en oflags)
vol_exec = volumen ejecutado (divisa base a menos que viqc se establezca en oflags)
cost = costo total (divisa de cotización a menos que viqc se establezca en oflags)
fee = tarifa total (divisa de cotización)
price = precio promedio (divisa de cotización a menos que viqc se establezca en oflags)
stopprice = stop precio (divisa de cotización, para paradas finales)
limitprice = precio límite activado (divisa de cotización, cuando se activa el tipo de orden basado en el límite)
misc = lista delimitada por comas de información variada
    stopped = activado por stop precio
    touched = disparado por toque de precio
    liquidated = liquidada
    partial = llenado parcial
oflags = lista delimitada por comas de banderas de orden
    viqc = volumen en divisa cotizada
    fcib = tarifa preferida en la divisa base (por defecto si se vende)
    fciq = tarifa preferida en divisa de cotización (por defecto si compra)
    nompp = sin precio de protección mercado
trades = array de ids de operaciones relacionadas con la orden (si se solicita información de operaciones y datos disponibles)

Nota: A menos que se indique lo contrario, los costes, tarifas, precios y volúmenes están en la escala del par de activos, no en la escala de la divisa. Por ejemplo, si el par de activos usa un tamaño de lote que tiene una escala de 8, el volumen usará una escala de 8, incluso si la divisa que representa sólo tiene una escala de 2. De manera similar, si la escala de precios del par de activos es 5, la escala se mantendrá como 5, incluso si la divisa subyacente tiene una escala de 8.

Obtener órdenes cerradas

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

Entrada:

trades = incluir o no intercambios en la salida (opcional. por defecto = false)
userref = restringir los resultados a un ID de referencia del usuario dado (opcional)
start = marca de tiempo de Unix del inicio de la orden u orden tx id de resultados (opcional. exclusivo)
end = marca de tiempo de Unix del fin de la orden o el orden tx id de los resultados (opcional. inclusivo)
ofs = resultado offset
closetime = usar uno: (opcional)
    abrir
    cerrar
    ambos (por defecto)

Resultado: array con información de la orden

closed = matriz de información de orden. Consulte  Obtener órdenes abiertos . Campos Adicionales:
    closetm = marca de tiempo unix de cuando la orden fue cerrada
    reason = información adicional sobre el estado (si existe)
count = cantidad de información de orden disponible que coincide con los criterios

Nota: Los tiempos dados por los IDs de tx de orden son más precisos que las marcas de tiempo de Unix. Si se proporciona un ID de tx de la orden para el tiempo, se utiliza el tiempo de apertura de la orden

Consultar información de órdenes

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

Entrada:

trades = si se incluyen o no las operaciones en la salida (opcional. predeterminado = false)
userref = restringir los resultados a un ID de referencia de usuario dado (opcional)
txid = lista delimitada por comas con los IDs de transacción sobre la que que se desea consultar información  (20 como máximo)

Resultado: array asociativo con información de órdenes

<order_txid> = información de la orden. Consulte Obtener órdenes abiertas/Obtener órdenes cerradas

Obtener historial de operaciones

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

Entrada:

    type = tipo de operación (opcional)
    all = todos los tipos (por defecto)
    any position = cualquier posición (abierta o cerrada)
    closed position = posiciones que han sido cerradas
    closing position = cualquier operación que cierre todo o parte de una posición
    no position = operaciones sin posición
    trades = si se incluyen o no operaciones relacionadas con la posición en la salida (opcional. predeterminado = false)
    start = inicio desde la marca de tiempo Unix dada o el tx id de una operación (opcional. exclusivo)
    end = fin desde de la marca de tiempo Unix dada o el tx id de una operación (opcional. inclusivo)
    ofs = resultado offset

Resultado: array con información sobre las operaciones

trades = array con información sobre la operación con txid como clave
    ordertxid = orden responsable de la ejecución de la operación
    pair = par de activos
    time = marca de tiempo Unix de la operación
    type = tipo de orden (compra/venta)
    ordertype = tipo de orden
    price = precio promedio sobre el que fue ejecutada la orden (divisa de cotización)
    cost = costo total de la orden (divisa de cotización)
    fee = tarifa total (divisa de cotización)
    vol = volumen (divisa base)
    margin = margen inicial (divisa de cotización)
    misc = lista delimitada por comas de información variada
        cierre = la operación cierra todo o parte de una posición
count = cantidad de información de operaciones disponibles que coinciden con los criterios

Si la orden abrió una posición, los siguientes campos también están presentes en la información de respuesta:

    posstatus = estado de posición (abierto/cerrado)
    cprice = precio promedio de la porción cerrada de la posición (divisa de cotización)
    ccost = costo total de la porción cerrada de la posición (divisa de cotización)
    cfee = tarifa total de la porción cerrada de la posición (divisa de cotización)
    cvol = volumen total de la porción cerrada de la posición (divisa de cotización)
    cmargin = margen total liberado en la parte cerrada de la posición (divisa de cotización)
    net = ganancia/pérdida neta de la porción cerrada de la posición (divisa de cotización, escala de divisa de cotización)
    trades = lista de operaciones de cierre para la posición (si está disponible)

Nota:

  • A menos que se indique lo contrario, los costes, tarifas, precios y volúmenes están en la escala del par de activos, no en la escala de la divisa.
  • Los tiempos dados por los ID de tx de las órdenes son más precisos que las marcas de tiempo de Unix.

Información de consultas de operaciones

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

Entrada:

txid = lista delimitada por comas de IDs de transacción para consultar información sobre (20 como máximo)
trades = si se incluyen o no operaciones relacionadas con la posición en la salida (opcional. predeterminado = false)

Resultado: matriz asociativa de información de operaciones

<trade_txid> = información comercial. Consulte  Obtener historial de transacciones 

Obtener posiciones abiertas

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

Entrada:

txid = lista delimitada por comas de IDs de transacción para restringir la salida
docalcs = si incluir o no los cálculos de ganancias/pérdidas (opcional. predeterminado = false)

Resultado: array con información de posiciones abierta

<position_txid> = información de posición abierta
    ordertxid = ID de la orden responsable de la ejecución de la operación
    pair = par de activos
    time = marca de tiempo unix para la operación
    type = tipo de orden utilizada para abrir la posición (compra/venta)
    ordertype = tipo de orden usado para abrir la posición
    cost = costo de apertura de la posición (divisa de cotización a menos que viqc se establezca en oflags)
    fee = tarifa de apertura de la posición (divisa de cotización)
    vol = volumen de la posición (divisa base a menos que viqc se establezca en oflags)
    vol_closed = volumen de posición cerrado (divisa base a menos que viqc establecido en oflags)
    margin = margen inicial (divisa de cotización)
    value = valor actual de la posición restante (si se solicita docalcs. divisa de cotización)
    net = ganancia/pérdida no realizada de la posición restante (si se solicita docalcs. divisa de cotización, escala de divisa de cotización)
    misc = lista delimitada por comas de información variada
    oflags = lista delimitada por comas de banderas de orden
       viqc = volumen en divisa cotizada

Nota: a menos que se indique lo contrario, los costos, tarifas, precios y volúmenes se encuentran en la escala del par de activos, no en la escala de la divisa.

Obtener información de los libros mayores

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

Entrada:

aclass = clase de activo (opcional):
    divisa (por defecto)
asset = lista delimitada por comas de activos para restringir la salida (opcional. predeterminado = all)
type = tipo de libro a obtener (opcional):
    all (por defecto)
    deposit
    withdrawal
    trade
    margin
start = inicio en hora de Unix de los resultados (opcional. exclusivo)
end = fin en hora de Unix de los resultados (opcional. inclusive)
ofs = resultado offset

Resultado: array con información de libros mayores

<ledger_id> = información del libro mayor
    refid = ID de referencia
    time = marca de tiempo unix del libro
    type = tipo de entrada de libro mayor
    aclass = clase de activo
    asset = activo
    amount = cantidad de la transacción
    tarifa = tarifa de transacción
    saldo = saldo resultante

Nota: los tiempos dados por los identificadores del libro mayor son más precisos que las marcas de tiempo Unix.

Consulta de libros

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

Entrada:

id = lista delimitada por comas de ID de contabilidad para obtener información (20 como máximo)

Resultado: array con información de libros mayores

<ledger_id> = información del libro mayor. Consulte Obtenga información de los libros de contabilidad

Obtener volumen de operaciones

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

Entrada:

pair = lista delimitada por comas de pares de activos para obtener información sobre tarifas (opcional)
fee-info = si incluir o no la información de la tarifa en los resultados (opcional)

Resultado: matriz asociativa

currency = divisa de volumen
volume = volumen de descuento actual
fees = conjunto de pares de activos e información de nivel de tarifa (si se solicita)
    fee = tarifa actual en porcentaje
    minfee = tarifa mínima por pareja (si no es tarifa fija)
    maxfee = tarifa máxima por pareja (si no es tarifa fija)
    nextfee = tarifa del par siguiente (si no es tarifa fija. nil si está en el nivel de tarifa más bajo)
    nextvolume = nivel de volumen del siguiente nivel de verificación de la cuenta (si no es tarifa fija. nil si está en el nivel de tarifa más bajo)
    tiervolume = nivel de volumen del nivel de verificación de la cuenta actual (si no es una tarifa fija. nil si está en el nivel de tarifa más bajo)
fees_maker = conjunto de pares de activos e información del nivel de tarifa maker (si se solicita) para cualquier par en el listado maker/tomador
    fee = tarifa actual en porcentaje
    minfee = tarifa mínima por pareja (si no es tarifa fija)
    maxfee = tarifa máxima por pareja (si no es tarifa fija)
    nextfee = tarifa del par siguiente (si no es tarifa fija. nil si está en el nivel de tarifa más bajo)
    nextvolume = nivel de volumen del siguiente nivel de verificación de la cuenta (si no es tarifa fija. nil si está en el nivel de tarifa más bajo)
    tiervolume = nivel de volumen del nivel de verificación de la cuenta actual (si no es una tarifa fija. nil si está en el nivel de tarifa más bajo)

Nota: si un par de activos está en un programa de tarifas de maker/taker, el lado del tomador se da en "fees" y el lado del fabricante en "fees_maker". Para parejas que no están en maker/taker, sólo se darán en "fees".

Solicitar informe de exportación

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

Entrada:

description = Descripción del reporte
report = Tipo de reporte (operaciones/libro mayor)
format = (CSV/TSV) (opcional.  por defecto = CSV)
fields = lista separada por comas de los campos a incluir en el reporte (opcional.  por defecto = todos)
    Nota: las opciones de campo se basan en el tipo de reporte
    <operaciones>
        ordertxid
        time
        ordertype
        price
        cost
        fee
        vol
        margin
        misc
        ledgers
    <libro mayor>
        refid
        time
        type
        aclass
        asset
        amount
        fee
        balance
asset = lista separada por comas de los activos a los cuales se restringe la salida (opcional.  por defecto = todos)
starttm = fecha de inicio del reporte (opcional.  por defecto = Un (1) año antes de hoy):
    <n> = marca de tiempo unix para el inicio
endtm = fecha final del reporte (opcional.  por defecto = ahora mismo):
    <n> = marca de tiempo unix para el final

Resultado:

id = report id

Errores: Los errores incluyen (pero no están limitados a ):

EGeneral: Argumentos inválidos
EQuery: Par de activos desconocido

Obtener estados de exportación

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

Entrada:

report = tipo de reporte (operaciones/libro mayor)

Resultado: array de reportes y su información asociada

id = identificación de reporte
descr = información de descripción del reporte
formato = (CSV/TSV)
report = tipo de reporte (operaciones/ledgers)
status = estado de la solicitud:
    Queued = El reporte se encuentra en cola para su creación
    Processing = el reporte está siendo procesado
    Processed = el reporte ha sido procesado
createdtm = fecha de creación del reporte
expiretm = fecha de vencimiento del reporte
starttm = fecha de inicio del reporte
endtm = fecha final del reporte
completedtm = se completó el reporte de fecha
aclass = clase de activo
asset = lista separada por comas de los activos
fields = lista separada por comas de los campos
    <Operaciones>
        txid
        ordentxid
        par
        tiempo
        tipo
        ordentipo
        precio
        costo
        comisión
        vol
        margen
        misc
        libromayor
    <Libro mayor>
        txid
        refid
        tiempo
        typo
        aclass
        divisa
        cantidad
        comisión
        balance

Errores: Los errores incluyen (pero no se limitan a):

EGeneral: Argumentos inválidos

Obtener informe de exportación

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

Entrada:

id = identificación de reporte

Resultado: archivo binario comprimido como zip que contiene el reporte

Nota: Si el tipo de contenido no es application/json, text, o html, el reporte binario será transmitido de nuevo. Si es uno de esos tipos puede encontrar un error en la respuesta.

Nota: Dependiendo del tipo de reporte y los campos elegidos, el reporte podría tener los siguientes campos. Los campos con * siempre están presentes.

<operaciones>
    *txid
    ordentxid
    *par
    tiempo
    *tipo
    ordentipo
    precio
    costo
    comisión
    vol
    margen
    misc
    libros mayores
<libro mayor>
    *txid
    refid
    tiempo
    tipo
    aclass
    asset
    cantidad
    comisión
    balance

Eliminar informe de exportación

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

Entrada:

type = Tipo de eliminación (cancelar/borrar)
id = identificación del reporte

Resultado: booleano con el resultado del llamado

cancelar/borrar = tipo de eliminación

Nota: El tipo borrar sólo puede usarse para un reporte que ya ha sido procesado mientras que cancelar se utiliza para estados en cola y procesando.

Errores: los errores incluyen (pero no se limitan a ):

EGeneral:Argumentos inválidos
WExport:Procesado previamente

Nota: En el caso de que ya se haya realizado una operación de cancelación o eliminación en un ID de un informe en particular, obtendrá el error WExport: Procesado previamente.




Trading de usuario privado

Agregar orden estándar

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

Entrada:

pair = par de activos
type = tipo de orden (compra/venta)
ordertype = orden de tipo:
    market
    limit (price = precio límite)
    stop-loss (price = stop loss precio)
    take-profit (price = toma de ganancias precio)
    stop-loss-profit (price = precio de stop loss, price2 = precio de ganancia)
    stop-loss-profit-limit (price = precio de pérdida, price2 = precio de ganancia)
    stop-loss-limit (price = precio de activación de límite de pérdida, price2 = precio límite activado)
    take-profit-limit (price = precio de activación de toma de ganancias, price2 = precio límite de activación)
    trailing-stop (price = trailing stop offset)
    trailing-stop-limit (price = trailing stop offset, price2 = disparado límite de compensación)
    stop-loss-and-limit (price = precio de stop loss, price2 = precio límite)
    settle-position
price = precio (opcional. depende del tipo de orden)
price2 = precio secundario (opcional. depende del tipo de orden)
volume = volumen de orden en lotes
leverage = cantidad de apalancamiento deseado (opcional. predeterminado = ninguno)
oflags = lista delimitada por comas de banderas de orden (opcional):
    viqc = volumen en divisa de cotización (no disponible para órdenes apalancadas)
    fcib = tarifa preferente en la divisa base
    fciq = tarifa preferente en la divisa cotizada
    nompp = sin protección de precios de mercado
    post = publicar solo orden (disponible cuando ordertype = limit)
starttm = hora de inicio programada (opcional):
    0 = ahora (por defecto)
    + <n> = hora de inicio programada <n> segundos a partir de ahora
    <n> = marca de tiempo Unix de inicio
expiretm = tiempo de expiración (opcional):
    0 = sin caducidad (por defecto)
    + <n> = expirar <n> segundos a partir de ahora
    <n> = marca de tiempo Unix de expiración
userref = ID de referencia del usuario. Número firmado de 32 bits. (Opcional)
validate = tan solo validar datos, sin enviar la orden (opcional)

orden de cierre opcional para agregar al sistema cuando la orden se llena:
    close[ordertype] = tipo de orden
    close[price] = precio
    close[price2] = precio secundario

Resultado:

descr = información de descripción de la orden
    order = descripción de la orden
    close = descripción de orden de cierre condicional (si es un conjunto de cierre condicional)
txid = array con IDs de transacción de las órdenes (si la orden se agregó correctamente)

Errors: los errores incluyen (pero no se limitan a):

EGeneral: Argumentos inválidos
EService: No disponible
ETrade: Solicitud inválida
EOrder: No se puede abrir la posición
EOrder: No se puede abrir la posición opuesta
EOrder: Margen de margen excedido
EOrder: Nivel de margen demasiado bajo
EOrder: Margen insuficiente (el intercambio no tiene fondos suficientes para permitir el comercio de margen)
EOrder: Fondos insuficientes (fondos de usuario insuficientes)
EOrder: Orden mínima no cumplida (volumen demasiado bajo)
EOrder: Límite de órdenes superado
EOrder: Se ha excedido el límite de posiciones.
EOrder: Límite de tasa excedido
EOrder: Límite de órdenes programadas superado
EOrder: Posición desconocida

Nota:

        
  • Consulte Obtenga pares de activos negociables para obtener especificaciones sobre precios, lotes y apalancamiento de pares de activos.
  •     
  • Los precios pueden ir precedidos por +, - o # para indicar el precio como una cantidad relativa (con la excepción de las paradas finales, que son siempre relativas). + agrega la cantidad al precio actual ofrecido. - Resta la cantidad del precio actual ofrecido. # agregará o restará la cantidad al precio actual ofrecido, dependiendo del tipo de orden utilizado. Los precios relativos pueden tener un sufijo con un % para indicar la cantidad relativa como un porcentaje del precio ofrecido.
  •     
  • Para las órdenes que usan apalancamiento, se puede indicar 0 para que el volumen se complete automáticamente hasta el necesario para cerrar su posición.
  •     
  • Si recibe el error "EOrder: Se requiere un acuerdo comercial", consulte la página de administración de claves de la API para obtener más detalles.

Cancelar orden abierta

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

Entrada:

txid = ID de transacción

Resultado:

count = número de órdenes canceladas
pending = si está configurado, las órdenes que tienen cancelación pendiente

Nota: txid puede ser un ID de referencia de usuario.

Clientes API de ejemplo

A continuación encontrará ejemplos de bibliotecas de código de cliente de API que se pueden usar al escribir su propio cliente de API. Tenga en cuenta que Payward y los autores terceros no son responsables de las pérdidas debidas a errores o el uso incorrecto de las API. Payward realizó una revisión inicial de la seguridad del código de terceros antes de enumerarlos, pero no puede responder por ningún cambio agregado desde entonces. Si tiene alguna inquietud, comuníquese con nuestro equipo de soporte.

C

Ver proyecto externo https://github.com/hANSIc99/Kraken_C_API.

C#

Ver proyecto externo https://bitbucket.org/arrivets/krakenapi.

C++

Ver proyecto externo https://github.com/voidloop/krakenapi.

GO

Ver proyecto externo https://github.com/Beldur/kraken-go-api-client.

Node.JS

Ver proyecto externo https://github.com/nothingisdead/npm-kraken-api.

PERL

Ver proyecto externo http://search.cpan.org/~philippe/Finance-Bank-Kraken-0.1/.

Python 3

Ver proyecto externo https://github.com/veox/python3-krakenex.

Python 2

Ver proyecto externo https://github.com/veox/python2-krakenex.

Ruby

Ver proyecto externo https://github.com/leishman/kraken_ruby.

PHP

El equipo de Kraken proporciona una biblioteca de PHP básica para interactuar con la API REST de Kraken. Los ejemplos de fuentes y uso también están disponibles en repositorio github kraken-api-client de Payward y es Licencia MIT .

Library

Utilice la clase definida en esta biblioteca para realizar llamadas a la API REST de Kraken con un cliente PHP. Determina automáticamente la ruta URL correcta del método API, genera un nonce para cada solicitud y agrega un encabezado firmado utilizando el secreto de su API y el nonce generado.

<?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;
    }
}

 
Ejemplo de uso

A continuación se muestran los pasos necesarios para inicializar la clase de biblioteca KrakenAPI, así como una serie de llamadas a métodos de API de ejemplo. Los conjuntos de resultados con formato se muestran debajo de cada fragmento de llamada a la API correspondiente.

Inicialización

Incluya el archivo de la biblioteca y proporcione su clave API y su secreto al crear una instancia de un objeto KrakenAPI.

<?php

require_once 'KrakenAPIClient.php';
$kraken = new KrakenAPI('SU API KEY', 'SU SECRETO DE API');
Métodos para llamadas

Consulta una lista pública de activos y sus propiedades:

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

Los activos devueltos están codificados por sus nombres ISO-4217-A3-X, ejemplo de salida:

Array
(
    [error] => Array
        (
        )

    [result] => Array
        (
            [XXBT] => Array
                (
                    [aclass] => divisa
                    [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
                )
            ...
)

Consulte la información del ticker público para el par XBT/USD:

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

Ejemplo de salida:

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
                        )

                    ...
        )
)

Consultar operaciones recientes públicas para el par XBT/EUR desde 2013-08-07T18:20:42+00:00:

NOTA: el parámetro 'since' está sujeto a cambios en el futuro: su precisión puede modificarse y ya no puede ser representativa de una marca de tiempo. La mejor práctica es basarlo en el valor 'last' devuelto en el conjunto de resultados.

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

Ejemplo de salida:

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
        )
)

Consultar saldos de activos privados:

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

Ejemplo de salida:

Array
(
    [error] => Array
        (
        )

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

)

Consulta de órdenes privadas abiertas y operaciones relacionadas incluidas:

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

Ejemplo de salida:

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] =>
                        )
                    ...
                )
        )
)

Añadir una orden estándar: sell 1.123 XBT/USD @ limit $120

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

Ejemplo de salida:

Array
(
    [error] => Array
        (
        )

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

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

        )

)

Agregue una orden estándar: compre XBT por un valor de 300€ en el mercado a las 2013-08-12T09:27:22+0000

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

Ejemplo de salida:

Array
(
    [error] => Array
        (
        )

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

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

        )

)

Agregue una orden estándar: compre 2.12345678 XBTUSD @ limit $ 101.9901 con un apalancamiento de 2:1, con un seguimiento de stop loss, toma de ganancia con fines de venta: se detiene en una pérdida del -5%, toma una ganancia en tras un aumento de precio de $10 (los precios de parada/pérdida firmados se determinan automáticamente usando la notación #):

$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%',  // precio stop loss (porcentaje relativo delta)
        'price2' => '#10'  // precio take profit ( relativo delta)
    )
));
print_r($res);

Ejemplo de salida:

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
                )

        )

)

Método privado para Fondos de usuarios

NOTA: Esta es una API tentativa de fondos y puede ser actualizada en el futuro. Por favor consulte la página principal de API para obtener más información sobre el uso de la misma.

Obtener direcciones de depósito

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

Entrada:

aclass = clase de activo (opcional):
    divisa (por defecto)
asset = activo fijo que se está depositando

Resultado: array asociativa de métodos de depósito:

method = nombre del método de depósito
limit = cantidad neta máxima que puede ser depositada ahora mismo, o false si no hay un límite
fee = cantidad de tarifas que se pagarán
address-setup-fee = si el método tiene o no una tarifa de configuración de dirección (opcional)

Obtener direcciones de depósito

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

Entrada:

aclass = clase de activo (opcional):
    divisa (por defecto)
asset =  activo fijo que se está depositando
method = nombre del método de depósito
new = si se debe o no generar una nueva dirección (opcional por defecto = false)

Resultado: array asociativa de direcciones de depósito:

address = dirección de depósito
expiretm = tiempo de caducidad en la marca de tiempo unix, ó 0 si no está caducando
new = si se ha utilizado o no la dirección

Obtener el estado de los depósitos recientes

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

Entrada:

aclass = clase de activo (opcional):
    divisa (por defecto)
asset = activo depositado
method = nombre del método de depósito

Resultado: array de array con información sobre el estado de los depósitos:

method = nombre del método de depósito utilizado
aclass = clase de activo
asset = código X-ISO4217-A3 del activo
refid = ID de referencia
txid = ID del método de transacción
info = Información del método de la transacción
amount = cantidad depositada
fee = tarifas pagadas
time = marca de tiempo unix cuando se realizó la solicitud
status = estado del depósito
status-prop = propiedades de estado adicionales (si están disponibles)
    return = una transacción de devolución iniciada por Kraken
    onhold = depósito en espera pendiente de revisión
Para obtener información sobre el estado, por favor consulte los los estados de las transacciones financieras IFEX.

Obtener información sobre el retiro

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

Entrada:

aclass = clase de activo (opcional):
    divisa (por defecto)
asset = activo fijo que se retira
key = nombre de la clave de retiro, tal y como está configurada en su cuenta
amount = cantidad a retirar

Resultado: array asociativa de información de retiro:

method = nombre del método de retiro que se utilizará
limit = cantidad neta máxima que se puede retirar en este momento
fee = cantidad de tarifas que se pagarán

Retirar fondos

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

Entrada:

aclass = clase de activo (opcional):
    divisa (por defecto)
asset = activo que se retira
key = nombre de la clave de retiro, tal y como está configurada en su cuenta
amount = cantidad a retirar, incluidas las tarifas

Resultado: array asociativa de la transacción de retirada:

refid = ID de referencia

Obtener el estado de los retiros recientes

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

Entrada:

aclass = clase de activo (opcional):
    divisa (por defecto)
asset = activo que se retira
method = nombre del método de retiro (opcional)

Resultado: array de información sobre el estado del retiro del array:

method = nombre del método de retirada utilizado
aclass = clase de activos fijos
asset = código activo X-ISO4217-A3
refid = ID de referencia
txid = ID del método de transacción
info = información del método de transacción
amount = cantidad retirada
fee = tarifas pagadas
time = marca de tiempo unix cuando se realizó la solicitud
status = estado de retiro
status-prop = propiedades de estado adicionales (si están disponibles)
    cancel-pending = cancelación solicitada
    canceled = cancelado
    cancel-denied = cancelación solicitada pero fue denegada
    return = una transacción de devolución iniciada por Kraken; no se puede cancelar
    onhold = el retiro está en espera pendiente de revisión
Para obtener información sobre el estado, por favor consulte los estados de transacción financiera IFEX.

Solicitar la cancelación del retiro

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

Entrada:

aclass = clase de activo (opcional):
    divisa (por defecto)
asset = activo retirado
refid = ID de referencia de retirada

Resultado: true si es exitosa

Nota:No se puede garantizar la cancelación.Esto pondrá una solicitud de cancelación. Dependiendo de qué tan lejos este del proceso de retiro, puede que no sea posible cancelar el retiro.

Transferencia de monedero

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

Entrada:

asset = activo a retirar
to = monedero destino, hacia donde se transfieren los fondos
    Monedero de Futuros (por defecto)
from = Monedero origen, desde donde se transfieren los fondos
    Spot Wallet (por defecto)
amount = cantidad a retirar, incluyendo tarifas

Resultado: array asociativo de transacciones de transferencia:

refid = id de referencia