/api/sd/options/chain
GETDegradadoSTALE

Cadeia de opções (uma corretora)

Call e put lado a lado para cada strike de um vencimento em uma corretora: contratos em aberto, volume, preço de marcação, IV de marcação / de compra / de venda e gregas, conforme publicados pela corretora.

GET/api/sd/options/chain
Degradado. O endpoint reporta qualidade dos dados STALE

Requisição

Parâmetros de consulta

NomeTipoObrigatórioPadrãoValores aceitosDescrição
coinstringObrigatório——Símbolo da moeda, sem distinção entre maiúsculas e minúsculas (por exemplo, `BTC`). Valores ausentes ou malformados retornam 400. Exemplo: BTC
exchangestringObrigatório—deribit, binance, bybit, okx, gate, coincallID da corretora. `all` não é aceito aqui: uma cadeia pertence a uma única corretora. Exemplo: okx
expirystringOpcional——Data de vencimento em UTC no formato `YYYY-MM-DD`. Padrão: o vencimento mais próximo. `all` não é aceito.
kindstringOpcional—inverse, linearFamília de contratos quando a corretora lista tanto opções liquidadas em cripto (`inverse`) quanto liquidadas em stablecoin (`linear`). Padrão: a família com os maiores contratos em aberto para esse vencimento.
limitintegerOpcional100≥ 1 · ≤ 500Strikes por página (uma linha = um strike com sua call e sua put).
offsetintegerOpcional0≥ 0 · ≤ 100000Número de strikes a pular.

Exemplo de requisição

curl -s "https://www.coinboss.com/api/sd/options/chain?coin=BTC&exchange=okx"

Campos da resposta

A tabela de campos é gerada a partir de respostas reais, portanto lista exatamente o que o endpoint retorna. Os caminhos usam a[] para itens de array e {*} para objetos indexados por um nome dinâmico, como uma moeda ou uma corretora.

