DataBolsa docs
Referência da APIDados de mercadoCrédito privado

Histórico de ações de rating de um papel ou emissor

Todas as ações observadas, append-only: um rating é evento datado, não atributo mutável — 'a Fitch atribuiu AA+ em 12/03/2025' continua verdade depois de um rebaixamento em 2026. Exige `assetCode` (ISIN) ou `issuerCnpj`. `superseded_by` preenchido marca a linha corrigida: correção cria linha nova em vez de editar o fato, e a linha antiga fica como trilha de auditoria. `extracted_at` é quando nós soubemos; `action_date` é quando a agência agiu — as duas datas são distintas de propósito.

GET
/v1/credit/ratings/history
AuthorizationBearer <token>

In: header

Query Parameters

assetCode?string

ISIN do papel avaliado.

Length4 <= length
issuerCnpj?string

CNPJ do emissor avaliado (14 dígitos).

Match^\d{14}$
agency?string

Restringe a uma agência.

Value in"fitch" | "moodys" | "sp" | "austin" | "sr" | "liberum" | "other"

Response Body

curl -X GET "https://api.databolsa.com/v1/credit/ratings/history?assetCode=string&issuerCnpj=string&agency=fitch"
{
  "data": [
    {
      "superseded_by": 0,
      "entity_type": "string",
      "issuer_cnpj": "string",
      "asset_code": "string",
      "agency": "string",
      "agency_raw": "string",
      "scale": "national_br",
      "rating_raw": "string",
      "rating": "string",
      "rating_notch": 0,
      "outlook": "string",
      "watch": "string",
      "action": "string",
      "action_date": "string",
      "doc_filed_at": "string",
      "action_date_known": true,
      "source": "string",
      "protocol": "string",
      "download_url": "string",
      "page_start": 0,
      "evidence_quote": "string",
      "extraction_confidence": "string",
      "extracted_at": "string",
      "declared": {
        "rating_raw": "string",
        "agency_raw": "string",
        "reference_date": "string",
        "is_parseable": true
      }
    }
  ],
  "meta": {
    "next_cursor": "string",
    "count": 0,
    "total": 0,
    "subject": {
      "property1": "string",
      "property2": "string"
    },
    "asset_code": "string",
    "issuer_cnpj": "string"
  }
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string"
}

Quais fundos detêm um papel de crédito privado, e quanto

A visão reversa da carteira: dado o ISIN de um CRI, CRA ou debênture, quais classes de fundo carregam o papel e com que valor a mercado, na competência do CDA. **O número é PISO, nunca total, e por dois motivos independentes.** Primeiro, o CDA não publica ISIN nos blocos de crédito privado: a posição só aparece aqui quando a identidade do papel foi resolvida a partir do que a fonte descreve (`match_level` `cetip` ou `issuer_maturity`). A mesma emissão pode estar em outros fundos que a descreveram de forma pobre demais para resolver, e essas posições existem em `/v1/funds/{cnpj}/credit-holdings` sem aparecer nesta lista. Segundo, o CDA cobre **fundo**: FII reporta por outro canal, e banco, seguradora, tesouraria e pessoa física não reportam carteira. `summary.resolved_only` é sempre `true` para que essa leitura não dependa de ninguém ter lido esta descrição. Para a exposição que NÃO depende de resolver o papel, consulte por emissor: a posição em `match_level: issuer` sabe qual casa emitiu mesmo sem saber qual série. Papel sem nenhuma posição resolvida responde página vazia com `summary` nulo — o que significa 'não sabemos de nenhuma', não 'nenhum fundo detém'.

Rating de crédito vigente, com a fonte primária de cada nota

Notas de agência observadas em documentos protocolados na CVM e no FNET, uma linha por (agência, papel) com a mais recente vigente. Toda resposta traz `agency`, `action_date` e `download_url`: a citação é parte do dado. Não emitimos rating — quando agências divergem, todas aparecem, e nenhuma nota é consolidada num rating nosso. `rating_notch` (1 = melhor) só é comparável **dentro da mesma `scale`**: um emissor brasileiro costuma ser AAA na escala nacional e BB na global ao mesmo tempo, e ordenar as duas juntas produz ranking que parece certo e está errado. Filtre por `scale` antes de comparar. `action_date_known=false` significa que a vigência foi decidida pela data de protocolo do documento (`doc_filed_at`), porque o relatório não afirma a data da ação — use-a para ordenar, nunca para exibir como data da agência. `declared` traz, quando existe, o rating que a própria securitizadora declarou no informe mensal da CVM para o mesmo ISIN. É segunda fonte para conferência: campo livre e mal preenchido, com `is_parseable=false` significando **não declarado no informe** — nunca 'o papel não tem rating'. Cobertura é parcial e cresce com a indexação: ausência de um papel aqui significa que ainda não observamos documento de rating dele, não que ele seja sem nota.