Histórico de Ações
Endpoint para buscar séries históricas OHLCV de um ou mais tickers. Use quando você precisa de preços no tempo, sem carregar cotação atual, dividendos ou módulos financeiros.
O endpoint aceita range/interval ou startDate/endDate, respeitando os
limites do plano. Tickers antigos são resolvidos para o ticker atual quando
houver renome conhecido, e a resposta inclui requestedSymbol, symbol e
changed.
Para snapshot de cotação, use /api/v2/stocks/quote. Para descobrir ou validar
tickers antes da consulta, use /api/v2/tickers.
Authorization
Bearer Token de API obtido no dashboard em brapi.dev/dashboard
In: header
Query Parameters
Tickers separados por vírgula. Ex.: PETR4,VALE3. Tickers antigos são resolvidos para o ticker atual quando houver renome conhecido.
Janela histórica. Padrão: 1mo.
"1d" | "2d" | "5d" | "7d" | "1mo" | "3mo" | "6mo" | "1y" | "2y" | "5y" | "10y" | "ytd" | "max"Granularidade da série. Padrão: 1d.
"1m" | "2m" | "5m" | "15m" | "30m" | "60m" | "90m" | "1h" | "1d" | "5d" | "1wk" | "1mo" | "3mo"Data inicial em YYYY-MM-DD.
Data final em YYYY-MM-DD.
Ordenação dos pontos históricos por data.
"desc""asc" | "desc"Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://brapi.dev/api/v2/stocks/historical?symbols=PETR4%2CVALE3"{
"results": [
{
"requestedSymbol": "PETR4",
"symbol": "PETR4",
"changed": false,
"data": {
"usedInterval": "1d",
"usedRange": "1mo",
"historicalDataPrice": [
{
"date": 1781233200,
"open": 41.06,
"high": 41.53,
"low": 40.82,
"close": 41.18,
"volume": 34081000,
"adjustedClose": 41.18
}
]
}
}
],
"requestedAt": "2026-06-14T05:03:16.000Z",
"took": 907
}{
"error": true,
"message": "Parâmetros inválidos",
"code": "BAD_REQUEST"
}{
"error": true,
"message": "Token de autenticação inválido ou ausente",
"code": "UNAUTHORIZED"
}{
"error": true,
"message": "Você não tem permissão para acessar este recurso",
"code": "FORBIDDEN"
}{
"error": true,
"message": "Recurso não encontrado",
"code": "NOT_FOUND"
}{
"error": true,
"message": "Limite de requisições excedido. Tente novamente mais tarde.",
"code": "RATE_LIMIT_EXCEEDED"
}{
"error": true,
"message": "Erro interno do servidor",
"code": "INTERNAL_SERVER_ERROR"
}