PissedConsumer Scraper avatar

PissedConsumer Scraper

Pricing

from $0.50 / 1,000 complaints

Go to Apify Store
PissedConsumer Scraper

PissedConsumer Scraper

Scrape complaints and reviews from PissedConsumer.com — author, rating, date, headline, full text, location, comments, photos, company address and video. Search by company page, category, or keyword. Optional full complaint details. JSON/CSV export.

Pricing

from $0.50 / 1,000 complaints

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

PissedConsumer Scraper — Complaints & Reviews Extractor

Extract structured consumer complaints and reviews from PissedConsumer.com at scale. Give the actor a company page, a category, a search keyword, or a direct complaint URL and it returns one clean row per complaint: author, rating, date, headline, full text, location, comments, photos, and (on detail pages) pros, cons, monetary loss, preferred solution, company address, and video.

Why use this PissedConsumer Scraper

PissedConsumer is one of the largest consumer-complaint databases on the web — over a million reviews across tens of thousands of companies. This actor turns those unstructured review pages into clean, analyst-ready rows without a browser, without an account, and without anti-bot workarounds.

  • One row per complaint, with the full review body and inline comments.
  • Company pages, category indexes, keyword search, and direct complaint URLs all supported.
  • Detail pages add pros, cons, monetary loss, preferred solution, company address, all photos, and embedded video.
  • Sliding-window concurrency with per-request proxy rotation for throughput.
  • No login, no cookies, no headless browser — fast and cheap to run.

Overview

PissedConsumer.com (operated by Opinion Corp.) lets consumers publish complaints and reviews about any company. Each company has a listing page ({slug}.pissedconsumer.com/review.html) with paginated review snippets; each individual complaint has a detail page with the full review, pros/cons, monetary loss, preferred solution, company address, photos, video, and threaded comments. The site exposes rich schema.org microdata on every page, which this actor parses directly.

Supported inputs

You provideExample
A company page URLhttps://amazon.pissedconsumer.com/review.html
A category URLhttps://www.pissedconsumer.com/search-companies/category/electronics.html
A search URLhttps://www.pissedconsumer.com/browse-reviews.html?query=Temu
A search keywordTemu
A direct complaint URLhttps://amazon.pissedconsumer.com/{complaint-slug}-{id}.html

Company, category, and search URLs are expanded into company listing pages automatically. Direct complaint URLs return the full detail row (pros, cons, monetary loss, company address, video, all photos).

Use cases

  • Build a consumer-sentiment dataset for a brand or category.
  • Track complaint volume, ratings, and themes for competitor companies over time.
  • Enrich a lead-generation pipeline with company addresses and complaint context.
  • Surface recurring product or service issues (pros/cons, monetary loss, preferred solution).
  • Feed a reputation-monitoring or review-aggregation product.

How it works

  1. You supply one or more start URLs and/or a search keyword.
  2. The actor resolves category and search URLs into company listing pages.
  3. For each company, it pages through the listing (rel="next"), parsing each Review microdata block into a complaint row.
  4. Direct complaint URLs are fetched as detail pages, adding pros, cons, monetary loss, preferred solution, company address, all photos, and video.
  5. Each complaint is written to the dataset as one clean row.

Input configuration

FieldTypeDefaultDescription
startUrlsarray—PissedConsumer URLs: company pages, category pages, search URLs, or direct complaint pages.
searchQuerystring—Search PissedConsumer for companies by name (e.g. Amazon).
maxItemsinteger1000Maximum complaints to scrape.
maxPagesinteger0Max listing pages per company (0 = unlimited).
maxConcurrencyinteger10Pages fetched in parallel.
proxyobjectbuilt-inOptional proxy override; the actor ships with residential proxy support.

Output overview

One dataset item per complaint. Example (trimmed) for a listing-level row:

{
"source": "listing",
"companyName": "Amazon",
"companySlug": "amazon",
"complaintId": "202512187009405",
"url": "https://amazon.pissedconsumer.com/they-canceled-claim-whet-i-have-in-writing-202512187009405.html",
"author": "Mark s Ohy",
"authorUrl": "https://www.pissedconsumer.com/people/29624045.html",
"verifiedReviewer": true,
"rating": 1,
"bestRating": 5,
"headline": "They canceled claim whet I have in writing",
"reviewBody": "First, I put an order in. I didn't even know it was through a third party...",
"datePublished": "2025-12-18 09:16:19",
"location": "Boise, Idaho",
"commentCount": 4,
"upvoteCount": 5,
"comments": [
{ "author": "Guest-2983222", "date": "2026-07-18 22:25:44", "text": "...", "upvoteCount": 5 }
],
"featured": true
}

Example (trimmed) for a detail-level row from a direct complaint URL:

{
"source": "detail",
"companyName": "Amazon",
"companySlug": "amazon",
"complaintId": "202512187009405",
"url": "https://amazon.pissedconsumer.com/they-canceled-claim-whet-i-have-in-writing-202512187009405.html",
"author": "Mark s Ohy",
"rating": 1,
"headline": "They canceled claim whet I have in writing",
"reviewBody": "...",
"datePublished": "2025-12-18 09:16:19",
"location": "Boise, Idaho",
"pros": "Large selection, Easy to find items decent prices.",
"cons": "Customer service is horrible, Quality has gone down.",
"monetaryLoss": "$236.",
"preferredSolution": "Full refund.",
"commentCount": 4,
"viewCount": "1.1K views",
"images": ["https://cdn0.opinion-corp.com/..."],
"video": { "contentUrl": "https://youtube.com/embed/...", "thumbnailUrl": "https://img.youtube.com/.../hqdefault.jpg" },
"comments": [ ... ]
}

Output fields

FieldTypeDescription
sourcestringlisting or detail.
companyNamestringReviewed company name.
companySlugstringCompany subdomain slug.
complaintIdstringPissedConsumer complaint ID.
urlstringComplaint page URL (null on listing rows without a direct link).
authorstringReviewer display name.
authorUrlstringReviewer profile URL.
verifiedReviewerbooleanWhether the reviewer is verified.
ratingnumberStar rating (1–5).
bestRatingnumberAlways 5.
headlinestringComplaint headline.
reviewBodystringFull complaint text.
datePublishedstringPublication timestamp.
dateModifiedstringLast-modified timestamp (detail only).
locationstringReviewer location.
commentCountnumberNumber of comments.
viewCountstringView count (detail only).
upvoteCountnumberUpvotes on the review.
commentsarrayInline comments (author, date, text, upvoteCount).
imagesarrayPhoto URLs (detail only).
videoobjectEmbedded video (contentUrl, thumbnailUrl, description; detail only).
companyAddressstringCompany address (detail only, when present).
prosstringPros (detail only).
consstringCons (detail only).
monetaryLossstringReported monetary loss (detail only).
preferredSolutionstringPreferred resolution (detail only).
featuredbooleanWhether the review is featured on the listing.

Limitations

  • Listing pages do not expose direct complaint URLs for non-featured reviews (the date shown is last-activity, not the post date, so URL construction is unreliable). Pass direct complaint URLs as startUrls to get full detail rows.
  • The site paginates with rel="next" alternating between /complaints/RT-P.html and /reviews/RT-P.html; the actor follows both.
  • Very large companies (e.g. Amazon) have 100K+ reviews; use maxPages to cap crawl depth.

Changelog

  • 0.0 — initial release: company, category, search, and direct-complaint crawling; listing + detail parsing; sliding-window concurrency.