DataBolsa docs
Referência da APIDados de mercadoEstruturados

Catálogo de COE registrado no balcão: emissor, tamanho, prazo e secundário observado

COE (Certificado de Operações Estruturadas) do registro público de balcão da B3, um código por linha, com o cadastro as-filed mais recente e o agregado de negociação secundária **sobre os pregões de balcão que observamos** — a janela efetiva vem em `meta.secondary_window` (`from`, `to`, `sessions`). **Esta superfície é separada de `/v1/credit` de propósito.** O corte de `/credit` é quem deve — debênture, CDB, LCI/LCA, CRI/CRA são risco de emissor com retorno contratado. O COE não é isso: é um payoff de derivativo embrulhado no risco de crédito do banco emissor, e o investidor carrega os dois. Tratá-lo como renda fixa é o erro que a opacidade do produto explora. **O que este endpoint NÃO responde:** se um COE é bom, quanto ele rende, se tem capital protegido, qual o ativo subjacente ou quais os cenários de retorno. Isso vive no DIE (Documento de Informações Essenciais), que não é dado estruturado público. `indexer`/`indexer_pct`/`additional_rate_pct` são campos do REGISTRO e não descrevem o retorno do investidor — lê-los como taxa é o erro clássico aqui. **O que ele responde:** quanto cada emissor colocou no mercado, com que prazo, e o que girou em secundário nos pregões cobertos. **Como ler o secundário null.** Os campos `trade_days`/`trade_count_total`/`volume_brl_total`/`last_trade_date` vêm null para a maioria esmagadora dos papéis, e o único significado exato disso é: nenhum negócio registrado nos pregões de `meta.secondary_window`. **Leia sempre contra `sessions`** — enquanto a janela é curta, o null é dominado por ela e não mede a liquidez do papel. Que o COE seja feito para ser carregado até o vencimento, sem mercado de saída organizado, é propriedade do DESENHO do produto e está no DIE, não uma conclusão que este agregado sustente hoje. `tradedOnly=true` isola quem teve negócio na janela; não é um filtro de "já girou alguma vez na vida". Negócios instrumento a instrumento, por pregão, ficam em `/v1/credit/otc` com `family=COE`: lá é o fluxo, aqui é o catálogo.

GET
/v1/structured/coe
AuthorizationBearer <token>

In: header

Query Parameters

cursor?string
limit?integer
Default100
Range1 <= value <= 1000
issuer?string

Busca pelo nome do emissor (parcial).

maturityFrom?string

Vencimento a partir de (YYYY-MM-DD).

Match^\d{4}-\d{2}-\d{2}$
maturityTo?string

Vencimento até (YYYY-MM-DD).

Match^\d{4}-\d{2}-\d{2}$
minIssueSize?number

Tamanho mínimo da emissão, em BRL.

tradedOnly?boolean

Somente os que tiveram negócio em secundário dentro da janela de pregões coberta (meta.secondary_window). Não é "já girou alguma vez".

Response Body

curl -X GET "https://api.databolsa.com/v1/structured/coe?cursor=string&limit=100&issuer=string&maturityFrom=string&maturityTo=string&minIssueSize=0&tradedOnly=true"
{
  "data": [
    {
      "instrument_code": "string",
      "isin": "string",
      "issuer_name": "string",
      "is_incentivada": true,
      "indexer": "string",
      "indexer_pct": 0,
      "additional_rate_pct": 0,
      "maturity_date": "string",
      "qty_issued": 0,
      "issue_price": 0,
      "issue_size_brl": 0,
      "issue_type": "string",
      "registered_ref_date": "string",
      "trade_days": 0,
      "trade_count_total": 0,
      "volume_brl_total": 0,
      "last_trade_date": "string"
    }
  ],
  "meta": {
    "next_cursor": "string",
    "count": 0,
    "total": 0,
    "subject": {
      "property1": "string",
      "property2": "string"
    },
    "secondary_window": {
      "from": "string",
      "to": "string",
      "sessions": 0
    }
  }
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string"
}