# Opções sobre Futuros
URL: /docs/futuros/opcoes.mdx

Como usar a API de opções sobre futuros (boi, café, milho, soja e outros). Veja os termos, o passo a passo e qual endpoint usar.

***

title: Opções sobre Futuros
description: >-
Como usar a API de opções sobre futuros (boi, café, milho, soja e outros).
Veja os termos, o passo a passo e qual endpoint usar.
full: true
keywords: brapi, api, opções sobre futuros, BGI, ICF, CCM, SJC, calls, puts, vencimento, strike
openGraph:
title: Opções sobre Futuros
description: >-
Como usar a API de opções sobre futuros, com passo a passo e exemplos.
type: website
locale: pt\_BR
lastUpdated: '2026-05-21T12:00:00.000Z'
lang: pt-BR
-----------

import { Callout } from 'fumadocs-ui/components/callout';
import { Card, Cards } from 'fumadocs-ui/components/card';
import { Step, Steps } from 'fumadocs-ui/components/steps';
import { Tab, Tabs } from 'fumadocs-ui/components/tabs';

Opções **sobre futuros** são opções cujo ativo é um contrato futuro (e não
uma ação ou índice). Na bolsa brasileira, os principais são:

* **Boi gordo** (`BGI`)
* **Café arábica** (`ICF`)
* **Milho** (`CCM`)
* **Soja** (`SJC`)
* Outros menores: `CNL`, `D11`–`D17` (DI), `ETH`, `GLD`, `ISP`, `SOY`.

<Callout type="info">
  Esta seção é para opções **sobre futuros**. Para opções de **ações,
  ETFs e índices** (PETR4, VALE3, BOVA11 etc.), veja
  [Opções](/docs/opcoes).
</Callout>

## Cobertura e atualização

* **Histórico:** cerca de **1 ano**, atualizado após o pregão.
* **Quando atualiza:** **após as 19h** (horário de Brasília).
* **Contratos:** opções listadas sobre futuros (commodities e financeiros).
* **Fuso horário:** `America/Sao_Paulo`. O campo `date` é um número (Unix
  em segundos).

## Termos

* **Ativo (`underlyingAsset`):** o código do **futuro** que serve de base
  (ex.: `BGI`, `ICF`).
* **Código da opção (`symbol`):** padrão do mercado
  `{ATIVO}{LETRA_MÊS_FUTURO}{ANO}{C|P}{STRIKE×100}`. Ex.:
  `BGIH27C028550` = call sobre BGI, vencimento março/2027, strike
  R$ 285,50.
* **Estilo (`optionStyle`):** `american` (pode exercer a qualquer momento)
  ou `european` (só no vencimento). Opções sobre commodities são quase
  sempre **american**.
* **Tipo (`optionType`):** `call` (compra) ou `put` (venda).
* **Strike (`strike`):** preço combinado, em reais.
* **Multiplicador (`contractMultiplier`):** vem do futuro. Ex.: opções de
  boi têm multiplicador `330` (arrobas).
* **Lote (`allocationRoundLot`):** quase sempre `1`.
* **Exercício automático (`automaticExercise`):** se `true`, a opção é
  exercida sozinha no vencimento quando vale a pena.

## Quem pode acessar

Opções sobre futuros estão no plano **Pro**, junto com os futuros.

| Plano               | Acesso                |
| ------------------- | --------------------- |
| Sem token (sandbox) | ✅ Só BGI (boi gordo)  |
| Free                | ❌                     |
| Startup             | ❌                     |
| **Pro**             | **✅ Todos os ativos** |

## Comece rápido

Exemplo do fluxo `vencimentos → cadeia → histórico` para opções de **boi
gordo (BGI)**.

