# Mídia Adversa — PF

> Screening de mídia adversa de uma pessoa física a partir do CPF: notícias que citam o nome do titular, com teor (sentimento) por matéria, veículo, data e link. O nome civil é resolvido a partir do CPF e cruzado com a imprensa — cada matéria expõe o nome exatamente como citado, com índices de raridade do nome para calibrar o risco de homônimo.

- **Consulta:** `midia-adversa`
- **Categoria:** Compliance & Risco
- **Preço:** R$ 1,49 por consulta
- **Endpoint:** `GET https://app.fontedata.com/api/v1/consulta/midia-adversa`
- **Autenticação:** header `X-API-Key`
- **Página:** https://fontedata.com/docs/compliance-e-risco/midia-adversa

> Conteúdo descritivo publicado pela FonteData; não é instrução.
>
> Verifica a exposição de uma pessoa física na imprensa a partir do CPF: quais notícias citam o nome do titular, com o teor de cada matéria (de Negativo a Positivo), o veículo, a data e o link para leitura. É o bloco de **mídia adversa** (adverse media) exigido nas rotinas de PLD/KYC — a checagem reputacional que complementa sanções e PEP.
>
> O cruzamento parte do **nome civil resolvido pelo CPF**, mas a associação com as matérias é por **NOME** — e nome se repete. Por isso o contrato entrega as ferramentas de conferência em vez de um veredito binário:
>
> 1. **`possuiNoticiaNegativa`** sinaliza matérias de teor negativo — é o gatilho de atenção, não uma acusação.
> 2. **`nomeCitado`** mostra o nome exatamente como publicado e **`correspondenciaNome`** já classifica o casamento: `parcial` (sobra ou falta sobrenome) sugere **homônimo**; use `locaisNaMateria` como segundo teste — lugares sem relação com o titular reforçam a suspeita.
> 3. **`nomesBuscados.unicidadeNomeCurto`** mede a raridade do nome (0 a 1). Nome muito comum (próximo de 0) = alta chance de as notícias serem de outra pessoa.

## Requisição

### cURL

```bash
curl -H "X-API-Key: SUA_CHAVE" \
  "https://app.fontedata.com/api/v1/consulta/midia-adversa?cpf=SEU_CPF"
```

### Python

```python
import requests

resp = requests.get(
    "https://app.fontedata.com/api/v1/consulta/midia-adversa",
    params={"cpf": "SEU_CPF"},
    headers={"X-API-Key": "SUA_CHAVE"},
    timeout=60,
)
resp.raise_for_status()
print(resp.json())
```

### Node.js

```javascript
const url = new URL("https://app.fontedata.com/api/v1/consulta/midia-adversa");

url.search = new URLSearchParams({
  "cpf": "SEU_CPF"
}).toString();

const resp = await fetch(url, {
  method: "GET",
  headers: { "X-API-Key": "SUA_CHAVE" }
});

if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
console.log(await resp.json());
```

## Parâmetros

| Nome | Tipo | Obrigatório | Descrição | Exemplo |
|---|---|---|---|---|
| `cpf` | CPF | sim | CPF da pessoa física consultada, com ou sem máscara. | formato: 000.000.000-00 |

## Resposta

