Carousell Scraper [From $1💰] | 9 Markets | Seller Data avatar

Carousell Scraper [From $1💰] | 9 Markets | Seller Data

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Carousell Scraper [From $1💰] | 9 Markets | Seller Data

Carousell Scraper [From $1💰] | 9 Markets | Seller Data

Extract Carousell listing data across all 9 markets — SG, MY, PH, HK, ID, TW, AU, CA, NZ. Get price, condition, seller rating, location, likes and images via Carousell's own JSON API. No login, no CAPTCHA. Built for price monitoring, reseller sourcing and market research.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Categories

Share

Carousell Scraper — Second-Hand Marketplace Data for 9 Markets

Extract Carousell listing and seller data for second-hand price monitoring, reseller sourcing and marketplace research across all 9 Carousell country markets — Singapore, Malaysia, Philippines, Hong Kong, Indonesia, Taiwan, Australia, Canada and New Zealand — including AU, CA and NZ that most Carousell scrapers skip. No browser, no login, no CAPTCHA solving: this actor replays the same JSON API surfaces Carousell's own web and mobile apps use, so runs are fast and cheap on compute.

Main Use Cases

  • Second-hand price monitoring — numeric prices plus posted/bumped timestamps for time-series price tracking and drop alerts.
  • Reseller & dropshipper inventory sourcing — source second-hand inventory by keyword across SG, MY, PH and beyond.
  • Marketplace & consumer research — category, condition mix, likes and seller stats per market; compare 9 regional Carousell markets.
  • Seller intelligence — rating, review counts, followers, response rate and join date attached to every listing (detail mode).
  • Structured second-hand product databases — clean JSON records you can download as JSON, CSV or Excel for dashboards, apps and models.

How It Works

Carousell's search pages server-render an empty shell and load results client-side, so plain HTML scraping returns nothing. This actor replays the two structured JSON surfaces Carousell's own web and mobile apps use (reverse-engineered from the mweb-cdn.karousell.com JS bundles):

  1. Keyword search — internal DataService relay. GET the market homepage to harvest the _csrf cookie + csrf-token header, then POST the same search payload the apps use. Each response returns up to ~100 listing cards with title, price, condition, seller mini-profile, likes, geo and all photo URLs.
  2. Listing details — internal relay, ~25 kB JSON per listing. Returns the complete record: exact numeric price, condition, full description, seller reputation (rating, reviews, followers, response rate, join date), meet-up locations with lat/lng, buyer-protection flag, timestamps and all photos. A server-rendered HTML fallback covers relay gaps automatically.

No DOM is ever built (HttpCrawler, raw bytes) — less CPU, less memory, cheaper runs.

Scrape Carousell Listings Without Login or CAPTCHA Solving

All data comes from publicly visible pages and public JSON responses — no accounts, no private messages, no CAPTCHA bypass, no paid anti-bot API. The site's Cloudflare edge only requires a clean residential/mobile egress IP (see Proxy section below).

Monitor Second-Hand Prices and Build a Price History

The API delivers numeric prices (price), the original display string (priceDisplay), ISO currency, item condition and both postedAt and bumpedAt timestamps. Run this actor daily on the Apify scheduler and append each run's dataset to build a price history for any keyword — phones, sneakers, designer furniture, watches, cards. Because prices are numeric and consistent, time-series analysis, drop alerts and percentile reporting are straightforward.

Research 9 Carousell Markets from One Actor

One input picks the market: sg, my, ph, hk, id, tw, au, ca, nz. The same keyword can be compared across Singapore, Malaysia, Philippines, Hong Kong, Indonesia, Taiwan, Australia, Canada and New Zealand marketplaces — regional price gaps, condition mix and seller behavior are the classic signals for second-hand market research and arbitrage scouting.

Carousell Seller Data for Sourcing and Due Diligence

Detail mode returns seller rating, review count, followers, response rate and join date, plus the seller profile URL. That turns raw listings into seller leads — for sourcing reliable inventory, checking buyer risk, or building a seller-reputation dataset for the marketplace.

Input

