# Consulta Contratos do Governo por CNPJ - API e Scraper (`brasildados/consulta-contratos-governo-cnpj`) Actor

Consulte empresas por CNPJ e encontre contratos ativos e históricos com o Governo Federal. Retorne valores, vigência, situação, modalidade, objeto, processo, compra e órgãos públicos para compliance, análise de fornecedores, licitações, auditoria e due diligence via Batch ou Standby.

- **URL**: https://apify.com/brasildados/consulta-contratos-governo-cnpj.md
- **Developed by:** [BrasilDados.org](https://apify.com/brasildados) (community)
- **Categories:** Real estate, Integrations, News
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $100.00 / 1,000 por contrato encontrados

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Consulta Contratos do Governo por CNPJ - API e Scraper

Consulte empresas brasileiras por **CNPJ** e descubra contratos ativos e históricos com o **Governo Federal**. Receba valores, vigência, situação, modalidade, objeto, processo, dados da compra e estruturas completas dos órgãos públicos envolvidos.

Esta **API de contratos públicos por CNPJ** ajuda em compliance, homologação de fornecedores, auditoria, licitações, inteligência comercial, KYB e due diligence. Os registros são obtidos em tempo de execução a partir de fontes públicas auditáveis.

### 🔎 O que este Actor faz?

- Consulta um ou vários CNPJs no mesmo campo
- Aceita CNPJ com ou sem pontuação
- Remove documentos duplicados automaticamente
- Retorna contratos ativos e históricos
- Calcula quantidades, valores totais e intervalo de datas
- Retorna dados da empresa, compra, órgão contratante e órgão comprador
- Exporta JSON, CSV, Excel, XML e outros formatos do Dataset Apify
- Funciona em lote via **Batch** e em tempo real via **Standby API**

> Cada linha do Dataset representa um CNPJ único. Como uma empresa pode possuir vários contratos, eles são preservados em `contratos[]`.

### 💼 Para que serve?

- **Compliance e KYB:** complemente a análise cadastral de empresas
- **Homologação de fornecedores:** verifique experiência com o setor público
- **Inteligência comercial:** encontre empresas que fornecem ao Governo Federal
- **Licitações:** analise objetos, modalidades, valores e órgãos compradores
- **Auditoria:** compare vigência, situação e valores contratados
- **Due diligence:** identifique relacionamentos públicos ativos e históricos

### 📥 Entrada

Somente `cnpjs` é obrigatório. Para enviar apenas um documento, use o mesmo campo com um item.

| Campo | Obrigatório | Padrão | Explicação |
|---|---:|---:|---|
| `cnpjs` | Sim | Dois CNPJs de exemplo | Lista de 1 a 1.000 CNPJs, formatados ou somente com números. |
| `maxContratosPorCnpj` | Não | `50` | Máximo de contratos por CNPJ, entre 1 e 500. |

```json
{
  "cnpjs": ["33.000.167/0001-01", "02341470000144"],
  "maxContratosPorCnpj": 50
}
```

Os dois formatos são aceitos e normalizados internamente:

| Valor enviado | Valor normalizado |
|---|---|
| `33.000.167/0001-01` | `33000167000101` |
| `02341470000144` | `02341470000144` |

### 📤 Quais dados são retornados?

| Grupo | Campos disponíveis |
|---|---|
| Empresa | CNPJ, razão social, nome fantasia, classificação, inscrição social e ID do registro |
| Estatísticas | quantidade total/ativa, soma dos valores inicial/atual e datas extremas |
| Contrato | ID, referência, número, descrição, situação, modalidade, fundamento e processo |
| Datas e valores | assinatura, publicação, vigência, ativo, valor inicial e valor atual |
| Compra | número, processo, descrição e contato responsável parcialmente oculto |
| Órgão contratante | ministério, entidade, unidade gestora, siglas, códigos, CNPJ e poder |
| Órgão comprador | segunda estrutura completa do órgão responsável pela compra |
| Controle | validação, páginas consultadas, truncamento e erro |

#### Exemplo completo do resultado

Este exemplo contém **todos os campos públicos** e possui a mesma estrutura do retorno real. Os valores são fictícios.

```json
{
  "cnpj": "33000167000101",
  "cnpjFormatado": "33.000.167/0001-01",
  "cnpjValido": true,
  "encontrado": true,
  "empresa": {
    "fornecedorRegistroId": 5120293,
    "razaoSocial": "EMPRESA BRASILEIRA DE ENERGIA S.A.",
    "nomeFantasia": "ENERGIA BRASIL",
    "classificacao": "Pessoa jurídica",
    "fornecedorCnpj": "33.000.167/0001-01",
    "fornecedorCpfMascarado": null,
    "inscricaoSocial": null
  },
  "estatisticas": {
    "quantidadeContratos": 1,
    "quantidadeContratosAtivos": 1,
    "somaValorInicial": 1250000,
    "somaValorAtual": 1375000,
    "assinaturaMaisAntiga": "2025-01-15",
    "assinaturaMaisRecente": "2025-01-15"
  },
  "contratos": [
    {
      "contratoRegistroId": 4759147,
      "referencia": "bd-a1b2c3d4e5f6",
      "numeroContrato": "000012025",
      "descricao": "Fornecimento de equipamentos e serviços técnicos especializados",
      "situacao": "Publicado",
      "modalidadeCompra": "Pregão eletrônico",
      "fundamentoLegal": "Lei nº 14.133/2021",
      "numeroProcesso": "00000.000001/2025-10",
      "assinadoEm": "2025-01-15",
      "publicadoEm": "2025-01-20",
      "vigenciaInicio": "2025-01-15",
      "vigenciaFim": "2027-01-14",
      "ativo": true,
      "valorInicial": 1250000,
      "valorAtual": 1375000,
      "compra": {
        "numero": "000012025",
        "numeroProcesso": "00000.000001/2025-10",
        "descricao": "Compra de equipamentos e serviços técnicos especializados",
        "contatoResponsavel": "MARIA ******"
      },
      "orgaoContratante": {
        "ministerio": "MINISTÉRIO DA GESTÃO E DA INOVAÇÃO",
        "ministerioSigla": "MGI",
        "ministerioCodigo": "00000",
        "entidade": "ÓRGÃO PÚBLICO FEDERAL",
        "entidadeSigla": "OPF",
        "entidadeCodigo": "000000",
        "entidadeCnpj": "00000000000100",
        "unidadeGestora": "UNIDADE GESTORA DE CONTRATAÇÕES",
        "unidadeGestoraCodigo": "000001",
        "poder": "EXECUTIVO"
      },
      "orgaoComprador": {
        "ministerio": "MINISTÉRIO DA GESTÃO E DA INOVAÇÃO",
        "ministerioSigla": "MGI",
        "ministerioCodigo": "00000",
        "entidade": "ÓRGÃO PÚBLICO FEDERAL",
        "entidadeSigla": "OPF",
        "entidadeCodigo": "000000",
        "entidadeCnpj": "00000000000100",
        "unidadeGestora": "UNIDADE GESTORA DE COMPRAS",
        "unidadeGestoraCodigo": "000001",
        "poder": "EXECUTIVO"
      }
    }
  ],
  "paginasConsultadas": 1,
  "truncado": false,
  "erro": null
}
```

Quando não há contrato, `encontrado` será `false`, `contratos` será uma lista vazia e não haverá cobrança. CNPJ inválido retorna `cnpjValido: false` e `erro: "CNPJ inválido."`.

### 🔐 Proteção de dados pessoais

- CNPJs e nomes de pessoas jurídicas permanecem completos.
- Qualquer CPF eventualmente presente é parcialmente mascarado.
- O nome do contato responsável pela compra é reduzido ao primeiro nome seguido de `******`.

### 💰 Cobrança Pay Per Event

O evento utilizado é **`contrato-encontrado`**. Há uma cobrança para cada contrato efetivamente entregue em `contratos[]`.

- Um CNPJ com 8 contratos retornados = 8 eventos
- Dois CNPJs com 3 e 5 contratos = 8 eventos
- CNPJ sem contratos = nenhuma cobrança
- CNPJ inválido = nenhuma cobrança

O preço vigente aparece na aba **Pricing**. Se o limite de gastos do usuário for atingido, nenhum contrato não cobrado é entregue.

### ⚡ Integração via API

#### Batch

```bash
curl -X POST "https://api.apify.com/v2/acts/brasildados~consulta-contratos-governo-cnpj/run-sync-get-dataset-items?token=SEU_TOKEN_APIFY" \
  -H "Content-Type: application/json" \
  --compressed \
  -d '{"cnpjs":["33.000.167/0001-01","02341470000144"],"maxContratosPorCnpj":50}'
```

#### Standby

```bash
curl -X POST "https://brasildados--consulta-contratos-governo-cnpj.apify.actor/consultar" \
  -H "Authorization: Bearer SEU_TOKEN_APIFY" \
  -H "Content-Type: application/json" \
  --compressed \
  -d '{"cnpjs":["33.000.167/0001-01","02341470000144"],"maxContratosPorCnpj":50}'
```

A aba **Endpoints** possui um Playground com o mesmo exemplo completo do retorno real.

### 🧭 Como interpretar o resultado?

- `ativo` é calculado comparando `vigenciaFim` com a data da execução.
- `truncado: true` indica que o limite configurado foi atingido; aumente `maxContratosPorCnpj` para buscar mais histórico.
- `referencia` é um identificador opaco e estável para conciliação.
- Os valores monetários são números em reais conforme registrados na fonte pública.
- Campos não informados são representados por texto vazio ou `null`, conforme o schema.

### Outros Actors BrasilDados

- [Enriquecimento de empresas por CNPJ](https://apify.com/brasildados/enriquecimento-lista-empresas-por-cnpj?fpr=t5lwzq)
- [Gerador de leads por CNAE](https://apify.com/brasildados/gerador-de-leads-scraper-cnae?fpr=t5lwzq)
- [Loja BrasilDados](https://apify.com/brasildados?fpr=t5lwzq)

### Perguntas frequentes

#### Aceita CPF?

Não. O Actor é focado exclusivamente em contratos de empresas consultadas por CNPJ.

#### Retorna somente contratos ativos?

Não. Retorna contratos ativos e históricos. Use `contratos[].ativo` para filtrar.

#### Posso consultar somente um CNPJ?

Sim: `{"cnpjs":["33000167000101"]}`.

#### Por que existe um nível `contratos[]`?

Uma empresa pode possuir vários contratos. O nível adicional preserva uma linha por CNPJ e evita repetir os dados da empresa.

#### Posso exportar para Excel?

Sim. Abra o Dataset e escolha XLSX, CSV, JSON, XML ou outro formato oferecido pela Apify.

#### Os dados são atuais?

A consulta é realizada em tempo de execução. A disponibilidade e a atualização dependem dos registros públicos auditáveis.

# Actor input Schema

## `cnpjs` (type: `array`):

CNPJs das empresas, com ou sem pontuação. Valores duplicados são consultados somente uma vez.

## `maxContratosPorCnpj` (type: `integer`):

Quantidade máxima de contratos retornados para cada CNPJ. A cobrança ocorre apenas pelos contratos efetivamente entregues.

## Actor input object example

```json
{
  "cnpjs": [
    "33.000.167/0001-01",
    "02341470000144"
  ],
  "maxContratosPorCnpj": 50
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("brasildados/consulta-contratos-governo-cnpj").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("brasildados/consulta-contratos-governo-cnpj").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call brasildados/consulta-contratos-governo-cnpj --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,brasildados/consulta-contratos-governo-cnpj"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/IYRFwznw4ByvYJUae/builds/4etSiZVI95tKpxc78/openapi.json
