Craigslist Scraper - Multi-City avatar

Craigslist Scraper - Multi-City

Pricing

from $1.10 / 1,000 listings

Go to Apify Store
Craigslist Scraper - Multi-City

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

WebData Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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 50Not one run per city
Thousands of listings per search - it pages past Craigslist's ~360 page capNot the first page only
Every Craigslist filter: price, ZIP + radius, photos-only, title-only, nearby areasNot keyword-only search
Duplicate reposts removed by defaultNot a raw dump of the same ad 12 times
Full descriptions, attributes, coordinates and all photos on demandNot private seller contact details
Paste any Craigslist search URL and it just worksNot 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 pasted losangeles.craigslist.org all 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 get bedrooms and sqft, jobs get compensation and employer - 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

  1. Open the Actor on Apify.
  2. Type your search terms, e.g. mountain bike.
  3. Add one or more cities, e.g. newyork and sfbay.
  4. Pick a category (or leave it on All for sale).
  5. Set Max listings - the budget for the whole run, split evenly across your searches.
  6. Optional: turn on Include full listing details, set a price range, a ZIP + radius, or photos-only.
  7. 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"
}
FieldMeaning
searchTermsKeywords. Leave empty to browse a whole category.
citiesOne or more Craigslist regions. newyork, New York and nyc all work.
categorySection to search: all for sale, housing, jobs, cars, apartments, gigs...
maxItemsListings for the whole run, split across your searches.
includeDetailsOpen every posting for description, attributes, exact coordinates, all photos.
startUrlsPaste Craigslist search URLs; their filters are honoured as-is.
minPrice / maxPricePrice range.
postedWithinDaysKeep only listings from the last N days.
hasImageOnly listings with photos.
titleOnlyMatch the keyword against the title only - far less noise.
searchNearbyAreasInclude neighbouring Craigslist regions.
postalCode + searchRadiusMilesSearch around a ZIP code.
sortByNewest, best match, price low→high, price high→low.
deduplicateCollapse the same ad reposted under new IDs. On by default.
imageSizeThumbnail, small, medium or large image URLs.
proxyConfigurationApify Proxy. Recommended - Craigslist rate-limits by IP.

📤 Output

One row per listing:

titlepricelocationcitycategorypostedAtimageCounturl
Trek 800 mountain track bicycle120brooklynnewyorkbicycles - by owner2026-07-25T13:54:46Z3link

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

InputOutput
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 miManhattan rentals with bedrooms, sqft and price
Pasted URL sfbay.craigslist.org/search/cta?query=tacoma&max_price=20000Trucks 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:

TaskWhat it does
Find Craigslist cars and trucks under $10,000Cars & 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 codeRentals within 10 miles of ZIP 10001 under $4,000, with bedrooms, sqft and full descriptions.
Monitor Craigslist free stuff posted todayEverything listed free today in the SF Bay Area, Los Angeles and Seattle - photos only.
Find underpriced Craigslist furniture to flipMid-century, solid wood and Herman Miller pieces under $300 in Chicago and Boston.
Scrape Craigslist job postings across several citiesJobs 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.
  • postedAt is the date Craigslist shows in search results - for renewed ads that is the renewal date. With includeDetails you also get originalPostedAt and updatedAt.
  • Craigslist caps any single search at a few thousand results. For very broad searches, split by category, city or price band.
  • Fields such as bedrooms or odometer exist only where the seller filled them in.
  • 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.