# Brazil Sanctions & Debarment Check (CNPJ) — 5 Official Lists ✅ (`brazilayer/cnpj-sanctions-check`) Actor

Screen any Brazilian CNPJ against the 5 official integrity lists in one run: debarment (CEIS), corruption fines (CNEP), blocked nonprofits (CEPIM), slave labor (MTE) and leniency deals (CGU). A database check on government bulk data, not a scraper. One verdict per company: clean or flagged.

- **URL**: https://apify.com/brazilayer/cnpj-sanctions-check.md
- **Developed by:** [Brazilayer](https://apify.com/brazilayer) (community)
- **Categories:** Lead generation, Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$10.00 / 1,000 cnpj screeneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Brazil Sanctions & Debarment Check (CNPJ)

Screen any Brazilian company against **all five official integrity lists in one
run**. Paste a list of CNPJs — straight from a spreadsheet — and get back one
verdict per company: clean, or flagged with every sanction detailed.

**This is a database check, not a scraper.** The government bulk datasets are
loaded in our own Postgres, so there is nothing to block you, no rate limit, and
nothing that breaks when a portal changes layout. Five hundred CNPJs come back in
seconds.

### The five lists

| List | Maintained by | What a hit means |
|---|---|---|
| **CEIS** | CGU | Debarred — banned from public contracts |
| **CNEP** | CGU | Fined under the Anti-Corruption Law (Lei 12.846) |
| **CEPIM** | CGU | Nonprofit blocked from federal agreements |
| **Slave labor registry** | MTE | Caught employing forced labor (the "lista suja") |
| **Leniency agreements** | CGU/AGU | Signed a corruption leniency deal |

### What you get per CNPJ

| Field | Meaning |
|---|---|
| `ficha_limpa` | `true` when the company appears in **none** of the five lists |
| `total_apontamentos` | Number of hits across all lists |
| `ceis`, `cnep`, `cepim`, `trabalho_escravo`, `acordos_leniencia` | Hits per list |
| `apontamentos` | Full detail of every sanction: authority, case number, dates, legal basis, fine amount |
| `valido` | `false` when the entry is not a real CNPJ — marked, not charged |

A clean answer is a deliverable too: "checked on this date against all five
official lists, no hits" is exactly what a compliance file needs to contain.

### Typical uses

- **Vendor onboarding** — screen a supplier before signing, document the result
- **KYB / due diligence** — corruption fines and debarments in the risk picture
- **Supply-chain ESG** — the slave-labor registry is the hard evidence auditors ask for
- **Public procurement** — check partners and subcontractors for debarment before bidding
- **Portfolio review** — re-screen the whole vendor base after each monthly update

### Input

```json
{
  "cnpjs": ["00.000.000/0001-91", "33000167000101", "60.701.190/0001-04"]
}
```

Punctuation optional. Duplicate lines are skipped. Invalid entries come back
marked (`valido: false`) instead of failing the run — and you are not charged
for them.

### Pricing

Charged **per CNPJ screened**, not per run. Screen 10 companies, pay for 10.
Invalid and duplicate entries are free. No subscription, no minimum.

### Data source and privacy

Official bulk datasets published by CGU (CEIS, CNEP, CEPIM, leniency agreements)
and MTE (slave-labor registry), refreshed on our side after each government
update, with the load date returned in every response (`fonte.carregado_em`).
Scope is **companies only** (pessoas jurídicas): the check covers CNPJs, not
individuals, in line with LGPD — we redistribute exactly what the government
already publishes about legal entities, nothing enriched, nothing inferred.

Built on the [Brazilayer](https://api.brazilayer.com/docs) data platform — the
same registry behind our
[Brazilian Company Database Search](https://apify.com/brazilayer/brazilian-company-search)
actor: find companies there, screen them here.

# Actor input Schema

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

One Brazilian company number (CNPJ) per line, with or without punctuation. Paste straight from a spreadsheet — invalid entries come back marked instead of failing the run, and you are not charged for them.

## Actor input object example

```json
{
  "cnpjs": [
    "00000000000191",
    "33000167000101"
  ]
}
```

# Actor output Schema

## `results` (type: `string`):

Every CNPJ checked in this run, one item each.

## `resultsCsv` (type: `string`):

Same list as a CSV download — drop it back into the spreadsheet the CNPJs came from.

## `consoleView` (type: `string`):

Browse the results as a table.

# 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 = {
    "cnpjs": [
        "00.000.000/0001-91",
        "33.000.167/0001-01"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("brazilayer/cnpj-sanctions-check").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 = { "cnpjs": [
        "00.000.000/0001-91",
        "33.000.167/0001-01",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("brazilayer/cnpj-sanctions-check").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "cnpjs": [
    "00.000.000/0001-91",
    "33.000.167/0001-01"
  ]
}' |
apify call brazilayer/cnpj-sanctions-check --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=brazilayer/cnpj-sanctions-check",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/fWr8M34r5VANWm1Y5/builds/LzIGpPLEbv7cNpfoz/openapi.json
