Craigslist Apartments Scraper - Housing, Cars, Jobs & For Sale
Pricing
from $1.20 / 1,000 listings
Craigslist Apartments Scraper - Housing, Cars, Jobs & For Sale
Craigslist apartments and listings scraper: pick cities and categories (apartments, rooms, cars, jobs, for sale) and get each listing with price, bedrooms, sqft, odometer, salary, employer, neighborhood, GPS, photos and posted date. New-listings monitor, no login.
Pricing
from $1.20 / 1,000 listings
Rating
0.0
(0)
Developer
Kamer Ozkan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
A Craigslist apartments scraper for every Craigslist city and category: pick cities (newyork, sfbay, chicago, or any search URL from your browser) and get each listing with price, bedrooms, square feet, neighborhood, GPS coordinates, photos and posted date, plus odometer for cars and employer and salary for jobs. A built-in new-listings monitor turns a scheduled run into a feed of fresh listings, and you only pay for listings you have not seen. No login, no API key.
What does Craigslist Apartments Scraper do?
Give it cities or Craigslist search URLs and it reads the same public search data the Craigslist website loads, newest listings first. Plain cities use the category and filters you choose in the input (apartments / housing for rent by default; rooms, sublets, real estate for sale, cars and trucks, motorcycles, RVs, boats, for sale, furniture, electronics, free stuff, jobs, gigs and services are one click away). A pasted search URL keeps its own category and every filter you set on the Craigslist site (price, bedrooms, bathrooms, pets, laundry, parking, model year, odometer, keyword and more).
Craigslist shows the newest 360 listings of a search. When you ask for more, the scraper splits the search into price ranges and collects the newest 360 of each range, so a big city like New York gives thousands of apartment listings in one run. Turn on Include listing details to add the full description, all attributes (laundry, parking, rent period, housing type, VIN, condition, fuel, transmission, title status...), bathrooms and the updated date.
Typical runs: a daily feed of new rentals in the cities you invest in, rent comps by bedroom count and neighborhood, used-car inventory and prices by owner or dealer, local job postings with pay, or a price index across many cities.
Who is it for?
- Real-estate investors, property managers and rental aggregators: rent comps by bedrooms, square feet and neighborhood with GPS for mapping; a monitor of new rentals in target ZIPs and cities.
- Used-car dealers and car flippers: new cars and trucks by owner under your price cap, with odometer, condition and title status.
- Market researchers and analysts: price indexes and listing volume across hundreds of US and international Craigslist cities.
- Recruiters and staffing agencies: local job and gig postings with employer, compensation and category.
- Lead-generation agencies: businesses advertising services, rentals or vehicles in a region.
What data can you get?
| Field | Example |
|---|---|
postingId, url | 7986633888, https://www.craigslist.org/view/d/chicago-furnished-chicago-far-north/p1qMgo1eyxb6nB2tELrrZq |
title, price, priceText, currency | Furnished Chicago ( Far North) 2Bed/1Ba Non-Smoking Condo for Rent, 1680, $1,680, USD |
category, categoryName | apa, apartments / housing for rent |
postedAt | 2026-10-20T11:37:29Z |
area, subArea, location, neighborhood | chicago, chc, Chicago, null |
latitude, longitude | 41.9973, -87.7879 |
bedrooms, squareFeet | 2, 850 (housing) |
odometer | 131012 (cars and vehicles) |
jobTitle, employer, compensation | Applied R&D Engineer, Weyerhaeuser, $98800 to $160400 per year (jobs) |
imageCount, images | 15, ["https://images.craigslist.org/01414_8S0WA1NBvp0_0CI0t2_600x450.jpg", ...] |
searchInput, scrapedAt | the city or URL the row came from, the time of the run |
With Include listing details: description (the ad text), attributes (for example {"condition": "excellent", "fuel": "gas", "title status": "clean", "transmission": "automatic", "VIN": "JTEEW21A170046868"} or {"rent period": "monthly", "features": ["apartment", "w/d in unit", "street parking"]}), headlineAttributes (3BR / 2Ba), bathrooms, updatedAt, postedAtLocal, placeName, region, detailStatus.
Craigslist hides posters' email and phone behind its own reply relay; the scraper never collects contact details or poster names.
How much does it cost?
You pay per listing: $1.50 per 1,000 listings ($0.0015 per listing) on the Free plan, with Store discounts on paid Apify plans: Bronze $1.35, Silver $1.275, Gold and above $1.20 per 1,000 listings. Platform usage is included, and listing details cost nothing extra.
Worked examples:
- The newest 360 apartments in New York: 360 x $0.0015 = $0.54.
- 2,000 cars and trucks by owner in Los Angeles (price slicing past 360): 2,000 x $0.0015 = $3.00.
- A daily new-listings monitor on 5 cities with about 100 new rentals per city per day: 500 x $0.0015 = $0.75 per day; listings the monitor has already seen are not charged.
Listings outside your Posted after date, repeats skipped by the monitor and cities that cannot be read (listed in the OUTPUT record) are never charged. Set Max listings in total or a maximum cost per run to cap spending.
How to use it
- Click Try for free.
- Add cities to Cities or Craigslist search URLs (newyork, sfbay, losangeles, chicago, or a city name like New York), or paste a search URL from craigslist.org with your filters already set.
- Pick a Category and optional filters (keyword, price, bedrooms, only with photos, posted today, posted after).
- Optional: turn on Only new listings since the last run and schedule the actor hourly or daily; turn on Include listing details for descriptions and attributes.
- Click Start and download the table as CSV, Excel, JSON or through the API. The Cars and vehicles and Jobs views show the fields of those categories.
Input example
{"searches": ["newyork", "https://sfbay.craigslist.org/search/apa?max_price=3500"],"category": "apa","minBedrooms": 1,"hasImage": true,"maxListingsPerSearch": 360,"maxItems": 1000,"onlyNewListings": true,"monitorName": "rentals-ny-sf","includeDetails": false}
Output example
An unedited row from a live run (images shortened):
{"postingId": 7986633888,"title": "Furnished Chicago ( Far North) 2Bed/1Ba Non-Smoking Condo for Rent","price": 1680,"priceText": "$1,680","currency": "USD","category": "apa","categoryName": "apartments / housing for rent","postedAt": "2026-10-20T11:37:29Z","area": "chicago","subArea": "chc","location": "Chicago","neighborhood": null,"latitude": 41.9973,"longitude": -87.7879,"bedrooms": 2,"squareFeet": 850,"odometer": null,"jobTitle": null,"employer": null,"compensation": null,"imageCount": 15,"images": ["https://images.craigslist.org/01414_8S0WA1NBvp0_0CI0t2_600x450.jpg", "..."],"url": "https://www.craigslist.org/view/d/chicago-furnished-chicago-far-north/p1qMgo1eyxb6nB2tELrrZq","searchInput": "chicago","scrapedAt": "2026-10-20T12:18:52.665472Z"}
A car listing with Include listing details adds:
{"title": "2008 Toyota Camry Hybrid Clean Title 131K Miles Smog Sunroof Gas Saver","price": 6000,"categoryName": "cars & trucks - by owner","location": "hayward / castro valley","odometer": 131012,"attributes": {"condition": "excellent", "cylinders": "4 cylinders", "drive": "fwd", "fuel": "gas", "odometer": "131,012", "paint color": "silver", "title status": "clean", "transmission": "automatic", "type": "sedan"},"placeName": "Hayward","region": "US-CA","detailStatus": "ok"}
Integrations and API
Run it from your code with the Apify API or the apify-client package, schedule it in Apify (with Only new listings each run returns just the fresh ones), or connect it to Make, n8n, Zapier, Google Sheets, Slack or a webhook.
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("kamerozkan/craigslist-apartments-listings-scraper").call(run_input={"searches": ["newyork", "losangeles"],"category": "apa","minBedrooms": 2,"maxPrice": 4000,"onlyNewListings": True,"monitorName": "two-bed-rentals",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["price"], item["bedrooms"], item["location"], item["url"])
FAQ
Which cities work? Every Craigslist site: use the subdomain (newyork, sfbay, losangeles, chicago, seattle, austin, denver, boston, toronto, london...) or a city name (New York, Los Angeles, San Francisco). Unknown names are reported in the OUTPUT record and not charged.
Can I use the filters from the Craigslist website? Yes. Set them on craigslist.org, copy the search URL and paste it as an entry. Price, bedrooms, bathrooms, square feet, pets, laundry, parking, model year, odometer, keyword and all other URL filters are passed through.
Why does a search stop at 360 listings? That is what Craigslist shows per search. Raise Max listings per city or URL above 360 and the scraper splits the search by price range to reach more. Those extra rows come grouped by price band, and listings without a price (most jobs, free stuff) are only reachable in the first 360.
How does the new-listings monitor work? With Only new listings since the last run on, the scraper keeps the listing ids each search returned in a named key-value store in your account and outputs only listings it has not seen before. Use one Monitor name per watchlist. Repeats are skipped and not charged.
Do I get the poster's email or phone? No. Craigslist relays replies through anonymous addresses and the scraper never collects contact details or poster names. Ad text may contain whatever the advertiser wrote.
How fast is it? One request returns up to 360 listings, so 1,000 listings take about 10 to 20 seconds. Listing details add one page per listing (three at a time, with a short pause), about 1,000 listings in 10 to 15 minutes.
Is it legal to collect this data? It collects publicly visible classified ads only, without logins. You are responsible for how you use the data, including privacy laws like GDPR and CCPA and Craigslist's terms.
Something is not working? Open an issue on the Issues tab with your run link and we will fix it fast.
Support
Questions, a city or category that answers oddly, or a field you need (for example a parsed bathrooms count without details, or alerts to Slack)? Open an issue on the Issues tab of this actor with your run link. Issues are read every working day and fixes ship within a few days; feature requests that other users share get built.