FieldTypeRequiredDefaultNotes
keywordsarray of stringsno¹—Keyword(s) to search; one search is run per keyword. Specific phrases (e.g. iphone 15 pro 256gb) beat head terms.
listingUrlsarray of stringsno¹—Direct Carousell /p/... listing URLs to scrape in full detail. Market is auto-detected from the URL hostname.
marketstringnosgOne of sg, my, ph, hk, id, tw, au, ca, nz. Applies to keywords only.
maxItemsintegerno50Max listings returned in total (min 1, max 2000). Free-plan runs are capped at 10 items.
fetchDetailsbooleannotruetrue = full record (description, seller reputation, meet-up, category, all images). false = fast card data straight from the search JSON.
concurrencyintegerno8Parallel requests (max 20). Detail pages are network-bound; higher = faster but more proxy load.
maxRequestsPerCrawlintegerno500Safety cap on total HTTP requests (search + detail).
proxyobjectno²SG residentialApify proxy picker. Carousell blocks datacenter IPs with 403 — residential/mobile, ideally geo-matched.

¹ At least one of keywords or listingUrls is required. ² Technically optional — but without a residential/mobile egress IP the run returns zero items (site blocks datacenter IPs).

Output

One dataset record per listing (detail mode fills every field; card mode fills the card-level subset). All 33 fields:

FieldTypeDescription
id / title / urlstringListing id, title, canonical URL
price / priceDisplay / currencynumber / stringNumeric price, original display string (e.g. S$730), ISO currency (e.g. SGD)
condition / conditionCodestringCondition text (detail) + raw code
descriptionstringFull description (detail) or search snippet (card)
sellerUsername / sellerProfileUrl / sellerId / sellerProfileImagestringSeller identity + avatar
sellerRating / sellerReviewCount / sellerFollowers / sellerResponseRate / sellerJoinedAtnumber / stringSeller reputation (detail mode)
location / meetups / latitude / longitudestring / numberMeet-up location + geo (lat/lng already in card mode)
category / categorySlugstringCategory (detail mode)
likes / statusnumber / stringEngagement + listing state
buyerProtectionbooleanis_caroupay_enabled buyer-protection flag (detail mode)
postedAt / bumpedAtstringCreation / last-bump timestamps (ISO 8601)
imagesarrayAll photo URLs (detail) or thumbnails (card)
market / keywordstringSource market code + matched keyword

Example Input

{
"keywords": ["iphone 15 pro", "herman miller aeron"],
"market": "sg",
"maxItems": 50,
"fetchDetails": true,
"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "SG" }
}

Example Output

{
"id": "1433031784",
"title": "Apple AirPods Max 2 - Midnight",
"url": "https://www.carousell.sg/p/apple-airpods-max-2-midnight-1433031784/",
"price": 730,
"priceDisplay": "S$730",
"currency": "SGD",
"condition": "Brand new",
"conditionCode": "1",
"description": "Sealed unit, purchased from Apple SG...",
"sellerUsername": "stylestitch",
"sellerProfileUrl": "https://www.carousell.sg/u/stylestitch/",
"sellerId": "123456",
"sellerProfileImage": "https://media.karousell.com/...jpg",
"sellerRating": 5,
"sellerReviewCount": 6,
"location": "Woodlands MRT Interchange (NS9/TE2)",
"latitude": 1.436,
"longitude": 103.786,
"category": "Headphones & Headsets",
"likes": 3,
"status": "L",
"buyerProtection": true,
"postedAt": "2026-04-19T03:46:17Z",
"bumpedAt": "2026-09-15T17:14:33Z",
"images": ["https://media.karousell.com/...jpg"],
"market": "sg",
"keyword": "airpods max 2"
}

Integrations & Automation

  • Apify REST API — start runs programmatically from any app or CI pipeline.
  • Scheduler — for price monitoring, run daily (small maxItems); for market research, run weekly and export the dataset.
  • Webhooks / Zapier / Make — push new-listing and price-change data into Sheets, Slack, databases or alerting tools via Apify's standard integrations.
  • Output formats — every run's dataset downloads as JSON, CSV, Excel, HTML or XML.

Recurring scheduled runs are also the single best lever for Apify Store recommendations: the platform weighs how often an actor is re-run.

Second-hand marketplace data cluster (relevance first):

FAQ

Is there an official Carousell API?

