---
title: "Histórico de preços de ações"
method: GET
path: "/api/v2/stocks/historical"
tags: ["Ações"]
---

# Histórico de preços de ações

`GET /api/v2/stocks/historical`

## Request

- Base URL: `https://brapi.dev`
- URL: `https://brapi.dev/api/v2/stocks/historical`
- Auth: HTTP bearer

Série de preços por pregão com abertura, máxima, mínima, fechamento, fechamento ajustado e volume. Serve para ações, FIIs, BDRs, ETFs, units e índices com histórico.

Use para gráficos, backtests e cálculo de retorno.

Em conversões de ações, use o ticker original para consultar o histórico daquela classe. Por exemplo, AXIA6 mantém seu próprio histórico.

LCAM3 e BRFS3 também mantêm históricos próprios, separados de RENT3 e MBRF3. PRGA3 usa a série de BRFS3. MRFG3 usa MBRF3.

O histórico disponível pode ser consultado mesmo quando o ticker não tem cotação atual.

Defina a janela com `range` e `interval`, por exemplo `range=1y&interval=1d`, ou com `startDate` e `endDate`. O padrão é `range=1mo` e `interval=1d`.

O plano define os valores aceitos em `range` e `interval` e o tamanho máximo da janela por data. Um pedido acima do limite do plano retorna erro 400.

Em intervalos diários, `open`, `high`, `low` e `close` podem vir ajustados. Nesses pontos, `close` coincide com `adjustedClose`. Outros pontos podem trazer `close` sem ajuste ou `adjustedClose` nulo. Os campos `raw*`, quando disponíveis, trazem os preços originais.

Use `adjustedClose` para calcular retorno diário. Ele considera proventos, desdobramentos e grupamentos.

`includeRaw=true` exige o plano Pro. Em intervalos diários, ele adiciona `rawOpen`, `rawHigh`, `rawLow` e `rawClose`, os preços originais sem ajuste. Esses campos podem ser nulos. Intervalos intradiários não trazem campos `raw*`.

## Query parameters

- `symbols` string, required: Tickers separados por vírgula. Ex.: PETR4,VALE3. `requestedSymbol` identifica o ticker enviado e `symbol` identifica os dados retornados.
- `range` '1d' | '2d' | '5d' | '7d' | '1mo' | '3mo' | '6mo' | '1y' | '2y' | '5y' | '10y' | 'ytd' | 'max': Janela relativa. Padrão: 1mo.
- `interval` '1m' | '2m' | '5m' | '15m' | '30m' | '60m' | '90m' | '1h' | '1d' | '5d' | '1wk' | '1mo' | '3mo': Intervalo entre os pontos. Padrão: 1d.
- `startDate` string: Data inicial no formato YYYY-MM-DD.
- `endDate` string: Data final no formato YYYY-MM-DD. Sem `startDate`, `range` conta para trás a partir desta data.
- `sortOrder` 'asc' | 'desc': Ordem dos pontos por data.
- `includeRaw` 'true' | 'false': Inclui os preços originais sem ajuste (`rawOpen`, `rawHigh`, `rawLow`, `rawClose`) em intervalos diários. Exige o plano Pro.

## Response `200`

Histórico recuperado com sucesso.

- StockHistoricalResponse
  - `results` StockHistoricalResult[], required
    - `requestedSymbol` string, required: Ticker enviado na requisição.
    - `symbol` string, required: Ticker usado para os dados retornados.
    - `changed` boolean, required: `true` quando `symbol` difere de `requestedSymbol`.
    - `data` StockHistoricalSeries, required
      - `usedInterval` string, required
      - `usedRange` string, required: Janela usada. Vem como `custom` quando `startDate` é informado.
      - `historicalDataPrice` StockHistoricalPrice[], required
        - `date` integer, required: Data do pregão em Unix timestamp, em segundos.
        - `open` number, nullable, required
        - `high` number, nullable, required
        - `low` number, nullable, required
        - `close` number, nullable, required
        - `volume` number, nullable, required
        - `adjustedClose` number, nullable, required
        - `rawOpen` number, nullable: Preço de abertura original, sem ajuste. Vem com `includeRaw=true` em intervalos diários. Pode ser nulo.
        - `rawHigh` number, nullable: Preço máximo original, sem ajuste. Vem com `includeRaw=true` em intervalos diários. Pode ser nulo.
        - `rawLow` number, nullable: Preço mínimo original, sem ajuste. Vem com `includeRaw=true` em intervalos diários. Pode ser nulo.
        - `rawClose` number, nullable: Preço de fechamento original, sem ajuste. Vem com `includeRaw=true` em intervalos diários. Pode ser nulo.
  - `requestedAt` string, date-time, required: Data e hora da requisição em ISO 8601.
  - `took` integer, required: Tempo de processamento, em milissegundos.

## Other responses

- `400`: Requisição inválida. Confira os parâmetros.
- `401`: Token ausente ou inválido.
- `403`: O plano não inclui este recurso ou parâmetro.
- `404`: Nenhum dado encontrado para o pedido.
- `429`: Limite de requisições excedido.
- `500`: Erro interno do servidor.

## Changes

- **2026-08-29** `40fae0b2d5fb`: 5 info
  - added the new optional `query` request parameter `includeRaw`
  - added the optional property `results/items/data/historicalDataPrice/items/rawClose` to the response with the `200` status
  - added the optional property `results/items/data/historicalDataPrice/items/rawHigh` to the response with the `200` status
  - added the optional property `results/items/data/historicalDataPrice/items/rawLow` to the response with the `200` status
  - …1 more
- **2026-06-15** `73e0f61e068f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/brapi-dev/apis/brapi-api-do-mercado-financeiro-brasileiro/changes/api/v2/stocks/historical/get.md)

---

[API](https://skmtc.dev/brapi-dev/apis/brapi-api-do-mercado-financeiro-brasileiro.md) - [All operations](https://skmtc.dev/brapi-dev/apis/brapi-api-do-mercado-financeiro-brasileiro/llms.txt) - [OpenAPI document](https://skmtc.dev/brapi-dev/apis/brapi-api-do-mercado-financeiro-brasileiro/revisions/7c732d79148a?raw)
