
Craigslist Scraper
hipersoft/craigslist-scraper
Scrape Craigslist listings from any of 700+ cities: for sale, cars, housing, jobs, services and gigs. Title, price, category, neighborhood, coordinates, photos, posted date. Keyword, price, ZIP radius filters; goes beyond the per-search limit. Export CSV/JSON.
Total users
2Monthly users
1Total runs
3Per listing
$0.002Last rebuilt
Oct 26, 2026Overview
Craigslist Scraper extracts listings from Craigslist, the world's best-known classifieds site, in any of 700+ cities across the United States, Canada, the UK, Europe, Asia and Australia. Search for sale (all), cars & trucks, motorcycles, furniture, electronics, bicycles, tools, apartments and housing for rent, real estate for sale, rooms & shares, jobs, services, gigs and free stuff by keyword, price range, ZIP code radius and photos-only, and get for every post the title, link, price, currency, category, area, sub-area, neighborhood, region, country, coordinates, photos and posted date. Large searches are automatically split to go beyond Craigslist's per-search result limit. Export to CSV, Excel or JSON. Ideal for resellers and flippers, car dealers, landlords and rental research, price monitoring, deal alerts and local market research.
What does Craigslist Scraper do?
- 🌎 700+ Craigslist areas — New York, Los Angeles, SF Bay Area, Chicago, Houston, Seattle, Toronto, Vancouver, London and more.
- 🗂️ Every section: for sale, cars, housing, jobs, services, gigs, free stuff.
- 🔎 Keyword, price range, ZIP radius, photos-only and five sort orders.
- 📈 Beyond the per-search limit: big searches are split automatically.
- 📍 Area, sub-area, neighborhood and coordinates.
- 🖼️ Photos and posted date for every listing.
What data can you scrape from Craigslist?
| Field | Description |
|---|---|
| Post | ID, link, title |
| Price | Price, price text, currency |
| Category | Category name and code |
| Location | Area, area name, sub-area, neighborhood, region, country, coordinates |
| Media & dates | Photos, posted date |
Use cases for Craigslist data
- Resellers and flippers: find under-priced furniture, electronics and bikes the moment they're posted.
- Car dealers: monitor private car and truck listings by city and price.
- Landlords and rental research: track rents and supply by neighborhood.
- Price monitoring: follow local second-hand prices over time.
- Deal alerts: schedule "Newest" searches and get fresh posts automatically.
How to scrape Craigslist
- Click Try for free to open Craigslist Scraper in Apify Console.
- Enter one or more Craigslist areas (e.g. newyork, sfbay, losangeles) and search terms.
- Pick a category and optional price range, ZIP radius or photos-only.
- Click Start and download your listings as CSV, Excel or JSON.
Input
Example input
{
"areas": ["newyork", "sfbay"],
"queries": ["bike", "macbook"],
"category": "sss",
"minPrice": 50,
"maxPrice": 800,
"sort": "newest",
"maxItems": 1000
}
| Field | Description |
|---|---|
| Craigslist areas | City subdomains such as newyork, sfbay, chicago, toronto, london. |
| Search terms | Keywords; empty = newest posts. |
| Category | For sale, cars, furniture, housing, jobs, services, gigs, free… |
| Min / max price | Price range. |
| ZIP / Distance | Radius search around a ZIP code. |
| Only posts with photos | Skip posts without pictures. |
| Sort by | Newest, relevance, oldest, price. |
| Max listings | 0 = no limit. |
Output
Listing example
{
"postingId": 7953712016,
"url": "https://www.craigslist.org/view/d/brooklyn-bike-motorcycle-scooter-phone/hkrtYxKBmmezL7qAD44qkX",
"title": "Bike Motorcycle Scooter Phone Holder Bracket With USB Charging Port",
"price": 15,
"currency": "USD",
"category": "bicycle parts - by owner",
"categoryCode": "bop",
"area": "newyork",
"areaName": "new york city",
"subarea": "brk",
"neighborhood": "Brooklyn",
"latitude": 40.6257,
"longitude": -73.9564,
"imageCount": 2,
"postedAt": "2026-10-07T19:40:42.000Z"
}
Output schema
| Field | Type | Description |
|---|---|---|
postingId, url, title |
mixed | Post. |
price, priceText, currency |
mixed | Price. |
category, categoryCode |
string | Category. |
area, areaName, subarea, neighborhood, region, country, latitude, longitude |
mixed | Location. |
imageCount, imageUrl, images, postedAt |
mixed | Media and date. |
Poster names and contact details are not collected.
How much does it cost?
Craigslist Scraper uses pay-per-listing pricing: a small fixed price per listing, with automatic discounts on higher Apify plans. See the Pricing tab for the exact price.
More classifieds data
- Kijiji Scraper: Canadian classifieds.
- Gumtree Scraper: UK and Australian classifieds.
- OLX Scraper: Eastern Europe and Central Asia classifieds.
FAQ
Which areas are supported?
All 700+ Craigslist areas. Use the subdomain from the city's Craigslist address, e.g. newyork for newyork.craigslist.org.
Can I get more than one page of results? Yes. When a search has more results than Craigslist shows at once, the scraper splits it into price ranges automatically.
What formats can I export? CSV, Excel, JSON, XML, HTML and RSS, or read the results through the Apify API.
Can I integrate it with other apps? Yes. Craigslist Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JS/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Is it legal to scrape Craigslist? The scraper only collects publicly visible listing information and no poster names or contact details. You are responsible for using the data in line with Craigslist's terms and applicable law.
Notes
Original clean-room implementation. Returns only public data. Not affiliated with craigslist.
Input
| Field | Type | Description |
|---|---|---|
areasCraigslist areas | array | Craigslist city subdomains, e.g. newyork, losangeles, sfbay, chicago, houston, dallas, seattle, boston, washingtondc, miami, atlanta, phoenix, philadelphia, sandiego, denver, austin, portland, lasvegas, toronto, vancouver, london. Any of the 700+ Craigslist ar |
queriesSearch terms | array | Keywords, e.g. bike, iphone, couch, honda civic. Leave empty to list the newest posts in the category. |
categoryCategory | string · sss, cta, mca, fua, ela, bia… | Craigslist section to search. Default: "sss" |
minPriceMinimum price | integer | Minimum price. |
maxPriceMaximum price | integer | Maximum price. |
postalCodeZIP / postal code | string | Search around this ZIP code. |
distanceMilesDistance (miles) | integer | Radius around the ZIP code. |
hasImageOnly posts with photos | boolean | Skip posts without pictures. Default: false |
sortSort by | string · newest, relevance, oldest, price_asc, price_desc | Result order. Default: "newest" |
maxItemsMax listings | integer | Stop after this many listings in total (0 = no limit). Large searches are split automatically to go beyond Craigslist's per-search limit. Default: 200 |
proxyConfigurationProxy configuration | object | Not needed in most cases. Default: {"useApifyProxy": false} |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~craigslist-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"areas": [
"newyork"
],
"queries": [
"bike"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/craigslist-scraper").call(run_input={
"areas": [
"newyork"
],
"queries": [
"bike"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/craigslist-scraper').call({
"areas": [
"newyork"
],
"queries": [
"bike"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Listing Charged per listing returned | $0.002 | $0.001 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Dribbble Shots Scraper
Scrape public design shots from Dribbble: title, high-res image, tags, likes, views and designer credit. Filter by category or sort, export JSON, CSV or Excel.
359 runs · 5 users · $0.003 / shot scrapedComputrabajo Scraper
Scrape Computrabajo job listings across Latin America (Mexico, Colombia, Argentina, Chile, Peru and more): title, company, location, salary, posted date and apply URL. Filter by country and keyword. No setup.
206 runs · 4 users · $0.002 / listing scrapedKraken Market Data Scraper
Fetch Kraken spot market data in bulk: ticker stats (ask, bid, last, 24h high/low/volume/vwap), OHLC candles for any interval, order book depth (top bids/asks), and tradable pair metadata. Fast, clean and cheap.
165 runs · 4 users · $0.001 / pair scrapedBayt Scraper
Scrape Bayt.com job listings across the Middle East (UAE, Saudi Arabia, Egypt, Qatar and more): title, company, location, posted date and apply URL. Filter by country and keyword.
134 runs · 4 users · $0.003 / job scrapedGitHub Scraper
Search GitHub and scrape repositories (stars, forks, language, topics, license, dates) or user profiles (name, company, location, bio, followers, public email, repos). Uses the GitHub REST API; optional token for higher rate limits. For developer lead generation, OSS research and recruiting.
131 runs · 7 users · $0.0008 / item scrapedHacker News Scraper
Scrape Hacker News stories, comments, Ask HN, Show HN, jobs and polls by keyword, points, comments and date range. Sort by relevance or newest. Title, URL, author, points, comment count, text and HN link. Fast clean HTTP via the HN Algolia API, no setup.
130 runs · 2 users · $0.004 / item scrapedSend the site and the fields. We build it and you get it first.