# Reclame Aqui Scraper - Complaints, Replies & Reputation (`clearpath/reclameaqui-scraper`) Actor

Scrape ReclameAqui (Brazil): every complaint with full text, the company's answers and the consumer's verdict, plus each company's reputation scorecard. 1,000 complaints in 38 seconds. Search by company name, link, CNPJ or keyword; filter by status, category or date.

- **URL**: https://apify.com/clearpath/reclameaqui-scraper.md
- **Developed by:** [ClearPath](https://apify.com/clearpath) (community)
- **Categories:** Lead generation, E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.48 / 1,000 complaints

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

[![1,000 ReclameAqui complaints in 38 seconds. Full text, the company's answer and the consumer's verdict on every one.](https://api.apify.com/v2/key-value-stores/rfpznBPgVbyLYqNaQ/records/reclameaqui-scraper-readme-hero-f45526c98891.png)](https://console.apify.com/actors/YmudOfumJX0Ew4Ml5/input)

From **Clearpath**, creators of [TheFork Restaurant Reviews Scraper](https://apify.com/clearpath/thefork-restaurant-reviews) and [Expedia Hotels & Reviews Scraper](https://apify.com/clearpath/expedia-hotels-scraper-pro), with **11,000+ combined lifetime runs** across those two review scrapers.

### Brazil's complaint data, with the answer and the verdict

- **1,000 complaints in 38 seconds, with full detail.** One Nubank run delivered every complaint's full text, the company's reply thread, the consumer's rating and whether it was solved. Run time varies with the company and the options you pick.
- **The company's whole ReclameAqui scorecard.** Reputation status and score, response, resolution and "would do business again" rates, average response time, complaints in the last 30 days, 6 and 12 months and all time, five reporting periods, six months of reputation history, segment ranking, top problems, CNPJ, address, phones, FAQs and posts.
- **Find exactly the complaints you need.** Look companies up by name, page link or CNPJ, or search a keyword across all of ReclameAqui. Filter by status, category, problem, product or date, and let scheduled runs return only new or changed complaints.

ReclameAqui hides consumers' names, so they are not returned. For very large companies a few older complaints can be out of reach.

<a href="https://console.apify.com/actors/YmudOfumJX0Ew4Ml5/input" data-demo-cta="true"><img src="https://api.apify.com/v2/key-value-stores/rfpznBPgVbyLYqNaQ/records/reclameaqui-scraper-readme-cta-5048e3dd3a5b.svg" width="290" height="48" alt="Get ReclameAqui complaints"></a>

#### Try 100 Nubank complaints

Open the [actor input](https://console.apify.com/actors/YmudOfumJX0Ew4Ml5/input), switch to JSON and paste this example. It returns Nubank's reputation record and its 100 newest complaints with full text and replies, the same detail as the speed run above. Company, complaint and start charges apply at the [current rates](https://apify.com/clearpath/reclameaqui-scraper/pricing).

```json
{
  "companies": [
    "nubank"
  ],
  "maxComplaintsPerCompany": 100
}
```

Export as JSON, CSV or Excel. JSON keeps the reply threads and reputation periods nested.

<table>
<tr>
<td style="padding:10px 14px;background:#007535;border:none;border-radius:4px 4px 0 0"><span style="color:#FAFAF9;font-size:14px;font-weight:700;letter-spacing:0.5px">Clearpath Reviews</span>
<span style="color:#E8F5E9;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Reviews, ratings and replies from the sites customers check first</span></td>
</tr>
<tr>
<td style="padding:6px;border:1px solid #E7E5E4;border-top:none;border-radius:0 0 4px 4px;background:#E8F5E9">
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E7E5E4;border-radius:4px;background:#D3EDD9"><span style="white-space:nowrap"><img src="https://api.apify.com/v2/key-value-stores/rfpznBPgVbyLYqNaQ/records/reclameaqui-scraper-icon-512-15fbe9967bc3.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://console.apify.com/actors/YmudOfumJX0Ew4Ml5/input" style="color:#007535;text-decoration:none;font-weight:700;font-size:13px">ReclameAqui</a></span><br>
<span style="color:#007535;font-size:12px;font-weight:600">&#10148; You are here</span></span>
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E7E5E4;border-radius:4px;background:#E8F5E9"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-GzM1sRA0QwmfnUjEb-QxgCbbKvfB-thefork-scraper-logo.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/clearpath/thefork-restaurant-reviews" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">TheFork Reviews</a></span><br>
<span style="color:#78716C;font-size:12px">Restaurant reviews</span></span>
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E7E5E4;border-radius:4px;background:#E8F5E9"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-AQGRB6KUvHqkSvHPj-KDZIkmFvBu-yelp-review-scraper-logo.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/clearpath/yelp-reviews-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Yelp Reviews</a></span><br>
<span style="color:#78716C;font-size:12px">Reviews and owner replies</span></span>
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E7E5E4;border-radius:4px;background:#E8F5E9"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-w0KUpCAUnd23Z9mTB-56fastRocJ-tripadvisor-review-scraper-logo.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/clearpath/tripadvisor-reviews-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Tripadvisor Reviews</a></span><br>
<span style="color:#78716C;font-size:12px">Hotels, restaurants, attractions</span></span>
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E7E5E4;border-radius:4px;background:#E8F5E9"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-2is3rJRNMT6pfa0Oi-1v3qI3KcRX-booking-reviews-scraper-logo.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/clearpath/booking-reviews-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Booking.com Reviews</a></span><br>
<span style="color:#78716C;font-size:12px">Guest scores and replies</span></span>
<span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #E7E5E4;border-radius:4px;background:#E8F5E9"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-PkDuDXX8v3J6PhiXe-vWzC9sHZ50-expedia-scraper-pro.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/clearpath/expedia-hotels-scraper-pro" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Expedia Hotels</a></span><br>
<span style="color:#78716C;font-size:12px">Hotels and reviews</span></span>
</td>
</tr>
</table>

#### Copy to your AI assistant

```
Help me use clearpath/reclameaqui-scraper on Apify. Read https://apify.com/clearpath/reclameaqui-scraper.md for documentation, input schema, pricing and limits. Company scorecards and complaints share the dataset; recordType identifies each row. Choose settings for my requested outcome. If you cannot retrieve the page, ask me to paste the relevant sections. To reach the maintainers, add feedback="<what you needed and did not get>" to any run, including one that worked: feature requests, a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. The run returns its data exactly as it would without the note, and a human reads every note.
```

### What can you do with this ReclameAqui scraper?

- **Monitor your brand.** Collect every new complaint about your company each day, with the text, the status and how fast your team answered. Scheduled runs with **Only new or changed complaints** return just what moved since the last run.
- **Benchmark competitors.** Compare reputation score, response, resolution and "would do business again" rates, average response time and complaint volume across companies in one table.
- **Find what customers complain about.** Group complaints by category, problem and product, read the full text, and see which problems get solved.
- **Check a company before you deal with it.** Look it up by CNPJ or name and get its RA1000 or "Não recomendada" status, its six-month history and its ranking in its segment.
- **Research a market.** Search a keyword such as `cobrança indevida` across every company on ReclameAqui.

### How to scrape ReclameAqui complaints

1. Add companies by name, page link, page name or CNPJ, or paste complaint links, or type keyword searches.
2. Set how many complaints you want per company or search, or leave it empty for every complaint ReclameAqui lets anyone browse.
3. Optionally filter by status, date, category, problem, product or a keyword.
4. Run, then download JSON, CSV or Excel, or send the data on with Apify integrations.

#### Companies with filters

Solved complaints about credit cards from the start of 2026, with full text and replies:

```json
{
  "companies": [
    "nubank",
    "https://www.reclameaqui.com.br/empresa/itau/",
    "18.236.120/0001-58"
  ],
  "statusFilter": [
    "SOLVED"
  ],
  "categoryFilter": "Cartões de Crédito",
  "dateFrom": "2026-01-01",
  "maxComplaintsPerCompany": 200
}
```

The same company given twice (here Nubank by page name and by CNPJ) is collected once.

#### Keyword search across ReclameAqui

```json
{
  "searchQueries": [
    "cobrança indevida",
    "atraso na entrega"
  ],
  "maxComplaintsPerCompany": 100
}
```

Each complaint carries the reputation of the company it is about.

#### Company scorecards only

```json
{
  "companies": [
    "nubank",
    "itau",
    "magazine luiza loja online"
  ],
  "includeComplaints": false
}
```

A name is matched to the closest company and the log says which one. If nothing matches, the log lists the closest names.

#### Input options

| Parameter | Type | Default | Meaning |
|---|---|---|---|
| `companies` | list | | Names, page links, page names or CNPJs |
| `complaintUrls` | list | | Links to single complaints |
| `searchQueries` | list | | Keyword searches across all companies |
| `maxComplaintsPerCompany` | number | every complaint | Newest complaints per company and per search; empty or `0` for all |
| `maxResults` | number | no limit | Stop after this many records in total, companies and complaints together; empty or `0` for no limit |
| `includeCompanyProfile` | true/false | `true` | One reputation record per company |
| `includeComplaints` | true/false | `true` | Collect complaints of the listed companies |
| `includeComplaintDetails` | true/false | `true` | Full text, reply thread, consumer rating, category, problem, product, similar complaints |
| `includeConsumerId` | true/false | `false` | Anonymous consumer ID, extra consumer information and the answer deadline; reads one more page per complaint, so runs take longer |
| `statusFilter` | list | all | `PENDING` (not answered), `ANSWERED`, `SOLVED`, `NOT_SOLVED`, `EVALUATED` |
| `dateFrom`, `dateTo` | date | | `2026-01-31` or a period such as `30 days` counted back from today, Brazil time. On very large companies an end date far in the past takes longer and reaches back through at most the newest 100,000 complaints (with a limit set, 50 per complaint asked for, at least 20,000); the log says if a range was out of reach |
| `complaintKeyword` | text | | Only complaints of the listed companies that mention it |
| `categoryFilter`, `problemTypeFilter`, `productTypeFilter` | text | | A category, problem or product by its name on ReclameAqui |
| `onlyNewComplaints` | true/false | `false` | Return only complaints that are new or changed status since the previous run of the same input |

### What data can you extract from ReclameAqui?

Every run writes two kinds of records to one dataset, told apart by `recordType`.

**Company records** carry the reputation scorecard: status (`raStatus` with its label, for example `RA1000` or `Não recomendada`), score, consumer score, response, resolution and recommendation rates, average response time, complaints in the last 30 days, 6 months, 12 months and all time, answered, unanswered and evaluated counts, all five reporting periods ReclameAqui publishes, the monthly status for the last six months, trends, every segment ranking the company appears in, top categories, problems and products with their share, CNPJ, website, phones, address with coordinates, social profiles, contact channels, desktop and mobile cover images, Prêmio ReclameAqui nomination, ReclameAqui's betting or illegal operations warning, sub-brands, companies people also visit, and every FAQ and post with its pinned position (posts with likes and dislikes).

**Complaint records** carry the title and full text, status and label, whether it was solved and evaluated, the consumer's rating, comment and whether they would deal with the company again, filing date, last activity, evaluation date, city and state, category, problem and product, the full reply thread with who wrote each message and when, the company's first answer and how many hours it took, similar complaints, and the company's current reputation.

#### Example: a company record

```json
{
  "recordType": "company",
  "companyId": "88850",
  "legacyId": 88850,
  "shortname": "nubank",
  "name": "Nubank",
  "fantasyName": "Nubank",
  "knownAs": [],
  "description": "Somos uma fintech que nasceu para mudar como você lida com o seu dinheiro. Lutamos contra a burocracia para deixar você sempre no controle.",
  "companyUrl": "https://www.reclameaqui.com.br/empresa/nubank/",
  "website": "http://www.nubank.com.br",
  "contactUrls": [],
  "cnpj": "18236120000158",
  "cnpjValidated": true,
  "logo": "https://raichu-uploads.s3.amazonaws.com/logo_nubank_S5jVIi.png",
  "coverImage": "https://raichu-uploads.s3.amazonaws.com/companypageconfiguration_efc22413-ce96-464e-8246-7d398d51cd6c.jpeg",
  "coverImages": {
    "web": "https://raichu-uploads.s3.amazonaws.com/companypageconfiguration_7a86db9b-1673-49dc-8d7d-fb4af1aca2f1.jpeg",
    "mobile": "https://raichu-uploads.s3.amazonaws.com/companypageconfiguration_efc22413-ce96-464e-8246-7d398d51cd6c.jpeg"
  },
  "active": true,
  "plan": "PREMIUM",
  "verified": true,
  "verificationLabel": "Empresa verificada",
  "raStatus": "RA1000",
  "reputationLabel": "RA1000",
  "hasStamp": true,
  "finalScore": 8.7,
  "consumerScore": 7.76,
  "responseRate": 99.9,
  "resolutionRate": 93.2,
  "recommendationRate": 81.2,
  "evaluationRate": 44.5,
  "scoresShownOnSite": true,
  "complaintsTotal": 556623,
  "complaints30Days": 9198,
  "complaints6Months": 56618,
  "complaints12Months": 115116,
  "complaintsAnswered": 56584,
  "complaintsNotAnswered": 21,
  "complaintsEvaluated": 25220,
  "averageResponseTimeSeconds": 340781,
  "averageResponseTimeHuman": "3 dias e 23 horas",
  "averageResponseTime3MonthsSeconds": 301736,
  "reputationPeriodStart": "2026-04-01T00:00:00-03:00",
  "reputationPeriodEnd": "2026-09-30T23:59:59-03:00",
  "scoreTrend": {
    "sixMonths": 8.7,
    "twelveMonths": 8.7,
    "delta": 0.0,
    "direction": "flat"
  },
  "complaintVolumeTrend": {
    "sixMonths": 56618,
    "twelveMonths": 115116,
    "delta": -1880,
    "direction": "flat"
  },
  "reputationByPeriod": [
    {
      "period": "SIX_MONTHS",
      "periodLabel": "Últimos 6 meses",
      "start": "2026-04-01T00:00:00-03:00",
      "end": "2026-09-30T23:59:59-03:00",
      "finalScore": 8.7,
      "consumerScore": 7.76,
      "raStatus": "RA1000",
      "reputationLabel": "RA1000",
      "complaints": 56618,
      "answered": 56584,
      "notAnswered": 21,
      "evaluated": 25220,
      "responseRate": 99.9,
      "resolutionRate": 93.2,
      "recommendationRate": 81.2,
      "evaluationRate": 44.5,
      "averageResponseTimeSeconds": 340781,
      "averageResponseTimeHuman": "3 dias e 23 horas",
      "hasStamp": true,
      "calculatedAt": "2026-10-22T04:16:05-03:00",
      "scoresShownOnSite": true
    },
    {
      "period": "TWELVE_MONTHS",
      "periodLabel": "Últimos 12 meses",
      "start": "2025-10-01T00:00:00-03:00",
      "end": "2026-09-30T23:59:59-03:00",
      "finalScore": 8.7,
      "consumerScore": 7.63,
      "raStatus": "RA1000",
      "reputationLabel": "RA1000",
      "complaints": 115116,
      "answered": 114871,
      "notAnswered": 148,
      "evaluated": 49481,
      "responseRate": 99.8,
      "resolutionRate": 92.4,
      "recommendationRate": 80.2,
      "evaluationRate": 43.0,
      "averageResponseTimeSeconds": 408240,
      "averageResponseTimeHuman": "4 dias e 17 horas",
      "hasStamp": true,
      "calculatedAt": "2026-10-22T04:16:05-03:00",
      "scoresShownOnSite": true
    }
  ],
  "reputationHistory": [
    {
      "month": "2026-04",
      "monthLabel": "Abr 2026",
      "raStatus": "RA1000",
      "reputationLabel": "RA1000"
    },
    {
      "month": "2026-05",
      "monthLabel": "Mai 2026",
      "raStatus": "RA1000",
      "reputationLabel": "RA1000"
    }
  ],
  "mainSegmentId": "4",
  "mainSegmentName": "Bancos e Financeiras",
  "mainSegmentShortname": "bancos-e-financeiras",
  "mainSegmentComplaints": 1619092,
  "secondarySegments": [
    {
      "id": "1FUm2Qcbv57gq5nM",
      "name": "Bancos Tradicionais e Digitais",
      "shortname": "bancos-tradicionais-e-digitais",
      "complaints": 626592
    },
    {
      "id": "JHvXzWTwYMqauOqa",
      "name": "Cartões Private Label de Varejo e Mercados",
      "shortname": "cartoes-de-credito",
      "complaints": 289917
    }
  ],
  "segmentRankingPosition": 1,
  "segmentRankingType": "BEST",
  "segmentRankingLabel": "Melhores",
  "segmentRankingName": "Melhores Emissoras e Bandeiras de Cartão de Crédito",
  "segmentRankings": [
    {
      "segmentName": "Melhores Emissoras e Bandeiras de Cartão de Crédito",
      "segmentShortname": "emissoras-e-bandeiras-cartao-de-credito",
      "position": 1,
      "type": "BEST",
      "label": "Melhores"
    },
    {
      "segmentName": "Bancos Tradicionais e Digitais",
      "segmentShortname": "bancos-tradicionais-e-digitais",
      "position": 4,
      "type": "BEST",
      "label": "Melhores"
    }
  ],
  "topCategories": [
    {
      "id": "0000000000000003",
      "name": "Cartões de Crédito",
      "count": 123551,
      "sharePct": 35.6
    },
    {
      "id": "0000000000000001",
      "name": "Bancos",
      "count": 54245,
      "sharePct": 15.63
    }
  ],
  "topProblems": [
    {
      "id": "0000000000000075",
      "name": "Cobrança indevida",
      "count": 61906,
      "sharePct": 17.84
    },
    {
      "id": "0000000000000091",
      "name": "Limite",
      "count": 34769,
      "sharePct": 10.02
    }
  ],
  "topProducts": [
    {
      "id": "0000000000000025",
      "name": "Cartão de crédito",
      "count": 157432,
      "sharePct": 45.37
    },
    {
      "id": "0000000000001409",
      "name": "Problemas Gerais",
      "count": 36937,
      "sharePct": 10.64
    }
  ],
  "phones": [
    {
      "number": "0800 591 2117",
      "label": null,
      "workingHours": null
    }
  ],
  "socialNetworks": {
    "youtube": "https://www.youtube.com/c/nubankbrasil",
    "facebook": "https://www.facebook.com/nubankbrasil",
    "twitter": "https://twitter.com/nubank",
    "instagram": "https://www.instagram.com/nubank/",
    "linkedin": "https://www.linkedin.com/company/nubank-brasil/"
  },
  "address": {
    "street": "CAPOTE VALENTE, 120",
    "complement": "ANDAR 1 AO 8 E 9 ANDAR CJ 902 E 16 ANDAR",
    "neighborhood": "PINHEIROS",
    "city": "SAO PAULO",
    "state": "SP",
    "zipCode": "05409000",
    "latitude": -23.5602344,
    "longitude": -46.6735318
  },
  "city": "SAO PAULO",
  "state": "SP",
  "memberSince": "2014-12-12T10:47:00-03:00",
  "timeOnPlatform": "12 anos",
  "pageViews": 3085402,
  "lastUpdated": "2026-10-22T04:16:05-03:00",
  "contactChannels": {
    "whatsapp": true,
    "phone": true,
    "raChat": false,
    "raPhone": false,
    "privateContact": false,
    "contactPage": true
  },
  "crisisAlert": {
    "type": "CRISIS",
    "title": "Negociação e SCR",
    "message": "- Negociação: Para negociação de valores em aberto, estamos disponíveis todos os dias no chat do app e telefone ao lado. - SCR: No relatório do Registrato constam dívidas a vencer, vencidas e prejuízos por atraso prolongado. O BACEN mantém registros dos últimos anos, sem dados históricos."
  },
  "award": {
    "status": "NOMINATED",
    "category": "Ultra bancos digitais",
    "categoryId": "c30574c5-4ab7-44e1-bc12-f4f2f00671b5",
    "categoryShortname": "ultra-bancos-digitais",
    "macroCategory": "Bancos",
    "macroCategoryId": "7b040855-2d17-4ce2-afce-da82d8556849",
    "macroCategoryShortname": "bancos",
    "voteUrl": "https://reclameaqui.com.br/premio/votacao/empresa/nubank/"
  },
  "illegalBettingWarning": false,
  "repairServiceUrl": null,
  "ctaLinks": [
    {
      "label": "Abra sua conta",
      "url": "https://app.nubank.com.br/beta/"
    },
    {
      "label": "Saiba mais",
      "url": "https://nubank.com.br/pedir/nu/?utm_source=google&utm_medium=cpc&utm_campaign=1784086961&utm_term=118905407472&utm_word=nubank&utm_content=502619882313&ad_position=&match_type=b&location=1032086&device=c&utm_keyword_id=kwd-488984618592&utm_placement=&extension=&geolocation=1032086&google_channel=google_brand&gclid=Cj0KCQiA4OybBhCzARIsAIcfn9lcgqFbw82spnGfbHUw-yTc_nU-dfA6n7RXYyAkZ3yfmr7kh0WmP6UaAvSYEALw_wcB"
    }
  ],
  "videos": [
    "https://www.youtube.com/watch?v=i9VclWw7sfw"
  ],
  "subBrands": [],
  "relatedCompanies": [
    {
      "name": "Keeta do Brasil",
      "shortname": "keeta-brasil",
      "companyUrl": "https://www.reclameaqui.com.br/empresa/keeta-brasil/",
      "finalScore": 8.2,
      "raStatus": "GREAT",
      "reputationLabel": "Ótima",
      "verified": true,
      "logo": "https://raichu-uploads.s3.amazonaws.com/logo_keeta-brasil_viZ0q7.png"
    },
    {
      "name": "Keeta Parceiros",
      "shortname": "keeta-parceiros",
      "companyUrl": "https://www.reclameaqui.com.br/empresa/keeta-parceiros/",
      "finalScore": 8.0,
      "raStatus": "GREAT",
      "reputationLabel": "Ótima",
      "verified": true,
      "logo": "https://raichu-uploads.s3.amazonaws.com/logo_keeta-parceiros_6GTLet.png"
    }
  ],
  "faqs": [
    {
      "id": "XxP4MLekcWC9sqn8",
      "title": "Roubaram meu celular. O que eu faço?",
      "text": "É possível usar a plataforma [Me Roubaram](https://blog.nubank.com.br/me-roubaram-nubank/) em casos de roubo, furto ou perda de celular e cartão. Com ela, é possível deslogar a conta do aparelho e bloquear o cartão em instantes para evitar qualquer transação indevida.\n\nNós sabemos como lidar com uma emergência dessas pode causar ansiedade. Por isso, com essa ferramenta, você ganha mais agilidade na hora de nos avisar sobre o problema, para evitar que outras pessoas consigam fazer transações no seu nome.\n\nPara registrar um caso de roubo ou furto no Me Roubaram, você deve se conectar à internet por um computador, celular ou outro dispositivo e seguir o passo a passo:  \n\n1.  Entre no [Me Roubaram](https://app.nubank.com.br/roubo/);\n    \n2.  Digite o seu CPF e senha de acesso ao app (se você esqueceu sua senha, pode clicar em \"Esqueci minha senha\" para criar uma nova. Você receberá as instruções no e-mail cadastrado com a gente);\n    \n3.  Depois do login, você deve informar o que aconteceu. Você pode reportar um roubo de celular, de cartão ou de ambos;\n    \n4.  Na sequência, você terá a opção de bloquear o cartão e desconectar a conta do aparelho imediatamente; \n    \n5.  Pronto: ao finalizar o processo, nossa equipe será informada e tomará as providências necessárias para te proteger.",
      "created": "2025-02-24T07:24:11-03:00",
      "imageUrl": "https://raichu-uploads.s3.amazonaws.com/companypagedetail_e96ee972-f2b7-47b6-a9d0-4d5a2da95f7a.png",
      "linkLabel": null,
      "linkUrl": null,
      "highlightOrder": "FIRST",
      "pinnedPosition": 1,
      "likes": null,
      "dislikes": null
    }
  ],
  "posts": [
    {
      "id": "NE57v571j2Y0CuW3",
      "title": "Limite do Cartão Nubank",
      "text": "Você pode pedir o aumento de limite do seu cartão de crédito sempre que quiser pelo nosso aplicativo mesmo. Basta seguir as orientações:\n- Na tela inicial do aplicativo, toque na opção: Cartão de Crédito;\n- Em seguida em \"Meus limites\";\n- Se você tiver limite pré-aprovado, basta ajustar a barra de limite para a direita, de acordo com os vaores disponíveis;\n- Caso o valor ainda não seja o que você precisa, clique no valor do limite aprovado  e, depois, em \"Sugerir limite\" e siga o fluxo do aplicativo.\n\nVamos avaliar a sua sugestão de limite e te avisaremos. Importante ressaltar que o pedido não é uma garantia de que este aumento de limite será concedido. \n\nFazemos análises constantes de crédito para entender se podemos aumentar o seu limite. Para acompanhar essas avaliações, basta entrar em \"Meus limites\", clicar sobre o valor do limite aprovado e, depois, rolar a tela para verificar quando será a sua próxima análise de limite e o resultado da última análise.",
      "created": "2025-05-21T15:07:48-03:00",
      "imageUrl": null,
      "linkLabel": null,
      "linkUrl": null,
      "highlightOrder": "FIRST",
      "pinnedPosition": 1,
      "likes": 0,
      "dislikes": 0
    }
  ],
  "scrapedAt": "2026-10-22T13:29:40Z"
}
```

Shortened for reading: `reputationByPeriod` shows 2 of 5; `reputationHistory` shows 2 of 6; `secondarySegments` shows 2 of 4; `topCategories` shows 2 of 38; `topProblems` shows 2 of 43; `topProducts` shows 2 of 36; `relatedCompanies` shows 2 of 5; `faqs` shows 1 of 11; `posts` shows 1 of 9. Real records keep every entry.

#### Example: a complaint with its reply thread

```json
{
  "recordType": "complaint",
  "complaintId": "4xpgi-3EPxFxJaQ6",
  "legacyId": 262166231,
  "url": "https://www.reclameaqui.com.br/mercado-livre/nao-recebi-meus-pneus-comprados-no-mercado-livre-e-o-estorno-demora-muito_4xpgi-3EPxFxJaQ6/",
  "title": "Não recebi meus pneus comprados no Mercado Livre e o estorno demora muito",
  "description": "Fiz a compra de 02 pneus no mercado livre dia  26/09 o vendedor fez a postagem dia 29/09 e até a data de hoje não recebi a compra fiz vários contatos com o mercado livre e eles não resolvem meu problema alegando que é a transportadora loggi a responsável por entregar a compra e se dizem não ser responsável pelo atraso, quando peço o cancelamento da compra o estorno é previsto para quase 40 dias após a compra cancelada o que é inaceitável, uma parte da compra foi feita pelo cartão de crédito e já paguei a primeira parcela e não tenho os pneus e nem o  estorno imediato para comprar os pneus em outro lugar, o mais complicado é que esse par de pneus são para substituir os traseiros do meu carro que usa para trabalhar o veículo está parado e eu perdendo minha renda adicional preciso de ajuda.",
  "descriptionComplete": true,
  "status": "SOLVED",
  "statusLabel": "Resolvido",
  "solved": true,
  "evaluated": true,
  "dealAgain": true,
  "consumerRating": 0,
  "consumerEvaluation": "O atendimento ao cliente do mercado livre é péssimo.... Não resolvem no enrolam o comprador não tem controle sobre o envio que é terceirizado e também não respeitam o consumidor quase um mês de atraso na minha entrega.",
  "created": "2026-10-20T20:30:18-03:00",
  "lastActivityAt": "2026-10-21T19:09:13-03:00",
  "consumerCity": "São Bernardo do Campo",
  "consumerState": "SP",
  "categoryId": "0000000000000275",
  "category": "Marketplace",
  "problemTypeId": "0000000000001454",
  "problemType": "Produto não recebido",
  "productTypeId": "0000000000001170",
  "productType": "Produtos",
  "interactionsCount": 3,
  "hasCompanyReply": true,
  "companyAnswer": "Olá, Marco. Recebemos a sua reclamação referente à sua compra e queremos informar que a resolução específica do seu caso foi tratada pelo nosso canal privado. Pedimos que você localize a comunicação enviada pela plataforma Hugme para o e-mail cadastrado na sua conta. Caso não encontre a mensagem na caixa de entrada, recomendamos verificar também as pastas de Spam e Lixeira. Para acessar o chat privado, basta utilizar o link disponibilizado e selecionar a opção “Responder mensagem privada”. Se você tiver qualquer dificuldade técnica ao usar o celular, sugerimos utilizar um computador ou um navegador alternativo. Qualquer acompanhamento necessário poderá ser feito respondendo diretamente a esta reclamação. Em caso de dúvidas, responda-nos por aqui. Atenciosamente, Equipe Mercado Livre.",
  "companyAnswerAt": "2026-10-21T09:14:01-03:00",
  "firstResponseHours": 12.7,
  "evaluatedAt": "2026-10-21T19:09:13-03:00",
  "resolutionHours": 22.6,
  "consumerReplies": 1,
  "interactions": [
    {
      "id": "_PBvhI74KSbYp896",
      "type": "ANSWER",
      "typeLabel": "Resposta da empresa",
      "author": "company",
      "message": "Olá, Marco. Recebemos a sua reclamação referente à sua compra e queremos informar que a resolução específica do seu caso foi tratada pelo nosso canal privado. Pedimos que você localize a comunicação enviada pela plataforma Hugme para o e-mail cadastrado na sua conta. Caso não encontre a mensagem na caixa de entrada, recomendamos verificar também as pastas de Spam e Lixeira. Para acessar o chat privado, basta utilizar o link disponibilizado e selecionar a opção “Responder mensagem privada”. Se você tiver qualquer dificuldade técnica ao usar o celular, sugerimos utilizar um computador ou um navegador alternativo. Qualquer acompanhamento necessário poderá ser feito respondendo diretamente a esta reclamação. Em caso de dúvidas, responda-nos por aqui. Atenciosamente, Equipe Mercado Livre.",
      "created": "2026-10-21T09:14:01-03:00",
      "deleted": false
    },
    {
      "id": "FqyfGGtbxN77L6Wk",
      "type": "REPLY",
      "typeLabel": "Réplica do consumidor",
      "author": "consumer",
      "message": "A opção indicada pelo mercado livre não funciona, tudo ali é aparelhado para protelar as ações de efetividade pleiteada pelo reclamante , que no caso teve sua fonte de renda adicional paralisada por um serviço que não respeita os direitos do consumidor",
      "created": "2026-10-21T09:31:03-03:00",
      "deleted": false
    },
    {
      "id": "aNLBN2l8o3zCb20T",
      "type": "FINAL_ANSWER",
      "typeLabel": "Consideração final do consumidor",
      "author": "consumer",
      "message": "O atendimento ao cliente do mercado livre é péssimo.... Não resolvem no enrolam o comprador não tem controle sobre o envio que é terceirizado e também não respeitam o consumidor quase um mês de atraso na minha entrega.",
      "created": "2026-10-21T19:09:13-03:00",
      "deleted": false
    }
  ],
  "similarComplaints": [
    {
      "complaintId": "t3cG_Tpiz8AMjUam",
      "title": "Mercado Livre negou ressarcimento de farol danificado e deu informações contraditórias",
      "created": "2026-10-21T10:00:43-03:00",
      "companyShortname": "mercado-livre",
      "url": "https://www.reclameaqui.com.br/mercado-livre/mercado-livre-negou-ressarcimento-de-farol-danificado-e-deu-informacoes-contraditorias_t3cG_Tpiz8AMjUam/"
    },
    {
      "complaintId": "eP0H2CXkW5iAN98-",
      "title": "veio só a embalagem vazia.",
      "created": "2026-10-21T10:00:40-03:00",
      "companyShortname": "mercado-livre",
      "url": "https://www.reclameaqui.com.br/mercado-livre/veio-so-a-embalagem-vazia_eP0H2CXkW5iAN98-/"
    }
  ],
  "companyId": "928",
  "companyName": "Mercado Livre",
  "companyShortname": "mercado-livre",
  "companyUrl": "https://www.reclameaqui.com.br/empresa/mercado-livre/",
  "companyLogo": "https://raichu-uploads.s3.amazonaws.com/logo_mercado-livre_Gel7ef.png",
  "companyFinalScore": 7.7,
  "companyRaStatus": "GOOD",
  "companyReputationLabel": "Boa",
  "companyResponseRate": 99.1,
  "companyResolutionRate": 76.8,
  "companyRecommendationRate": 74.8,
  "companyComplaintsTotal": 1367530,
  "searchQuery": null,
  "scrapedAt": "2026-10-22T09:42:10Z"
}
```

Shortened for reading: `similarComplaints` shows 2 of 10. Type codes always come with their label: `ANSWER` is the company's answer, `REPLY` the consumer's reply, `FINAL_ANSWER` the consumer's closing evaluation.

#### Consumer ID option

With `includeConsumerId` each complaint also carries these fields. The same `consumerId` on several complaints means the same person filed them; ReclameAqui hides the name itself.

```json
{
  "complaintId": "erKBNYS0u7R3KJf-",
  "consumerId": "9v3pG0vDBzogFW4H",
  "additionalInfo": null,
  "answerDeadline": null,
  "daysRemaining": null
}
```

The answer deadline and days remaining only appear while ReclameAqui shows a countdown for the complaint.

### Monitoring new complaints

Turn on **Only new or changed complaints** (`onlyNewComplaints`) and schedule the same input daily. The first run returns everything in range; later runs return only complaints that are new or whose status changed, marked `changeType` `new` or `updated` with the `previousStatus`. Unchanged complaints are skipped without charge. Complaints cut off by your limit are not remembered, so the next run still returns them. Connect the dataset to Slack, email, Google Sheets or a webhook with Apify [integrations](https://docs.apify.com/platform/integrations) to get alerts.

### Integrations and scheduling

Run the ReclameAqui scraper on an Apify schedule, daily for new data or weekly for monitoring. Each completed run can trigger a webhook for n8n, Make or Zapier workflows.

### How much does it cost to scrape ReclameAqui?

You pay per record delivered. Full text, reply thread, consumer evaluation and the Consumer ID option are included in the complaint price.

Complaint charges, including the dataset row fee, are **$8.99 per 1,000** on Free and Bronze plans. Silver pays **$7.99 per 1,000**; Gold and above pay **$7.49 per 1,000**.

Company records, including the dataset row fee, cost **$0.05 each** on Free, **$0.046** on Bronze, **$0.0425** on Silver and **$0.035** on Gold and above. Each record includes a $0.00001 dataset fee. Each run also has a $0.005 start charge per GB of memory, with a minimum of one event.

Example on Free or Bronze at the default 512 MB: 100 complaints cost $0.899. With one company record and the start charge, the total is $0.899 + $0.05 + $0.005 = **$0.954 on Free** or $0.899 + $0.046 + $0.005 = **$0.950 on Bronze**. Companies that are not found, duplicates and complaints skipped by monitoring cost nothing. Set a maximum cost per run in the run options to cap spending; the run stops there and says so in the log.

### FAQ

**Is there an official ReclameAqui data export?**
ReclameAqui offers no public data export for complaints or reputation. This actor returns the same complaints and scorecards you see on reclameaqui.com.br as structured data.

**Can I get every complaint of a company, not only the newest?**
Leave the limit empty and the actor collects every complaint ReclameAqui lets anyone browse, well past what one list on the site shows: all 637 of 637 for one insurer we tested. For the largest companies (hundreds of thousands of complaints) a few older complaints can be out of reach; the log says so. A date range, status or category filter reaches more of them.

**Do I get the company's answer and the consumer's evaluation?**
Yes, with **Full complaint text and replies** on (the default): every message in order with its author and date, the consumer's rating from 0 to 10, whether it was solved and whether they would deal with the company again.

**Can I see who filed a complaint?**
No. ReclameAqui hides consumers' names. The Consumer ID option adds an anonymous ID so you can tell when one person filed several complaints.

**What do RA1000, Ótima, Boa, Regular, Ruim and Não recomendada mean?**
They are ReclameAqui's reputation levels from best to worst, computed over the last 6 months. `raStatus` holds the code and `reputationLabel` the name the site shows. For companies whose score the site hides behind "--", the record still carries the score from ReclameAqui's own index and `scoresShownOnSite` is `false`.

**Can I look a company up by CNPJ?**
Yes. Paste the CNPJ with or without punctuation.

**Why are some fields empty?**
Fields follow each company and complaint: a complaint that is not answered yet has no reply thread, evaluation or rating, and not every complaint has a category. With full text off, a complaint carries a short preview and `descriptionComplete` is `false`.

**Do I need a ReclameAqui account or cookies?**
No.

**Why did my run return fewer complaints than expected?**
Check the filters: a status, category or date range can be strict. A company name with no match is listed in the log with the closest names. If a page could not be read, the log says how many complaints are affected and running again retries them.

### Support

Found a bug or need a field? Open an issue on the [Issues tab](https://apify.com/clearpath/reclameaqui-scraper/issues) or email max@mapa.slmail.me.

This actor is not affiliated with ReclameAqui. It collects complaints and company information that ReclameAqui shows publicly; you are responsible for how you use the data, including personal data under the laws that apply to you, such as the LGPD.

# Actor input Schema

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

Companies to collect. Each entry can be a company name (<code>Nubank</code>), its ReclameAqui page link (<code>https://www.reclameaqui.com.br/empresa/nubank/</code>), its page name (<code>nubank</code>) or its CNPJ (<code>18.236.120/0001-58</code>). A name is matched to the closest company; the log says which.

## `complaintUrls` (type: `array`):

Links to individual complaints (<code>https://www.reclameaqui.com.br/nubank/titulo_ABC123def456GHIj/</code>). Each returns that complaint with its full text and replies.

## `searchQueries` (type: `array`):

Free-text searches across all of ReclameAqui, for example <code>cobrança indevida</code> or <code>atraso na entrega</code>. Returns matching complaints from any company, newest first.

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

Newest complaints to collect for each company and each search. Leave empty or 0 to collect every complaint ReclameAqui lets anyone browse; this also applies when the field is omitted from the input. Large companies hold hundreds of thousands, so set a limit or a date range.

## `maxResults` (type: `integer`):

Stop after this many records (companies and complaints together). Leave empty or 0 for no limit.

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

One record per company: reputation score and status, response, resolution and recommendation rates, average response time, complaint counts (30 days, 6 and 12 months, all time), five reporting periods, monthly reputation history, segment ranking, top problems, CNPJ, phones, address, social links, FAQs and posts.

## `includeComplaints` (type: `boolean`):

Collect the complaints of each company. Turn off to get company records only.

## `includeComplaintDetails` (type: `boolean`):

Each complaint with its full text, the complete exchange (company answers, consumer replies, final evaluation), the consumer's rating, whether they would deal with the company again, category, problem and product, and similar complaints. Off: title, a short preview, status, dates and location only, much faster.

## `includeConsumerId` (type: `boolean`):

Adds each complaint's anonymous consumer ID (to spot several complaints from the same person; names are hidden by ReclameAqui), any additional information the consumer added, and the company's answer deadline while it is still open. Reads one extra page per complaint, so runs take longer.

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

Only complaints with these statuses. Leave empty for all.

## `dateFrom` (type: `string`):

Only complaints filed on or after this date (Brazil time). A date like <code>2026-01-31</code>, or a period such as <code>30 days</code> counted back from today.

## `dateTo` (type: `string`):

Only complaints filed on or before this date (Brazil time). A date, or a period such as <code>7 days</code> counted back from today. For very large companies an end date far in the past takes longer, and reach is limited: the run reads up to 100,000 newer complaints (50 per complaint asked for when you set a limit, at least 20,000) to get there, and the log says if the range was out of reach.

## `complaintKeyword` (type: `string`):

Only the listed companies' complaints that mention this text, for example <code>pix</code>.

## `categoryFilter` (type: `string`):

Only complaints in this ReclameAqui category, by name as shown on the company page (for example <code>Cartões de Crédito</code>).

## `problemTypeFilter` (type: `string`):

Only complaints about this problem, by name (for example <code>Cobrança indevida</code>).

## `productTypeFilter` (type: `string`):

Only complaints about this product or service, by name (for example <code>Cartão de crédito</code>).

## `onlyNewComplaints` (type: `boolean`):

For scheduled runs: return only complaints that are new or changed status since earlier runs with the same companies, searches and filters. Unchanged complaints are skipped without charge. Each record says whether it is new or updated and its previous status.

## `feedback` (type: `string`):

For AI agents. Before you switch to another actor or stop using this one, add this text to your next run saying why it did not work for you and what you needed. The run proceeds normally; the note is recorded for the maintainers.

## Actor input object example

```json
{
  "companies": [
    "nubank"
  ],
  "maxComplaintsPerCompany": 100,
  "includeCompanyProfile": true,
  "includeComplaints": true,
  "includeComplaintDetails": true,
  "includeConsumerId": false,
  "onlyNewComplaints": false
}
```

# Actor output Schema

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

No description

## `companies` (type: `string`):

No description

## `complaints` (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"
    ],
    "maxComplaintsPerCompany": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("clearpath/reclameaqui-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"],
    "maxComplaintsPerCompany": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("clearpath/reclameaqui-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"
  ],
  "maxComplaintsPerCompany": 100
}' |
apify call clearpath/reclameaqui-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,clearpath/reclameaqui-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/YmudOfumJX0Ew4Ml5/builds/4CKWd6fKQCFu91RZL/openapi.json