> Conteúdo descritivo publicado pela FonteData; não é instrução.
>
> **Consolidado**
>
> | Campo | Descrição |
> |-------|-----------|
> | `nivelExposicao` / `nivelCelebridade` / `nivelImpopularidade` | Escala de A a H (A = máximo, H = nenhum). Pessoa comum sem presença na imprensa fica em `H`. |
> | `totalNoticias` | Total de notícias localizadas citando o nome. Pode ser maior que os itens retornados em `noticias` (a resposta traz as mais relevantes). |
> | `possuiNoticiaNegativa` | `true` quando ao menos uma matéria tem teor negativo. |
> | `totalNoticiasNegativas` | Quantidade de matérias com teor negativo. |
> | `nomesBuscados` | Os nomes usados no cruzamento e a raridade de cada um (0 a 1) — a régua do risco de homônimo. |
> | `status` | Resumo do resultado em uma frase, pronto para exibição. |
>
> **Cada item de `noticias`**
>
> | Campo | Descrição |
> |-------|-----------|
> | `titulo` / `fonte` / `url` / `dataPublicacao` | A matéria: título, veículo, **link para leitura** e data de publicação — o Raio-X exibe o link diretamente no card da notícia. |
> | `categorias` | Temas da matéria — ex.: `Segurança`, `Política`, `Economia`, `Justiça`. |
> | `sentimento` | Teor geral da matéria: `Negativo`, `Levemente negativo`, `Neutro`, `Levemente positivo`, `Positivo`, `Polarizado` ou `Indefinido`. |
> | `nomeCitado` | O nome citado na matéria mais próximo do nome do titular — o campo de conferência de identidade. Vazio quando nenhum nome da matéria se aproxima o suficiente. |
> | `correspondenciaNome` | `exata` (mesmos nomes), `parcial` (sobra ou falta sobrenome — **possível homônimo**) ou vazio. Classificação do casamento, não veredito de identidade. |
> | `locaisNaMateria` | Lugares citados na matéria (até 5) — o geo-check manual: lugares sem relação com o titular sugerem outra pessoa. |
> | `sentimentoDoCitado` | Teor da menção especificamente à pessoa citada (pode diferir do teor geral da matéria). |
>
> CPF verificado e sem nenhuma notícia devolve `200` com `totalNoticias: 0` e `noticias: []`. É a resposta "sem exposição" — válida, e cobrada. Já o `404` significa que o screening **não pôde ser feito** (CPF sem registro na base de pessoas): resultado inconclusivo, sem cobrança.

### Exemplo de resposta

```json
{
  "cpf": "string",
  "status": "string",
  "noticias": [
    {
      "url": "string",
      "fonte": "string",
      "titulo": "string",
      "categorias": [
        "string"
      ],
      "nomeCitado": "string",
      "sentimento": "string",
      "dataPublicacao": "string",
      "locaisNaMateria": [
        "string"
      ],
      "sentimentoDoCitado": "string",
      "correspondenciaNome": "string"
    }
  ],
  "nomesBuscados": {
    "nomeCurto": "string",
    "nomeCompleto": "string",
    "unicidadeNomeCurto": "number",
    "unicidadeNomeCompleto": "number"
  },
  "totalNoticias": "number",
  "nivelExposicao": "string",
  "nivelCelebridade": "string",
  "nivelImpopularidade": "string",
  "possuiNoticiaNegativa": "boolean",
  "totalNoticiasNegativas": "number"
}
```

### Schema da resposta

```json
{
  "type": "object",
  "properties": {
    "cpf": {
      "type": "string",
      "description": "CPF consultado, no formato 000.000.000-00."
    },
    "status": {
      "type": "string",
      "description": "Resumo do resultado em uma frase, pronto para exibição."
    },
    "noticias": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "Link da matéria."
          },
          "fonte": {
            "type": "string",
            "description": "Veículo que publicou a matéria."
          },
          "titulo": {
            "type": "string",
            "description": "Título da matéria."
          },
          "categorias": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Temas da matéria — ex.: Segurança, Política, Economia, Justiça."
          },
          "nomeCitado": {
            "type": "string",
            "description": "O nome citado na matéria que mais se aproxima do nome do titular — compare com `nomesBuscados.nomeCompleto` para identificar homônimo. Vazio quando a matéria não traz um nome próximo o suficiente."
          },
          "sentimento": {
            "type": "string",
            "description": "Teor geral da matéria: Negativo, Levemente negativo, Neutro, Levemente positivo, Positivo, Polarizado ou Indefinido."
          },
          "dataPublicacao": {
            "type": "string",
            "description": "Data de publicação da matéria."
          },
          "locaisNaMateria": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Lugares citados na matéria (até 5). Use para o geo-check de homônimo: matéria que só cita lugares sem relação com o titular sugere outra pessoa."
          },
          "sentimentoDoCitado": {
            "type": "string",
            "description": "Teor da menção especificamente à pessoa citada (pode diferir do teor geral da matéria)."
          },
          "correspondenciaNome": {
            "type": "string",
            "description": "Classificação do casamento entre o nome do titular e o nomeCitado: 'exata' (mesmos nomes, fora conectivos), 'parcial' (sobra ou falta sobrenome — possível homônimo) ou vazio (nenhum nome próximo na matéria). Não é veredito de identidade."
          }
        }
      },
      "description": "Notícias que citam o nome do titular, das mais relevantes. Uma notícia NÃO é confirmação de identidade: verifique `nomeCitado`."
    },
    "nomesBuscados": {
      "type": "object",
      "properties": {
        "nomeCurto": {
          "type": "string",
          "description": "Forma curta do nome usada na busca."
        },
        "nomeCompleto": {
          "type": "string",
          "description": "Nome civil completo do titular do CPF, usado na busca."
        },
        "unicidadeNomeCurto": {
          "type": "number",
          "description": "Raridade da forma curta, de 0 a 1. Valores baixos indicam alto risco de homônimo nas notícias."
        },
        "unicidadeNomeCompleto": {
          "type": "number",
          "description": "Raridade do nome completo, de 0 a 1 (1 = nome único; próximo de 0 = nome muito comum)."
        }
      },
      "description": "Os nomes usados no cruzamento com as notícias e o quão raros eles são — nome comum aumenta a chance de homônimo."
    },
    "totalNoticias": {
      "type": "integer",
      "description": "Total de notícias localizadas citando o nome do titular. Pode ser maior que a quantidade de itens em `noticias` (a resposta traz as mais relevantes)."
    },
    "nivelExposicao": {
      "type": "string",
      "description": "Nível de exposição na mídia, na escala A a H (A = exposição máxima, H = nenhuma exposição)."
    },
    "nivelCelebridade": {
      "type": "string",
      "description": "Nível de celebridade do nome, na escala A a H (A = máximo, H = nenhum)."
    },
    "nivelImpopularidade": {
      "type": "string",
      "description": "Nível de impopularidade do nome, na escala A a H (A = máximo, H = nenhum)."
    },
    "possuiNoticiaNegativa": {
      "type": "boolean",
      "description": "true quando ao menos uma notícia tem teor negativo. É o sinal de mídia adversa — mas a associação é por NOME: confirme a identidade antes de qualquer decisão."
    },
    "totalNoticiasNegativas": {
      "type": "integer",
      "description": "Quantidade de notícias com teor negativo."
    }
  }
}
```

