Cotações por ticker
Retorna cotações para um único ticker — cotação atual, série histórica (diária ou intraday) ou dados para gráfico com presets prontos.
Suporta ações, fundos listados, BDRs, ETFs e indicadores macro (SELIC, IPCA, USD).
As cotações são fornecidas com 15 minutos de atraso em relação ao pregão. Os parâmetros type, interval, start_date e end_date estão disponíveis apenas para planos com acesso a cotações com 15 minutos de atraso.
Para planos sem esse acesso, a API retorna apenas cotações do dia anterior (D-1), sem parâmetros adicionais — somente adjusted é aceito.
Quando usar
- Obter a cotação atual de um ativo (
type=current) - Construir gráficos OHLCV com presets prontos (
type=chart) - Montar séries temporais diárias ou intraday (
type=historical) - Fazer backtests e análises de performance com preços ajustados (
adjusted=true)
Parâmetros de requisição
| Parâmetro | Local | Descrição | Obrigatório |
|---|---|---|---|
[ticker] | URL | Ticker do ativo. Ex.: PETR4, HGLG11, IBOV. | Obrigatório |
type | Query | Tipo de consulta: current, historical ou chart. Padrão: historical. | Opcional |
interval | Query | Intervalo em segundos (mínimo 60). Ignorado quando type=chart. Padrão: 86400 (diário). | Opcional |
start_date | Query | Data inicial. Formato: YYYY-MM-DD. Ignorado quando type=chart. | Opcional |
end_date | Query | Data final. Formato: YYYY-MM-DD. Ignorado quando type=chart. | Opcional |
adjusted | Query | Se true, retorna preços ajustados por eventos corporativos. | Opcional |
Limites de intervalo
intervalmínimo: 60 segundos.- Intervalos intraday (
60–86399) comstart_dateeend_date: janela máxima de 5 dias. - Intervalos diários (
86400ou mais): sem limite de janela.
Comportamento por type
type=current
Retorna a cotação spot (último preço disponível) como objeto único.
type=historical (padrão)
Retorna uma lista de cotações:
interval=86400(ou omitido): série diária.intervaldiferente de86400: série intraday (ex.:interval=60para candles de 1 minuto).
type=chart
Retorna um objeto chart com presets prontos — ignora interval, start_date e end_date:
| Preset | Período | Intervalo |
|---|---|---|
1d | Hoje | Intraday 60s |
5d | Últimos 5 pregões | Intraday 60s |
1M | Últimos 30 dias | Diário |
6M | Últimos 180 dias | Diário |
1Y | Últimos 365 dias | Diário |
5Y | Últimos 1825 dias | Diário |
Ajustado vs não ajustado
adjusted=false(padrão): série bruta, como negociada no pregão.adjusted=true: série ajustada por eventos corporativos (desdobramentos, grupamentos, proventos etc.). Datapoints incluemadjustment_factor; o dia corrente usaadjustment_factor = 1.
Para gráficos de longo prazo e cálculo de retornos, prefira adjusted=true.
Para conferência operacional do dia, adjusted=false costuma ser suficiente.
Resposta
| Código | Descrição |
|---|---|
| 200 | Retorna as cotações. |
| 400 | Parâmetros ausentes ou inválidos. |
| 401 | Não autorizado. |
| 404 | Sem dados ou ticker não encontrado. |
Campos de cada datapoint
| Campo | Tipo | Descrição |
|---|---|---|
date | string (ISO 8601) | Data/hora de referência da cotação. |
open_price | number | Preço de abertura. |
close_price | number | Preço de fechamento. |
highest_price | number | Maior preço no período. |
lowest_price | number | Menor preço no período. |
volume | number | Volume financeiro negociado. |
currency | string | Moeda da cotação (ex.: BRL). |
variation | number | Variação percentual no período. |
variation_value | number | Variação em valor absoluto. |
adjustment_factor | number | Fator de ajuste por eventos corporativos. Presente quando adjusted=true; dia corrente usa 1. |
Formato por type
current: objeto único com os campos acima.historical: lista de objetos com os campos acima.chart: objeto{ "chart": { "1d": [...], "5d": [...], "1M": [...], "6M": [...], "1Y": [...], "5Y": [...] } }onde cada array contém datapoints com os mesmos campos.
Exemplo — type=current
{
"date": "2026-04-22T18:30:00.000Z",
"open_price": 32.16,
"close_price": 32.45,
"highest_price": 32.60,
"lowest_price": 31.90,
"volume": 757726088,
"currency": "BRL",
"variation": 0.0090,
"variation_value": 0.29
}
Exemplo — type=historical
[
{
"date": "2026-04-22T22:00:00.000Z",
"open_price": 32.16,
"close_price": 32.00,
"highest_price": 32.18,
"lowest_price": 31.90,
"volume": 757726088,
"currency": "BRL",
"variation": -0.0050,
"variation_value": -0.16,
"adjustment_factor": 0.8680821961067703
}
]
Exemplo — type=chart (resumido)
{
"chart": {
"1d": [
{
"date": "2026-04-22T13:00:00.000Z",
"open_price": 32.10,
"close_price": 32.15,
"highest_price": 32.20,
"lowest_price": 32.05,
"volume": 12500000,
"currency": "BRL",
"variation": 0.0016,
"variation_value": 0.05
}
],
"5d": [],
"1M": [],
"6M": [],
"1Y": [],
"5Y": []
}
}
- Use
start_dateeend_datepara limitar payload e acelerar respostas no modohistorical. - Para dashboards, cacheie a última resposta e atualize periodicamente.
type=charté ideal para UI com seletores de período — os presets já vêm prontos.- Para consultas de múltiplos tickers em uma única chamada, use Cotações em lote.