API

Saiba mais sobre nossa API

WebSockets API

Documentação para WebSockets

REST API

Uso Geral

NOTA: Todos os URLs da API devem usar o domínio api.kraken.com.

Você deve fornecer um user agent string ao criar um header de solicitação, caso contrário não poderá se conectar à API.

A Kraken possui o 'Browser Integrity Check' ativado.

Você pode receber um erro se os headers de sua solicitação não tiverem um user agent ou se tiver um user agent não padrão.

Se você não conseguir criar solicitações padrão que nosso sistema permite, envie-nos uma cópia completa das solicitações que você está tentando, incluindo seu endereço IP e todos os headers. Essas informações nos permitirão investigar de forma mais aprofundada.

Métodos públicos podem usar GET ou POST.

Métodos privados devem usar POST e ser configurados da seguinte forma:

HTTP header:

API-Key = Chave de API
API-Sign = Assinatura da mensagem usando HMAC-SHA512 de (caminho URI + SHA256(nonce + POST data)) e chave de API secreta decodificada por base64

POST data:

nonce = inteiro sempre crescendo e não assinado de 64 bits
otp = senha de uso único (se ativada, caso contrário, não é necessário)

Nota: Não há como redefinir o nonce para um valor menor, portanto, use um método de geração de nonce que não irá gerar números menores que o nonce anterior. Um contador persistente ou a hora atual com centésimos de segundos de precisão ou superior é sugerido. Muitas solicitações com nonces abaixo do último nonce válido (EAPI:Invalid nonce) pode resultar em banimentos temporários.

Nota: Às vezes, as solicitações podem chegar fora de ordem ou o NTP pode causar o retrocesso do relógio, resultando em problemas de nonce. Se você tiver esse problema, poderá alterar a janela nonce na página de configurações de API da conta. A quantidade a ser configurada depende de como você incrementa o nonce. Dependendo da sua conectividade, uma configuração que acomode de 3 a 15 segundos de problemas de rede é sugerida.