CampoTipoUnidadeDescrição
successboolean—true quando a requisição foi bem-sucedida. Em caso de falha, o corpo é `{ success: false, code, error, request_id }`.
schemastring—ID do esquema desta resposta. Só muda quando um campo existente muda de significado ou de tipo.
nownumbermsHorário do servidor em que a resposta foi montada.
coinstring—Símbolo da moeda (em maiúsculas).
exchangestring—ID da corretora (em minúsculas).
expirystring—Data de vencimento (UTC), `YYYY-MM-DD`, ou `all`.
expiry_tsnumbermsHorário de vencimento.
days_leftnumberdaysDias até o vencimento.
kindstring—Família de contratos: `inverse` (liquidados em cripto) ou `linear` (liquidados em stablecoin).
kinds_availablearray—Famílias de contratos que a corretora lista para este vencimento.
kinds_available[]string—Famílias de contratos que a corretora lista para este vencimento.
expiries_availablearray—Datas de vencimento que atualmente têm contratos.
expiries_available[]string—Datas de vencimento que atualmente têm contratos.
underlyingstring—Subjacente da família de contratos.
settlestring—Moeda de liquidação da família de contratos.
contract_sizenumbercoinQuantidade da moeda subjacente por contrato.
underlying_pricenumberUSDPreço a termo / do subjacente publicado pela corretora para este vencimento.
index_pricenumberUSDPreço do índice spot usado para a conversão em USD (nos agregados, a mediana dos preços do índice das próprias corretoras).
total_strikesnumber—Strikes disponíveis para este vencimento antes da paginação.
limitnumber—Limite de linhas aplicado.
offsetnumber—Linhas puladas.
returnednumber—Strikes retornados nesta página.
rowsarray—Uma linha por strike, com sua call e sua put.
rows[]object—Uma linha por strike, com sua call e sua put.
rows[].strikenumberUSDPreço de exercício (strike).
rows[].callobject—Contrato de call neste strike; `null` quando a corretora não lista nenhum.
rows[].call.instrumentstring—Nome do contrato como a corretora o escreve.
rows[].call.oi_contractsnumbercontractsContratos em aberto em número de contratos, como a corretora os conta.
rows[].call.oi_coinnumbercoinContratos em aberto em unidades da moeda subjacente.
rows[].call.oi_usdnumberUSDContratos em aberto em valor nocional em USD: quantidade de moedas × preço do índice spot. Unilateral.
rows[].call.vol_contracts_24hnumbercontractsVolume de 24h em contratos, como a corretora os conta.
rows[].call.vol_coin_24hnumbercoinQuantidade negociada em 24h em unidades da moeda subjacente.
rows[].call.vol_usd_24hnumberUSDVolume nocional de 24h: quantidade de moedas negociada × preço atual do índice spot. Não é o volume de prêmios.
rows[].call.vol_premium_usd_24hnumber|nullUSDVolume de prêmios de 24h (preço da opção × quantidade) onde a corretora o publica; `null` nos demais casos. Nunca é somado ao volume nocional.
rows[].call.mark_pricenumber|null—Preço de marcação da opção em sua unidade de cotação (moeda, para contratos liquidados em cripto).
rows[].call.mark_price_usdnumber|nullUSDPreço de marcação da opção convertido para USD.
rows[].call.mark_ivnumber%Volatilidade implícita ao preço de marcação.
rows[].call.bid_ivnumber|null%Volatilidade implícita na melhor compra; `null` quando a corretora não a publica.
rows[].call.ask_ivnumber|null%Volatilidade implícita na melhor venda; `null` quando a corretora não a publica.
rows[].call.deltanumber|null—Delta conforme publicado pela corretora; `null` quando não publicado.
rows[].call.gammanumber|null—Gamma conforme publicado pela corretora; `null` quando não publicado.
rows[].call.veganumber|null—Vega conforme publicado pela corretora; `null` quando não publicado.
rows[].call.thetanumber|null—Theta conforme publicado pela corretora; `null` quando não publicado.
rows[].call.observed_atnumbermsTimestamp informado pela fonte para os dados.
rows[].putobject—Contrato de put neste strike; `null` quando a corretora não lista nenhum.
rows[].put.instrumentstring—Nome do contrato como a corretora o escreve.
rows[].put.oi_contractsnumbercontractsContratos em aberto em número de contratos, como a corretora os conta.
rows[].put.oi_coinnumbercoinContratos em aberto em unidades da moeda subjacente.
rows[].put.oi_usdnumberUSDContratos em aberto em valor nocional em USD: quantidade de moedas × preço do índice spot. Unilateral.
rows[].put.vol_contracts_24hnumbercontractsVolume de 24h em contratos, como a corretora os conta.
rows[].put.vol_coin_24hnumbercoinQuantidade negociada em 24h em unidades da moeda subjacente.
rows[].put.vol_usd_24hnumberUSDVolume nocional de 24h: quantidade de moedas negociada × preço atual do índice spot. Não é o volume de prêmios.
rows[].put.vol_premium_usd_24hnumber|nullUSDVolume de prêmios de 24h (preço da opção × quantidade) onde a corretora o publica; `null` nos demais casos. Nunca é somado ao volume nocional.
rows[].put.mark_pricenumber—Preço de marcação da opção em sua unidade de cotação (moeda, para contratos liquidados em cripto).
rows[].put.mark_price_usdnumberUSDPreço de marcação da opção convertido para USD.
rows[].put.mark_ivnumber%Volatilidade implícita ao preço de marcação.
rows[].put.bid_ivnumber|null%Volatilidade implícita na melhor compra; `null` quando a corretora não a publica.
rows[].put.ask_ivnumber|null%Volatilidade implícita na melhor venda; `null` quando a corretora não a publica.
rows[].put.deltanumber|null—Delta conforme publicado pela corretora; `null` quando não publicado.
rows[].put.gammanumber|null—Gamma conforme publicado pela corretora; `null` quando não publicado.
rows[].put.veganumber|null—Vega conforme publicado pela corretora; `null` quando não publicado.
rows[].put.thetanumber|null—Theta conforme publicado pela corretora; `null` quando não publicado.
rows[].put.observed_atnumbermsTimestamp informado pela fonte para os dados.
coverageobject—O que está e o que não está incluído nos números. Compare isto antes de comparar totais com outra fonte.
coverage.included_exchangesarray—Fontes cujos dados atualizados estão incluídos.
coverage.included_exchanges[]string—Fontes cujos dados atualizados estão incluídos.
coverage.unavailablearray—Fontes que não puderam ser incluídas, cada uma com um motivo. Nunca são contadas como 0. vazio nas amostras usadas para gerar esta tabela
coverage.stale_excludedarray—Linhas deixadas de fora porque sua última atualização está fora da janela de atualidade. vazio nas amostras usadas para gerar esta tabela
coverage.field_gapsarray—Colunas que uma corretora não publica; elas são `null` para essa corretora.
coverage.field_gaps[]object—Colunas que uma corretora não publica; elas são `null` para essa corretora.
coverage.field_gaps[].exchangestring—ID da corretora (em minúsculas).
coverage.field_gaps[].fieldsarray—Nomes das colunas ausentes.
coverage.field_gaps[].fields[]string—Nomes das colunas ausentes.
coverage.field_gaps[].kindstring—Família de contratos: `inverse` (liquidados em cripto) ou `linear` (liquidados em stablecoin).
methodobject—Descrição em texto simples das fórmulas usadas nesta resposta, uma entrada por campo.
method.chainstring—Nota sobre a fórmula de `chain`, em texto simples.
method.kindstring—Nota sobre a fórmula de `kind`, em texto simples.
method.oi_usdstring—Nota sobre a fórmula de `oi_usd`, em texto simples.
method.mark_pricestring—Nota sobre a fórmula de `mark_price`, em texto simples.
method.ivstring—Nota sobre a fórmula de `iv`, em texto simples.
method.greeksstring—Nota sobre a fórmula de `greeks`, em texto simples.
method.vol_usd_24hstring—Nota sobre a fórmula de `vol_usd_24h`, em texto simples.
method.vol_premium_usd_24hstring—Nota sobre a fórmula de `vol_premium_usd_24h`, em texto simples.
metaobject—Linhagem e atualidade desta resposta.
meta.schemastring—ID do esquema desta resposta. Só muda quando um campo existente muda de significado ou de tipo.
meta.sourcearray—Endpoints públicos de origem dos quais os dados foram coletados.
meta.source[]object—Endpoints públicos de origem dos quais os dados foram coletados.
meta.source[].exchangestring—ID da corretora (em minúsculas).
meta.source[].endpointstring—Endpoint público da fonte que o coletor lê (exibido para fins de linhagem; os clientes nunca o chamam).
meta.observed_atnumbermsTimestamp informado pela fonte para os dados.
meta.received_atnumbermsHorário em que o coletor da CoinBoss recebeu os dados.
meta.fetched_atnumbermsHorário em que esta resposta foi montada.
meta.windowstring—Janela de tempo coberta pelos números.
meta.qualitystring—FRESH, PARTIAL, STALE, BROKEN ou UNAVAILABLE, avaliado a partir dos timestamps dos dados e da cobertura.
meta.is_staleboolean—True quando os dados são mais antigos que sua janela de atualidade.
meta.cache_ttl_snumbersTempo de vida do cache desta resposta.
meta.fallbackstring—O que o endpoint retorna quando o coletor ou uma fonte falha.

