Reclame Aqui Scraper - Reputation, Complaints & Replies avatar

Reclame Aqui Scraper - Reputation, Complaints & Replies

Pricing

from $17.00 / 1,000 company records

Go to Apify Store
Reclame Aqui Scraper - Reputation, Complaints & Replies

Reclame Aqui Scraper - Reputation, Complaints & Replies

Scrapes company reputation profiles and consumer complaints from Reclame Aqui (Brazil): score, response/resolution rates, complaint text, status, and company reply threads.

Pricing

from $17.00 / 1,000 company records

Rating

0.0

(0)

Developer

Rise and Code

Rise and Code

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

What does Reclame Aqui Scraper do?

This Actor extracts company reputation profiles and consumer complaints from Reclame Aqui — Brazil's largest consumer-complaints platform, used by shoppers to check a company's track record before buying and by companies to monitor their own reputation. Give it one or more company slugs (or full Reclame Aqui URLs) and get back the company's reputation scorecard — score, % answered, % resolved, % would-buy-again, average response time, CNPJ, contact info — plus its most recent complaints, with the option to pull the full complaint text and the company's reply thread.

Why scrape Reclame Aqui?

  • 📊 Reputation monitoring — track your own brand's score, response rate, and resolution rate over time.
  • 🔍 Due diligence — check a supplier, franchise, or acquisition target's consumer complaint history before signing.
  • 🥊 Competitive benchmarking — compare reputation metrics across competitors in your sector.
  • 🎯 Customer-service QA — audit response times and reply content for unanswered or unresolved complaints.
  • 🤖 Automation — schedule runs and pipe results into spreadsheets, dashboards, or CRMs via Apify integrations.

How to use Reclame Aqui Scraper

  1. Visit the Actor page on Apify and click Try for free — no credit card required.
  2. In the Input tab, add one or more companies (slug like nubank, or the full URL).
  3. Leave Max complaints per company at 5 and Include full complaint text off to try the cheapest data first.
  4. Click Start and wait a few seconds for the run to finish.
  5. Open the Output tab or download the dataset as JSON, CSV, Excel, or HTML.

To trigger a run via the Apify API:

curl -X POST \
"https://api.apify.com/v2/acts/riseandcode~reclameaqui-scraper/runs?token=<YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"companies": ["nubank"],
"maxComplaintsPerCompany": 5,
"includeComplaintDetail": true
}'

Input

Configure the Actor in the Input tab or via JSON.

FieldTypeDefaultDescription
companiesstring[]["nubank"]Company slugs or full Reclame Aqui URLs. Reputation profile + the 5 most recent complaints.
searchQueriesstring[][]Advanced. Free-text terms searched across the whole platform. Best-effort — billed as Extra complaint per result.
maxComplaintsPerCompanyinteger5How many recent complaints to fetch per company. The 5 most recent are billed as Complaint; every one beyond 5 as Extra complaint.
includeComplaintDetailbooleanfalseFetch full complaint text + the company's reply thread for every complaint returned. Billed as Complaint detail per complaint. Off by default.

Example input:

{
"companies": ["nubank", "microsoft"],
"maxComplaintsPerCompany": 5,
"includeComplaintDetail": true
}

Output

Every run returns the same data in two formats — use whichever fits your tool:

FormatShapeBest forWhere to get it
Dataset (default)One row per company ("kind": "company") and one row per complaint ("kind": "complaint"), linked by companyShortnameSpreadsheets, CSV/Excel, Google Sheets, Make/Zapier, the table views in the Output tabOutput tab → Results, or GET https://api.apify.com/v2/datasets/<datasetId>/items (JSON, CSV, Excel, HTML)
Grouped JSONOne object per company with its complaints nested in complaints: [...]; keyword-search results in searchResults, grouped by queryCode and APIs that want a company and its complaints in one objectOutput tab → Grouped JSON, or GET https://api.apify.com/v2/key-value-stores/<storeId>/records/OUTPUT

Both hold the same records and values (the grouped JSON just drops the kind row-type field); you're charged once per item, whichever format you read. The grouped JSON is saved when the run ends (also when it is aborted or stops at your maximum cost per run).

Grouped JSON shape (fields shortened — see the full example below):

