# Carousell Scraper (`lexis-solutions/carousell-scraper`)

Scrape listings from Carousell Singapore—including electronics, fashion, vehicles, property, and more. Extract titles, prices, descriptions, seller ratings, and images. Ideal for market analysis, price tracking, and classifieds aggregation. Fast, structured, and customizable extraction.

- **URL**: https://beta-securitybyobscurity.apify.com/lexis-solutions/carousell-scraper.md
- **Developed by:** [Lexis Solutions](https://beta-securitybyobscurity.apify.com/lexis-solutions) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **Stats:** 3 total users, 3 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

# README

![banner](https://i.ibb.co/ynK3QV6z/carousell.png)

### 🎯 What does Carousell Scraper do

Carousell Scraper helps you extract product listings and marketplace data from **Carousell**, one of Asia's leading online marketplaces for buying and selling new and second-hand items.

You can extract detailed product information including prices, product details, seller information, descriptions, images, and other key details from the website. Carousell Scraper supports REST API which gives you access to the extracted dataset, enables you to download it in various formats and use it in other applications.

### 📊 What data can I extract from Carousell with a web scraper

With this web scraping tool, you can extract the following data from Carousell:

<table>
<tr>
<td>🏷️ Product title</td>
<td>💰 Price</td>
</tr>
<tr>
<td>🔗 Product URL</td>
<td>🏷️ Categories</td>
</tr>
<tr>
<td>✅ Certified status</td>
<td>🚚 Free shipping status</td>
</tr>
<tr>
<td>📝 Product description</td>
<td>🖼️ Product images</td>
</tr>
<tr>
<td>🖼️ Primary image</td>
<td>⚙️ Product variations</td>
</tr>
</table>

### 🚀 Why scrape Carousell

Carousell is one of Asia's most popular online marketplaces, with millions of listings across various categories including electronics, fashion, home goods, and more. Scraping Carousell can help you:

- Track pricing trends for new and second-hand items
- Monitor product availability and market demand
- Research competitor pricing strategies
- Analyze seller behavior and marketplace dynamics
- Make informed purchasing decisions
- Monitor new listings and popular categories
- Understand regional market differences across Asia
- Track certified and shipping offers

### 🛠️ How to use Carousell Scraper

Carousell Scraper is designed for easy and fast start even if you've never extracted data from websites before. Here's how you can extract data from Carousell:

1. Create a free Apify account using your email
2. Open Carousell Scraper on the Apify platform
3. Click on the **Try for free** button
4. Enter your search parameters or start URLs
5. Click on the **Start** button and wait for the data to be extracted
6. Download your data in JSON, XML, CSV, Excel, or HTML

### ⚙️ Input

The actor accepts the following input parameters:

- `startUrls` (array) - Array of URLs to start scraping from
- `search` (string) - String of query search
- `maxItems` (integer) - Maximum number of products to scrape (default: 10)

Example:

```json
{
  "startUrls": [
    {
      "url": "https://www.carousell.sg/certified-used-phone-l/apple-f/iphone-15-plus-128gb-black-P172836-PV172837-r"
    }
  ],
  "search": "samsung",
  "maxItems": 5
}
```

### 📤 Output

The scraped data will be saved as a dataset. Each item will represent a product listing. You can download your data in various formats: JSON, JSONL, HTML table, CSV, Excel spreadsheet, or NDJSON.

Example of the output format:

```json
{
  "url": "https://www.carousell.sg/certified-used-phone-l/apple-f/iphone-15-plus-128gb-black-P172836-PV172837-r",
  "title": "iPhone 15 Plus",
  "price": "S$748",
  "categories": [
    "Mobile Phones & Gadgets",
    "Mobile Phones",
    "iPhone",
    "iPhone 15 Series"
  ],
  "isCertified": true,
  "isFreeShipping": true,
  "description": "Battery Health97.0%What's includedCharging CableItem inspected byGadgetSurelutionOrchard on 20 Aug 2025",
  "primaryImage": "https://media.karousell.com/media/photos/products/2025/8/20/iphone_15_plus_black_128gb_1755671805_241e5eda_progressive.jpg",
  "images": [
    "https://media.karousell.com/media/photos/products/2025/8/20/iphone_15_plus_black_128gb_1755671805_5b1c3dd0_progressive.jpg"
  ],
  "variations": [
    {
      "name": "Storage",
      "options": [
        {
          "value": "128GB",
          "selected": true
        }
      ]
    }
  ]
}
```

### ⚠️ Notes and Limitations

- The actor relies on the structure of the Carousell website. If the website structure changes, the actor may need to be updated
- Ensure you comply with the terms of service of Carousell when using this actor
- For large-scale scraping, use Apify's proxy services to avoid IP blocking
- The scraper uses enhanced browser fingerprinting to avoid detection
- Respect rate limits to avoid overwhelming the website
- Carousell operates across multiple Asian markets with localized content

### 🔗 Need to scrape other marketplaces

Check out our other marketplace scrapers:

- [Alibaba Scraper](https://apify.com/lexis-solutions/alibaba-scraper)
- [Otto Scraper](https://apify.com/lexis-solutions/otto-de-scraper)

### 🛠️ Want something custom-built

This Carousell Scraper doesn't exactly do what you need? You can always build your own! Lexis Solutions is a [certified Apify Partner](https://apify.com/partners). We can help you with custom solutions or data extraction projects.

Contact us over [Email](mailto:info@lexis.solutions) or [LinkedIn](https://www.linkedin.com/company/lexis-solutions)

# Actor input Schema

## `startUrls` (type: `array`):

One or more URLs of the pages where the crawler will start. Note that the Actor will additionally only crawl sub-pages of these URLs. For example, for the start URL `https://www.example.com/blog`, it will crawl pages like `https://example.com/blog/article-1`, but will skip `https://example.com/docs/something-else`.

## `search` (type: `string`):

Query search to start with.

## `maxItems` (type: `integer`):

Maximum number of products that will be extracted.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.carousell.sg/categories/mobile-phones-gadgets-215/mobile-phones-5707"
    }
  ],
  "maxItems": 10
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.carousell.sg/categories/mobile-phones-gadgets-215/mobile-phones-5707"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("lexis-solutions/carousell-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [{ "url": "https://www.carousell.sg/categories/mobile-phones-gadgets-215/mobile-phones-5707" }] }

# Run the Actor and wait for it to finish
run = client.actor("lexis-solutions/carousell-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.carousell.sg/categories/mobile-phones-gadgets-215/mobile-phones-5707"
    }
  ]
}' |
apify call lexis-solutions/carousell-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=lexis-solutions/carousell-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Carousell Scraper",
        "description": "Scrape listings from Carousell Singapore—including electronics, fashion, vehicles, property, and more. Extract titles, prices, descriptions, seller ratings, and images. Ideal for market analysis, price tracking, and classifieds aggregation. Fast, structured, and customizable extraction.",
        "version": "0.0",
        "x-build-id": "jjcKblGOxfP01F4ou"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/lexis-solutions~carousell-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-lexis-solutions-carousell-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/lexis-solutions~carousell-scraper/runs": {
            "post": {
                "operationId": "runs-sync-lexis-solutions-carousell-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/lexis-solutions~carousell-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-lexis-solutions-carousell-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "One or more URLs of the pages where the crawler will start. Note that the Actor will additionally only crawl sub-pages of these URLs. For example, for the start URL `https://www.example.com/blog`, it will crawl pages like `https://example.com/blog/article-1`, but will skip `https://example.com/docs/something-else`.",
                        "default": [
                            {
                                "url": "https://www.carousell.sg/categories/mobile-phones-gadgets-215/mobile-phones-5707"
                            }
                        ],
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "search": {
                        "title": "Query search",
                        "type": "string",
                        "description": "Query search to start with."
                    },
                    "maxItems": {
                        "title": "Maximum number of items",
                        "type": "integer",
                        "description": "Maximum number of products that will be extracted.",
                        "default": 10
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