Gerada 2026-11-11 23:00 UTC a partir de 3 respostas reais.

Exemplo de resposta

/api/sd/options/chain?coin=BTC&exchange=okx · Resposta real capturada 2026-11-13 03:52:54 UTC. Arrays e mapas longos são encurtados para exibição: rows tinha 45 itens; expiries_available tinha 12 itens.

  • {
    • "success": true,
    • "schema": "coinboss.sd.options/1",
    • "now": 1794541974766,
    • "coin": "BTC",
    • "exchange": "okx",
    • "expiry": "2026-11-13",
    • "expiry_ts": 1794556800000,
    • "days_left": 0.1716,
    • "kind": "inverse",
    • "kinds_available": [
      • "inverse",
      • "linear"
      ],
    • "expiries_available": [
      • "2026-11-13",
      • "2026-11-14",
      • "2026-11-15",
      • "2026-11-16",
      • "2026-11-20",
      • "2026-11-27",
      • "2026-12-04",
      • "2026-12-25"
      ],
    • "underlying": "BTC-USD",
    • "settle": "BTC",
    • "contract_size": 0.01,
    • "underlying_price": 71428.8359576,
    • "index_price": 71417.4,
    • "total_strikes": 45,
    • "limit": 100,
    • "offset": 0,
    • "returned": 45,
    • "rows": [
      • { … 3 },
      • { … 3 }
      ],
    • "coverage": {
      • "included_exchanges": [ … 1 ],
      • "unavailable": [],
      • "stale_excluded": [],
      • "field_gaps": [ … 1 ],
      • "stale_included": [ … 1 ]
      },
    • "method": {
      • "chain": "T-quote for one exchange, one expiry and one contract family: one row per strike (ascending) with the call and put legs; paginated by strike with limit (default…",
      • "kind": "inverse = coin-settled (Deribit BTC/ETH, OKX *-USD); linear = USD/USDT/USDC-settled. When an exchange lists both families for the expiry and kind is omitted, th…",
      • "oi_usd": "sum over contracts of oi_coin x that exchange's spot index price (USDT/USDC treated 1:1 as USD); oi_coin is open interest in units of the underlying coin after …",
      • "mark_price": "exchange-native quote: Deribit/OKX inverse in underlying coin per 1 coin; Binance in USDT per contract (contract_size coins); others in USD per 1 coin. mark_pri…",
      • "iv": "mark_iv / bid_iv / ask_iv in percent as published by the exchange (no-quote sentinels such as 0 or -1 are null)",
      • "greeks": "delta/gamma/vega/theta exactly as published by the exchange (OKX: Black-Scholes greeks in USD terms); never computed by CoinBoss; null where the exchange does n…",
      • "vol_usd_24h": "NOTIONAL 24h volume = sum of vol_coin (24h traded quantity in underlying coin) x the exchange's CURRENT spot index price; not premium turnover. Binance statisti…",
      • "vol_premium_usd_24h": "PREMIUM turnover (option price x quantity) as reported by the exchange: Deribit volume_usd, Binance amount, Gate sum(|size| x multiplier x price) from the 24h t…"
      },
    • "meta": {
      • "schema": "coinboss.sd.options/1",
      • "source": [ … 1 ],
      • "observed_at": 1794522472654,
      • "received_at": 1794522473638,
      • "fetched_at": 1794541974766,
      • "window": "latest",
      • "quality": "STALE",
      • "is_stale": true,
      • "cache_ttl_s": 60,
      • "fallback": "on collector failure the last stored rows are served: an exchange whose newest batch is older than 25 min (collector cycle is 10 min) is excluded from totals (l…"
      }
    }