{
"companies": [
{
"shortname": "nubank",
"companyName": "Nubank",
"score": 7.72,
"complainCount": 56647,
"complaints": [
{
"id": "NQfrzMqCgcwSPN05",
"tier": "free",
"title": "Comprei um bolo online e não recebi…",
"status": "PENDING"
}
]
}
],
"searchResults": [
{
"query": "entrega atrasada",
"complaints": [{ "id": "…", "companyShortname": "ifood", "title": "…" }]
}
]
}

Output example (dataset)

[
{
"kind": "company",
"companyId": "88850",
"shortname": "nubank",
"companyName": "Nubank",
"fantasyName": "Nubank",
"cnpj": "18236120000158",
"score": 7.72,
"answeredPercentual": 99.9,
"solvedPercentual": 92.4,
"dealAgainPercentual": 80.7,
"averageAnswerTimeHours": 94.4,
"complainCount": 56647,
"companyPlan": "PREMIUM",
"status": "ACTIVE",
"city": "SAO PAULO",
"state": "SP",
"urlSite": "http://www.nubank.com.br",
"urlInstagram": "https://www.instagram.com/nubank/",
"urlLinkedin": "https://www.linkedin.com/company/nubank-brasil/",
"scrapedAt": "2026-10-09T01:03:06.114Z"
},
{
"kind": "complaint",
"id": "NQfrzMqCgcwSPN05",
"tier": "free",
"searchQuery": null,
"hasFullDetail": true,
"companyShortname": "nubank",
"companyId": "88850",
"companyName": "Nubank",
"title": "Comprei um bolo online e não recebi, Nubank não devolveu meu dinheiro",
"description": "Entrei no Google procurando por uma página onde eu queria comprar…",
"status": "PENDING",
"solved": false,
"evaluated": false,
"createdAt": "2026-10-08T21:29:20.000Z",
"userCity": "São Paulo",
"userState": "SP",
"category": "Marketplace",
"problemType": "Produto não recebido",
"productType": "Produtos",
"interactions": [],
"url": "https://www.reclameaqui.com.br/nubank/comprei-um-bolo-online-e-nao-recebi-nubank-nao-devolveu-meu-dinheiro_NQfrzMqCgcwSPN05/",
"scrapedAt": "2026-10-09T01:03:06.759Z"
}
]

Data table

Field (company)TypeDescription
shortname / companyIdstringReclame Aqui slug and ID of the company
companyName / fantasyName / cnpjstring | nullLegal name, trade name and CNPJ
scorenumber | nullReclame Aqui reputation score (0–10)
answeredPercentual / solvedPercentualnumber | null% of complaints answered / solved
dealAgainPercentualnumber | null% of consumers who would do business with the company again
averageAnswerTimeHours / complainCountnumber | nullAverage time to answer (hours) and total complaints received
companyPlan / statusstring | nullThe company's Reclame Aqui plan and account status
city / state / urlSite / urlInstagram / url…string | nullLocation, website and social profiles, when the company lists them
Field (complaint)TypeDescription
idstringReclame Aqui complaint ID
tier"free" | "extra"free = one of the 5 most recent complaints (billed as Complaint); extra = older or from a search
searchQuerystring | nullThe searchQueries term that found this complaint; null for a company's own complaints
hasFullDetailbooleanWhether includeComplaintDetail successfully fetched the full text/thread for this item
title / descriptionstringComplaint headline and body (full text with includeComplaintDetail, a short snippet otherwise)
statusstring | nullComplaint status as Reclame Aqui reports it, e.g. PENDING, ANSWERED
solved / evaluatedboolean | nullWhether the consumer marked the complaint resolved / left a final evaluation
category / problemType / productTypestring | nullReclame Aqui's complaint taxonomy (only with includeComplaintDetail)
interactionsarray | nullThe company↔consumer reply thread (only with includeComplaintDetail)
userCity / userStatestring | nullConsumer's self-reported location (only with includeComplaintDetail)

How much does it cost to scrape Reclame Aqui?

This Actor uses Apify's pay-per-event pricing: you pay only for what is delivered, with no separate charge for Apify platform usage (compute, proxy, bandwidth).

