---
title: "Gregas e IV de opções"
method: GET
path: "/api/v2/options/analytics"
tags: ["Opções"]
---

# Gregas e IV de opções

`GET /api/v2/options/analytics`

## Request

- Base URL: `https://brapi.dev`
- URL: `https://brapi.dev/api/v2/options/analytics`
- Auth: HTTP bearer

Retorna a volatilidade implícita e as gregas (delta, gamma, theta, vega e rho) de cada série de um vencimento, calculadas sobre o preço de fechamento.

Use para comparar a IV entre strikes, montar um smile de volatilidade e medir a exposição de uma carteira de opções.

`timeToExpirationYears` usa dias corridos até o vencimento divididos por 365. Por exemplo, 17 dias correspondem a `17 / 365 = 0.04657534`.

`impliedVolatility` é anual, em decimal. Para um dia corrido, use `impliedVolatility / sqrt(365)`. Para `d` dias corridos, use `impliedVolatility * sqrt(d / 365)`.

A divisão por `sqrt(252)` pressupõe 252 pregões por ano. Ela expressa outra convenção diária e não altera o prazo usado no cálculo da opção.

O cálculo usa só o fechamento negociado. Série sem negócio no dia não tem cálculo: os campos calculados vêm `null` e `nullReason` diz o motivo.

`theta` vem por ano. `vega` e `rho` medem o efeito de uma variação de 1,00 na volatilidade e no juro. Divida por 100 para ter o efeito de 1 ponto percentual.

Séries americanas usam árvore binomial. Séries europeias usam Black-Scholes-Merton. `dividendYield` considera só os dividendos anunciados até a data do cálculo.

Disponível no plano Pro. Sem token, aceita só `underlying=PETR4`.

## Query parameters

- `underlying` string, required: Ticker do ativo subjacente: ação, ETF, índice, `DOL` ou `WDO`.
- `expirationDate` string, required: Data de vencimento, no formato YYYY-MM-DD. Veja os vencimentos em `/expirations`.
- `date` string: Data do pregão, no formato YYYY-MM-DD. Padrão: último pregão disponível.
- `side` 'call' | 'put': Filtra por `call` ou `put`. Sem o filtro, retorna os dois.
- `minStrike` number, nullable: Strike mínimo.
- `maxStrike` number, nullable: Strike máximo.
- `limit` integer: Número máximo de séries na resposta. Padrão: todas as séries do filtro.

## Response `200`

Análises retornadas com sucesso.

- OptionAnalyticsResponse
  - `underlying` string, required
  - `expirationDate` string, required
  - `date` string, required
  - `analytics` OptionAnalyticsSnapshot[], required
    - `symbol` string, required: Código da série de opção. Ex.: PETRF783.
    - `underlyingSymbol` string, nullable, required: Ativo subjacente da opção. Ex.: PETR4.
    - `side` 'call' | 'put', required: `call` (opção de compra) ou `put` (opção de venda).
    - `market` 'equity' | 'index' | 'currency', required: Mercado da opção: `equity` para ação ou ETF, `index` para índice, `currency` para DOL e WDO.
    - `optionStyle` 'american' | 'european', nullable, required: `american` permite exercício até o vencimento. `european` permite exercício só no vencimento. Nulo quando o cadastro da série não informa o estilo.
    - `strike` number, nullable, required: Preço de exercício da opção.
    - `allocationRoundLot` integer, nullable, required: Lote padrão de negociação. Em geral, 100 nas opções sobre ações.
    - `expirationDate` string, required: Data de vencimento, no formato YYYY-MM-DD.
    - `firstTradeDate` string, required: Data do primeiro pregão da série, no formato YYYY-MM-DD.
    - `lastTradeDate` string, required: Data do último pregão da série, no formato YYYY-MM-DD.
    - `date` string, required: Data do pregão, no formato YYYY-MM-DD.
    - `model` 'black-scholes-merton' | 'barone-adesi-whaley' | 'cox-ross-rubinstein' | 'unsupported', required: Modelo de cálculo. Séries americanas usam árvore binomial (`cox-ross-rubinstein`). Séries europeias usam `black-scholes-merton`. `unsupported` quando o estilo da opção é desconhecido.
    - `priceSource` 'close' | 'referencePrice' | 'none', required: Preço usado para calcular a IV. Aqui é sempre `close` ou `none`. Sem negócio no dia, não há cálculo.
    - `underlyingPrice` number, nullable, required: Preço do ativo subjacente usado no cálculo.
    - `optionPrice` number, nullable, required: Preço da opção usado para calcular a volatilidade implícita.
    - `riskFreeRate` number, nullable, required: Taxa livre de risco anual, em decimal. Ex.: 0.105 para 10,5%.
    - `dividendYield` number, nullable, required: Yield contínuo dos dividendos anunciados até a data do cálculo. `0` sem dividendo anunciado. Não inclui estimativas.
    - `timeToExpirationYears` number, nullable, required: Dias corridos até o vencimento divididos por 365, inclusive em anos bissextos.
    - `impliedVolatility` number, nullable, required: Volatilidade implícita anual, em decimal. O cálculo usa tempo em dias corridos dividido por 365.
    - `delta` number, nullable, required: Variação do prêmio para 1 unidade de variação no ativo subjacente.
    - `gamma` number, nullable, required: Variação do delta para 1 unidade de variação no ativo subjacente.
    - `theta` number, nullable, required: Variação do prêmio com a passagem do tempo, por ano.
    - `vega` number, nullable, required: Variação do prêmio para 1,00 de variação na volatilidade. Divida por 100 para 1 ponto percentual.
    - `rho` number, nullable, required: Variação do prêmio para 1,00 de variação na taxa de juro. Divida por 100 para 1 ponto percentual.
    - `confidence` 'high' | 'medium' | 'low' | 'none', required: Confiança do cálculo. `none` indica IV e gregas nulas, com o motivo em `nullReason`.
    - `nullReason` string, nullable, required: Motivo dos campos calculados nulos. Ex.: `no_trades`, `missing_underlying_price`, `iv_not_converged`.
    - `openInterest` number, nullable, required: Contratos em aberto na série, na última apuração até a data pedida.
    - `openInterestChange` number, nullable, required: Variação de contratos em aberto desde a apuração anterior.
    - `openInterestDate` string, nullable, required: Data da apuração usada, no formato YYYY-MM-DD. Pode ser anterior à data do pregão.
  - `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.
- `500`: Erro interno do servidor.

## Changes

- **2026-08-29** `40fae0b2d5fb`: 3 info
  - added the required property `analytics/items/openInterest` to the response with the `200` status
  - added the required property `analytics/items/openInterestChange` to the response with the `200` status
  - added the required property `analytics/items/openInterestDate` to the response with the `200` status
- **2026-08-25** `297945b14cad`: 1 warning
  - added the new `currency` enum value to the `analytics/items/market` response property for the response status `200`
- **2026-06-02** `abb7cb3b8676`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/brapi-dev/apis/brapi-api-do-mercado-financeiro-brasileiro/changes/api/v2/options/analytics/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)
