# ReclameAqui Scraper \[$4/1k💰] | RA1000 | Complaints (`ahmed_jasarevic/reclameaqui-com-br-scraper`) Actor

Brazilian company reputation data: ReclameAqui score, RA1000 status, response rates, CNPJ, segment rank and complaint threads with company replies — for CX research and monitoring.

- **URL**: https://apify.com/ahmed\_jasarevic/reclameaqui-com-br-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.70 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## ReclameAqui Scraper — Brazilian Company Reputation & Consumer Complaints Data

Extract **ReclameAqui.com.br reputation scorecards and complaint threads** for any Brazilian company: RA1000 status, consumer score, response/resolution rates, segment ranking, CNPJ, contacts and every public complaint with the full company-reply thread. Built for brand reputation monitoring, customer-experience (CX) analysis and market research in Brazil.

### Main Use Cases

- **Brand reputation monitoring** — track a company's ReclameAqui score, RA1000 status and response rate over time.
- **CX & customer-experience analysis** — read complaints and company replies to find recurring problems (category, city, problem tags).
- **Competitor benchmarking** — compare reputation metrics across companies in the same segment.
- **Due diligence / market research** — segment position, top problems and contact data for Brazilian companies.
- **Lead qualification** — companies with poor answer rates signal service gaps (upsell opportunity for CX tools/e-commerce platforms).

### How It Works

ReclameAqui is a React SPA fronting its internal `morpheus-bff.reclameaqui.com.br` JSON API. The Actor speaks to that API directly using a `curl-impersonate`-style Chrome TLS fingerprint to pass the platform's challenge layer, with an SSR (server-side-rendered) fallback when the JSON API is unavailable. No browser, no manual CAPTCHA solving. Runs gently by default (1 concurrent company, 300 ms delay) to stay well inside rate limits.

### Get Company Reputation Data Without an Official ReclameAqui API

ReclameAqui's official API is a **paid, contract-based product aimed at companies that want to manage/respond to complaints** — it is not a public data feed. This Actor gives you the same public reputation and complaint data visible on the website (score, RA1000, answered/solved/deal-again rates, segment rank, top problems, CNPJ, complaint threads) as structured JSON — no contract, no monthly fee, pay only for what you use. Free Apify users get a **preview of 100 records per run**.

### Input

| Field | Type | Required | Default | Notes |
|-------|------|----------|---------|-------|
| `companies` | array | Yes | — | Slug, name or full URL per company (e.g. `nubank`, `Nubank` or `https://www.reclameaqui.com.br/empresa/nubank/`) |
| `includeCompanyProfile` | boolean | No | `true` | Emit one company record with the full reputation scorecard |
| `scrapeComplaints` | boolean | No | `true` | Emit complaint records for each company |
| `includeInteractions` | boolean | No | `true` | Rebuild full reply threads (company answers + consumer replies); costs one extra request per complaint |
| `complaintStatusFilter` | select | No | `LATEST` | Buckets: LATEST, PENDING, ANSWERED, EVALUATED, SOLVED — see descriptions in the input schema |
| `solvedOnly` | boolean | No | `false` | Emit only complaints marked solved by the consumer |
| `withReplyOnly` | boolean | No | `false` | Emit only complaints that carry a company reply |
| `maxComplaintsPerCompany` | integer | No | `50` | Cap per company (0–500); 0 = platform ceiling |
| `maxItems` | integer | No | `200` | Hard cap on total records (companies + complaints), up to 100k |
| `maxConcurrency` | integer | No | `1` | Companies scraped in parallel; 1 = sequential (gentlest) |
| `minDelayMs` | integer | No | `300` | Gap between sequential requests |
| `flatten` | boolean | No | `false` | Collapse nested objects into dotted keys for spreadsheets |
| `excludeEmptyFields` | boolean | No | `false` | Omit null/empty fields from records |
| `descriptionMaxLength` | integer | No | `0` | Truncate complaint descriptions (0 = no truncation) |
| `proxy` | proxy | No | — | Standard Apify proxy picker |

Example input:

```json
{
  "companies": ["nubank", "magazine-luiza"],
  "includeCompanyProfile": true,
  "scrapeComplaints": true,
  "includeInteractions": false,
  "maxComplaintsPerCompany": 100,
  "maxItems": 500
}
```

### Output

Two record types are emitted (companies and complaints) — set `flatten: true` for spreadsheet-friendly flat rows.

Company record:

```json
{
  "name": "Nubank",
  "slug": "nubank",
  "url": "https://www.reclameaqui.com.br/empresa/nubank/",
  "cnpj": "18.236.120/0001-58",
  "score": 8.0,
  "consumerScore": "Ótimo",
  "reputationStatus": "RA1000",
  "answeredRate": 98.9,
  "solvedRate": 87.5,
  "dealAgainRate": 92.0,
  "segment": "Bancos",
  "segmentPosition": 1,
  "topProblems": ["Atendimento", "Cartão de crédito", "App"],
  "verified": true,
  "contacts": { "website": "...", "phone": "0800..." }
}
```

