API

AVISO: Para efeitos de demonstração dentro do período de 15 dias grátis do plano PRO, somente o código IBOV estará disponível para consulta em qualquer um dos métodos da API.

O que é

A API é uma interface REST que permite a você obter dados de gráficos, séries históricas e cotações das ações negociadas na BM&FBovespa através do protocolo HTTP, que recebe chamadas realizadas por outro aplicativo, seja ele desenvolvido por você ou por terceiros. A API consiste em uma série de métodos que podem ser executados afim de obter diferentes tipos de dados em diversos formatos.

Se você precisa de dados consistentes de ações da Bolsa para alimentar uma planilha ou qualquer outro aplicativo de análise que utilize cotações atualizadas ou indicadores técnicos, então a API Bitbolsa é ideal para você.

Token de acesso

Para ter acesso à API é preciso obter um token de acesso que será enviado em toda requisição à API. Esse token serve para autenticar você no sistema de forma que dados de gráficos e indicadores solicitados pelos respectivos endpoints, sejam relacionados à sua conta. O token de acesso só precisa ser obtido uma vez, ele é individual e é válido pelo período de vigência da sua assinatura.

Obter o token de acesso é simples, basta fazer o login no site, acessar o menu no canto superior direito e clicar na opção API. O token de acesso é uma string semelhante à esta:

y+bgPGw1P/S4CCiVGHbZx+IadJY6H+1cWReArYE0VTVkUP9oqR6KF2TXAFPm3GB2--F/8ovIzWpc3NKoGLzeotng==

Copie seu token e guarde-o pois você deverá utilizá-lo em todas as suas chamadas à API.

Autenticação

A autenticação na API é feita através do envio do token de acesso no cabeçalho da requisição para cada chamada do serviço da seguinte maneira:

Access-Token: y+bgPGw1P/S4CCiVGHbZx+IadJY6H+1cWReArYE0VTVkUP9oqR6KF2TXAFPm3GB2--F/8ovIzWpc3NKoGLzeotng==

Caso o token seja inválido ou a sua assinatura tenha expirado, a API retornará o status 401 de não autorizado.

Requisição

As requisições à API devem ser feitas na URL:

http://www.bitbolsa.com.br/api

Além do token de acesso, as requisições devem incluir o cabeçalho Accept, que irá definir qual o formato da resposta que você espera da API. Exemplo:

Accept: application/json

Resposta

Atualmente a API responde nos formatos texto text/plain e JSON application/json. No formato texto as linhas são separadas por LF e as colunas são separadas por vírgula, este formato é conhecido como CSV (comma separated values).

Os códigos de status retornados pela API podem ser:

  • 200: OK - a requisição foi recebida e os dados estão no corpo da resposta de acordo com o formato requisitado.
  • 401: Não autorizado - o token de acesso é inválido ou sua assinatura expirou.
  • 405: Requisição inválida - algum dos parâmetros obrigatórios não foi informado, ou o parâmetro enviado é inválido.
  • 500: Erro interno - ocorreu um erro no processamento da requisição e nenhuma resposta será retornada.

Em caso de você receber qualquer status que não seja 200, os detalhes do erro podem ser obtidos através do cabeçalho Api-Error que será retornado na resposta sempre que essa informação estiver disponível. Caso você identifique que existe um erro na API, por favor entre em contato com o nosso suporte através do email: suporte@bitbolsa.com.br.

Métodos

Lista de gráficos (ou setups)

GET /graficos
Parâmetros:

Nenhum

Resposta:

Retorna uma lista com o id e o nome de todos os setups que você tem configurado na sua conta. Este id que é retornado poderá ser usado na chamada do método /grafico para obter os dados e indicadores calculados de acordo com a calibragem deste setup.

