Contratos em aberto de uma moeda
Camada de dados própria: contratos em aberto de uma moeda (por corretora / contrato, com indicadores de qualidade)
/api/sd/oiRequisição
Parâmetros de consulta
| Nome | Tipo | Obrigatório | Padrão | Valores aceitos | Descrição |
|---|---|---|---|---|---|
| coin | string | Obrigató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.
| 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 }`. |
| coin | string | — | Símbolo da moeda, em maiúsculas (por exemplo, BTC). |
| now | number | ms | Horário do servidor em que a resposta foi montada. |
| total_usd | number | USD | Contratos em aberto em todas as corretoras e contratos incluídos, conforme cada corretora os reporta (valor nocional em USD). |
| n_exchanges | number | — | Número de corretoras no total. |
| n_contracts | number | — | Número de contratos no total. |
| asof | number | ms | Horário de atualização mais recente entre as linhas incluídas. |
| total_usd_single_adjusted | number | USD | `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_sided | object | — | Corretoras que sabidamente publicam os contratos em aberto long + short como um único número. |
| double_sided.exchanges | array | — | Corretoras. |
| double_sided.exchanges[] | string | — | Corretoras. |
| double_sided.oi_usd | number | USD | Contratos em aberto reportados por essas corretoras antes da divisão por dois. |
| by_kind | object | — | Divisão entre linear / inverso. |
| by_kind.linear_usd | number | USD | Contratos em aberto dos contratos lineares (com margem e liquidação em stablecoin ou USD). |
| by_kind.inverse_usd | number | USD | Contratos em aberto dos contratos inversos (com margem em cripto), convertidos para USD pelo preço do contrato. |
| by_margin | object | — | Divisão por moeda de margem. |
| by_margin.other | number | USD | Outras moedas de margem (por exemplo, corretoras com liquidação em USD, como a CME). |
| by_margin.usdt | number | USD | Contratos com margem em USDT. |
| by_margin.usdc | number | USD | Contratos com margem em USDC. pode estar ausente |
| by_margin.coin | number | USD | Contratos com margem em cripto. pode estar ausente |
| by_contract_type | object | — | Divisão entre perpétuo / com vencimento. |
| by_contract_type.perpetual_usd | number | USD | Contratos perpétuos. |
| by_contract_type.delivery_usd | number | USD | Futuros datados (contratos com vencimento). |
| change | object | — | 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.{*}.pct | number | % | Variação percentual entre `prev` e `cur`. |
| change.{*}.cur | number | USD | Soma atual sobre os contratos pareados. |
| change.{*}.prev | number | USD | Soma sobre os mesmos contratos em `prev_ts`. |
| change.{*}.n_matched | number | — | Contratos (ou corretoras) presentes nas duas pontas. |
| change.{*}.n_total | number | — | Contratos (ou corretoras) presentes agora. |
| change.{*}.matched_share_pct | number | % | Parcela dos contratos em aberto atuais coberta pelo conjunto pareado. pode estar ausente |
| change.{*}.prev_ts | number | ms | Horário do snapshot de base. |
| change.{*}.span_min | number | min | Distância real entre a base e o momento atual. |
| change.{*}.basis | string | — | De qual série de snapshots vem a base. |
| change.{*}.frozen_excluded | object | — | 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_baseline | number | — | Itens no snapshot de base. pode estar ausente |
| change.{*}.frozen_excluded.n_current | number | — | Itens no snapshot atual. pode estar ausente |
| change.{*}.frozen_excluded.cur_usd | number | USD | Valor atual. pode estar ausente |
| change.{*}.frozen_excluded.prev_usd | number | USD | Valor de base. pode estar ausente |
| by_exchange | array | — | Detalhamento por corretora. |
| by_exchange[] | object | — | Detalhamento por corretora. |
| by_exchange[].exchange | string | — | ID da corretora, em minúsculas (por exemplo, `binance`). |
| by_exchange[].oi_usd | number | USD | Contratos em aberto em valor nocional em USD. |
| by_exchange[].share_pct | number | % | Participação no total. |
| by_exchange[].n_contracts | number | — | Número de contratos. |
| by_exchange[].linear_usd | number | USD | Contratos lineares. |
| by_exchange[].inverse_usd | number | USD | Contratos inversos (com margem em cripto). |
| by_exchange[].perpetual_usd | number | USD | Contratos perpétuos. |
| by_exchange[].delivery_usd | number | USD | Contratos com vencimento. |
| by_exchange[].oi_side | string | — | `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_adjusted | number|null | USD | Equivalente unilateral; null quando a convenção de lado não é declarada. |
| by_exchange[].updated_at | number | ms | Quando esta linha foi atualizada pela última vez. |
| by_exchange[].age_s | number | s | Segundos desde a última atualização desta linha. |
| by_exchange[].is_stale | boolean | — | true quando a linha é mais antiga que a janela de atualidade; linhas desatualizadas não entram nos totais. |
| contracts | array | — | Linhas por contrato. |
| contracts[] | object | — | Linhas por contrato. |
| contracts[].exchange | string | — | ID da corretora, em minúsculas (por exemplo, `binance`). |
| contracts[].symbol | string | — | Símbolo do instrumento conforme normalizado pela CoinBoss (por exemplo, BTCUSDT). |
| contracts[].native_symbol | string|null | — | Símbolo exatamente como a corretora o escreve. |
| contracts[].oi_usd | number | USD | Contratos em aberto em valor nocional em USD. |
| contracts[].oi_side | string | — | `double`, `single` ou `unstated`: se a corretora reporta os dois lados dos contratos em aberto em um único número. |
| contracts[].oi_usd_single | number|null | USD | Equivalente unilateral de `oi_usd`; null quando a convenção de lado não é declarada. |
| contracts[].margin | string | — | Classe da moeda de margem: `usdt`, `usdc`, `coin` ou `other`. |
| contracts[].kind | string | — | `linear` ou `inverse`. |
| contracts[].contract_type | string | — | `perpetual` ou `delivery`. |
| contracts[].expiry_ts | number|null | ms | Vencimento de um contrato com vencimento; null para perpétuos ou quando não é publicado. |
| contracts[].margin_basis | string | — | Como a classe de margem foi determinada (pela especificação do contrato ou pelo padrão da corretora). |
| contracts[].updated_at | number | ms | Quando esta linha foi atualizada pela última vez. |
| contracts[].age_s | number | s | Segundos desde a última atualização desta linha. |
| contracts[].is_stale | boolean | — | true quando a linha é mais antiga que a janela de atualidade; linhas desatualizadas não entram nos totais. |
| contracts[].collector | string | — | Coletor interno que produziu a linha. |
| contracts[].included_since | number|null | ms | Quando este contrato entrou nos totais; null para o conjunto base. |
| coverage | object | — | 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_exchanges | array | — | Corretoras cujos dados estão incluídos nos totais. |
| coverage.included_exchanges[] | string | — | Corretoras incluídas nos totais. |
| coverage.pending | array | — | 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[].exchange | string | — | ID da corretora, em minúsculas (por exemplo, `binance`). |
| coverage.pending[].symbol | string | — | Símbolo do instrumento conforme normalizado pela CoinBoss (por exemplo, BTCUSDT). |
| coverage.pending[].native_symbol | string | — | Símbolo exatamente como a corretora o escreve. |
| coverage.pending[].margin | string | — | Classe da moeda de margem. |
| coverage.pending[].contract_type | string | — | `perpetual` ou `delivery`. |
| coverage.pending[].oi_usd | number | USD | Contratos em aberto em valor nocional em USD. |
| coverage.pending[].age_s | number | s | Segundos desde a última atualização desta linha. |
| coverage.pending[].reason | string | — | Código do motivo. |
| coverage.pending[].detail | string|null | — | Detalhe. |
| coverage.pending_usd | number|null | USD | Soma dos contratos pendentes, que não faz parte de `total_usd`. |
| coverage.stale_excluded | array | — | Linhas deixadas de fora porque sua última atualização está fora da janela de uso. vazio nas amostras usadas para gerar esta tabela |
| coverage.unavailable | array | — | 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[].exchange | string | — | ID da corretora, em minúsculas (por exemplo, `binance`). |
| coverage.unavailable[].symbol | string | — | Símbolo do instrumento conforme normalizado pela CoinBoss (por exemplo, BTCUSDT). |
| coverage.unavailable[].native_symbol | string | — | Símbolo exatamente como a corretora o escreve. |
| coverage.unavailable[].margin | string | — | Classe da moeda de margem. |
| coverage.unavailable[].contract_type | string | — | `perpetual` ou `delivery`. |
| coverage.unavailable[].reason | string | — | Código do motivo. |
| coverage.unavailable[].detail | string | — | Detalhe. |
| method | object | — | Descrição em texto simples das fórmulas usadas nesta resposta. |
| method.total | string | — | Total. |
| method.usd | string | USD | Valor. |
| method.change_h1_h4 | string | — | 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_h24 | string | — | 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_side | string | — | `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"
- "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"
- "h4"
- "by_exchange"
- "contracts"
- "coverage"
- "included_exchanges"
- "pending"
- "pending_usd"null
- "stale_excluded"
- "unavailable"
- "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âmetros | HTTP | Latência | Resultado |
|---|---|---|---|
| coin=ETH | 200 | 24 ms | Aprovado |
| coin=SOL | 200 | 21 ms | Aprovado |
| coin=ARKM | 200 | 20 ms | Aprovado |
| — | 400 | 1 ms | Aprovado 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
Disponibilidade, últimos 30 dias
100% de 411 verificações aprovadas
- 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ó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/oiDisponívelstring — Coin symbol; 400 when missing. Alias: `base`.
https://www.coinboss.com/api/sd/oi?coin=BTCMais nesta categoria
- Contratos em aberto de uma moeda /api/sd/oi
- Ranking de contratos em aberto por moeda entre corretoras /api/market/open-interest
- Série do gráfico empilhado de OI de uma moeda /api/oi/chart
- Histórico agregado de contratos em aberto de uma moeda /api/oi/history
- Matriz de contratos em aberto /api/oi/matrix
- Resumo de contratos em aberto de uma moeda /api/oi/summary