Complaint record (with `includeInteractions`):

```json
{
  "id": "123456781",
  "title": "Cobrança indevida no cartão",
  "company": "Nubank",
  "status": "RESOLVIDO",
  "solved": true,
  "score": 8,
  "created": "2025-11-02",
  "category": "Bancos",
  "problem": "Cobrança",
  "city": "São Paulo",
  "state": "SP",
  "interactions": [
    { "author": "Company", "body": "...", "date": "..." },
    { "author": "Consumer", "body": "...", "date": "..." }
  ]
}
```

### Monitor Brazilian Company Reputation Over Time

Pair the Actor with an Apify Schedule (e.g. daily or weekly) to track score, RA1000 status, answered/solved rates and new complaints per company. Historical runs let you correlate reputation changes with CX actions. Export runs as JSON, CSV or Excel for dashboards.

### Integrations & Automation

- **Apify API** — run and pull results programmatically, or trigger from webhooks.
- **Scheduling** — daily reputation snapshots are the highest-value pattern here (recurring usage also improves Apify Store recommendation signals).
- **Spreadsheets & BI** — use `flatten: true` for direct CSV/Excel export into BI dashboards.

### Related Actors

- [ReclameAqui Scraper (blackfalcondata)](https://apify.com/blackfalcondata/reclameaqui-scraper) — pay-per-complaint ReclameAqui actor ($0.025/complaint, $0.05/company)
- [ReclameAqui Scraper (viralanalyzer)](https://apify.com/viralanalyzer/reclameaqui-scraper) — alternative complaint scraper ($0.05/complaint)
- [ReclameAqui Reputation Scraper (webdata\_labs)](https://apify.com/webdata_labs/reclameaqui-scraper) — reputation-focused actor (~$0.0046/record)
- [ReclameAqui Scraper (memo23)](https://apify.com/memo23/reclameaqui-scraper) — ReclameAqui reputation + complaints
- [ReclameAqui Scraper (solidcode)](https://apify.com/solidcode/reclameaqui-scraper) — ReclameAqui complaints alternative

### FAQ

#### Why use this Actor instead of the official ReclameAqui API?

The official API is a paid, contract-based offering for companies (mainly to manage and answer complaints), not a public data feed. This Actor extracts the same publicly visible reputation scorecards and complaint threads via ReclameAqui's own internal BFF endpoint — no contract, no minimum spend, and you pay only Apify compute usage.

#### What is RA1000 and why does it matter?

RA1000 is ReclameAqui's reputation seal: companies with a high consumer score whose complaints are answered and solved can earn the "RA1000" badge — a trust signal often displayed in physical stores and advertisements. This Actor returns the status (`reputationStatus`) so you can track who has it, who lost it, and who is close to earning it.

#### What are alternatives to this Actor?

Other Apify options: blackfalcondata ($0.05/company + $0.025/complaint), viralanalyzer ($0.05/complaint), webdata\_labs (~$0.0046/reputation record), memo23 and solidcode. This Actor has **no per-record fee** — you pay only Apify compute, and free users get a 100-record preview per run.

#### How can I monitor a competitor's reputation score?

Add the competitor's slug to `companies` and schedule weekly runs. The company record gives you score, RA1000, answered/solved/deal-again rates and segment position — enough for a standing competitor benchmark.

#### How many complaints can I scrape per company?

`maxComplaintsPerCompany` caps it per company (0–500; 0 = platform ceiling). Note the site exposes roughly the most recent ~7,000 complaints per company; for anything larger, run multiple queries with status filters.

### For AI Agents & LLM Apps

**Purpose:** returns ReclameAqui company reputation scorecards (score, RA1000, response/resolution rates, CNPJ, contacts) and consumer complaint threads with company replies.

Minimal input:

```json
{ "companies": ["nubank"] }
```

Full CX-research variant:

```json
{
  "companies": ["nubank", "magazine-luiza"],
  "maxComplaintsPerCompany": 200,
  "includeInteractions": false,
  "flatten": true
}
```

Output fields (company): `name, slug, url, cnpj, score, consumerScore, reputationStatus, answeredRate, solvedRate, dealAgainRate, segment, segmentPosition, topProblems, verified, contacts` — and (complaint): `id, title, company, status, solved, score, created, category, problem, city, state, interactions[]`.

Behaviors an agent should know:

- `companies` accepts slugs, names or full URLs; the slug is what the actor resolves first.
- `includeInteractions: true` costs one extra request per complaint — keep it off for bulk complaint scans.
- `complaintStatusFilter` buckets: LATEST = newest regardless of state; ANSWERED / EVALUATED / SOLVED carry a company reply; PENDING = no reply yet.
- Complaints are returned most-recent-first per company; the visible archive covers roughly the last ~7,000 complaints per company.
- Billing: compute-based only (no per-record fee); free tier previews 100 records per run.

### Legal & Compliance Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by or sponsored by ReclameAqui. It reads publicly available company reputation pages and complaint threads — it does not bypass logins, paywalls or CAPTCHAs, and it does not access non-public complaint data. You are responsible for your own compliance with ReclameAqui's Terms of Service, Brazilian data-protection law (LGPD) and any other applicable regulations when using the results.

### SEO Keywords

reclame aqui scraper, reclame aqui api, reclameaqui data, reputação reclame aqui, reclame aqui monitoramento, ra1000, score reclame aqui, reclamações brasil, análise de reclamações, customer experience brasil, cx monitoring brasil, reputação de empresas, benchmark concorrentes brasil, complaints data brazil, reclame aqui cnpj, brand reputation monitor, consumer complaints api, brazilian company data, respostas das empresas, reclame aqui solved

# Actor input Schema

## `companies` (type: `array`):

Companies to scrape. Each entry can be a ReclameAqui slug (e.g. "nubank"), a company name (e.g. "Nubank"), or a full company URL (e.g. https://www.reclameaqui.com.br/empresa/nubank/). The slug is the part of the company page URL after /empresa/.

## `includeCompanyProfile` (type: `boolean`):

Emit one company record per company with the full reputation scorecard: score, response/resolution rates, RA1000 status, segment ranking, top problems, CNPJ and contacts.

## `scrapeComplaints` (type: `boolean`):

Emit complaint records for each company.

## `includeInteractions` (type: `boolean`):

Fetch each complaint's detail page to rebuild the full back-and-forth thread (company answers + consumer replies). Costs one extra request per complaint.

## `statusFilter` (type: `array`):

Pick one or more complaint buckets from the dropdown. LATEST = newest regardless of state. ANSWERED / EVALUATED / SOLVED include a company reply. PENDING = still waiting for the company.

## `solvedOnly` (type: `boolean`):

Emit only complaints marked as solved by the consumer.

## `withReplyOnly` (type: `boolean`):

Emit only complaints in ANSWERED / EVALUATED / SOLVED status (they carry a company reply).

## `maxComplaintsPerCompany` (type: `integer`):

Cap on complaints pulled per company (most recent first). 0 = unlimited (platform pagination ceiling applies).

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

Hard cap on total output records (companies + complaints combined).

## `maxConcurrency` (type: `integer`):

How many companies to scrape in parallel. Default 1 = sequential (gentlest on the site). Raise only if you need speed and can accept more parallel requests.

## `minDelayMs` (type: `integer`):

Soft gap between sequential HTTP requests from the same client (rate limiting).

## `flatten` (type: `boolean`):

Collapse nested objects into dotted keys (e.g. reputation.finalScore) for spreadsheet-friendly output.

## `excludeEmptyFields` (type: `boolean`):

Omit null / empty-string / empty-array fields from output records.

## `descriptionMaxLength` (type: `integer`):

Truncate complaint descriptions to this many characters (0 = no truncation).

## `proxy` (type: `object`):

Select proxies to be used by your crawler.

## Actor input object example

```json
{
  "companies": [
    "nubank"
  ],
  "includeCompanyProfile": true,
  "scrapeComplaints": true,
  "includeInteractions": true,
  "statusFilter": [
    "LATEST"
  ],
  "solvedOnly": false,
  "withReplyOnly": false,
  "maxComplaintsPerCompany": 50,
  "maxItems": 200,
  "maxConcurrency": 1,
  "minDelayMs": 300,
  "flatten": false,
  "excludeEmptyFields": false,
  "descriptionMaxLength": 0,
  "proxy": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `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 = {
    "companies": [
        "nubank"
    ],
    "statusFilter": [
        "LATEST"
    ],
    "proxy": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/reclameaqui-com-br-scraper").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 = {
    "companies": ["nubank"],
    "statusFilter": ["LATEST"],
    "proxy": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/reclameaqui-com-br-scraper").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 '{
  "companies": [
    "nubank"
  ],
  "statusFilter": [
    "LATEST"
  ],
  "proxy": {
    "useApifyProxy": false
  }
}' |
apify call ahmed_jasarevic/reclameaqui-com-br-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ahmed_jasarevic/reclameaqui-com-br-scraper"
        }
    }
}
```

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/7ET7QHCBkGBhKhv3A/builds/17ZFX8SeZxp5KF3Z1/openapi.json
