Opções
Esta API foi desenhada para o fluxo mais comum de consulta de opções:
- escolher o ativo subjacente
- descobrir os vencimentos
- ver os preços de exercício
- listar as séries negociadas
- consultar gregas e volatilidade implícita
- pegar o histórico de uma série específica
Esta seção cobre opções sobre ações, ETFs e índices (PETR4, VALE3, BOVA11, IBOV, etc.). Para opções sobre futuros (boi gordo, café, milho, soja e similares), veja Opções sobre Futuros.
O que esta API entrega
Dados EOD de opções. Ou seja: preço de abertura, máxima, mínima, média, fechamento, bid, ask, negócios, volume, volume financeiro do dia, gregas e volatilidade implícita calculadas.
O que esta API não entrega nesta versão
Não há dados em tempo real, interesse em aberto, livro de ofertas, superfície de volatilidade ou rank/percentil de volatilidade implícita.
Cobertura e frequência
- Histórico: a partir de 2009, com consolidação diária após o fechamento.
- Atualização: o arquivo EOD é processado após ~19h de Brasília (BRT/BRT-3). Até lá, o "último pregão disponível" corresponde ao pregão anterior.
- Contratos cobertos: opções de ações, ETFs e índices (ex.: IBOV) listados na bolsa brasileira.
- Fuso horário: todas as datas estão em
America/Sao_Paulo. Em respostas de preços/histórico,dateé timestamp Unix em segundos; em respostas de analytics,datevem emYYYY-MM-DD. - Formato de datas em query params:
YYYY-MM-DD.
Acesso por plano
Opções fazem parte do plano Pro. O sandbox abaixo permite experimentação sem token para PETR4.
| Plano | Acesso a opções |
|---|---|
| Sandbox (sem token) | ✅ Apenas PETR4 |
| Free | ❌ |
| Startup | ❌ |
| Pro | ✅ Todos os ativos |
Termos que você vai ver
- Ativo subjacente: a ação, ETF ou índice da opção. Ex.:
PETR4. - Vencimento (
expirationDate): a data em que a opção vence. Ex.:2026-05-15. - Preço de exercício / strike: preço combinado na opção. Ex.:
34. - Série: a combinação prática que o mercado negocia. Na resposta da API,
aparece como
symbol,expirationDate,sideestrike. symbol: o ticker da série (ex.:PETRE370), composto pelo ativo subjacente + letra do mês/tipo + identificador do strike (veja abaixo).- Opção de compra (
call): direito de comprar o ativo subjacente. - Opção de venda (
put): direito de vender o ativo subjacente. - Titular: quem compra a opção. Paga o prêmio e exerce o direito se for vantajoso.
- Lançador: quem vende a opção. Recebe o prêmio e assume a obrigação.
- Prêmio: preço pago/recebido pela opção. É o que aparece como
close,bid,askno histórico. - Opção americana: pode ser exercida a qualquer momento até o vencimento (padrão de opções de ações).
- Opção europeia: só pode ser exercida no vencimento (padrão de opções de índice, como IBOV).
Formato do symbol
O ticker de uma série segue o padrão da bolsa brasileira:
{ATIVO}{LETRA_MÊS}{ID_STRIKE}.
- Ativo: as 4 letras do subjacente (ex.:
PETR). - Letra do mês + tipo:
A–Lpara calls (A = janeiro, B = fevereiro, ..., L = dezembro).M–Xpara puts (M = janeiro, N = fevereiro, ..., X = dezembro).
- ID do strike: número de 1 a 3 dígitos atribuído pela bolsa para aquele strike no vencimento.
Exemplos:
PETRE370→ PETR4, call (E= maio), strike mapeado como370.PETRQ28→ PETR4, put (Q= maio), strike mapeado como28.
O ID do strike não é o valor em reais. Para saber o strike em reais,
use /api/v2/options/chain ou /api/v2/options/strikes.
Início rápido
Exemplo completo do fluxo vencimentos → séries negociadas → histórico para
opções de PETR4.
# 1) Descubra os vencimentos disponíveis
curl "https://brapi.dev/api/v2/options/expirations?underlying=PETR4"
# 2) Liste as séries negociadas em um vencimento
curl "https://brapi.dev/api/v2/options/chain?underlying=PETR4&expirationDate=2026-05-15"
# 3) Consulte o histórico de uma série específica
curl "https://brapi.dev/api/v2/options/historical?symbol=PETRE370&expirationDate=2026-05-15"const BASE = 'https://brapi.dev/api/v2/options';
const token = process.env.BRAPI_TOKEN; // dispensável para PETR4 no sandbox
const headers = token ? { Authorization: `Bearer ${token}` } : undefined;
// 1) Vencimentos
const expirations = await fetch(
`${BASE}/expirations?underlying=PETR4`,
{ headers },
).then((r) => r.json());
const nextExpiration = expirations.expirations[0];
// 2) Séries negociadas no vencimento
const chain = await fetch(
`${BASE}/chain?underlying=PETR4&expirationDate=${nextExpiration}`,
{ headers },
).then((r) => r.json());
// 3) Histórico da série ATM mais próxima
const firstSeries = chain.series[0];
const history = await fetch(
`${BASE}/historical?symbol=${firstSeries.symbol}&expirationDate=${firstSeries.expirationDate}`,
{ headers },
).then((r) => r.json());
console.log(history);import os
import requests
BASE = "https://brapi.dev/api/v2/options"
token = os.getenv("BRAPI_TOKEN") # dispensável para PETR4 no sandbox
headers = {"Authorization": f"Bearer {token}"} if token else {}
# 1) Vencimentos
expirations = requests.get(
f"{BASE}/expirations", params={"underlying": "PETR4"}, headers=headers
).json()
next_exp = expirations["expirations"][0]
# 2) Séries negociadas no vencimento
chain = requests.get(
f"{BASE}/chain",
params={"underlying": "PETR4", "expirationDate": next_exp},
headers=headers,
).json()
# 3) Histórico da primeira série
first_series = chain["series"][0]
history = requests.get(
f"{BASE}/historical",
params={"symbol": first_series["symbol"], "expirationDate": first_series["expirationDate"]},
headers=headers,
).json()
print(history)Fluxo recomendado
Descubra os vencimentos
Comece em /api/v2/options/expirations quando
você só sabe o ativo, como PETR4, e ainda não sabe qual vencimento usar.
Descubra os preços de exercício
Depois de escolher o vencimento, use
/api/v2/options/strikes para saber
quais strikes existem naquele vencimento.
Liste as séries negociadas
Use /api/v2/options/chain para montar a tela que a
maioria das pessoas espera ver: séries negociadas por vencimento, com preço
e volume.
Busque o histórico de uma série
Quando você já sabe qual série quer acompanhar, use
/api/v2/options/historical com symbol e
expirationDate. Se precisar, informe também strike.
Consulte gregas e IV
Use /api/v2/options/analytics para a foto EOD
de um vencimento, ou
/api/v2/options/analytics/history
para a série temporal de uma opção específica.
Casos de uso mais comuns
- Tela simples de opções no seu app:
expirations -> chain - Filtro por strike:
expirations -> strikes -> chain - Gregas e volatilidade implícita por vencimento:
expirations -> analytics - Gráfico de uma opção específica:
chain -> historical - Backtest ou persistência diária: escolher a série via
chaine depois buscar o histórico emhistoricaleanalytics/history
Quando você pode pular etapas
- Se você já sabe o vencimento, pode ir direto para
strikesouchain. - Se você já sabe a série, pode ir direto para
historical. - Se você quer só montar uma tela simples por vencimento, pode pular
strikese ir direto parachain.
Perguntas frequentes
Receitas prontas
Guias e tutoriais publicados no blog com código pronto para copiar:
Opções para iniciantes
Entenda calls, puts, strikes e vencimentos do zero, em português.
Covered call passo a passo
Como usar opções para gerar renda extra sobre ações que você já tem.
Cadeia de Opções em Python
Tutorial completo: monte uma options chain visual com calls e puts.
Backtest de Opções
Backtest completo de covered call e cash-secured put com PETR4.
Backtesting com Python
Puxe histórico da brapi e teste estratégias em notebook Python.
Limitações conhecidas e o que vem por aí
Hoje, a API não entrega:
- Cotação intraday (time & sales, snapshot do livro).
- Superfície de volatilidade.
- Rank/percentil de volatilidade implícita.
- Interesse em aberto (open interest).
- Opções flexíveis (FLEX) e exercício antecipado detalhado.
No roadmap:
- Snapshots intraday durante o pregão.
- Interesse em aberto por série.
Se algo aqui é bloqueante para o seu caso, conta pra gente pelo suporte — a ordem de prioridade depende muito do que os clientes pedem.
Sandbox sem token
Para facilitar a experimentação, todos os endpoints de opções aceitam consultas no sandbox sem token, restritas a opções de PETR4:
GET /api/v2/options/expirations,/strikese/chain: apenas comunderlying=PETR4.GET /api/v2/options/analytics: apenas comunderlying=PETR4.GET /api/v2/options/historical: apenas comsymbolcomeçando comPETR(ou seja, opções do subjacente PETR4).GET /api/v2/options/analytics/history: apenas comsymbolcomeçando comPETR.
Para qualquer outro ativo, é necessário autenticar com um token do plano Pro.
Endpoints
Vencimentos
Descubra os vencimentos disponíveis para um ativo.
Preços de Exercício
Veja os strikes disponíveis em um vencimento.
Séries Negociadas
Liste as séries negociadas de um vencimento com preço e volume.
Gregas e IV
Consulte volatilidade implícita e gregas por vencimento.
Histórico de Gregas e IV
Consulte a série temporal de gregas e IV de uma opção.
Histórico
Consulte o histórico diário de uma série específica.
Opções sobre Futuros →
Para opções sobre boi gordo, café, milho, soja e outros futuros.