Carousell Listings Scraper
Pricing
from $10.00 / 1,000 product listings
Carousell Listings Scraper
Carousell Listings Scraper extracts product listings from carousell.sg search results and detail pages, capturing titles, prices, conditions, descriptions, images, seller profiles, and posting dates — perfect for marketplace research, price monitoring, and competitor analysis.
Pricing
from $10.00 / 1,000 product listings
Rating
0.0
(0)
Developer
FalconScrape
Maintained by CommunityActor stats
1
Bookmarked
106
Total users
8
Monthly active users
8 days ago
Last modified
Categories
Share
🛍️ Carousell Scraper: Listings, Prices and Sellers
The Carousell Listings Scraper exports second-hand and new listings from Carousell search, keyword and category pages as clean JSON, CSV or Excel: title, price, currency, condition, seller, photos and posting time, plus the full description and seller rating when you turn on details. It covers Carousell Singapore, Malaysia, the Philippines, Hong Kong, Taiwan and Indonesia, and works as a no-key alternative to a Carousell API for price research, seller lead lists and marketplace monitoring.
🎯 Use Cases
- Carousell iPhone and electronics prices: pull every iPhone, laptop or console listing for a keyword and see what second-hand models actually sell for in Singapore, Malaysia or Hong Kong.
- Second-hand market research: compare asking prices and conditions (Brand new, Like new, Lightly used, Well used) across a whole category before you price your own stock.
- Carousell seller research: collect seller usernames, profile links, ratings, review counts and account age to find active resellers and shops in a niche.
- New-listing alerts: run a keyword every hour and catch fresh furniture, camera or sneaker listings minutes after they are posted.
- Carousell Certified offers: track the "From" prices of Carousell Certified refurbished phones next to regular marketplace listings.
- Cross-market price checks: run the same keyword on carousell.sg, carousell.com.my and carousell.ph and compare local-currency prices.
✨ Features
- Six Carousell markets: Singapore, Malaysia, Philippines, Hong Kong, Taiwan and Indonesia. Prices come back as numbers in the local currency (
SGD,MYR,PHP,HKD,TWD,IDR). - Two depths: fast card-level rows from search results, or full listing details (description, all photos, seller rating, review count, how long the seller has been on Carousell, likes, bump status).
- Keywords and a market picker: type search terms and choose Singapore, Malaysia, the Philippines, Hong Kong, Taiwan or Indonesia. No URLs needed.
- Filters as input fields: sort (best match, newest, price low or high), price range and condition (Brand new, Like new, Lightly used, Well used, Heavily used), applied by Carousell itself to keyword searches and on top of pasted search or category URLs.
- Keyword, category or listing URLs: paste any mix, one per line.
- Marketplace or Certified, never mixed: by default you get individual marketplace listings (the All tab). Choose
certifiedfor Carousell Certified product offers instead. If the requested type doesn't load, the run says so rather than silently returning the other type. - Deep searches: the scraper clicks Show more results up to your batch limit and stops when Carousell shows no new listings.
- No duplicates: a listing found by two URLs is saved and charged once. If a run restarts, listings already saved are not saved or charged again.
- Honest short results: when Carousell stops showing new listings before your limit, the run's final status says how many it found out of how many you asked for.
- Respects your max charge: the run stops saving when your spending limit is reached, so you never pay past it.
🛠️ How It Works
- Type keywords and pick a market, or paste Carousell URLs (a keyword page such as
https://www.carousell.sg/iphone/q/, a category page, or single listings). Add filters if you like. - Pick the depth and limits: leave Scrape listing details off for fast card data, or turn it on for descriptions and seller ratings. Set Max unique listings per search (default 100).
- Run it and download the dataset as JSON, CSV or Excel, or read it through the Apify API.
Supported URL formats
| Format | Example | What you get |
|---|---|---|
| Keyword page | https://www.carousell.sg/desk-lamp/q/ | Listings for a keyword |
| Search path | https://www.carousell.com.my/search/iphone | Listings for a keyword |
| Search query | https://www.carousell.sg/search/?query=iphone&sort_by=3 | Listings for a keyword |
| Category page | https://www.carousell.sg/categories/mobile-phones-gadgets-215/ | Listings in a category |
| Single listing | https://www.carousell.sg/p/listing-title-123456/ | One listing with full details |
Use the same formats on the other markets: www.carousell.com.my, www.carousell.ph, www.carousell.com.hk, tw.carousell.com and id.carousell.com. /search/?query=… URLs work too: the scraper moves the keyword into the path, the form Carousell filters by, and keeps your other parameters such as sort_by.
Some searches, such as iPhone, open on Carousell's Certified tab. The scraper selects the tab you chose in Listing type (Marketplace by default, the same as clicking All). Single listing URLs are visited as they are.
⚙️ Input
| Field | What it does |
|---|---|
Keywords (keywords) | Search terms. Each keyword is one search in the chosen market. |
Market (market) | sg (default), my, ph, hk, tw or id for keyword searches. Start URLs keep their own site. |
Start URLs (startUrls) | Carousell keyword, search, category or listing URLs. Optional when keywords are given. |
Sort (sort) | relevance (best match, default), newest, priceAscending or priceDescending. |
Minimum / Maximum price (priceMin, priceMax) | In the market currency. |
Condition (conditions) | Any of brand_new, like_new, lightly_used, well_used, heavily_used. |
Scrape listing details (scrapeDetails) | Visit each listing for description, all photos, seller rating, review count, likes and bump status. Default false. |
Listing type (listingType) | marketplace (individual listings, default) or certified (Carousell Certified product offers). |
Max unique listings per search (maxItemsPerSearch) | Listings to collect per search URL, across all batches. 1 to 5,000, default 100. |
Max search batches (maxSearchPages) | The first batch plus Show more results clicks per search URL. 1 to 50, default 5. |
Max requests per crawl (maxRequestsPerCrawl) | Page visit cap. With details on, search pages don't count, so 100 = up to 100 listing pages. Default 100, 0 = unlimited. |
Filters apply to keyword searches and on top of pasted search and category URLs; single listing URLs are visited as they are. Carousell applies them itself, so in categories that label condition only as New or Used, a condition filter can also return listings marked "Used".
{"keywords": ["iphone 15", "airpods pro"],"market": "my","sort": "priceAscending","priceMin": 500,"conditions": ["like_new", "lightly_used"],"scrapeDetails": false,"listingType": "marketplace","maxItemsPerSearch": 300,"maxSearchPages": 15}
Tips:
- Each batch of search results holds roughly 20 to 40 listings, so raise Max search batches together with Max unique listings per search for deep searches (for example 15 batches for 300 to 400 listings).
- With details on, every listing is one page visit. Set Max requests per crawl to at least your total listing count across all searches (or to
0) so it doesn't cut the run short; the final status says when it did. - Overlapping searches return fewer new rows than their limit, because a listing is saved only once per run.
💰 Pricing
Pay only for the listings you get. No monthly rental; platform usage is included in the event prices.
| Event | Price | What you get |
|---|---|---|
Product listing (listing-shallow) | $0.01 per listing ($10 per 1,000) | One card-level row (details off) |
Product detail (listing-detail) | $0.04 per listing ($40 per 1,000) | One full listing row with description and seller data (details on) |
| Actor start | $0.00005 per GB of memory per run | Charged once when the run starts ($0.0001 at the default 2 GB) |
Examples:
- 100 iPhone listings, card level: 100 × $0.01 = $1.00
- 1,000 listings across several keywords, card level: $10.00
- 50 listings with full details and seller ratings: 50 × $0.04 = $2.00
📊 Sample Output Data
A real row from a run with Scrape listing details on:
{"listingType": "marketplace","priceType": "asking","listingId": "1465999514","url": "https://www.carousell.sg/p/led-desk-lamp-1465999514/","title": "LED Desk Lamp","price": 5,"currency": "SGD","condition": "Brand new","description": "- Brand New, never used before (comes in original box) \n- Sleek black finish LED Desk Lamp\n- Power: 1.5W, …","seller": {"username": "dgoh96","profileUrl": "https://www.carousell.sg/u/dgoh96/","rating": 4.9,"reviewCount": 47,"joinedDuration": "12 years"},"images": ["https://media.karousell.com/media/photos/products/2026/10/5/knight_frank_led_desk_lamp_bla_1791178558_a58e838e.jpg","…"],"imageCount": 3,"category": "Lighting","timePosted": "moments ago","isBumped": true,"likes": 2,"scrapedAt": "2026-10-21T05:26:38.512Z"}
With details off, each row has listingId, url, title, price, priceType, listingType, currency, condition, seller.username, seller.profileUrl, one thumbnail in images, timePosted and scrapedAt.
timePosted is the relative time Carousell shows ("5 hours ago", "2 days ago"). When the seller has bumped the listing, it is the bump time and isBumped is true. priceType is asking for marketplace listings and from for Certified offers, whose card price is the lowest variant price; Certified rows have condition: "Certified Pre-Owned" and no seller. seller.joinedDuration is how long the seller has been on Carousell.
🔁 Schedule and Integrate
For price tracking, run the same keyword URLs once a day: each run is a dated snapshot, and together they become your Carousell price history. For new-listing alerts, run every hour with a small Max unique listings per search (20 to 50) and compare listingIds with the previous run. Set either up in Apify Schedules, then send results to Google Sheets, Zapier, Make, n8n or a webhook with Apify integrations.
🤖 Use with AI Agents (MCP)
This Actor works as a tool in Claude, ChatGPT, Cursor and other MCP clients through the Apify MCP server (https://mcp.apify.com). An agent can call it with:
{ "keywords": ["iphone 15"], "market": "sg", "maxItemsPerSearch": 20 }
❓ Carousell API FAQ
Does Carousell have an official API? Carousell does not offer a public API for reading marketplace listings. This Actor is the practical alternative: no API key, no approval and no rate-limit handling on your side. You get the same public data a shopper sees, as structured rows with numeric prices.
Do I need a Carousell account? No. The scraper reads public pages only and never logs in.
Can I scrape Carousell Malaysia, the Philippines or Hong Kong? Yes. Pick the Market for your keywords, or paste URLs from carousell.com.my, carousell.ph, carousell.com.hk, tw.carousell.com or id.carousell.com; prices come back in that market's currency.
Why is a field empty? Card-level rows have no description or seller rating; turn on Scrape listing details for those. likes is null when a listing has no likes, condition is empty when the seller didn't set one, and seller ratings are null for sellers with no reviews yet. category (the listing's Carousell category, such as "iPhone 7 Series") is filled with details on.
How many listings can I get per search? Up to 5,000 per search URL and 50 batches. Carousell itself stops showing results after a while for narrow keywords; the run's final status then tells you how many it found.
How do I check what a used item sells for on Carousell? Scrape the keyword page for the model (for example iphone-15-pro/q/), then look at the median price per condition. Schedule it daily to see how prices move.
Does it include sold listings? No. It returns listings that are live on Carousell when the run happens.
🔗 Related Scrapers
- Carousell Reviews Scraper: full review histories and seller profiles for the sellers you find here.
- Lazada Listings Scraper: new-product prices from Lazada's six Southeast Asian stores, to compare with second-hand Carousell prices.
- Mercari Listings Scraper: Mercari Japan listings and statuses for cross-market resale research.
- Bunjang Listings Scraper: listings from Korea's largest second-hand marketplace.