No. Carousell Group does not publish a documented public API for marketplace data (there is no official Carousell API endpoint for third parties as of Sep 2026). This actor is a Carousell data API of its own: it replays the same public JSON surfaces Carousell's web and mobile apps use, and exposes them through the Apify REST API — so you get programmatic access, scheduling and dataset download without maintaining a scraper yourself.

Do I need a Carousell account or login to scrape listings?

No. The actor collects only publicly visible listing data — the same information any visitor sees without logging in. No accounts, no private messages, no CAPTCHA solving.

Why use this actor instead of an official Carousell API?

There is no official public API, and third-party reseller APIs charge per-request subscription fees. This actor is pay-per-event, covers all 9 country markets, and card mode returns ~100 listings per search request with no per-item charge (only detail fetches are billed).

What are the alternatives to this actor for Carousell data?

On Apify: the piotrv1001 and automation-lab Carousell scrapers above. Off-platform: RapidAPI resellers (paid subscriptions) or self-built scrapers (Selenium/BeautifulSoup, e.g. the public GitHub projects) — which break whenever Carousell changes its markup and need their own IP management. For second-hand marketplace data beyond Carousell, see the Related Actors section (Vinted, Goofish, Wallapop).

How does Carousell compare to Facebook Marketplace for second-hand data?

Both are classifieds marketplaces; in Singapore's inter-ministry e-commerce safety ratings they rank lowest, while Amazon/Lazada/Shopee score highest (Straits Times, 2023). For data work the practical differences: Carousell offers structured search JSON (which this actor uses), buyer-protection flags and seller reputation fields; Facebook Marketplace is harder to scrape consistently and prohibits scraping in its terms. Sellers often list on both — running this actor for Carousell plus a separate marketplace actor captures the overlap.

What is Carousell Certified and does the actor scrape it?

Carousell Certified is the platform's inspected/recommended resale program (inspection + money-back guarantee on certified bags, phones and cars). The search API returns whatever a keyword search surfaces — including Certified listings. Tip: head terms (e.g. iphone) skew toward Certified program listings; use specific phrases (e.g. iphone 15 pro 256gb) to reach regular user listings.

How can I scrape Carousell without getting blocked?

Carousell's Cloudflare edge blocks datacenter and most proxy-ASN IPs with HTTP 403. Enable the proxy input with residential or mobile IPs geo-matched to the market (e.g. SG exits for the Singapore market — this is the input default). Without an accepted egress IP a run returns zero items — that is the site blocking the IP, not an actor bug.

How do I track Carousell prices over time?

Prices are numeric with ISO currency and postedAt/bumpedAt timestamps. Schedule the actor daily with a fixed maxItems, append each run's dataset, and compute price changes, drop alerts or percentile stats. Card mode is cheap enough for daily scans.

What is the most reliable measurement for Carousell market research?

Per-market category and condition mix, likes, seller reputation distribution and bump cadence across the 9 markets give a comparable regional picture. Taiwan (tw) server-renders thinner results than SG/MY/PH — treat small TW result sets as expected.

How much does it cost to scrape Carousell?

The actor is pay-per-event: listing details fetched with Fetch details on are charged per event, plus a small actor-start fee per GB of memory. Card mode (fetchDetails off) uses ~1 request per 100 listings and no per-item detail charge. Runs on the free plan return up to 10 items as a preview. Keep maxItems small for cheap runs.

How do I get Carousell data into Excel or CSV?

Every run writes to an Apify dataset, downloadable as JSON, JSONL, CSV, Excel or HTML — no post-processing needed. Scheduled runs accumulate history for time-series analysis.

SEO Keywords

carousell scraper, carousell api, scrape carousell listings, carousell data extraction, carousell price monitoring, carousell price tracker, carousell seller data, carousell seller leads, second hand phone price tracker, carousell market research, carousell singapore, carousell malaysia, carousell philippines, carousell indonesia, carousell hong kong, carousell taiwan, carousell australia, carousell canada, carousell new zealand, second-hand marketplace data, resale price tracking southeast asia, used goods market research, carousell alternative api, carousell dataset, carousell certified used phones

For AI Agents & LLM Apps

This actor can be called from any LLM app or MCP client via the Apify API. Minimal reference:

Purpose: return structured Carousell listing records (price, condition, seller, geo, likes, timestamps, images) for keyword searches or direct listing URLs across 9 markets.