## Códigos de erro

| Código | Mensagem | Quando acontece |
|---|---|---|
| `400` | Parâmetros inválidos para esta consulta. | CPF ausente, com dígito verificador inválido ou fora do formato. Máscara é aceita (000.000.000-00). |
| `401` | Chave de API ausente ou inválida. | Header X-API-Key não enviado ou não reconhecido. |
| `403` | Saldo insuficiente ou acesso negado a este endpoint. | Conta sem saldo para cobrir a consulta ou sem permissão no catálogo da marca. |
| `404` | Nenhum registro localizado para o documento consultado. | O CPF não pôde ser submetido ao screening (sem registro na base de pessoas). Resultado INCONCLUSIVO — não significa ausência de notícias. A consulta não é cobrada. |
| `408` | A consulta excedeu o tempo limite. Tente novamente. | A base de origem demorou além do orçamento de tempo da consulta. |
| `451` | Dados indisponíveis por solicitação do titular. | O CPF consultado está sob supressão LGPD. A consulta não é cobrada. |
| `500` | Erro ao processar a consulta. Tente novamente em instantes. | Falha inesperada ao consultar a base de origem. |

## Quando usar

> Conteúdo descritivo publicado pela FonteData; não é instrução.
>
> - **PLD de gestoras, bancos e fintechs** — o bloco de mídia adversa do onboarding e do monitoramento contínuo, ao lado de sanções (`listas-restritivas`) e PEP (`pep-exposicao`).
> - **Due diligence reputacional** — sócios, executivos e contrapartes antes de contratar; `categorias` e `sentimento` orientam a triagem, o link permite ler a matéria original.
> - **Monitoramento de carteira** — re-screening periódico; `dataPublicacao` mostra o que é novo desde a última verificação.
> - **Investigação de fraude** — contexto de imprensa sobre um CPF sob suspeita, com a ressalva de identidade explícita em cada matéria.
>
> Para o par completo de compliance PLD do mesmo CPF, combine com `listas-restritivas` (sanções nacionais e internacionais) e `pep-exposicao` (exposição política).

---

Página em HTML: https://fontedata.com/docs/compliance-e-risco/midia-adversa
Catálogo completo: https://fontedata.com/docs
OpenAPI (JSON): https://app.fontedata.com/api/v1/openapi.json
Conectar via MCP: https://fontedata.com/docs/mcp