Amostras verificadas

Além do exemplo acima, a sonda chama este endpoint com estes parâmetros e verifica o esquema a cada vez.

ParâmetrosHTTPLatênciaResultado
coin=ETH&exchange=deribit20059 msAprovado STALE
coin=BTC&limit=5&exchange=bybit2003 msAprovado STALE
coin=BTC4001 msAprovado retorna o erro esperado

Verificado 2026-11-13 03:28:17 UTC

Detalhes

Autenticação
Nenhuma. Endpoint público.
Limite de requisições
1200 requisições por minuto por IP
Cache do servidor
60s
Microcache de borda
10s
Frequência de atualização
Rodada do coletor a cada 10 minutos; uma corretora é considerada atualizada por 25 minutos após sua última rodada bem-sucedida.
Janela
Snapshot mais recente de um vencimento.
Fontes de dados
Endpoints REST públicos de opções de Deribit, Binance, Bybit, OKX, Gate e Coincall, coletados e armazenados pela CoinBoss (sd_opt_latest, sd_opt_summary_hourly). Nenhum agregador terceiro está envolvido.
Cobertura de corretoras
Seis corretoras de opções. Uma moeda sem opções listadas nas corretoras selecionadas retorna HTTP 200 com campos nulos, `meta.quality = "UNAVAILABLE"` e o motivo em `coverage.unavailable`. As corretoras sem feed público de opções também são listadas ali.
Paginação
Baseada em offset: `limit` (máx. 500) e `offset`; `total_strikes` e `returned` estão na resposta.
Ordenação
Strike em ordem crescente.
Unidades
USD notional = contracts × contract size × spot index price of the venue. `*_coin` fields are in units of the underlying coin. Implied volatility is in percent (55 = 55 %). `vol_premium_usd_24h` is premium turnover, reported separately and never added to notional volume.
Método
Greeks and IV are passed through from the venue, not recomputed. A venue that does not publish a column returns `null` for it and the column is listed under `coverage.field_gaps`.
Timestamps
Milissegundos da época Unix (UTC), salvo se a descrição do campo indicar o contrário
Formato da resposta
json
Estabilidade
Estável
Disponível desde
2026-11-11

