/api/sd/oi
GETDisponível

Contratos em aberto de uma moeda

Camada de dados própria: contratos em aberto de uma moeda (por corretora / contrato, com indicadores de qualidade)

GET/api/sd/oi

Requisição

Parâmetros de consulta

NomeTipoObrigatórioPadrãoValores aceitosDescrição
coinstringObrigatório——Símbolo da moeda; 400 quando ausente. Alias: `base`. Exemplo: BTC

Exemplo de requisição

curl -s "https://www.coinboss.com/api/sd/oi?coin=BTC"

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 }`.
coinstring—Símbolo da moeda, em maiúsculas (por exemplo, BTC).
nownumbermsHorário do servidor em que a resposta foi montada.
total_usdnumberUSDContratos em aberto em todas as corretoras e contratos incluídos, conforme cada corretora os reporta (valor nocional em USD).
n_exchangesnumber—Número de corretoras no total.
n_contractsnumber—Número de contratos no total.
asofnumbermsHorário de atualização mais recente entre as linhas incluídas.
total_usd_single_adjustednumberUSD`total_usd` com os números das corretoras que reportam os dois lados (`double_sided.exchanges`) divididos por dois, de modo que cada corretora conte um só lado.
double_sidedobject—Corretoras que sabidamente publicam os contratos em aberto long + short como um único número.
double_sided.exchangesarray—Corretoras.
double_sided.exchanges[]string—Corretoras.
double_sided.oi_usdnumberUSDContratos em aberto reportados por essas corretoras antes da divisão por dois.
by_kindobject—Divisão entre linear / inverso.
by_kind.linear_usdnumberUSDContratos em aberto dos contratos lineares (com margem e liquidação em stablecoin ou USD).
by_kind.inverse_usdnumberUSDContratos em aberto dos contratos inversos (com margem em cripto), convertidos para USD pelo preço do contrato.
by_marginobject—Divisão por moeda de margem.
by_margin.othernumberUSDOutras moedas de margem (por exemplo, corretoras com liquidação em USD, como a CME).
by_margin.usdtnumberUSDContratos com margem em USDT.
by_margin.usdcnumberUSDContratos com margem em USDC. pode estar ausente
by_margin.coinnumberUSDContratos com margem em cripto. pode estar ausente
by_contract_typeobject—Divisão entre perpétuo / com vencimento.
by_contract_type.perpetual_usdnumberUSDContratos perpétuos.
by_contract_type.delivery_usdnumberUSDFuturos datados (contratos com vencimento).
changeobject—Variação dos contratos em aberto em 1h / 4h / 24h, calculada sobre o mesmo conjunto de contratos nas duas pontas. chaves dinâmicas: h1,h4,h24
change.{*}object—Variação no período indicado.
change.{*}.pctnumber%Variação percentual entre `prev` e `cur`.
change.{*}.curnumberUSDSoma atual sobre os contratos pareados.
change.{*}.prevnumberUSDSoma sobre os mesmos contratos em `prev_ts`.
change.{*}.n_matchednumber—Contratos (ou corretoras) presentes nas duas pontas.
change.{*}.n_totalnumber—Contratos (ou corretoras) presentes agora.
change.{*}.matched_share_pctnumber%Parcela dos contratos em aberto atuais coberta pelo conjunto pareado. pode estar ausente
change.{*}.prev_tsnumbermsHorário do snapshot de base.
change.{*}.span_minnumberminDistância real entre a base e o momento atual.
change.{*}.basisstring—De qual série de snapshots vem a base.
change.{*}.frozen_excludedobject—Linhas deixadas de fora da variação porque seu valor não se moveu entre os dois snapshots (a fonte não está atualizando). pode estar ausente
change.{*}.frozen_excluded.n_baselinenumber—Itens no snapshot de base. pode estar ausente
change.{*}.frozen_excluded.n_currentnumber—Itens no snapshot atual. pode estar ausente
change.{*}.frozen_excluded.cur_usdnumberUSDValor atual. pode estar ausente
change.{*}.frozen_excluded.prev_usdnumberUSDValor de base. pode estar ausente
by_exchangearray—Detalhamento por corretora.
by_exchange[]object—Detalhamento por corretora.
by_exchange[].exchangestring—ID da corretora, em minúsculas (por exemplo, `binance`).
by_exchange[].oi_usdnumberUSDContratos em aberto em valor nocional em USD.
by_exchange[].share_pctnumber%Participação no total.
by_exchange[].n_contractsnumber—Número de contratos.
by_exchange[].linear_usdnumberUSDContratos lineares.
by_exchange[].inverse_usdnumberUSDContratos inversos (com margem em cripto).
by_exchange[].perpetual_usdnumberUSDContratos perpétuos.
by_exchange[].delivery_usdnumberUSDContratos com vencimento.
by_exchange[].oi_sidestring—`double` quando a corretora reporta os dois lados em um único número, `single` quando reporta um lado, `unstated` quando a corretora não documenta isso.
by_exchange[].oi_usd_single_adjustednumber|nullUSDEquivalente unilateral; null quando a convenção de lado não é declarada.
by_exchange[].updated_atnumbermsQuando esta linha foi atualizada pela última vez.
by_exchange[].age_snumbersSegundos desde a última atualização desta linha.
by_exchange[].is_staleboolean—true quando a linha é mais antiga que a janela de atualidade; linhas desatualizadas não entram nos totais.
contractsarray—Linhas por contrato.
contracts[]object—Linhas por contrato.
contracts[].exchangestring—ID da corretora, em minúsculas (por exemplo, `binance`).
contracts[].symbolstring—Símbolo do instrumento conforme normalizado pela CoinBoss (por exemplo, BTCUSDT).
contracts[].native_symbolstring|null—Símbolo exatamente como a corretora o escreve.
contracts[].oi_usdnumberUSDContratos em aberto em valor nocional em USD.
contracts[].oi_sidestring—`double`, `single` ou `unstated`: se a corretora reporta os dois lados dos contratos em aberto em um único número.
contracts[].oi_usd_singlenumber|nullUSDEquivalente unilateral de `oi_usd`; null quando a convenção de lado não é declarada.
contracts[].marginstring—Classe da moeda de margem: `usdt`, `usdc`, `coin` ou `other`.
contracts[].kindstring—`linear` ou `inverse`.
contracts[].contract_typestring—`perpetual` ou `delivery`.
contracts[].expiry_tsnumber|nullmsVencimento de um contrato com vencimento; null para perpétuos ou quando não é publicado.
contracts[].margin_basisstring—Como a classe de margem foi determinada (pela especificação do contrato ou pelo padrão da corretora).
contracts[].updated_atnumbermsQuando esta linha foi atualizada pela última vez.
contracts[].age_snumbersSegundos desde a última atualização desta linha.
contracts[].is_staleboolean—true quando a linha é mais antiga que a janela de atualidade; linhas desatualizadas não entram nos totais.
contracts[].collectorstring—Coletor interno que produziu a linha.
contracts[].included_sincenumber|nullmsQuando este contrato entrou nos totais; null para o conjunto base.
coverageobject—O que está e o que não está incluído nos números acima. Compare isto antes de comparar os totais com outra fonte.
coverage.included_exchangesarray—Corretoras cujos dados estão incluídos nos totais.
coverage.included_exchanges[]string—Corretoras incluídas nos totais.
coverage.pendingarray—Contratos que são coletados, mas ainda não estão incluídos nos totais (por exemplo, enquanto seu próprio histórico de 25 horas ainda está sendo formado). São listados com o valor atual para que a lacuna fique visível.
coverage.pending[]object—Itens coletados, mas ainda não incluídos.
coverage.pending[].exchangestring—ID da corretora, em minúsculas (por exemplo, `binance`).
coverage.pending[].symbolstring—Símbolo do instrumento conforme normalizado pela CoinBoss (por exemplo, BTCUSDT).
coverage.pending[].native_symbolstring—Símbolo exatamente como a corretora o escreve.
coverage.pending[].marginstring—Classe da moeda de margem.
coverage.pending[].contract_typestring—`perpetual` ou `delivery`.
coverage.pending[].oi_usdnumberUSDContratos em aberto em valor nocional em USD.
coverage.pending[].age_snumbersSegundos desde a última atualização desta linha.
coverage.pending[].reasonstring—Código do motivo.
coverage.pending[].detailstring|null—Detalhe.
coverage.pending_usdnumber|nullUSDSoma dos contratos pendentes, que não faz parte de `total_usd`.
coverage.stale_excludedarray—Linhas deixadas de fora porque sua última atualização está fora da janela de uso. vazio nas amostras usadas para gerar esta tabela
coverage.unavailablearray—Pares corretora / contrato que não puderam ser incluídos, cada um com o motivo. Nunca são contados como 0.
coverage.unavailable[]object—Itens para os quais não há dados disponíveis, com os motivos. Nunca são reportados como 0.
coverage.unavailable[].exchangestring—ID da corretora, em minúsculas (por exemplo, `binance`).
coverage.unavailable[].symbolstring—Símbolo do instrumento conforme normalizado pela CoinBoss (por exemplo, BTCUSDT).
coverage.unavailable[].native_symbolstring—Símbolo exatamente como a corretora o escreve.
coverage.unavailable[].marginstring—Classe da moeda de margem.
coverage.unavailable[].contract_typestring—`perpetual` ou `delivery`.
coverage.unavailable[].reasonstring—Código do motivo.
coverage.unavailable[].detailstring—Detalhe.
methodobject—Descrição em texto simples das fórmulas usadas nesta resposta.
method.totalstring—Total.
method.usdstringUSDValor.
method.change_h1_h4string—Definição em texto simples das variações de 1h e 4h dos contratos em aberto: cada contrato é comparado com o seu próprio snapshot mais próximo do início da janela.
method.change_h24string—Definição em texto simples da variação de 24h dos contratos em aberto: pareamento dentro da mesma corretora com o snapshot horário mais próximo de 24 horas atrás, excluídas as linhas de base congeladas.
method.oi_sidestring—`double`, `single` ou `unstated`: se a corretora reporta os dois lados dos contratos em aberto em um único número.

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

Exemplo de resposta

/api/sd/oi?coin=BTC · Resposta real capturada 2026-11-13 03:57:39 UTC. Arrays e mapas longos são encurtados para exibição: change tinha 3 itens; contracts tinha 95 itens; by_exchange tinha 22 itens; coverage.included_exchanges tinha 22 itens.

  • {
    • "success": true,
    • "coin": "BTC",
    • "now": 1794542259643,
    • "total_usd": 49005713133.94,
    • "n_exchanges": 22,
    • "n_contracts": 95,
    • "asof": 1794542258000,
    • "total_usd_single_adjusted": 43766392634.71,
    • "double_sided": {
      • "exchanges": [ … 2 ],
      • "oi_usd": 10478640998.46
      },
    • "by_kind": {
      • "linear_usd": 44169662162.94,
      • "inverse_usd": 4836050971
      },
    • "by_margin": {
      • "other": 8250815931.650002,
      • "usdt": 30919742583.03,
      • "usdc": 4999103648.259998,
      • "coin": 4836050971
      },
    • "by_contract_type": {
      • "perpetual_usd": 40820877874.21,
      • "delivery_usd": 8184835259.73
      },
    • "change": {
      • "h1": { … 9 },
      • "h4": { … 9 }
      },
    • "by_exchange": [
      • { … 13 },
      • { … 13 }
      ],
    • "contracts": [
      • { … 16 },
      • { … 16 }
      ],
    • "coverage": {
      • "included_exchanges": [ … 8 ],
      • "pending": [],
      • "pending_usd": null,
      • "stale_excluded": [ … 2 ],
      • "unavailable": [ … 1 ]
      },
    • "method": {
      • "total": "SUM(oi_usd) over fresh contracts (non-CME updated within 3h; CME within 120h)",
      • "usd": "linear: contracts × contract_size × mark/last price; inverse: contracts × contract_face_value_usd (or coin amount × price)",
      • "change_h1_h4": "same-contract pairing vs own snapshot nearest to now−W (15-minute snapshots, hourly fallback)",
      • "change_h24": "same-exchange pairing vs hourly snapshot nearest to now−24h (site-wide convention); contracts whose baseline snapshot is a frozen carry-over (identical to the c…",
      • "oi_side": "as disclosed by each exchange; double = exchange API itself reports open interest as twice the single-sided figure"
      }
    }

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=ETH20024 msAprovado
coin=SOL20021 msAprovado
coin=ARKM20020 msAprovado
—4001 msAprovado retorna o erro esperado

Verificado 2026-11-13 03:57:39 UTC

Detalhes

Autenticação
Nenhuma. Endpoint público.
Limite de requisições
1200 requisições por minuto por IP
Cache do servidor
20s
Microcache de borda
10s
Frequência de atualização
a cada 60 s para a maioria das corretoras (gravado junto com os tickers; jobs dedicados de 60 s para o top 50 da binance e para a okx); varreduras completas de binance / bingx / aster / gate / htx a cada 5 min; contratos com margem em cripto / USDC / com vencimento a cada 120 s (promovidos à tabela compartilhada a cada 5 min); cme uma vez por dia de negociação (04:10 UTC); snapshots de 15 minutos por contrato para variações em janelas curtas
Janela
snapshot mais recente (linhas de até 3 h, cme 120 h; indicador is_stale após 15 min, cme 36 h); variações em 1 h / 4 h (snapshots de 15 minutos) e 24 h (arquivo horário)
Fontes de dados
Contratos em aberto consultados por coletores internos nas APIs REST públicas de 22 corretoras de derivativos (p. ex., binance, okx, bybit, gate, bitget, hyperliquid), mais o relatório diário oficial de volume/contratos em aberto da CME.
Cobertura de corretoras
23 fontes com linhas atualizadas (22 corretoras + cme); todos os tipos de contrato (lineares USDT / USDC / USD, inversos com margem em cripto, perpétuos e com vencimento); bybit e gate reportam contratos em aberto bilaterais, conforme divulgado pela corretora; linhas com mais de 3 h (cme: 120 h) são excluídas; o bloco coverage lista as corretoras incluídas, pendentes (aguardando 25 h de histórico próprio), excluídas por desatualização e indisponíveis
Unidades
open interest in USD notional; total_usd_single_adjusted halves venues that report double-sided OI; changes in percent
Método
total_usd = SUM(oi_usd) over fresh contracts (multiplier contracts folded); breakdowns by kind / margin / contract type; h1 / h4 change by same-contract pairing against 15-minute snapshots (+/- 10 min, fallback hourly archive) and only when >= 50% of OI is matched; h24 change by same-exchange pairing against the hourly bucket nearest now - 24 h
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

DisponívelVerificado 2026-11-13 03:57:39 UTCHTTP 20032 msEsquema confereDado mais recente: há 2s

Disponibilidade, últimos 30 dias

100% de 411 verificações aprovadas

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

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/oiDisponível
Parâmetros

string — Coin symbol; 400 when missing. Alias: `base`.

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