Craigslist Scraper - Multi-City
Pricing
from $1.10 / 1,000 listings
Craigslist Scraper - Multi-City
[💵 $1.90 / 1K] Scrape Craigslist listings from any city and category in one run. Multi-city, price/ZIP/radius filters, duplicate removal, plus optional descriptions, attributes, coordinates and images. Or just paste a search URL.
Pricing
from $1.10 / 1,000 listings
Rating
0.0
(0)
Developer
WebData Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Craigslist Scraper - any city, any Category
Scrape Craigslist listings into a clean spreadsheet. Many cities in one run, every filter Craigslist has, and pagination that does not stop at page one.
Give it a keyword and a city - or just paste a Craigslist search URL - and get back every listing with title, price, location, coordinates, photos, posting date and a working link. Turn on Include full listing details and each row also carries the full description, the seller's attributes (condition, make, model, bedrooms, mileage...) and exact coordinates.
✅ What you get / ❌ what this isn't
| ✅ This Actor gives you | ❌ This Actor is not |
|---|---|
| Many cities in one run - list 1 or 50 | Not one run per city |
| Thousands of listings per search - it pages past Craigslist's ~360 page cap | Not the first page only |
| Every Craigslist filter: price, ZIP + radius, photos-only, title-only, nearby areas | Not keyword-only search |
| Duplicate reposts removed by default | Not a raw dump of the same ad 12 times |
| Full descriptions, attributes, coordinates and all photos on demand | Not private seller contact details |
| Paste any Craigslist search URL and it just works | Not a puzzle of undocumented city codes |
🔎 Why this one
- No 360-result ceiling. Craigslist's own search page stops after a few hundred results. This Actor speaks Craigslist's internal pagination protocol and keeps going - 1,000, 5,000, as many as the search has.
- Multi-city.
["newyork", "sfbay", "chicago"]in one run instead of three runs you stitch together yourself. - City names that make sense.
newyork,New York,sfbay,SF bay area, even a pastedlosangeles.craigslist.orgall resolve. 700+ Craigslist regions worldwide. - Paste-a-URL mode. Built the perfect search in your browser? Paste the URL into
startUrls- every filter in it is honoured. - Duplicates gone. The same ad reposted under new IDs is collapsed automatically.
- Category-aware fields. Cars get
odometer, apartments getbedroomsandsqft, jobs getcompensationandemployer- without you asking. - Fast and cheap. Pure HTTP, no browser. A thousand listings takes well under a minute.
👥 Who it's for
- Resellers and flippers watching for underpriced inventory across several metros at once.
- Real-estate and rental analysts pulling apartment inventory with beds, sqft and price.
- Car dealers and buyers tracking local vehicle pricing with mileage.
- Recruiters monitoring job and gig postings by city.
- Researchers building local-market datasets.
⚙️ How to scrape Craigslist
- Open the Actor on Apify.
- Type your search terms, e.g.
mountain bike. - Add one or more cities, e.g.
newyorkandsfbay. - Pick a category (or leave it on All for sale).
- Set Max listings - the budget for the whole run, split evenly across your searches.
- Optional: turn on Include full listing details, set a price range, a ZIP + radius, or photos-only.
- Click Start, then download the results as CSV, JSON or Excel.
Prefer a URL? Skip steps 2-6 and paste your Craigslist search URL into Craigslist search URLs.
📥 Input
{"searchTerms": ["mountain bike"],"cities": ["newyork", "sfbay"],"category": "bicycles","maxItems": 500,"minPrice": 100,"maxPrice": 800,"hasImage": true,"includeDetails": true,"sortBy": "newest"}
| Field | Meaning |
|---|---|
searchTerms | Keywords. Leave empty to browse a whole category. |
cities | One or more Craigslist regions. newyork, New York and nyc all work. |
category | Section to search: all for sale, housing, jobs, cars, apartments, gigs... |
maxItems | Listings for the whole run, split across your searches. |
includeDetails | Open every posting for description, attributes, exact coordinates, all photos. |
startUrls | Paste Craigslist search URLs; their filters are honoured as-is. |
minPrice / maxPrice | Price range. |
postedWithinDays | Keep only listings from the last N days. |
hasImage | Only listings with photos. |
titleOnly | Match the keyword against the title only - far less noise. |
searchNearbyAreas | Include neighbouring Craigslist regions. |
postalCode + searchRadiusMiles | Search around a ZIP code. |
sortBy | Newest, best match, price low→high, price high→low. |
deduplicate | Collapse the same ad reposted under new IDs. On by default. |
imageSize | Thumbnail, small, medium or large image URLs. |
proxyConfiguration | Apify Proxy. Recommended - Craigslist rate-limits by IP. |
📤 Output
One row per listing:
| title | price | location | city | category | postedAt | imageCount | url |
|---|---|---|---|---|---|---|---|
| Trek 800 mountain track bicycle | 120 | brooklyn | newyork | bicycles - by owner | 2026-07-25T13:54:46Z | 3 | link |
Always present: postingId, title, price, priceText, location, city, category, categoryCode, url, postedAt, latitude, longitude, imageCount, imageUrls, thumbnailUrl, postingHash, searchTerm, totalResultsAvailable, scrapedAt.
By category, when Craigslist provides it: bedrooms, sqft (housing) · odometer (vehicles) · compensation, employer, jobTitle (jobs).
With includeDetails: description, attributes (every seller-filled field), condition, make, model, address, precise latitude/longitude, mapAccuracy, originalPostedAt, updatedAt, full-resolution imageUrls, isActive.
Quick preview
| Input | Output |
|---|---|
mountain bike in newyork + sfbay, photos only, $100-$800 | ~40 bikes across both metros with prices, photos and map coordinates |
category: apartments, postalCode: 10001, radius 5 mi | Manhattan rentals with bedrooms, sqft and price |
Pasted URL sfbay.craigslist.org/search/cta?query=tacoma&max_price=20000 | Trucks under $20k with odometer on every row |
💵 How much does it cost?
$1.90 per 1,000 listings. No start fee - a run that returns nothing costs you nothing.
Because it runs on plain HTTP instead of a browser, a 1,000-listing run finishes in well under a minute. includeDetails adds one request per listing; it is slower, but the price per listing does not change.
🚀 Ready-made setups
Five ready-to-run tasks ship with this Actor - open one, hit Start, or copy it and swap in your own cities:
| Task | What it does |
|---|---|
| Find Craigslist cars and trucks under $10,000 | Cars & trucks under $10k across New York, Los Angeles and Chicago, with mileage and condition on every row. |
| Scrape Craigslist apartments for rent near a ZIP code | Rentals within 10 miles of ZIP 10001 under $4,000, with bedrooms, sqft and full descriptions. |
| Monitor Craigslist free stuff posted today | Everything listed free today in the SF Bay Area, Los Angeles and Seattle - photos only. |
| Find underpriced Craigslist furniture to flip | Mid-century, solid wood and Herman Miller pieces under $300 in Chicago and Boston. |
| Scrape Craigslist job postings across several cities | Jobs posted in the last week in New York, Austin and Denver, with pay and employer. |
🔁 Run it on the Apify platform
Schedule it to sweep your cities every morning, call it from the Apify API, export to CSV/JSON/Excel, or wire it into Make, Zapier, Google Sheets or a webhook so new listings land wherever you work.
⚠️ Limits and caveats
- Reads only public Craigslist listings. It does not log in, and it does not collect seller emails or phone numbers.
- Craigslist blocks an IP after a burst of requests. The Actor rotates its proxy exit IP per search and part-way through detail fetching, so keep Apify Proxy on (it is by default) - turning it off will cut multi-city runs short.
postedAtis the date Craigslist shows in search results - for renewed ads that is the renewal date. WithincludeDetailsyou also getoriginalPostedAtandupdatedAt.- Craigslist caps any single search at a few thousand results. For very broad searches, split by category, city or price band.
- Fields such as
bedroomsorodometerexist only where the seller filled them in.
🧩 Related Actors
- Google Maps Business Scraper - local business data for the same metros.
- Lead List Deduplicator & Normalizer - clean and merge the lists you build.
❓ FAQ
Can I scrape more than one city per run? Yes. List as many as you like in cities; results are tagged with the city they came from.
Can I get more than the ~360 results Craigslist shows? Yes - that is the main reason this Actor exists. Set maxItems higher and it pages through the full result set.
Do I need to know Craigslist's city codes? No. Type the city the way you say it.
Can I reuse a search I built in my browser? Yes - paste the URL into startUrls.
Does it collect personal data? No. Public listing content only, no contact details.
Why are some fields empty? Craigslist listings are free-form. A field appears only when the seller filled it in and, for descriptions and attributes, when includeDetails is on.
🛠️ Support
If a run fails or a field looks wrong, open an Actor issue with the run URL, the input you used, and what you expected. Craigslist changes its layout occasionally - reports get fixed quickly.
⭐ Rate this Actor
If this Actor saved you time, please take 30 seconds to leave a review on the Reviews tab - reviews are the main trust signal other users see, and they decide which features get built next. If something is broken, please open an issue first: we typically respond within a day and would love the chance to fix it before you rate.