Minimal working input:

{ "keywords": ["iphone 15"], "market": "sg", "maxItems": 10 }

Variant — card mode (fast, no detail requests):

{ "keywords": ["iphone 15"], "market": "sg", "maxItems": 50, "fetchDetails": false }

Variant — direct listing URLs (market auto-detected from hostname):

{ "listingUrls": ["https://www.carousell.sg/p/apple-airpods-max-2-midnight-1433031784/"] }

Output field list: id, title, url, price, priceDisplay, currency, condition, conditionCode, description, sellerUsername, sellerProfileUrl, sellerId, sellerProfileImage, sellerRating, sellerReviewCount, sellerFollowers, sellerResponseRate, sellerJoinedAt, location, meetups, latitude, longitude, category, categorySlug, likes, status, buyerProtection, postedAt, bumpedAt, images, market, keyword.

Behaviors an agent should know:

  • Proxy is effectively mandatory: Carousell 403s datacenter IPs. Leave the default proxy (useApifyProxy: true, apifyProxyGroups: ["RESIDENTIAL"], apifyProxyCountry matching the market) in place — removing it yields zero items.
  • Free-plan runs are capped at 10 items (maxItems above that is honored only for paying users).
  • Each entry in keywords triggers its own search; market applies to keywords only — listingUrls markets are auto-detected from the URL hostname. Both can be set in the same input.
  • If neither keywords nor listingUrls is set, the run fails with an input error.
  • fetchDetails defaults to true: every collected listing then triggers an additional detail request, slower and billed per event. Set false for fast card-level scans (no seller reputation, description, meet-up, category or buyerProtection — only title, price, condition, seller + avatar, geo, likes, status, timestamps).
  • maxItems caps total output (1–2000, default 50); concurrency (default 8, max 20) trades speed against proxy load; maxRequestsPerCrawl (default 500) is a hard HTTP-request safety cap.
  • Specific search phrases outperform head terms (head terms skew toward Carousell Certified listings); tw market renders thinner results than SG/MY/PH.
  • Only public data is collected; seller contact details are never exposed.

Billing: pay-per-event — a base actor-start event (~USD 0.00005 per GB), a per-result event (USD 0.001), and a listing-detail event (USD 0.002) per listing fetched with fetchDetails: true. Card mode avoids the detail event. Keep maxItems small when cost-bounding.

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Carousell Group (an independent entity). Carousell is a registered trademark of its respective owner; this actor is not an official Carousell product.

The actor accesses only publicly available Carousell pages and public JSON responses — no login, no private-message data, no CAPTCHA bypass, no seller contact details. If you use a proxy, use one you are authorized to use.

You are responsible for your own compliance with Carousell's Terms of Use and applicable data-protection law (e.g. Singapore PDPA, and any law applicable in the market you target) when using the extracted data. Public seller handles and ratings are returned for identification and research purposes, not for harassment, impersonation or other unlawful use.

Competitive Positioning

Verified against public Apify Store pages (Sep 2026): the most-used Carousell actor (piotrv1001/carousell-listings-scraper, ~84 users) is carousell.sg-only and URL-based, priced per listing ($0.01 listing / $0.04 detail); automation-lab/carousell-listings-scraper adds a keyword input with browser rendering ($0.005 start + ~$0.007/item).

CapabilityThis actorpiotrv1001 (most-used)automation-lab
Market coverage9 markets (SG, MY, PH, HK, ID, TW, AU, CA, NZ)carousell.sg onlykeyword + market select
Keyword searchnative keywords array (one search per keyword)via search URLs in startUrls onlykeywords or startUrls
Direct listing URLslistingUrls array, market auto-detectedvia startUrlsvia startUrls
Card-mode costno per-item charge (detail events only)$0.01 per listing~$0.007 per item
Detail-mode datafull seller profile (rating, reviews, followers, response rate, join date), buyer-protection flag, lat/lng, bump timestampsseller profile basicsoptional includeDetails

Switching from the most-used Carousell scraper? It requires you to construct search-URL strings (startUrls) and only covers the Singapore domain. Here you type plain keywords, pick any of 9 markets, and card mode scans ~100 listings per request without per-item charges.