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.
/api/sd/options/chainRequisição
Parâmetros de consulta
| Nome | Tipo | Obrigatório | Padrão | Valores aceitos | Descrição |
|---|---|---|---|---|---|
| coin | string | Obrigató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 |
| exchange | string | Obrigatório | — | deribit, binance, bybit, okx, gate, coincall | ID da corretora. `all` não é aceito aqui: uma cadeia pertence a uma única corretora. Exemplo: okx |
| expiry | string | Opcional | — | — | Data de vencimento em UTC no formato `YYYY-MM-DD`. Padrão: o vencimento mais próximo. `all` não é aceito. |
| kind | string | Opcional | — | inverse, linear | Famí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. |
| limit | integer | Opcional | 100 | ≥ 1 · ≤ 500 | Strikes por página (uma linha = um strike com sua call e sua put). |
| offset | integer | Opcional | 0 | ≥ 0 · ≤ 100000 | Nú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.
| Campo | Tipo | Unidade | Descrição |
|---|---|---|---|
| success | boolean | — | true quando a requisição foi bem-sucedida. Em caso de falha, o corpo é `{ success: false, code, error, request_id }`. |
| schema | string | — | ID do esquema desta resposta. Só muda quando um campo existente muda de significado ou de tipo. |
| now | number | ms | Horário do servidor em que a resposta foi montada. |
| coin | string | — | Símbolo da moeda (em maiúsculas). |
| exchange | string | — | ID da corretora (em minúsculas). |
| expiry | string | — | Data de vencimento (UTC), `YYYY-MM-DD`, ou `all`. |
| expiry_ts | number | ms | Horário de vencimento. |
| days_left | number | days | Dias até o vencimento. |
| kind | string | — | Família de contratos: `inverse` (liquidados em cripto) ou `linear` (liquidados em stablecoin). |
| kinds_available | array | — | 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_available | array | — | Datas de vencimento que atualmente têm contratos. |
| expiries_available[] | string | — | Datas de vencimento que atualmente têm contratos. |
| underlying | string | — | Subjacente da família de contratos. |
| settle | string | — | Moeda de liquidação da família de contratos. |
| contract_size | number | coin | Quantidade da moeda subjacente por contrato. |
| underlying_price | number | USD | Preço a termo / do subjacente publicado pela corretora para este vencimento. |
| index_price | number | USD | Preç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_strikes | number | — | Strikes disponíveis para este vencimento antes da paginação. |
| limit | number | — | Limite de linhas aplicado. |
| offset | number | — | Linhas puladas. |
| returned | number | — | Strikes retornados nesta página. |
| rows | array | — | Uma linha por strike, com sua call e sua put. |
| rows[] | object | — | Uma linha por strike, com sua call e sua put. |
| rows[].strike | number | USD | Preço de exercício (strike). |
| rows[].call | object | — | Contrato de call neste strike; `null` quando a corretora não lista nenhum. |
| rows[].call.instrument | string | — | Nome do contrato como a corretora o escreve. |
| rows[].call.oi_contracts | number | contracts | Contratos em aberto em número de contratos, como a corretora os conta. |
| rows[].call.oi_coin | number | coin | Contratos em aberto em unidades da moeda subjacente. |
| rows[].call.oi_usd | number | USD | Contratos em aberto em valor nocional em USD: quantidade de moedas × preço do índice spot. Unilateral. |
| rows[].call.vol_contracts_24h | number | contracts | Volume de 24h em contratos, como a corretora os conta. |
| rows[].call.vol_coin_24h | number | coin | Quantidade negociada em 24h em unidades da moeda subjacente. |
| rows[].call.vol_usd_24h | number | USD | Volume 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_24h | number|null | USD | Volume 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_price | number|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_usd | number|null | USD | Preço de marcação da opção convertido para USD. |
| rows[].call.mark_iv | number | % | Volatilidade implícita ao preço de marcação. |
| rows[].call.bid_iv | number|null | % | Volatilidade implícita na melhor compra; `null` quando a corretora não a publica. |
| rows[].call.ask_iv | number|null | % | Volatilidade implícita na melhor venda; `null` quando a corretora não a publica. |
| rows[].call.delta | number|null | — | Delta conforme publicado pela corretora; `null` quando não publicado. |
| rows[].call.gamma | number|null | — | Gamma conforme publicado pela corretora; `null` quando não publicado. |
| rows[].call.vega | number|null | — | Vega conforme publicado pela corretora; `null` quando não publicado. |
| rows[].call.theta | number|null | — | Theta conforme publicado pela corretora; `null` quando não publicado. |
| rows[].call.observed_at | number | ms | Timestamp informado pela fonte para os dados. |
| rows[].put | object | — | Contrato de put neste strike; `null` quando a corretora não lista nenhum. |
| rows[].put.instrument | string | — | Nome do contrato como a corretora o escreve. |
| rows[].put.oi_contracts | number | contracts | Contratos em aberto em número de contratos, como a corretora os conta. |
| rows[].put.oi_coin | number | coin | Contratos em aberto em unidades da moeda subjacente. |
| rows[].put.oi_usd | number | USD | Contratos em aberto em valor nocional em USD: quantidade de moedas × preço do índice spot. Unilateral. |
| rows[].put.vol_contracts_24h | number | contracts | Volume de 24h em contratos, como a corretora os conta. |
| rows[].put.vol_coin_24h | number | coin | Quantidade negociada em 24h em unidades da moeda subjacente. |
| rows[].put.vol_usd_24h | number | USD | Volume 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_24h | number|null | USD | Volume 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_price | number | — | Preço de marcação da opção em sua unidade de cotação (moeda, para contratos liquidados em cripto). |
| rows[].put.mark_price_usd | number | USD | Preço de marcação da opção convertido para USD. |
| rows[].put.mark_iv | number | % | Volatilidade implícita ao preço de marcação. |
| rows[].put.bid_iv | number|null | % | Volatilidade implícita na melhor compra; `null` quando a corretora não a publica. |
| rows[].put.ask_iv | number|null | % | Volatilidade implícita na melhor venda; `null` quando a corretora não a publica. |
| rows[].put.delta | number|null | — | Delta conforme publicado pela corretora; `null` quando não publicado. |
| rows[].put.gamma | number|null | — | Gamma conforme publicado pela corretora; `null` quando não publicado. |
| rows[].put.vega | number|null | — | Vega conforme publicado pela corretora; `null` quando não publicado. |
| rows[].put.theta | number|null | — | Theta conforme publicado pela corretora; `null` quando não publicado. |
| rows[].put.observed_at | number | ms | Timestamp informado pela fonte para os dados. |
| coverage | object | — | 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_exchanges | array | — | Fontes cujos dados atualizados estão incluídos. |
| coverage.included_exchanges[] | string | — | Fontes cujos dados atualizados estão incluídos. |
| coverage.unavailable | array | — | 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_excluded | array | — | 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_gaps | array | — | 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[].exchange | string | — | ID da corretora (em minúsculas). |
| coverage.field_gaps[].fields | array | — | Nomes das colunas ausentes. |
| coverage.field_gaps[].fields[] | string | — | Nomes das colunas ausentes. |
| coverage.field_gaps[].kind | string | — | Família de contratos: `inverse` (liquidados em cripto) ou `linear` (liquidados em stablecoin). |
| method | object | — | Descrição em texto simples das fórmulas usadas nesta resposta, uma entrada por campo. |
| method.chain | string | — | Nota sobre a fórmula de `chain`, em texto simples. |
| method.kind | string | — | Nota sobre a fórmula de `kind`, em texto simples. |
| method.oi_usd | string | — | Nota sobre a fórmula de `oi_usd`, em texto simples. |
| method.mark_price | string | — | Nota sobre a fórmula de `mark_price`, em texto simples. |
| method.iv | string | — | Nota sobre a fórmula de `iv`, em texto simples. |
| method.greeks | string | — | Nota sobre a fórmula de `greeks`, em texto simples. |
| method.vol_usd_24h | string | — | Nota sobre a fórmula de `vol_usd_24h`, em texto simples. |
| method.vol_premium_usd_24h | string | — | Nota sobre a fórmula de `vol_premium_usd_24h`, em texto simples. |
| meta | object | — | Linhagem e atualidade desta resposta. |
| meta.schema | string | — | ID do esquema desta resposta. Só muda quando um campo existente muda de significado ou de tipo. |
| meta.source | array | — | 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[].exchange | string | — | ID da corretora (em minúsculas). |
| meta.source[].endpoint | string | — | Endpoint público da fonte que o coletor lê (exibido para fins de linhagem; os clientes nunca o chamam). |
| meta.observed_at | number | ms | Timestamp informado pela fonte para os dados. |
| meta.received_at | number | ms | Horário em que o coletor da CoinBoss recebeu os dados. |
| meta.fetched_at | number | ms | Horário em que esta resposta foi montada. |
| meta.window | string | — | Janela de tempo coberta pelos números. |
| meta.quality | string | — | FRESH, PARTIAL, STALE, BROKEN ou UNAVAILABLE, avaliado a partir dos timestamps dos dados e da cobertura. |
| meta.is_stale | boolean | — | True quando os dados são mais antigos que sua janela de atualidade. |
| meta.cache_ttl_s | number | s | Tempo de vida do cache desta resposta. |
| meta.fallback | string | — | 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"
- "coverage"
- "included_exchanges"
- "unavailable"
- "stale_excluded"
- "field_gaps"
- "stale_included"
- "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"
- "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âmetros | HTTP | Latência | Resultado |
|---|---|---|---|
| coin=ETH&exchange=deribit | 200 | 59 ms | Aprovado STALE |
| coin=BTC&limit=5&exchange=bybit | 200 | 3 ms | Aprovado STALE |
| coin=BTC | 400 | 1 ms | Aprovado 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
O endpoint reporta qualidade dos dados STALE
Disponibilidade, últimos 30 dias
100% de 406 verificações aprovadas
- 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ódigo | HTTP | Significado | O que fazer |
|---|---|---|---|
| INVALID_PARAM | 400 | Falta 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. |
| UNAUTHORIZED | 401 | O 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. |
| FORBIDDEN | 403 | A rota não faz parte da API pública (é interna ou exclusiva de conta). | Não tente novamente. |
| NOT_FOUND | 404 | Rota desconhecida, ou a moeda / corretora / fundo solicitado não existe. | Não tente novamente; confira o caminho e os identificadores no catálogo. |
| RATE_LIMITED | 429 | Mais 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. |
| INTERNAL | 500 | Erro 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_FAILED | 503 | A 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. |
| UNAVAILABLE | 501 / 503 | O 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_FAILED | 200 | Alguns 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
/api/sd/options/chainDegradadostring — 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.
https://www.coinboss.com/api/sd/options/chain?coin=BTC&exchange=okxMais nesta categoria
- Cadeia de opções (uma corretora) /api/sd/options/chain
- Opções por vencimento /api/sd/options/expiries
- Histórico de opções (horário) /api/sd/options/history
- Visão geral de opções (todas as corretoras) /api/sd/options/overview
- Opções por strike /api/sd/options/strikes
- Resumo de opções da página da moeda /api/currency/options-summary
- Sorriso / estrutura a termo da volatilidade implícita de opções /api/options/iv
- Histórico da volatilidade implícita de opções /api/options/iv-history
- Max pain de opções /api/options/max-pain
- OI de opções por vencimento /api/options/oi-by-expiry
- OI de opções por strike /api/options/oi-by-strike
- Visão geral de opções /api/options/overview
- Distribuição do volume de opções /api/options/volume-dist