Exemplo (texto):
GET /graficos
Access-Token: y+bgPGw1P/S4CCiVGHbZx+IadJY6H+1cWReArYE0VTVkUP9oqR6KF2TXAFPm3GB2--F/8ovIzWpc3NKoGLzeotng==
Accept: text/plain
id,nome
414,Position
412,Principal
417,MM + HiLo
416,Didi
418,Stormer
Exemplo (JSON):
GET /graficos
Access-Token: y+bgPGw1P/S4CCiVGHbZx+IadJY6H+1cWReArYE0VTVkUP9oqR6KF2TXAFPm3GB2--F/8ovIzWpc3NKoGLzeotng==
Accept: application/json
[
    {"id":414,"nome":"Position"},
    {"id":412,"nome":"Principal"},
    {"id":417,"nome":"MM + HiLo"},
    {"id":416,"nome":"Didi"},
    {"id":418,"nome":"Stormer"}
]

Gráfico

GET /grafico
Parâmetros:
  • id: (obrigatório) - id do setup gráfico que você quer buscar, obtido através do método /graficos.
  • s: (obrigatório) - código do ativo. ex.: IBOV, VALE5, USIM5, PETR3, etc.
  • i: (obrigatório) - intervalo, pode ser D, S, M ou A (D=diário, S=semanal, M=mensal, A=anual).
  • f: data inicial do período no formato AAAAMMDD.
  • t: data final do período no formato AAAAMMDD.
  • l: quantidade de barras (candles) a serem buscadas (só será acatado se f e t não forem especificados.
Resposta:

Retorna a série de preços do ativo especificado (abertura, máxima, mínima, fechamento e volume) de acordo com o período ou a quantidade de candles solicitada, juntamente com todos os indicadores devidamente calculados que estiverem configurados no setup especificado.

Exemplo (texto):
GET /grafico?s=petr4&i=d&id=414&l=10
Access-Token: y+bgPGw1P/S4CCiVGHbZx+IadJY6H+1cWReArYE0VTVkUP9oqR6KF2TXAFPm3GB2--F/8ovIzWpc3NKoGLzeotng==
Accept: text/plain
PETR4,PETROBRAS PN   (VST),DAILY,414
data,abertura,máxima,mínima,fechamento,volume,bandas-de-bollinger.banda-superior,bandas-de-bollinger.banda-inferior,grafico-de-precos.volume,medias-moveis.media-movel-curta,estocastico.%k,trix.media,trix.trix,bandas-de-bollinger.media,estocastico.%d,medias-moveis.media-movel-longa,ifr-indice-de-forca-relativa.ifr,medias-moveis.media-movel-sinal,didi-index.venda,movimento-direcional.adx,didi-index.compra,movimento-direcional.-di,movimento-direcional.+di
2014-06-23 00:00,18.75,18.75,18.30,18.30,14243200,18.098176,19.219324,14243200.000000,18.515183,68.704713,0.357307,0.422899,18.658750,77.544086,18.300000,51.110101,18.300000,-0.849750,36.144977,0.007917,19.396486,25.837608
2014-06-24 00:00,18.29,18.89,17.49,17.64,53702700,17.704218,19.438282,53702700.000000,18.077592,40.565375,0.364677,0.375732,18.571250,63.142452,17.640000,40.036170,17.640000,-0.765250,34.277535,-0.357917,29.403512,19.114956
2014-06-25 00:00,17.20,17.77,17.13,17.29,48188800,17.203366,19.541634,48188800.000000,17.683796,18.089185,0.333825,0.287547,18.372500,42.453091,17.290000,35.303716,17.290000,-0.595000,33.984424,-0.629167,32.616182,16.827504
2014-06-26 00:00,17.47,17.57,17.01,17.32,23117400,16.916435,19.411065,23117400.000000,17.501898,10.589661,0.275103,0.187020,18.163750,23.081407,17.320000,36.059521,17.320000,-0.394750,34.147470,-0.747083,31.420470,15.029010
2014-06-27 00:00,17.25,17.39,17.10,17.20,16548800,16.665132,19.277368,16548800.000000,17.350949,10.676194,0.198632,0.083924,17.971250,13.118347,17.200000,34.195275,17.200000,-0.227250,34.290135,-0.701250,29.551223,14.134913
2014-06-30 00:00,17.36,17.55,17.04,17.29,20855400,16.496812,19.188188,20855400.000000,17.320474,12.629989,0.116603,-0.006441,17.842500,11.298615,17.290000,37.043234,17.290000,-0.099000,33.077696,-0.572500,26.395181,15.975876
2014-07-01 00:00,17.35,17.45,16.92,17.19,22773700,16.544292,18.688208,22773700.000000,17.255237,12.103602,0.035791,-0.085426,17.616250,11.803262,17.190000,35.075421,17.190000,0.152250,32.615160,-0.389583,25.972650,14.177559
2014-07-02 00:00,17.19,17.33,16.97,17.12,28512800,16.691465,18.146035,28512800.000000,17.187619,12.352383,-0.039714,-0.152972,17.418750,12.361991,17.120000,33.617013,17.120000,0.375750,32.210441,-0.218750,23.885496,13.038254
2014-07-03 00:00,16.90,17.50,16.85,17.50,26374700,16.996347,17.641153,26374700.000000,17.343809,18.352836,-0.099670,-0.189605,17.318750,14.269607,17.500000,47.454165,17.500000,0.505750,30.156467,-0.048750,20.488123,14.903761
2014-07-04 00:00,17.43,17.55,17.35,17.50,9431900,17.041358,17.561142,9431900.000000,17.421905,37.555734,-0.141853,-0.205127,17.301250,22.753651,17.500000,47.454165,17.500000,0.568250,27.865370,0.072083,19.512182,15.384690
Exemplo (JSON):
GET /grafico?s=petr4&i=d&id=414&f=20140703&t=20140705 
Access-Token: y+bgPGw1P/S4CCiVGHbZx+IadJY6H+1cWReArYE0VTVkUP9oqR6KF2TXAFPm3GB2--F/8ovIzWpc3NKoGLzeotng==
Accept: application/json
{
    "codigo":"PETR4",
    "intervalo":"DAILY",
    "nome":"PETROBRAS PN   (VST)",
    "grafico":"414",
    "dados":[
        {
            "data":"2014-07-03 00:00",
            "abertura":16.90,
            "maxima":16.90,
            "minima":16.90,
            "fechamento":16.90,
            "volume":26374700,
            "bandas-de-bollinger.banda-superior":0,
            "bandas-de-bollinger.banda-inferior":0,
            "grafico-de-precos.volume":2.63747E7,
            "medias-moveis.media-movel-curta":0,
            "estocastico.%k":0,
            "trix.media":0,
            "trix.trix":0,
            "bandas-de-bollinger.media":0,
            "estocastico.%d":0,
            "medias-moveis.media-movel-longa":17.5,
            "ifr-indice-de-forca-relativa.ifr":0,
            "medias-moveis.media-movel-sinal":17.5,
            "didi-index.venda":0,
            "movimento-direcional.adx":0,
            "didi-index.compra":0,
            "movimento-direcional.-di":0,
            "movimento-direcional.+di":0
        },
        {
            "data":"2014-07-04 00:00",
            "abertura":17.43,
            "maxima":17.43,
            "minima":17.43,
            "fechamento":"17.43",
            "volume":9431900,
            "bandas-de-bollinger.banda-superior":0,
            "bandas-de-bollinger.banda-inferior":0,
            "grafico-de-precos.volume":9431900,
            "medias-moveis.media-movel-curta":0,
            "estocastico.%k":0,
            "trix.media":0,
            "trix.trix":0,
            "bandas-de-bollinger.media":0,
            "estocastico.%d":0,
            "medias-moveis.media-movel-longa":17.5,
            "ifr-indice-de-forca-relativa.ifr":0,
            "medias-moveis.media-movel-sinal":17.5,
            "didi-index.venda":0,
            "movimento-direcional.adx":0,
            "didi-index.compra":0,
            "movimento-direcional.-di":0,
            "movimento-direcional.+di":0
        }
    ]
}

Série histórica

GET /series
Parâmetros:
  • s: (obrigatório) - código do ativo. ex.: IBOV, VALE5, USIM5, PETR3, etc.
  • i: (obrigatório) - intervalo, pode ser D, S, M ou A (D=diario, S=semanal, M=mensal, A=anual).
  • f: data inicial do período no formato AAAAMMDD.
  • t: data final do período no formato AAAAMMDD.
  • l: quantidade de barras (candles) a serem buscadas (só será acatado se f e t não forem especificados.
Resposta:

Retorna a série de preços do ativo especificado (abertura, máxima, mínima, fechamento e volume) de acordo com o período ou a quantidade de candles solicitada.

Exemplo (texto):
GET /series?s=vale5&i=d&l=10 
Access-Token: y+bgPGw1P/S4CCiVGHbZx+IadJY6H+1cWReArYE0VTVkUP9oqR6KF2TXAFPm3GB2--F/8ovIzWpc3NKoGLzeotng==
Accept: text/plain
VALE5,VALE PNA  (VST),DAILY
data,abertura,máxima,mínima,fechamento,volume
2014-06-13 00:00,25.69,25.79,25.51,25.75,16680500
2014-06-16 00:00,25.75,25.79,25.45,25.47,12427800
2014-06-17 00:00,25.47,25.50,25.27,25.49,6720800
2014-06-18 00:00,25.52,25.84,25.37,25.84,14548800
2014-06-20 00:00,25.75,25.90,25.67,25.78,7812500
2014-06-23 00:00,26.17,26.42,26.04,26.17,11603400
2014-06-24 00:00,26.03,26.26,25.70,25.80,9635000
2014-06-25 00:00,25.71,26.01,25.55,25.82,8097100
2014-06-26 00:00,26.14,26.68,26.11,26.38,15579300
2014-06-27 00:00,26.36,26.54,26.05,26.21,7767400
Exemplo (JSON):
GET /series?s=usim5&i=d&l=2 
Access-Token: y+bgPGw1P/S4CCiVGHbZx+IadJY6H+1cWReArYE0VTVkUP9oqR6KF2TXAFPm3GB2--F/8ovIzWpc3NKoGLzeotng==
Accept: application/json
{
    "codigo":"USIM5",
    "intervalo":"DAILY",
    "nome":"USIMINAS PNA  (VST)",
    "dados":[
        {
            "data":"2014-06-26 00:00",
            "abertura":"8.03",
            "maxima":"8.03",
            "minima":"8.03",
            "fechamento":"8.03",
            "volume":4125500
        },
        {
            "data":"2014-06-27 00:00",
            "abertura":"7.94",
            "maxima":"7.94",
            "minima":"7.94",
            "fechamento":"7.94",
            "volume":7395300
        }
    ]
}

Última

GET /ultima
Parâmetros:
  • s: (obrigatório) - cõdigo dos ativos separados por vírgula.
Resposta:

Retorna o último preço dos ativos especificados (abertura, máxima, mínima, fechamento e volume).

Exemplo (texto):
GET /ultima?s=PETR4,PETR3
Access-Token: y+bgPGw1P/S4CCiVGHbZx+IadJY6H+1cWReArYE0VTVkUP9oqR6KF2TXAFPm3GB2--F/8ovIzWpc3NKoGLzeotng==
Accept: text/plain
codigo,data,abertura,máxima,mínima,fechamento,volume
PETR3,2014-06-27 00:00,16.16,16.33,16.01,16.05,4514300
PETR4,2014-06-27 00:00,17.43,17.55,17.35,17.50,9431900
Exemplo (JSON):
GET /ultima?s=PETR4,PETR3
Access-Token: y+bgPGw1P/S4CCiVGHbZx+IadJY6H+1cWReArYE0VTVkUP9oqR6KF2TXAFPm3GB2--F/8ovIzWpc3NKoGLzeotng==
Accept: application/json
[
    {
        "codigo":"PETR3",
        "data": "2014-06-27 00:00",
        "abertura":"16.16",
        "maxima":"16.16",
        "minima":"16.16",
        "fechamento":"16.16",
        "volume":4514300
    },
    {
        "codigo":"PETR4",
        "data": "2014-06-27 00:00",
        "abertura":"17.43",
        "maxima":"17.43",
        "minima":"17.43",
        "fechamento":"17.43",
        "volume":9431900
    }
]

Referências

A arquitetura REST é um padrão de exposição de serviços largamente utiizado na Internet. Existem várias opções de linguagens e suas respectivas implementações que permitem acessar serviços distribuídos nesse padrão.

Colocamos aqui algumas referências de clientes REST das linguagens e aplicativos mais comumns que podem ser baixados gratuitamente.

Microsoft Excel

.NET

$0.00