Carousell Listings Scraper avatar

Carousell Listings Scraper

Pricing

Pay per event

Go to Apify Store
Carousell Listings Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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

FieldDescription
listingIdCarousell listing identifier
listingUrlPublic URL for the listing
titleListing title
priceDisplay price
priceValueNumeric price when parseable
currencyCurrency prefix such as S$
conditionBrand new, Like new, Lightly used, etc.
sellerNameSeller handle shown on the card
sellerProfileUrlPublic seller profile URL
postedAtRelative listing timestamp
imageUrlMain listing image
isBuyerProtectionBuyer Protection badge flag
likesCountVisible like count when present
sourceUrlSearch or category page used
searchQuerySearch keyword parsed from the URL
scrapedAtExtraction 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

  1. Open the actor on Apify.
  2. Enter one or more Carousell keywords, such as bicycle or iphone.
  3. Keep the market set to Singapore for the default example.
  4. Set Maximum listings to a small number for the first run.
  5. Run the actor.
  6. 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 ApifyClient
client = 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.

Explore other Automation Lab marketplace and ecommerce scrapers on Apify:

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.