EventPriceWhen it applies
Company profile$0.02Once per company — reputation scorecard (score, CNPJ, contacts, response rates)
Complaint$0.01Per complaint, for each of the 5 most recent complaints of a company
Extra complaint$0.015Per complaint beyond the 5 most recent (or from searchQueries) — older complaints and keyword search results
Complaint detail$0.005Per complaint, only when includeComplaintDetail is on — full text + reply thread

Full example — every event in one run: 1 company, maxComplaintsPerCompany: 15, includeComplaintDetail: true:

EventCountPriceSubtotal
Company profile1$0.02$0.02
Complaint5$0.01$0.05
Extra complaint10$0.015$0.15
Complaint detail15$0.005$0.075
Total$0.295

More examples:

  • 1 company, profile + 5 recent complaints → $0.02 + 5 × $0.01 = $0.07
  • 1 company, 5 recent complaints with full text and reply thread → $0.02 + 5 × ($0.01 + $0.005) = $0.095
  • Monitoring 10 companies (profile + 5 recent each) → 10 × $0.07 = $0.70
  • Keyword search only, 20 results (searchQueries, no companies) → 20 × $0.015 = $0.30

Prices above are for Apify's free plan; paid Apify plans get a discount on every event (shown on the Pricing tab).

Apify's free plan includes $5 of free usage per month — about 70 company checks.

Tips to keep costs low

  • Leave maxComplaintsPerCompany at 5 to get the cheapest useful signal (score + recent complaints) for reputation monitoring at scale.
  • Turn on includeComplaintDetail when you need the full complaint text and the company's reply — it adds $0.005 per complaint.
  • Older complaints (beyond the 5 most recent) cost a bit more because they come from extra paginated requests to Reclame Aqui.

Known limitations

  • Older complaints (beyond the 5 most recent) cap out around 10–15 per company. Reclame Aqui itself only lists that many older complaints per company, the same for every company we tested. If it can't go further, the Actor returns fewer than requested instead of failing the run, and never charges for complaints it didn't deliver. Setting maxComplaintsPerCompany well above ~15 won't return more. Keyword search (searchQueries) is not limited this way.
  • interactions (the reply thread) is returned as-is from the source; its exact shape may vary between complaints.

FAQ

This Actor only collects publicly available data — the same complaint text, company scores, and reply threads visible to any visitor without logging in. Always comply with Reclame Aqui's Terms of Service and applicable local laws (including the LGPD if you process any personal data returned, such as a consumer's self-reported city).

Do I need a Reclame Aqui account or API key?

No. The Actor works without any Reclame Aqui credentials — just a free Apify account.

Where do I find a company's slug?

It's the identifier in the company's Reclame Aqui URL, e.g. nubank in reclameaqui.com.br/empresa/nubank/. You can also just paste the full URL into companies — the Actor extracts the slug automatically.

Am I charged for a run that finds nothing?

No. Billing is per delivered item (company profile, complaint, extra complaint, or complaint detail) — a company that fails to load or a paginated request that returns nothing is never charged. If none of the companies you asked for can be found, the run fails with a message telling you to check the slug.

How long does a run take?

Measured on the live Actor: 1 company with its 5 recent complaints takes about 10–20 seconds; 1 company with 15 complaints and full text about 30 seconds; 3 companies plus a keyword search with full text under a minute. The default timeout is more than enough — for large batches (hundreds of companies) allow a few minutes.

Why did I get fewer extra complaints than the ~10-15 ceiling?

For companies that receive a high volume of new complaints, a new one can land between the moment the 5 most recent complaints are read and the moment the extra pages are fetched moments later. Since the Actor deduplicates by complaint ID so nothing is ever double-counted, that overlap can push the actual extra count a bit under what the pagination ceiling would otherwise allow. This is a timing effect on very active companies, not an error — you're only ever charged for what was actually delivered.

Changelog

  • 2026-10-09 — New grouped JSON output: each company with its complaints nested, next to the usual table. Complaints now show which search term found them (searchQuery).
  • 2026-10-08 — Older complaints and keyword search are now much faster and more reliable. Runs stop at your maximum cost per run, and a run where no company can be found fails with a clear message.
  • 2026-10-06 — Updated for Reclame Aqui's new website layout.

Support

If you encounter a bug or have a suggestion for this Actor or a new one, reach us at contact.riseandcode@gmail.com. We respond in English 🇺🇸 and Portuguese 🇧🇷.