<Tabs items={['cURL', 'TypeScript', 'Python']}>
  <Tab value="cURL">
    ```bash
    # 1) Vencimentos disponíveis
    curl -H "Authorization: Bearer $BRAPI_TOKEN" \
      "https://brapi.dev/api/v2/futures/options/expirations?underlying=BGI"

    # 2) Cadeia (calls + puts) de um vencimento
    curl -H "Authorization: Bearer $BRAPI_TOKEN" \
      "https://brapi.dev/api/v2/futures/options/chain?underlying=BGI&expirationDate=2026-05-29"

    # 3) Histórico de uma série
    curl -H "Authorization: Bearer $BRAPI_TOKEN" \
      "https://brapi.dev/api/v2/futures/options/historical?symbol=BGIK26C034300"
    ```
  </Tab>

  <Tab value="TypeScript">
    ```typescript
    const BASE = 'https://brapi.dev/api/v2/futures/options';
    const headers = { Authorization: `Bearer ${process.env.BRAPI_TOKEN}` };

    // 1) Vencimentos
    const exps = await fetch(`${BASE}/expirations?underlying=BGI`, {
      headers,
    }).then((r) => r.json());

    const nextExp = exps.expirations[0];

    // 2) Cadeia
    const chain = await fetch(
      `${BASE}/chain?underlying=BGI&expirationDate=${nextExp}`,
      { headers },
    ).then((r) => r.json());

    // 3) Histórico da série mais próxima do preço
    const atm = chain.series[0];
    const history = await fetch(
      `${BASE}/historical?symbol=${atm.symbol}`,
      { headers },
    ).then((r) => r.json());

    console.log(history);
    ```
  </Tab>

  <Tab value="Python">
    ```python
    import os, requests

    BASE = "https://brapi.dev/api/v2/futures/options"
    headers = {"Authorization": f"Bearer {os.environ['BRAPI_TOKEN']}"}

    # 1) Vencimentos
    exps = requests.get(
        f"{BASE}/expirations", params={"underlying": "BGI"}, headers=headers
    ).json()
    next_exp = exps["expirations"][0]

    # 2) Cadeia
    chain = requests.get(
        f"{BASE}/chain",
        params={"underlying": "BGI", "expirationDate": next_exp},
        headers=headers,
    ).json()

    # 3) Histórico
    atm = chain["series"][0]
    history = requests.get(
        f"{BASE}/historical", params={"symbol": atm["symbol"]}, headers=headers
    ).json()

    print(history)
    ```
  </Tab>
</Tabs>

## Passo a passo

<Steps>
  <Step>
    #### Vencimentos

    Comece em
    [`/api/v2/futures/options/expirations`](/docs/futuros/opcoes/vencimentos)
    com o ativo do subjacente (ex.: `BGI`, `ICF`).
  </Step>

  <Step>
    #### Strikes

    Use
    [`/api/v2/futures/options/strikes`](/docs/futuros/opcoes/precos-de-exercicio)
    para ver os strikes do vencimento. Filtre por `side=call` ou
    `side=put`.
  </Step>

  <Step>
    #### Cadeia

    Use [`/api/v2/futures/options/chain`](/docs/futuros/opcoes/series) para
    todas as séries do vencimento, com último preço.
  </Step>

  <Step>
    #### Histórico

    Quando souber a série, use
    [`/api/v2/futures/options/historical`](/docs/futuros/opcoes/historico).
  </Step>
</Steps>

## Casos comuns

* **Tela de opções de commodity:** `expirations → chain`
* **Filtro por faixa de strike:** `chain?minStrike=X&maxStrike=Y`
* **Backtest de boi/café/milho/soja:** `chain` para escolher a série,
  depois `historical`.

## Perguntas frequentes

<AnswerBox question="Por que close vem null em várias séries?" answer="A maioria das opções sobre futuros tem pouca negociação — só strikes perto do preço atual negociam todo dia. Quando não tem negócio, OHLC fica null. O referencePrice (preço de referência oficial) pode estar preenchido." />

<AnswerBox question="As opções são americanas ou europeias?" answer="Quase sempre americanas — dá para exercer a qualquer momento até o vencimento. O campo optionStyle traz o valor oficial." />

<AnswerBox question="Como ler o symbol BGIH27C028550?" answer="BGI = boi gordo; H = março; 27 = 2027; C = call; 028550 = strike R$ 285,50 (em centavos × 100). Use o campo strike na resposta para o valor em reais." />

<AnswerBox
  question="Tem opções sobre WIN ou WDO?"
  answer="Não. As opções de índice são listadas como opções de IBOV, e as de dólar como opções sobre DOL. Para essas, veja os endpoints de opções de ações."
  relatedEndpoints={[
  { name: 'options/expirations', path: '/api/v2/options/expirations' },
]}
/>

## Endpoints

<Cards>
  <Card href="/docs/futuros/opcoes/vencimentos" title="Vencimentos" description="Vencimentos disponíveis para um ativo." />

  <Card href="/docs/futuros/opcoes/precos-de-exercicio" title="Strikes" description="Strikes disponíveis em um vencimento." />

  <Card href="/docs/futuros/opcoes/series" title="Cadeia" description="Todas as calls e puts de um vencimento com preço e volume." />

  <Card href="/docs/futuros/opcoes/historico" title="Histórico" description="Série diária de uma opção." />
</Cards>