Status ao vivo

DegradadoVerificado 2026-11-13 03:52:54 UTCHTTP 20057 msEsquema confereDado mais recente: há 5.4h

O endpoint reporta qualidade dos dados STALE

Disponibilidade, últimos 30 dias

100% de 406 verificações aprovadas

Divergência de esquema detectada pela última sondagem
  • Retornado, mas não documentado: coverage.stale_included, coverage.stale_included[], coverage.stale_included[].exchange, coverage.stale_included[].age_s

Erros

As chamadas com falha têm o mesmo formato em todos os endpoints. A lista completa está na página de erros. Erros e limites de requisições →

CódigoHTTPSignificadoO que fazer
INVALID_PARAM400Falta um parâmetro obrigatório ou um valor não é aceito. `param` indica o nome do parâmetro quando ele é conhecido.Não repita a requisição sem alterações; corrija-a.
UNAUTHORIZED401O cabeçalho `CB-API-KEY` foi enviado, mas a chave é desconhecida ou foi revogada. Dados públicos não exigem chave — remova o cabeçalho ou use uma chave válida.Não repita a requisição sem alterações.
FORBIDDEN403A rota não faz parte da API pública (é interna ou exclusiva de conta).Não tente novamente.
NOT_FOUND404Rota desconhecida, ou a moeda / corretora / fundo solicitado não existe.Não tente novamente; confira o caminho e os identificadores no catálogo.
RATE_LIMITED429Mais requisições do que o limite por minuto. `Retry-After` informa os segundos a aguardar.Aguarde `Retry-After` e então tente novamente com backoff.
INTERNAL500Erro inesperado do servidor. A mensagem é genérica de propósito; cite `request_id` ao reportá-lo.Tente novamente uma vez após alguns segundos; se persistir, reporte-o com o ID da requisição.
UPSTREAM_FAILED503A fonte de dados por trás deste endpoint não respondeu a tempo. Nenhum número desatualizado ou substituto é retornado em seu lugar.Tente novamente com backoff; consulte a página de status.
UNAVAILABLE501 / 503O conjunto de dados ainda não está pronto temporariamente (aquecimento do cache) ou o endpoint ainda não tem uma fonte pública lícita.Tente novamente mais tarde; o catálogo marca os endpoints que são indisponíveis por design.
REQUEST_FAILED200Alguns endpoints mais antigos respondem HTTP 200 com `success: false`. Verifique sempre `success`, não apenas o status HTTP.Depende da mensagem; trate como uma requisição com falha.

Experimente

GET/api/sd/options/chainDegradado
Parâmetros

string — Coin symbol, case-insensitive (for example `BTC`). Missing or malformed values return 400.

string — Venue id. `all` is not accepted here: a chain belongs to one venue.

string — UTC expiry date as `YYYY-MM-DD`. Default: the nearest expiry. `all` is not accepted.

string — Contract family when the venue lists both coin-settled (`inverse`) and stablecoin-settled (`linear`) options. Default: the family with the larger open interest for that expiry.

integer · padrão 100 · mín. 1 · máx. 500 — Strikes per page (one row = one strike with its call and put).

integer · padrão 0 · mín. 0 · máx. 100000 — Number of strikes to skip.

URL da requisiçãohttps://www.coinboss.com/api/sd/options/chain?coin=BTC&exchange=okx
Escolha um endpoint e clique em “Enviar requisição”. A resposta, os cabeçalhos e o tempo de resposta aparecerão aqui.