Google Script - Endpoints públicos da API REST

Última atualização: 1 de abr. de 2025

Nossos endpoints públicos da API REST são acessíveis via uma simples solicitação HTTP (assim como uma página da web é solicitada via um navegador web), então um cliente de API para importar dados de mercado para uma Planilha Google pode ser implementado com apenas algumas linhas de código Google Script.

Instalação

  1. 1

    Crie uma nova Planilha Google ou abra uma planilha existente.

  2. 2

    Abra o editor de script através do menu Extensões -> Apps Script.

  3. 3

    Exclua o código padrão que é exibido (Selecionar Tudo e depois Excluir/Backspace, por exemplo).

  4. 4

    Copie/Cole o código da API do Google Script (mostrado abaixo) no editor de script.

  5. 5

    Opcional - Adicione quaisquer funções personalizadas adicionais que você precise (para chamar diferentes endpoints ou retornar diferentes campos JSON, por exemplo).

  6. 6

    Salve o Código do Google Script através do ícone (Salvar projeto).

    General_SaveIcon_10052020.png

Uso

A função KAPI_Public() é responsável por criar a URL apropriada e fazer a solicitação HTTP para a API. A função KAPI_Public() pode ser chamada diretamente inserindo o seguinte (ou similar, dependendo do endpoint e dos parâmetros) em uma célula da Planilha Google:

bash

Bash

=KAPI_Ticker("XBTUSD,ETHEUR,LTCUSD,XDGXBT,XDGUSD")

=KAPI_Depth("XDGUSD", "5")

A função KAPI_Public() retorna a resposta JSON original da API, como o seguinte para o exemplo de endpoint Depth acima:

bash

Bash

{"error":[],"result":{"XETHZUSD":{"asks":[["231.74000","4.386",1583402326],["231.75000","27.337",1583402277],["231.76000","5.887",1583402311],["231.79000","36.280",1583402334],["231.80000","50.000",1583402299]],"bids":[["231.70000","18.534",1583402335],["231.67000","22.109",1583402335],["231.61000","7.930",1583402335],["231.60000","33.841",1583402335],["231.54000","115.017",1583402334]]}}}

Para colocar os campos/valores individuais em células separadas dentro da Planilha Google, funções personalizadas adicionais podem ser chamadas para analisar a resposta JSON, como as funções de exemplo KAPI_Ticker() e KAPI_Depth():

bash

Bash

=KAPI_Ticker("XBTUSD,ETHEUR,LTCUSD,XDGXBT,XDGUSD")

=KAPI_Depth("XDGUSD", "5")

que exibiria os resultados de forma semelhante ao seguinte, onde os dados seriam acessíveis a qualquer uma das funções padrão do Google Sheets (SOMA, MÉDIA, CONTAGEM, etc.):

API_GoogleSheetExample_10052020.png

Código do Google Script para Endpoints Públicos:

Função Geral a ser incluída para chamadas a todos os Endpoints Públicos:

bash

Bash

function KAPI_Public(endpoint, parameters) {
  http_response = UrlFetchApp.fetch(
    'https://api.kraken.com/0/public/' + endpoint + '?' + parameters
  )
  api_data = http_response.getContentText()
  return api_data
}

Exemplos de funções específicas para um determinado endpoint:

Profundidade:

bash

Bash

function KAPI_Depth(currency_pair, depth) {
  api_data = JSON.parse(
    KAPI_Public("Depth", "pair=" + currency_pair + "&count=" + depth)
  )
  api_results = new Array()
  for (count = 0; count < parseInt(depth); count++) {
    api_results.push([
      api_data['result'][currency_pair]['bids'][count][0], 
      api_data['result'][currency_pair]['bids'][count][1], 
      api_data['result'][currency_pair]['asks'][count][0], 
      api_data['result'][currency_pair]['asks'][count][1]
    ])
  }
  return api_results
}

Ticker:

bash

Bash

function KAPI_Ticker(currency_pairs) {
  api_data = JSON.parse(
    KAPI_Public("Ticker", "pair=" + currency_pairs)
  )
  api_results = new Array()
  for (name in api_data['result']) {
    api_results.push([
      name, 
      api_data['result'][name]['a'][0], 
      api_data['result'][name]['a'][2], 
      api_data['result'][name]['b'][0], 
      api_data['result'][name]['b'][2], 
      api_data['result'][name]['c'][0], 
      api_data['result'][name]['c'][1]
    ])
  }
  return api_results
}

Para usar os scripts acima, basta anexar o script genérico ao script específico do endpoint:

bash

Bash

function KAPI_Public(endpoint, parameters) {
  http_response = UrlFetchApp.fetch(
    'https://api.kraken.com/0/public/' + endpoint + '?' + parameters
  )
  api_data = http_response.getContentText()
  return api_data
}

function KAPI_Depth(currency_pair, depth) {
  api_data = JSON.parse(
    KAPI_Public("Depth", "pair=" + currency_pair + "&count=" + depth)
  )
  api_results = new Array()
  for (count = 0; count < parseInt(depth); count++) {
    api_results.push([
      api_data['result'][currency_pair]['bids'][count][0], 
      api_data['result'][currency_pair]['bids'][count][1], 
      api_data['result'][currency_pair]['asks'][count][0], 
      api_data['result'][currency_pair]['asks'][count][1]
    ])
  }
  return api_results
}

Os separadores decimais e de milhares mostrados neste artigo podem diferir dos formatos exibidos em nossas plataformas de negociação. Consulte nosso artigo sobre como usamos pontos e vírgulas para obter mais informações.

Precisa de mais ajuda?