Chamadas de API que exigem ativos em moeda podem ser referenciadas usando seus nomes ISO4217-A3 no caso de nomes registrados ISO, seus nomes comumente usados em três letras no caso de nomes não registrados ou seus códigos X-ISO4217-A3 (ver http://www.ifex-project.org/).

As respostas são codificadas por JSON na forma de:

error = matriz de mensagens de erro no formato de:
    <char-severity code><string-error category>:<string-error type>[:<string-extra info>]
    código de gravidade pode ser E para error ou W para warning
result = resultado da chamada de API (pode não estar presente se ocorrerem erros)

Nota: É preciso ter cuidado ao manipular os números representados como strings, pois eles podem estourar tipos de dados padrão.

Limite de taxa de chamadas da API

Temos defesas para proteção contra abusos/ataques DoS, bem como manipulação de livros de ofertas causados pela rápida colocação e cancelamento de ordens.

Cada usuário da nossa API tem um "contador de chamadas" que começa em 0.

Chamadas de registro/histórico de negociação aumentam o contador em 2.

Chamadas de abertura/cancelamento de ordens não afetam o contador.

Todas as outras chamadas de API aumentam o contador em 1.

O contador do usuário é reduzido a cada dois segundos e, se o contador excede o acesso máximo da API do usuário é suspenso por 15 minutos. Usuários verificados para conta Básica têm um máximo de 15 e sua contagem é reduzida em 1 a cada 3 segundos. Os usuários verificados para conta Intermediária ou Pro têm um máximo de 20; a contagem é reduzida em 1 a cada 2 segundos para usuários Intermediários e é reduzido em 1 a cada 1 segundo para usuários Pro.

Embora abrir e cancelar ordens não aumente o contador, existem limites separados para impedir a manipulação do livro de ofertas. Apenas abrir ordens que você pretende executar e manter a taxa em 1 por segundo é geralmente suficiente para não atingir este limite.

Dados públicos do mercado

Obter hora do servidor

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

Resultado: Hora do servidor

unixtime =  como unix timestamp
rfc1123 = como formato de tempo RFC 1123

Nota: Isso é para ajudar a aproximar o tempo de inclinação entre o servidor e o cliente.

Obter informações do ativo

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

Entrada:

info = informação a consultar (opcional):
    info = todas as informações (padrão)
aclass = classe de ativos (opcional):
    moeda (padrão)
asset = lista delimitada por vírgulas dos ativos a obter informações (opcional.  padrão = todos para classe de ativos em questão)

Resultado: matriz dos nomes dos ativos e suas informações

<asset_name> = nome do ativo
    altname = nome alternativo
    aclass = classe do ativo
    decimals = dimensionamento de casas decimais para manutenção de registros
    display_decimals = dimensionamento de casas decimais para exibição de saída

Obter pares de ativos negociáveis

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

Entrada:

info = informação a consultar (opcional):
    info = todas as informações (padrão)
    leverage = informações sobre alavancagem
    fees = tabela de taxas
    margin = informações sobre margem
pair = lista delimitada por vírgulas de pares de ativos a obter informações (opcional.  padrão = todos)

Resultado: matriz dos nomes dos pares e suas informações

<pair_name> = nome do par
    altname = nome alternativo do par
    wsname = nome do par na WebSocket (se disponível)
    aclass_base = classe de ativo do componente base
    base = ID do ativo do componente base
    aclass_quote = classe de ativo do componente de cotação
    quote = ID do ativo do componente de cotação
    lot = tamanho do lote de volume
    pair_decimals = dimensionamento de casas decimais para o par
    lot_decimals = dimensionamento de casas decimais para o volume
    lot_multiplier = quantidade para multiplicar o volume do lote por para obter o volume da moeda
    leverage_buy = matriz de quantidades de alavancagem disponíveis ao comprar
    leverage_sell = Matriz de quantidades de alavancagem disponíveis ao vender
    fees = matriz da tabela de taxas em [volume, taxa percentual] tuples
    fees_maker = matriz da tabela de taxas maker em [volume, taxa percentual] tuples (caso em maker/taker)
    fee_volume_currency = volume da moeda de desconto
    margin_call = nível da chamada de margem
    margin_stop = nível de margem de stop-out/liquidação

Nota: Se um par de ativos estiver em uma tabela de taxa maker/taker, o lado taker é dado em "taxas" e lado maker em "fees_maker". Para pares que não estão em maker/taker, elas serão dados apenas em "taxas".

Obter informações do ticker

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

Entrada:

pair = lista delimitada por vírgulas de pares de ativos a obter informações

Resultado: matriz de nomes dos pares e as informações do ticker

<pair_name> = nome do par
    a = matriz da oferta(<preço>, <volume do lote inteiro>, <volume do lote>),
    b = matriz da demanda(<preço>, <volume do lote inteiro>, <volume do lote>),
    c = matriz da última negociação fechada(<preço>, <volume do lote>),
    v = matriz do volume(<hoje>, <últimas 24 horas>),
    p = matriz do preço médio ponderado por volume(<hoje>, <últimas 24 horas>),
    t = matriz do número de negociações(<hoje>, <últimas 24 horas>),
    l = matriz da mínima(<hoje>, <últimas 24 horas>),
    h = matriz da máxima(<hoje>, <últimas 24 horas>),
    o = preço de abertura de hoje

Nota: Os preços de hoje começam em 00:00:00 UTC

Obter dados OHLC

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

Entrada:

pair = par de ativos a obter dados OHLC
interval = intervalo de tempo em minutos (opcional):
	1 (padrão), 5, 15, 30, 60, 240, 1440, 10080, 21600
since = retorna dados OHLC desde o ID fornecido (opcional.  exclusivo)

Resultado: matriz de nome do par e dados OHLC

<pair_name> = nome do par
    matriz da matriz das entradas(<hora>, <abertura>, <máxima>, <mínima>, <fechamento>, <vwap>, <volume>, <count>)
last = valor a ser usado como since ao solicitar novos dados OHLC

Nota: a última entrada na matriz OHLC é para o intervalo atual, ainda não confirmada e sempre estará presente, independentemente do valor do campo "since".

Obter livro de ofertas

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

Entrada:

pair = par de ativos que deseja obter a profundidade do mercado
count = número máximo de ofertas de compra /venda (opcional)

Resultado: matriz de nome do par e profundidade do mercado

<pair_name> = nome do par
    asks = matriz da matriz das entradas do lado da oferta(<preço>, <volume>, <timestamp>)
    bids = matriz da matriz das entradas do lado da demanda(<preço>, <volume>, <timestamp>)

Obter negociações recentes

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

Entrada:

pair = par de ativos que deseja obter informações sobre as negociações
since = retorna dados de negociação desde o ID fornecido (opcional.  exclusivo)

Resultado: matriz de nome de par e dados das negociação recentes

<pair_name> = nome do par
    matriz da matriz das entradas(<preço>, <volume>, <hora>, <compra/venda>, <mercado/limite>, <diversos>)
last = id para ser usado como since ao solicitar novos dados de negociação

Obter dados recentes de spread

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

Entrada:

pair = par de ativos que deseja obter dados de spread
since = retorna dados de spread desde o ID fornecido (opcional.  inclusivo)

Resultado: matriz de nome de par e dados de spread

<pair_name> = nome do par
    matriz da matriz das entradas(<hora>, <oferta>, <demanda>)
last = id para ser usado como since ao solicitar novos dados de spread

Nota: "since" é inclusivo, portanto, todos os dados retornados com o mesmo tempo que o conjunto anterior devem substituir todas as entradas do conjunto anterior naquele momento

Dados de usuários privados

Obter saldo da conta

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

Resultado: matriz de nomes dos ativos e valor do saldo

Obter saldo para negociação

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

Entrada:

aclass = classe do ativo (opcional):
    moeda (padrão)
asset = ativo base usado para determinar o saldo (padrão = ZUSD)

Resultado: matriz de informações sobre saldo para negociação

eb = saldo equivalente (saldo combinado de todas as moedas)
tb = saldo para negociação (saldo combinado de todas as moedas de capital próprio)
m = quantidade de margem de posições abertas
n = lucro/perda líquida não realizada de posições abertas
c = custo base de posições abertas
v = avaliação flutuante atual de posições abertas
e = capital próprio = saldo para negociação + lucro/perda líquida não realizada
mf = margem livre = capital próprio - margem inicial (margem máxima disponível para abrir novas posições)
ml = nível de margem = (capital próprio / margem inicial) * 100

Nota: As taxas utilizadas para a avaliação flutuante são o ponto médio dos melhores preços de compra e venda

Obter ordens abertas

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

Entrada:

trades = se deve ou não incluir negociações na saída(opcional.  padrão = falso)
userref = restringir os resultados a um determinado ID de referência do usuário (optional)

Resultado: matriz de informações da ordem em matriz aberta com txid como chave

refid = ID da transação do pedido de referência que criou esta ordem
userref = ID de referência do usuário
status = status da ordem:
    pending = entrada da ordem no livro pendente
    open = ordem aberta
    closed = ordem fechada
    canceled = ordem cancelada
    expired = ordem expirada
opentm = unix timestamp de quando a ordem foi aberta
starttm = unix timestamp da hora de início da ordem (ou 0 se não definida)
expiretm = unix timestamp da hora de fechamento da ordem (ou 0 se não definida)
descr = informações de descrição da ordem
    pair = par de ativos
    type = tipo de ordem (compra/venda)
    ordertype = tipo de ordem (Ver Adicionar ordem padrão)
    price = preço primário
    price2 = preço secundário
    leverage = quantidade de alavancagem
    order = descrição da ordem
    close = descrição da ordem com fechamento condicional (caso configurado)
vol = volume da ordem (moeda base, a menos que viqc configurado em oflags)
vol_exec = volume executado (moeda base, a menos que viqc configurado em oflags)
cost = custo total (moeda de cotação, a menos que viqc configurado em oflags)
fee = taxa total (moeda de cotação)
price = preço médio (moeda de cotação, a menos que viqc configurado em oflags)
stopprice = preço de stop (moeda de cotação, para trailing stops)
limitprice = preço limite de ativação (moeda de cotação, quando uma ordem do tipo limite for ativada)
misc = lista delimitada por vírgulas de informações diversas
    stopped = ativada por preço de stop
    touched = ativada por preço de toque
    liquidated = liquidação
    partial = execução parcial
oflags = lista delimitada por vírgulas de sinalizadores de ordem
    viqc = volume na moeda de cotação
    fcib = preferir taxa na moeda base (padrão em caso de venda)
    fciq = preferir taxa na moeda de cotação (padrão em caso de compra)
    nompp = sem proteção de preço do mercado
trades = matriz dos IDs de negociação relacionados à ordem (caso as informações forem solicitadas e os dados estiverem disponíveis)

Nota: Salvo disposição em contrário, os custos, taxas, preços e volumes estão na escala do par de ativos, não na escala da moeda. Por exemplo, se o par de ativos usar um tamanho de lote que tenha uma escala de 8, o volume usará uma escala de 8, mesmo se a moeda representada tiver apenas uma escala de 2. Da mesma forma, se a escala de preços do par de ativos for 5 , a escala permanecerá como 5, mesmo se a moeda subjacente tiver uma escala de 8.

Obter ordens fechadas

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

Entrada:

trades = se deve ou não incluir negociações na saída(opcional.  padrão = falso)
userref = restringir os resultados a um determinado ID de referência do usuário (optional)
start = unix timestamp inicial ou tx id da ordem dos resultados (opcional.  exclusivo)
end = unix timestamp final ou tx id da ordem dos resultados (optional.  inclusivo)
ofs = offset do resultado
closetime = qual hora usar (opcional)
    abertura
    fechamento
    ambos (padrão)

Resultado: matriz de informações da ordem

closed = matriz de informações da ordem.  Veja Obter ordens abertas.  Campos adicionais:
    closetm = unix timestamp de quando a ordem foi fechada
    reason = informações adicionais sobre status (caso exista)
count = quantidade de informações disponível sobre a ordem que corresponde aos critérios

Nota: As horas dadas pelos tx ids da ordem são mais precisas do que os unix timestamps. Se o tx id de uma ordem é dado pela hora, a hora de abertura da ordem é usada

Consultar informações de ordens

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

Entrada:

trades = se deve ou não incluir negociações na saída(opcional.  padrão = falso)
userref = restringir os resultados a um determinado ID de referência do usuário (opcional)
txid = lista delimitada por vírgulas dos ids de transação a consultar informações (máximo de 50)

Resultado: matriz associativa de informações das ordens

<order_txid> = informações da ordem.  Veja Obter ordens abertas/Obter ordens fechadas

Obter histórico de negociações

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

Entrada:

type = tipo de negociação (opcional)
    all = todos os tipos (padrão)
    any position = qualquer posição (aberta ou fechada)
    closed position = posições que foram fechadas
    closing position = qualquer negociação fechando toda ou parte de uma posição
    no position = negócios não posicionais
trades = se deve ou não incluir negociações relacionadas à posição na saída (opcional. padrão = falso)
start = unix timestamp inicial ou tx id de negociação dos resultados (opcional.  exclusivo)
end = unix timestamp final ou tx id de negociação dos resultados (opcional.  inclusivo)
ofs = offset do resultado

Resultado: matriz de informações das negociações

trades = matriz de informações das negociações com txid como chave
    ordertxid = ordem responsável pela execução da negociação
    pair = par de ativos
    time = unix timestamp da negociação
    type =tipo de ordem (compra/venda)
    ordertype = tipo de ordem
    price = preço médio em que a ordem foi executada (moeda de cotação)
    cost = custo total da ordem (moeda de cotação)
    fee = taxa total (moeda de cotação)
    vol = volume (moeda base)
    margin = margem inicial (moeda de cotação)
    misc = lista delimitada por vírgulas de informações diversas
        closing = negociação fecha toda ou parte de uma posição
count = quantidade de informações sobre negociações disponíveis que corresponde aos critérios

Se a negociação abrir uma posição, os campos a seguir também estarão presentes nas informações de negociação:

    posstatus = status da posição (aberta/fechada)
    cprice = preço médio da porção fechada da posição (moeda de cotação)
    ccost = custo total da parte fechada da posição (moeda de cotação)
    cfee = taxa total da porção fechada da posição (moeda de cotação)
    cvol = taxa total da porção fechada da posição (moeda de cotação)
    cmargin =margem total liberada na parte fechada da posição (moeda de cotação)
    net = lucro/perda líquida da porção fechada da posição (moeda de cotação, escala da moeda de cotação)
    trades = lista de negociações de fechamento para posição (se disponível)

Nota:

  • Salvo disposição em contrário, os custos, taxas, preços e volumes estão na escala do par de ativos, não na escala da moeda.
  • As horas fornecidas pelos IDs de negociação são mais precisas do que os unix timestamps.

Consultar informações sobre negociações

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

Entrada:

txid = lista delimitada por vírgulas de ids de transação a consultar informações (máximo de 20)
trades = se deve ou não incluir negociações relacionadas à posição na saída (opcional.  padrão = falso)

Resultado: matriz associativa de informações sobre negociações

<trade_txid> = informações da negociação.  Veja Obter histórico de negociações

Obter posições abertas

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

Entrada:

txid = lista delimitada por vírgulas de ids de transação para restringir a saída
docalcs = se deve ou não incluir os cálculos de lucros/perdas (opcional.  padrão = falso)

Resultado: matriz associativa de informação da posição aberta

<position_txid> = informação sobre posição aberta
    ordertxid = ordem responsável pela execução da negociação
    pair = par de ativos
    time = unix timestamp da negociação
    type = tipo de ordem usada para abrir posição (compra/venda)
    ordertype = tipo de ordem usada para abrir posição
    cost = custo de abertura da posição (moeda de cotação a menos que viqc configurado em oflags)
    fee = taxa de abertura da posição (moeda de cotação)
    vol = volume da posição (moeda base unless viqc set in oflags)
    vol_closed = position volume closed (base currency a menos que viqc configurado em oflags)
    margin = margem inicial (moeda de cotação)
    value = valor atual da posição restante (se docalcs solicitado.  moeda de cotação)
    net = lucro/perda não realizadada posição restante (se docalcs solicitado.  moeda de cotação, escala da moeda de cotação)
    misc = lista delimitada por vírgulas de informações diversas
    oflags = lista delimitada por vírgulas de sinalizadores da ordem
        viqc = volume na moeda de cotação

Nota: Salvo disposição em contrário, os custos, taxas, preços e volumes estão na escala do par de ativos, não na escala da moeda.

Obter informações dos registros (ledgers)

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

Entrada:

aclass = classe do ativo (opcional):
    moeda (padrão)
asset = lista delimitada por vírgulas dos ativos a serem exibidos na saída (opcional. padrão = todos)
type = tipo de registro a consultar (opcional):
    todos (padrão)
    depósito
    retirada
    negociação
    margem
start = unix timestamp inicial ou ledger id dos resultados (opcional.  exclusivo)
end = unix timestamp final ou ledger id dos resultados (opcional.  inclusivo)
ofs = offset do resultado

Resultado: matriz associativa de informações dos registros

<ledger_id> = informações do registro
    refid = id de referência
    time = unix timestamp do registro
    type = tipo de entrada do registro
    aclass = classe do ativo
    asset = ativo
    amount = valor da transação
    fee = taxa da transação
    balance = saldo resultante

Nota: A hora dada pelos ledger ids são mais precisas que unix timestamps.

Consultar registros (ledgers)

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

Entrada:

id = lista delimitada por vírgulas de ledger ids a consultar informações (máximo de 20)

Resultado: matriz associativa de informações dos registros

<ledger_id> = informações do registro.  Ver Obter informações dos registros (ledgers)

Obter volume de negociação

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

Entrada:

pair = lista delimitada por vírgulas dos pares de ativos a obter informações sobre taxas (opcional)
fee-info = se deve ou não incluir informações de taxa nos resultados (opcional)

Resultado: matriz associativa

currency = moeda de volume
volume = volume de desconto atual
fees = matriz dos pares de ativos e informações de nível de taxa (se solicitado)
    fee = taxa atual em porcentagem
    minfee = taxa mínima para o par (se não for taxa fixa)
    maxfee = taxa máxima para o par (se não for taxa fixa)
    nextfee = taxa do próximo nível para o par (se não for taxa fixa.  nulo se já está no nível de taxa mais baixo)
    nextvolume = nível de volume do próximo nível (se não for taxa fixa.  nulo se já está no nível de taxa mais baixo)
    tiervolume = nível de volume do nível atual (se não for taxa fixa.  nulo se já está no nível de taxa mais baixo)
fees_maker = matriz de pares de ativos e informações de nível da taxa maker (se solicitado) para quaisquer pares com taxas maker/taker
    fee = taxa atual em porcentagem
    minfee = taxa mínima para o par (se não for taxa fixa)
    maxfee = taxa máxima para o par (se não for taxa fixa)
    nextfee = próximo nível de taxa para o par (se não for taxa fixa.  nulo se já está no nível de taxa mais baixo)
    nextvolume = nível de volume do próximo nível (se não for taxa fixa.  nulo se já está no nível de taxa mais baixo)
    tiervolume = nível de volume do nível atual (se não for taxa fixa.  nulo se já está no nível de taxa mais baixo)

Nota: Se um par de ativos possui uma tabela de taxas maker/taker, o lado taker será dado em "fees" e o lado maker em "fees_maker". Para pares que não possuem uma tabela maker/taker, as taxas serão dadas em "fees".

Solicitar relatório de exportação

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

Entrada:

description = informações da descrição do relatório
report = tipo de relatório (trades/ledgers)
format = (CSV/TSV) (opcional.  padrão = CSV)
fields = lista delimitada por vírgulas de campos para incluir no relatório (opcional.  padrão = todos)
    Nota: opções de campo são baseadas no tipo de relatório
    <trades>
        ordertxid
        time
        ordertype
        price
        cost
        fee
        vol
        margin
        misc
        ledgers
    <ledgers>
        refid
        time
        type
        aclass
        asset
        amount
        fee
        balance
asset = lista delimitada por vírgulas dos ativos a serem exibidos na saída (opcional.  padrão = todos)
starttm = hora inicial do relatório (opcional.  padrão = um ano atrás):
    <n> = unix timestamp da hora inicial
endtm = hora final do relatório (opcional.  padrão = agora):
    <n> = unix timestamp da hora final

Resultado:

id = id do relatório

Erros: os erros incluem (mas não estão limitados a):

EGeneral:Invalid arguments
EQuery:Unknown asset pair

Obter status da exportação

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

Entrada:

report = tipo de relatório (trades/ledgers)

Resultado: matriz dos relatórios e suas informações

id = id do relatório
descr = informações da descrição do relatório
format = (CSV/TSV)
report = tipo de relatório (trades/ledgers)
status = status da solicitação:
    Queued = o relatório está aguardando criação
    Processing = o relatório está sendo processado
    Processed = o relatório foi processado
createdtm = hora de criação do relatório
expiretm = hora de expiração do relatório
starttm = hora inicial do relatório
endtm = hora final do relatório
completedtm = hora em que o relatório foi concluído
aclass = classe do ativo
asset = lista delimitada por vírgula de ativos
fields = lista delimitada por vírgulas de campos
    <trades>
        txid
        ordertxid
        pair
        time
        type
        ordertype
        price
        cost
        fee
        vol
        margin
        misc
        ledgers
    <ledgers>
        txid
        refid
        time
        type
        aclass
        asset
        amount
        fee
        balance

Erros: os erros incluem (mas não estão limitados a):

EGeneral:Invalid arguments

Obter relatório de exportação

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

Entrada:

id = id do relatório

Resultado: arquivo zip binário contendo o relatório

Nota: Se o tipo de conteúdo não for aplicativo/json, texto ou html, o relatório binário será transmitido de volta. Se for um desses tipos você pode esperar um erro na resposta.

Nota: Dependendo do tipo de relatório e dos campos escolhidos, o relatório pode conter os seguintes campos. Campos com * estão sempre presentes.

<trades>
    *txid
    ordertxid
    *pair
    time
    *type
    ordertype
    price
    cost
    fee
    vol
    margin
    misc
    ledgers
<ledgers>
    *txid
    refid
    time
    type
    aclass
    asset
    amount
    fee
    balance

Remover relatório de exportação

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

Entrada:

type = tipo de remoção (cancelamento/exclusão)
id = id do relatório

Resultado: bool com resultado de chamada

cancel/delete = tipo de remoção

Nota: O tipo de remoção de exclusão só pode ser usado para um relatório que já foi processado. Use o cancelamento para relatório em espera ou processamento.

Erros: os erros incluem (mas não estão limitados a):

EGeneral:Invalid arguments
WExport:Already processed

Nota: Caso uma operação de cancelamento ou exclusão já tenha ocorrido para um determinado ID de relatório, você receberá o erro WExport:Already processed.




Negociação privada de usuários

Adicionar ordem padrão

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

Entrada:

pair = par de ativos
type = tipo de ordem (compra/venda)
ordertype = tipo de ordem:
    mercado
    limitada (price = preço limite)
    stop-loss (price = preço de stop loss)
    take-profit (price = preço de take profit)
    stop-loss-profit (price = preço de stop loss, price2 = preço de take profit)
    stop-loss-profit-limit (price = preço de stop loss, price2 = preço de take profit)
    stop-loss-limit (price = preço de ativação do stop loss, price2 = preço limite ativado)
    take-profit-limit (price = preço de ativação do take profit, price2 = preço limite ativado)
    trailing-stop (price = offset do trailing stop)
    trailing-stop-limit (price = offset do trailing stop, price2 = offset do limite ativado)
    stop-loss-and-limit (price = preço de stop loss, price2 = preço limite)
    settle-position
price = preço (opcional.  dependente de ordertype)
price2 = preço secundário (opcional.  dependente de ordertype)
volume = volume da ordem em lotes
leverage = quantidade de alavancagem desejada (opcional.  padrão = nenhuma)
oflags = lista delimitada por vírgulas de sinalizadores de ordem (opcional):
    viqc = volume na moeda de cotação (não disponível para ordens alavancadas)
    fcib = preferir taxa na moeda base
    fciq = preferir taxa na moeda de cotação
    nompp = sem proteção de preço de mercado
    post = ordem post only (disponível quando ordertype = limit)
starttm = hora de início programado (opcional):
    0 = agora (padrão)
    +<n> = programar hora de início <n> segundos a partir de agora
    <n> = unix timestamp da hora de início
expiretm = hora de expiração (opcional):
    0 = sem expiração (padrão)
    +<n> = expirar <n> segundos a partir de agora
    <n> = unix timestamp da hora de expiração
userref = id de referência do usuário.  número assinado de 32-bit.  (opcional)
validate = apenas validar entradas. não enviar ordem (opcional)

Ordem de fechamento opcional para adicionar ao sistema quando a ordem for executada:
    close[ordertype] = tipo de ordem
    close[price] = preço
    close[price2] = preço secundário

Resultado:

descr = informações de descrição da ordem
    order = descrição da ordem
    close = descrição de ordem de fechamento condicional (se o fechamento condicional estiver configurado)
txid = matriz dos ids de transação para ordem (se a ordem foi adicionada com sucesso)

Erros: os erros incluem (mas não estão limitados a):

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 (exchange não tem fundos suficientes para permitir a negociação com margem)
EOrder:Insufficient funds (fundos do usuário insuficientes)
EOrder:Order minimum not met (volume muito baixo)
EOrder:Orders limit exceeded
EOrder:Positions limit exceeded
EOrder:Rate limit exceeded
EOrder:Scheduled orders limit exceeded
EOrder:Unknown position

Nota:

  • Ver Obter pares de ativos negociáveis para especificações sobre preços, lotes e alavancagem dos pares de ativos.
  • Os preços podem ser precedidos por+, - ou # para significar o preço como um valor relativo (com exceção dos trailing stops, que são sempre relativos). + adiciona o valor ao preço atual oferecido. - subtrai o valor do preço atual oferecido. # adicionará ou subtrairá o valor ao preço atual oferecido, dependendo do seu tipo e do tipo de ordem utilizado. Os preços relativos podem ser sufixados com um % para indicar o valor relativo como uma porcentagem do preço oferecido.
  • Para ordens usando alavancagem, 0 pode ser usado para o volume preencher automaticamente o volume necessário para fechar sua posição.
  • Se você receber o erro "EOrder:Trading agreement required", consulte a página de gerenciamento de chaves da API para obter mais detalhes.

Cancelar ordem aberta

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

Entrada:

txid = id da transação

Resultado:

count = número de ordens canceladas
pending = se configurado, ordem(ns) está/estão com cancelamento pendente

Nota: txid pode ser um id de referência do usuário.

Depósitos e retiradas de usuários privados

NOTA:Esta é uma API de depósitos e retiradas provisória e pode ser atualizada no futuro. Consulte a página principal API para obter mais informações sobre o uso da API.

Obter métodos de depósito

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

Entrada:

aclass = classe do ativo (opcional):
    moeda (padrão)
asset = ativo sendo depositado

Resultado: matriz associativa dos métodos de depósito:

method = nome do método de depósito
limit = valor líquido máximo que pode ser depositado no momento ou false, se não houver limite
fee = quantidade de taxas que serão pagas
address-setup-fee = se o método tem ou não uma taxa de configuração de endereço (opcional)

Obter endereços de depósito

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

Entrada:

aclass = classe do ativo (opcional):
    moeda (padrão)
asset = ativo sendo depositado
method = nome do método de depósito
new = se deve ou não gerar um novo endereço (opcional. padrão = false)

Resultado: matriz associativa dos endereços de depósito:

address = endereço de depósito
expiretm = hora de expiração em unix timestamp, ou 0 se não expirar
new = se o endereço já foi ou não usado

Obter status de depósitos recentes

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

Entrada:

aclass = classe do ativo (opcional):
    moeda (padrão)
asset = ativo sendo depositado
method = nome do método de depósito

Resultado: matriz da matriz de informações do status do depósito:

method = nome do método de depósito usado
aclass = classe do ativo
asset = código X-ISO4217-A3 do ativo
refid = id de referência
txid = id do método de transação
info = informações do método de transação 
amount = montante depositado
fee = taxas pagas
time = unix timestamp de quando a solicitação foi feita
status = status do depósito
status-prop = propriedades de status adicionais (se disponível)
    return = uma transação de devolução iniciada pela Kraken
    onhold = depósito em espera, aguardando revisão
Para obter informações sobre o status, consulte os estados das transações financeiras do IFEX.

Obter informações de retirada

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

Entrada:

aclass = classe do ativo (opcional):
    moeda (padrão)
asset = ativo sendo retirado
key = nome da chave de retirada, conforme configurado em sua conta
amount = montante a retirar

Resultado: matriz associativa de informações da retirada:

method = nome do método de retirada que será usado
limit = valor líquido máximo que pode ser retirado agora
fee = quantidade de taxas que serão pagas

Retirar fundos

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

Entrada:

aclass = classe do ativo (opcional):
    moeda (padrão)
asset = ativo sendo retirado
key = nome da chave de retirada, conforme configurado em sua conta
amount = montante a retirar, incluindo taxas

Resultado: matriz associativa da transação de retirada:

refid = id de referência

Obter status de retiradas recentes

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

Entrada:

aclass = classe do ativo (opcional):
    moeda (padrão)
asset = ativo sendo retirado
method = nome do método de retirada (opcional)

Resultado: matriz da matriz de informações do status da retirada:

method = nome do método de retirada utilizado
aclass = classe do ativo
asset = código X-ISO4217-A3 do ativo
refid = id de referência
txid = id do método de transação
info = informações do método de transação
amount = montante retirado
fee = taxas pagas
time = unix timestamp de quando a solicitação foi feita
status = status da retirada
status-prop = propriedades de status adicionais (se disponíveis)
    cancel-pending = cancelamento solicitado
    canceled = cancelada
    cancel-denied = cancelamento solicitado, mas foi negado
    return = uma transação de devolução iniciada pela Kraken; não pode ser cancelada
    onhold = a retirada está em espera, aguardando revisão
Para obter informações sobre o status, consulte os estados das transações financeiras do IFEX.

Solicitar cancelamento de retirada

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

Entrada:

aclass = classe do ativo (opcional):
    moeda (padrão)
asset = ativo sendo retirado
refid = id de referência da retirada

Resultado: true se bem-sucedida

Nota: O cancelamento não pode ser garantido. Isso fará uma solicitação de cancelamento. Dependendo da etapa em que se encontra o processo de retirada, talvez não seja possível cancelar a mesma.

Transferência de carteira

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

Entrada:

asset = ativo sendo retirado
to = para qual carteira os fundos estão sendo transferidos
    Carteira Futures (padrão)
from = de qual carteira os fundos estão sendo transferidos
    Carteira Spot (padrão)
amount = montante a retirar, incluindo taxas

Resultado: matriz associativa da transação de transferência:

refid = id de referência

Autenticação WebSockets

O cliente da API deve solicitar um "token" de autenticação por meio do seguinte endpoint da REST API "GetWebSocketsToken" para se conectar aos endpoints privados do WebSockets. O token expira a cada 60 minutos.

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

Entrada:

validity = número de minutos que o token é válido (opcional / padrão (máx): 60 minutos)
permissions = lista separada por vírgula de feeds permitidos (opcional / padrão: todos)

O token resultante deve ser fornecido no campo "token" de qualquer nova assinatura privada de feed do WebSocket:

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

Exemplo de clientes API

Abaixo estão exemplos de bibliotecas de códigos de clientes API que podem ser usados ao escrever seu próprio cliente API. Por favor, tenha em mente que nem a Payward nem os autores de terceiros são responsáveis por perdas devido a erros ou uso indevido das APIs. A Payward realizou uma revisão inicial da segurança do código de terceiros antes de listá-los, mas não pode garantir alterações adicionadas desde então. Caso tenha dúvidas, entre em contato com nosso suporte.

C

Veja de autoria de terceiros https://github.com/hANSIc99/Kraken_C_API.

C#

Veja de autoria de terceiros https://bitbucket.org/arrivets/krakenapi.

C++

Veja de autoria de terceiros https://github.com/voidloop/krakenapi.

GO

Veja de autoria de terceiros https://github.com/Beldur/kraken-go-api-client.

Node.JS

Veja de autoria de terceiros https://github.com/nothingisdead/npm-kraken-api.

PERL

Veja de autoria de terceiros http://search.cpan.org/~philippe/Finance-Bank-Kraken-0.1/.

Python 3

Veja de autoria de terceiros https://github.com/veox/python3-krakenex.

Python 2

Veja de autoria de terceiros https://github.com/veox/python2-krakenex.

Ruby

Veja de autoria de terceiros https://github.com/jonatack/kraken_ruby_client.

PHP

A equipe da Kraken forneceu uma biblioteca PHP básica para fazer interface com a REST API da Kraken. A fonte e os exemplos de uso também estão disponíveis no kraken-api-client repositório github da Payward e é MIT licenciado.

Biblioteca

Use esta classe de biblioteca para fazer chamadas para a REST API da Kraken com um cliente PHP. Ela determina automaticamente o caminho de URL correto do método da API, gera um nonce para cada solicitação e adiciona um header assinado usando o segredo da API e o nonce gerado.

<?php 
/** 
* Implementação de referência para a REST API da Kraken.
* 
* Veja https://www.kraken.com/help/api para mais informações.
* 
* 
* 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, EXPRESSOR 
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OFMERCHANTABILITY, 
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALLTHE 
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OROTHER 
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISINGFROM, 
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGSIN 
* 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 usingbeta.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; 
} 
}
Exemplo de uso

Abaixo estão as etapas envolvidas na inicialização da classe de biblioteca KrakenAPI, bem como vários exemplos de chamadas de método da API. Os conjuntos de resultados formatados são mostrados abaixo de cada snippet de chamada da API.

Inicialização

Inclua o arquivo de biblioteca e forneça sua chave de API e segredo ao instanciar um objeto KrakenAPI.

<?php

require_once 'KrakenAPIClient.php';
$kraken = new KrakenAPI('YOUR API KEY', 'YOUR API SECRET');
Chamadas de método

Consultar uma lista pública de ativos ativos e suas propriedades:

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

Ativos retornados são codificados por seus nomes ISO-4217-A3-X, exemplo de saída:

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

Consultar informações do ticker público para o par XBT/USD:

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

Exemplo de saída:

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 negociações públicas recentes para o par XBT/EUR a partir de 2013-08-07T18:20:42+00:00:

NOTA: o parâmetro 'since' está sujeito a alterações no futuro: sua precisão pode ser modificada e pode não ser mais representativa de um timestamp. A melhor prática é basear-se no valor 'last' retornado no conjunto de resultados.

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

Exemplo de saída:

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 ativos privados:

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

Exemplo de saída:

Array
(
    [error] => Array
        (
        )

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

)

Consultar ordens abertas privadas e incluir negociações relacionadas:

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

Exemplo de saída:

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

Adicionar uma ordem padrão: vender 1.123 XBT/USD @ limite $120

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

Exemplo de saída:

Array
(
    [error] => Array
        (
        )

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

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

        )

)

Adicionar uma ordem padrão: comprar o equivalente a €300 em XBT à mercado em 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);

Exemplo de saída:

Array
(
    [error] => Array
        (
        )

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

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

        )

)

Adicionar uma ordem padrão: comprar 2.12345678 XBTUSD @ limite $101.9901 com alavancagem 2:1, acompanhada de uma ordem stop loss, take profit de venda: stop em -5% de perda, take profit num aumento de preço de +$10 (os preços de stop/loss assinados são determinados automaticamente usando # notação):

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

Exemplo de saída:

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
                )

        )

)