Carousell Listings Scraper
Pricing
Pay per event
Carousell Listings Scraper
Scrape Carousell listings by keyword or search URL. Extract prices, sellers, conditions, images, listing IDs, URLs, and buyer-protection flags.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
3
Monthly active users
9 days ago
Last modified
Categories
Share
Extract public marketplace listings from Carousell search pages.
Use this actor to collect listing URLs, titles, prices, sellers, conditions, images, buyer-protection flags, and timestamps from Carousell markets such as Singapore, Malaysia, Philippines, Taiwan, Hong Kong, Indonesia, and global pages.
What does Carousell Listings Scraper do?
Carousell Listings Scraper opens public Carousell search or category pages and saves visible listing cards into an Apify dataset.
It helps you turn Carousell search results into structured data for resale sourcing, marketplace monitoring, price comparisons, and lead discovery.
Who is it for?
Marketplace resellers use it to monitor new deals.
Sourcing teams use it to track used-goods supply.
Price analysts use it to collect comps for consumer electronics, furniture, bikes, fashion, luxury goods, and more.
Local commerce teams use it to watch seller activity and category inventory.
Why use this actor?
Carousell pages are dynamic and protected by Cloudflare.
This actor uses a browser workflow with Apify Proxy support and extracts fields from real rendered listing cards.
You get a clean dataset instead of manually copying search results.
Data you can extract
| Field | Description |
|---|---|
| listingId | Carousell listing identifier |
| listingUrl | Public URL for the listing |
| title | Listing title |
| price | Display price |
| priceValue | Numeric price when parseable |
| currency | Currency prefix such as S$ |
| condition | Brand new, Like new, Lightly used, etc. |
| sellerName | Seller handle shown on the card |
| sellerProfileUrl | Public seller profile URL |
| postedAt | Relative listing timestamp |
| imageUrl | Main listing image |
| isBuyerProtection | Buyer Protection badge flag |
| likesCount | Visible like count when present |
| sourceUrl | Search or category page used |
| searchQuery | Search keyword parsed from the URL |
| scrapedAt | Extraction timestamp |
How much does it cost to scrape Carousell listings?
The actor uses pay-per-event pricing.
You pay a small start fee and then a per-listing result fee.
Actual cost depends on your selected maximum listings and proxy usage.
For cheap tests, start with 10-20 listings.
Quick start
- Open the actor on Apify.
- Enter one or more Carousell keywords, such as
bicycleoriphone. - Keep the market set to Singapore for the default example.
- Set
Maximum listingsto a small number for the first run. - Run the actor.
- Export the dataset as JSON, CSV, Excel, or via API.
Input options
keywords builds Carousell search URLs automatically.
startUrls accepts existing Carousell search or category URLs.
maxItems controls total listings saved across all inputs.
market chooses the Carousell domain for keyword searches.
sortBy appends a sort preference when supported by the target market.
proxyType controls Apify Proxy usage.
timeoutSecs adjusts browser page-load timeout.
Example input
{"keywords": ["bicycle"],"maxItems": 20,"market": "sg","proxyType": "residential"}
Search URL example
{"startUrls": [{ "url": "https://www.carousell.sg/search/camera/" }],"maxItems": 25,"proxyType": "residential"}
Example output
{"listingId": "1447171463","listingUrl": "https://www.carousell.sg/p/example-1447171463/","sourceUrl": "https://www.carousell.sg/search/bicycle/","searchQuery": "bicycle","title": "Mavic Cosmic CXR60 carbon wheelset","price": "S$800","priceValue": 800,"currency": "S$","condition": "Lightly used","sellerName": "trustbikes","sellerProfileUrl": "https://www.carousell.sg/u/trustbikes/","postedAt": "6 minutes ago","imageUrl": "https://media.karousell.com/media/photos/products/example.jpg","isBuyerProtection": true,"likesCount": null,"scrapedAt": "2026-07-02T07:30:00.000Z"}
Tips for better results
Use specific search terms.
Prefer iphone 15 pro over phone when monitoring a product model.
Use startUrls when you already applied filters on Carousell.
Keep result limits realistic.
Run recurring tasks to monitor new listings over time.
Proxy guidance
Carousell commonly challenges direct and datacenter traffic.
Residential proxy is the recommended default.
Datacenter proxy is available as an advanced option, but it may return a Cloudflare verification page instead of listings.
Integrations
Export datasets to Google Sheets for price tracking.
Send JSON to a pricing pipeline for comps analysis.
Connect with Make or Zapier to notify buyers when new listings match a keyword.
Use Apify API webhooks to trigger downstream enrichment.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/carousell-listings-scraper').call({keywords: ['bicycle'],maxItems: 20,market: 'sg',proxyType: 'residential'});console.log(run.defaultDatasetId);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('MY-APIFY-TOKEN')run = client.actor('automation-lab/carousell-listings-scraper').call(run_input={'keywords': ['bicycle'],'maxItems': 20,'market': 'sg','proxyType': 'residential',})print(run['defaultDatasetId'])
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~carousell-listings-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"keywords":["bicycle"],"maxItems":20,"market":"sg","proxyType":"residential"}'
MCP usage
Use this actor through Apify MCP in Claude Desktop or Claude Code.
MCP URL:
https://mcp.apify.com/?tools=automation-lab/carousell-listings-scraper
Claude Code setup:
$claude mcp add apify-carousell "https://mcp.apify.com/?tools=automation-lab/carousell-listings-scraper"
Claude Desktop JSON config:
{"mcpServers": {"apify-carousell": {"url": "https://mcp.apify.com/?tools=automation-lab/carousell-listings-scraper"}}}
Example prompts:
Scrape 20 Carousell Singapore bicycle listings and summarize median price by condition.Find used iPhone listings on Carousell and return seller, price, condition, and URL.
Monitoring workflows
Schedule the actor daily for important keywords.
Compare new dataset exports against yesterday's run.
Alert when a listing price drops below your target.
Track seller inventory for sourcing opportunities.
Common use cases
Used iPhone price monitoring.
Bike and parts sourcing.
Furniture resale research.
Luxury goods market checks.
Local competitor monitoring.
Legality and responsible use
This actor extracts publicly visible information from Carousell pages.
Respect Carousell terms, privacy rules, and applicable laws.
Do not use scraped data for spam, harassment, or unlawful profiling.
Reduce run frequency and result volume when you do not need large datasets.
Troubleshooting
If a run returns zero results, try a broader keyword or a Carousell search URL that visibly has listings.
If the actor reports a security verification page, switch proxyType back to residential and retry with a lower maxItems.
If some optional fields are null, the field was not visible in the search card without opening detail pages.
FAQ
Why does the actor use residential proxy by default?
Carousell commonly serves Cloudflare verification to direct and datacenter traffic. Residential proxy gives the actor the best chance to load public listing cards.
Can it scrape full listing detail pages?
This first version focuses on search-card data because opening every detail page is slower, more expensive, and more likely to trigger anti-bot checks.
Which Carousell markets are supported?
Keyword searches support Singapore, Malaysia, Philippines, Taiwan, Hong Kong, Indonesia, and global Carousell domains.
Limitations
The actor extracts search-card data, not full private seller details.
Listing descriptions and exact location are often not visible on search cards.
The Carousell UI can change; selectors may need updates if card markup changes.
Related scrapers
Explore other Automation Lab marketplace and ecommerce scrapers on Apify:
- https://apify.com/automation-lab/facebook-marketplace-scraper
- https://apify.com/automation-lab/ebay-scraper
- https://apify.com/automation-lab/etsy-scraper
- https://apify.com/automation-lab/shopify-products-scraper
Support
If a Carousell page stops working, include the run URL, input, and the target Carousell URL when reporting an issue.
Changelog
Initial version extracts listing cards from Carousell search and category pages with residential proxy support.