# Brazil Complaints & Company Reputation Scraper (`responsible_front_evw/consumidor-gov-br-company-complaints`) Actor

Official consumer complaint data and company reputation for 2,000+ Brazilian companies from Consumidor.gov.br (government, not Reclame Aqui). Complaints, solution rate, satisfaction, response time and rankings by sector or brand: banks, telecoms, health plans. No complaint texts or consumer data.

- **URL**: https://apify.com/responsible_front_evw/consumidor-gov-br-company-complaints.md
- **Developed by:** [Open Data Tools](https://apify.com/responsible_front_evw) (community)
- **Categories:** Business, Lead generation, Other
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Brazil Complaints & Company Reputation Scraper: Consumidor.gov.br

Get the **official consumer complaint indicators** of more than 2,000 companies in Brazil from **Consumidor.gov.br**, the federal government's complaint platform run by Senacon (Ministry of Justice). Banks, telecoms, health insurance plans, e-commerce, airlines, insurers, energy, retail and 37 more sectors. No login, no API key, no proxy.

For each company you get the **number of complaints, solution rate, satisfaction score (1 to 5), share of complaints answered and average response time in days**, for the last 30 days, the last 6 months, the current year or all time. Plus the company's position in the four **official national rankings** and its position **within its own sector**.

**Company data only.** The Actor never opens complaints: no complaint texts, no consumer names, no cities of consumers.

### What you can do

- **Benchmark a sector:** all telecoms, banks or health plans side by side, with complaints, solution rate and satisfaction for the same period.
- **Track brands:** Nubank, Mercado Livre, Amazon, Shopee, Casas Bahia... every week or month, to see if service gets better or worse.
- **Due diligence and supplier checks:** official complaint record of a Brazilian company before you sign with it.
- **Sector rankings:** who solves most complaints, who answers fastest, who has the happiest customers, in Brazil and inside each sector.
- **New companies on the platform:** with *Joined the platform in the last N days* and *Only new since last run*, catch companies that just joined Consumidor.gov.br.
- **Fast full list:** turn off company indicators to get all 2,000+ companies with sector and rankings in a few seconds.

### Input example

```json
{
  "segments": ["Telecoms"],
  "periods": ["6m", "all"],
  "maxItems": 50
}
```

Sectors can be written in English or Portuguese, or as part of the name: `Banks`, `Health insurance plans`, `E-commerce`, `Airlines`, `Insurance`, `Electricity`, `Supermercados`, `Varejo`...

### Output example

```json
{
  "companyId": "20140206000001341",
  "tradeName": "Claro Celular",
  "legalName": "Claro S.A.",
  "segment": "Operadoras de Telecomunicações (Telefonia, Internet, TV por assinatura)",
  "segmentEn": "Telecoms (phone, internet, pay TV)",
  "joinedPlatformDate": "2014-02-06",
  "deactivated": false,
  "complaints_6m": 29180,
  "solutionIndexPct_6m": 90.6,
  "satisfactionScore_6m": 3.6,
  "respondedPct_6m": 100,
  "avgResponseDays_6m": 8,
  "complaints_allTime": 392864,
  "solutionIndexPct_allTime": 90.12,
  "satisfactionScore_allTime": 3.82,
  "respondedPct_allTime": 99.95,
  "avgResponseDays_allTime": 7.81,
  "rankingPeriodDays": 365,
  "solutionRank": 154,
  "solutionRankInSegment": 2,
  "satisfactionRank": 51,
  "satisfactionRankInSegment": 1,
  "responseTimeRank": 624,
  "responseTimeRankInSegment": 9,
  "respondedRank": 172,
  "respondedRankInSegment": 6,
  "rankedCompanies": 800,
  "profileUrl": "https://www.consumidor.gov.br/pages/empresa/20140206000001341/perfil",
  "source": "Consumidor.gov.br, Secretaria Nacional do Consumidor (Senacon), Ministerio da Justica e Seguranca Publica, Brazil. Public company indicators."
}
```

Real row from a test run on 1 November 2026. Field suffixes: `_30d`, `_6m`, `_thisYear`, `_allTime`, one block per chosen period.

### What the indicators mean

They are the official definitions of Consumidor.gov.br. Only finished complaints count (the company had up to 10 days to answer and the consumer up to 20 days to rate it).

- **complaints:** finished complaints in the period.
- **solutionIndexPct:** share rated "solved" by consumers (a complaint the consumer does not rate counts as solved).
- **satisfactionScore:** average consumer rating of the service, from 1 (unhappy) to 5 (very happy).
- **respondedPct:** share of complaints the company answered.
- **avgResponseDays:** average days to answer.
- **deactivated:** the site marks old brands as DESATIVADA (for example after a merger). Some still receive complaints. Turn off *Include deactivated companies* to skip them.
- **Ranks:** position in the official national rankings for the chosen ranking period. The site publishes the top 800 of each ranking; companies outside it, or with too few complaints, get empty ranks. `...InSegment` is the position among companies of the same sector in that national ranking.

### Pricing

Pay per result:

| Event | Price |
|---|---|
| Actor start | $0.00005 |
| Each company returned | $0.003 ($3 per 1,000) |

Companies skipped by your filters (for example below *Minimum complaints*) and companies already returned in alert mode are not charged.

### How it works and limits

- Reads the public pages of Consumidor.gov.br: the list of participating companies, the official rankings and each company profile. At least 1 second between requests.
- A company with indicators takes 1 request plus 1 per period: about 3 seconds with the default two periods. 100 companies take about 5 minutes. Without indicators, the whole list takes a few seconds.
- Only companies that joined Consumidor.gov.br are covered (2,000+, including many big brands in regulated sectors). It is not Reclame Aqui: different platform, different numbers.
- Company names are shown as published on the platform: a small business can trade under its owner's name.
- Alert mode saves what it has seen when a run finishes: if a run is aborted or times out, rows it already returned can come again in the next run and are charged again.
- The brand filter is a simple text match: `Amazon` also returns `Banco da Amazonia` and `Amazonas Energia`.
- If the site fails or blocks and no company could be read, the run ends as **failed** with a clear message. A search with no matching company ends as succeeded with 0 results.

### Source and legal

Data from Consumidor.gov.br, the public service of the Secretaria Nacional do Consumidor (Senacon), Ministry of Justice and Public Security of Brazil. Its terms of use say that reports and statistics published on the site are open to anyone, whatever the use. This Actor only reads public company indicators, follows the site's robots.txt (it never opens complaint pages) and does not use any logo. It is not affiliated with or endorsed by the Brazilian government.

### FAQ

#### Is this Reclame Aqui?

No. Reclame Aqui is a private website. Consumidor.gov.br is the official platform of the Brazilian government, where companies sign up and commit to answer within 10 days. Many companies are on both, with different numbers. Use this Actor when you need an official, government source.

#### Do I get the complaints themselves?

No. Only company-level indicators. Complaint texts are written by consumers and may contain personal data, so the Actor does not read them.

#### Can I get one company only?

Yes: put its brand in *Brand or company name contains*, for example `Nubank`.

#### How do I check a company's reputation in Brazil?

Put its brand in *Brand or company name contains*. You get its complaints, solution rate, satisfaction score, response time and rankings, nationally and inside its sector.

#### Which sectors are covered?

45 sectors, including banks, telecoms, health insurance plans, e-commerce, airlines, insurers, energy and retail.

#### How much does it cost?

$3 per 1,000 companies, plus $0.00005 per run. Companies skipped by your filters are not charged.

#### Can I call it from my own code?

Yes. Like any Apify Actor, you can start it with the Apify API or on a schedule and read the results as JSON, CSV or Excel.

#### How often is the data updated?

The indicators are read from the site on each run. Schedule the Actor daily, weekly or monthly to build your own history.

#### Em português

Reputação de empresas no Brasil: indicadores oficiais de reclamações do Consumidor.gov.br para mais de 2.000 empresas: total de reclamações, índice de solução, satisfação, reclamações respondidas e prazo médio de resposta, por período, mais as posições nos rankings oficiais. Filtre por segmento ou marca. Sem textos de reclamações nem dados de consumidores.

#### Questions or a missing field?

Open an issue on the Actor page and we will look at it.

# Actor input Schema

## `segments` (type: `array`):

Sectors as listed on Consumidor.gov.br, in English or Portuguese, or part of the name: Telecoms, Banks, Health insurance plans, E-commerce, Airlines, Insurance, Electricity, Retail, Supermercados... Leave empty for all sectors.

## `companyNames` (type: `array`):

Optional: one or more words matched against the brand name on the platform (accents and case ignored), for example Nubank, Mercado Livre, Amazon. Note that 'Amazon' also matches 'Banco da Amazonia'.

## `periods` (type: `array`):

One block of fields per period: complaints, solution rate, satisfaction, response rate and average response days. 30d = last 30 days, 6m = last 6 months, year = current calendar year, all = since the company joined. Each period is one extra request per company.

## `includeProfileIndicators` (type: `boolean`):

Open each company profile to get complaint counts and indicators for the chosen periods (about 1 second per request). Turn off for a fast list of all companies with their rankings only.

## `includeRankings` (type: `boolean`):

Position of each company in the four official national rankings (solution, satisfaction, response time, responded complaints) and its position within its own sector. Only 4 requests per run. The site publishes the top 800 of each ranking; companies outside it get empty ranks.

## `rankingPeriodDays` (type: `string`):

Period used by the official rankings, in days.

## `minComplaints` (type: `integer`):

Optional: skip companies with fewer complaints than this in the first chosen period (needs company indicators). Skipped companies are not charged.

## `includeDeactivated` (type: `boolean`):

The site keeps old brands marked DESATIVADA or DESATIVADO (for example after a merger). Some still get complaints, others have none. Turn this off to skip them. Every row has a deactivated flag.

## `joinedPlatformSince` (type: `string`):

Optional: only companies that joined Consumidor.gov.br on or after this date (YYYY-MM-DD). Newest first.

## `joinedPlatformWithinDays` (type: `integer`):

Optional: only companies that joined Consumidor.gov.br in the last N days. Newest first.

## `onlyNewSinceLastRun` (type: `boolean`):

Skip companies this same search already returned in earlier runs, so you do not pay twice. Use it on a schedule to catch companies that just joined the platform.

## `maxItems` (type: `integer`):

Maximum number of companies to return (you pay per company).

## `maxRequests` (type: `integer`):

Safety limit per run. A company with indicators costs 1 request plus 1 per period.

## `requestDelaySecs` (type: `integer`):

Minimum 1 second, to be gentle with a public government site.

## Actor input object example

```json
{
  "segments": [
    "Telecoms"
  ],
  "periods": [
    "6m",
    "all"
  ],
  "includeProfileIndicators": true,
  "includeRankings": true,
  "rankingPeriodDays": "365",
  "minComplaints": 0,
  "includeDeactivated": true,
  "onlyNewSinceLastRun": false,
  "maxItems": 50,
  "maxRequests": 2000,
  "requestDelaySecs": 1
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `results` (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 = {
    "segments": [
        "Telecoms"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("responsible_front_evw/consumidor-gov-br-company-complaints").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 = { "segments": ["Telecoms"] }

# Run the Actor and wait for it to finish
run = client.actor("responsible_front_evw/consumidor-gov-br-company-complaints").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 '{
  "segments": [
    "Telecoms"
  ]
}' |
apify call responsible_front_evw/consumidor-gov-br-company-complaints --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,responsible_front_evw/consumidor-gov-br-company-complaints"
        }
    }
}
```

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/hXjeWYAjnsm2AzJq8/builds/eQAaPEYE90aSQvL18/openapi.json
