Reclame Aqui Scraper — Complaints & Company Reputation
Pricing
from $25.00 / 1,000 complaints
Reclame Aqui Scraper — Complaints & Company Reputation
Scrape public Reclame Aqui complaints and company reputation for Brazilian brands. Each row includes the reputation score, RA status, response and resolution rates, CNPJ, complaint text, status, and city.
Pricing
from $25.00 / 1,000 complaints
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by Reclame Aqui or its affiliates. Data is read from publicly accessible company reputation profiles and complaint listings only. No login. You are responsible for complying with applicable law (including GDPR and LGPD where personal data appears) and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.
Scrape Reclame Aqui complaints and company reputation into a JSON dataset: reputation score, RA status, response rate, resolution rate, CNPJ, complaint title, text, status, date, city, and state. Use it as a Reclame Aqui API alternative from Python, Node.js, or cURL for brand monitoring, supplier checks, and customer-experience research in Brazil.
Best for: reputation scorecards, public complaint exports, and scheduled monitors that save only new complaint ids.
Reputation suite
| Actor | What it collects |
|---|---|
| Reclame Aqui Scraper ◄── you are here | Brazilian company score, response rate, and public complaints |
| Trustpilot Scraper | TrustScore, star ratings, and review text |
When to use this Actor
- A Reclame Aqui scraper run for one brand or a list of slugs
- Supplier or marketplace checks that need the public score, RA status, and recent complaint text
- A scheduled complaint monitor that skips ids already saved
- JSON or CSV for a BI tool or an AI assistant via Apify MCP
When not to use this Actor
- The logged-in company inbox, Hugme, or any reply action
- Private consumer contact details — emails and IPs on the payload are not saved
- Review sites outside this reputation pair (use Trustpilot for that brand’s international reviews)
Key features
- Company slug, company name, or
/empresa/URL - One reputation row: score, RA status, solved percent, answered percent, deal-again percent, CNPJ, segment
- Complaint rows: title, description, status, date, city, state, problem type, and reply text when the list includes it
- Optional date window and status filter
- Monitor mode stores seen complaint ids in a named key-value store and writes zero rows on a quiet tick
- HTTP only, 256 MB. A direct request is tried first. If the platform IP is challenged, the run retries through residential proxy.
Input
| Field | Default | What it does |
|---|---|---|
companies | nubank | Slug, name, or /empresa/ URL |
startUrls | empty | Extra company URLs |
maxComplaintsPerCompany | 20 | Complaint cap per company. 0 keeps the reputation row only |
maxItems | 50 | Cap across company and complaint rows |
includeCompanyProfile | true | Save the reputation row. Off while monitor mode is on |
scrapeComplaints | true | Save complaint rows |
status | LATEST | ANSWERED, NOT_ANSWERED, or EVALUATED to filter the list |
dateFrom / dateTo | empty | YYYY-MM-DD window on the complaint created date |
monitorMode | false | Save only new complaint ids |
monitorStateStore | reclameaqui-monitor | Named store for ids already seen |
proxyConfiguration | off | Optional Apify proxy. Leave off unless you want to force a proxy. |
{"companies": ["nubank"],"maxComplaintsPerCompany": 20,"maxItems": 50,"includeCompanyProfile": true,"scrapeComplaints": true,"status": "LATEST","monitorMode": false}
Output
Each dataset item is either a company row or a complaint row.
| Field | Company | Complaint |
|---|---|---|
recordType | company | complaint |
companyName, shortname, url | yes | yes |
finalScore, raStatus, solvedPercent, answeredPercent | yes | |
cnpj, segment, complainCount | yes | |
complaintId, title, description, status, created | yes | |
userCity, userState, problemType | yes | |
interactions | reply text when the list includes it |
{"recordType": "company","companyName": "Nubank","shortname": "nubank","finalScore": 8.7,"raStatus": "RA1000","solvedPercent": 92.3,"answeredPercent": 99.7,"cnpj": "18236120000158","url": "https://www.reclameaqui.com.br/empresa/nubank/"}
{"recordType": "complaint","complaintId": "M5CNw4kipwPTxkOc","title": "Cobranca nao reconhecida","status": "ANSWERED","created": "2026-09-20T10:00:00","userCity": "Sao Paulo","userState": "SP","companyName": "Nubank","url": "https://www.reclameaqui.com.br/nubank/cobranca-nao-reconhecida_M5CNw4kipwPTxkOc/"}
Use cases
- Weekly reputation check for a marketplace seller list: score, response rate, and the newest complaints
- Supplier onboarding: CNPJ plus the public RA status before a contract
- Customer-experience export of complaint text for a single brand, filtered to answered or evaluated items
- A scheduler tick that stores seen ids and stays empty until a new complaint appears
Integration examples
Replace APIFY_TOKEN with your Apify token. The actor id is crawloop/reclameaqui-scraper.
Node.js
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor("crawloop/reclameaqui-scraper").call({companies: ["nubank"],maxComplaintsPerCompany: 20,includeCompanyProfile: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("crawloop/reclameaqui-scraper").call(run_input={"companies": ["nubank"],"maxComplaintsPerCompany": 20,"includeCompanyProfile": True,})items = list(client.dataset(run["defaultDatasetId"]).iterate_items())print(len(items))
cURL
curl "https://api.apify.com/v2/acts/crawloop~reclameaqui-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d "{\"companies\":[\"nubank\"],\"maxComplaintsPerCompany\":20}"
MCP and AI assistants
Use this Actor from AI tools via Apify MCP.
Connect your Apify account, then call this Actor by its name crawloop/reclameaqui-scraper.
Example prompts:
- "Run Reclame Aqui Scraper for nubank and return the reputation score plus the 20 newest complaints as JSON"
- "Scrape Reclame Aqui complaints for magazine-luiza-loja-online created this month and summarize the problem types"
- "Chain Reclame Aqui Scraper for the Brazilian score, then Trustpilot Scraper for the same brand’s international reviews"
Suite next step
After the Brazilian score and complaint text, run Trustpilot Scraper for the same brand’s TrustScore and review text outside Brazil.
FAQ
Does this log into Reclame Aqui? No. It reads public company profiles and public complaint listings.
What if I only need the score?
Set maxComplaintsPerCompany to 0 and leave includeCompanyProfile on. You get one reputation row per company.
What does monitor mode save?
Only complaint ids that were not stored for that company in monitorStateStore. A quiet tick writes zero rows.
Is this a Reclame Aqui API alternative? It reads the public scorecard and public complaint list and returns JSON. It does not log in, reply, or replace the company’s own Hugme inbox.
Are consumer emails included? No. Email addresses, IP addresses, and phone numbers from the complaint payload are dropped before the row is saved.