Craigslist Listings Scraper — No Login, $10/1k
Pricing
from $10.00 / 1,000 listing results
Craigslist Listings Scraper — No Login, $10/1k
Scrape Craigslist listings for sale, housing, and jobs. Get prices, locations, descriptions, and contact info. Great for market research. No login or cookies. MCP-ready for AI agents. $10 per 1,000 records.
Pricing
from $10.00 / 1,000 listing results
Rating
0.0
(0)
Developer
Fortuitous Pirate
Maintained by CommunityActor stats
0
Bookmarked
48
Total users
2
Monthly active users
9 days ago
Last modified
Categories
Share
Craigslist - For Sale, Housing & Jobs Listings with Prices
Overview
Scrape Craigslist classified listings by city and category. Extracts listing title, price, location, coordinates, images and posting ID from the search page, and (with includeDetails) the posting date, full description, attributes (condition, make/model, bedrooms, rent period, ...) and every image from each posting. Categories: for sale, housing, jobs, services, gigs, community.
Works with Craigslist's 2026 site layout: search runs at https://www.craigslist.org/search/area/<city>?cat=<code> and postings live at https://www.craigslist.org/view/d/<slug>/<postingId>. The 22-character postingId is the identifier in that posting URL.
Features
- Search any Craigslist city (
sfbay,newyork,losangeles,chicago,austin, ...) - Filter by category, keyword, minimum and maximum price
- Sort by newest, price ascending or price descending
- Optional detail scrape: full description, attributes, all images, posted and updated timestamps, map address
- Export data in JSON, CSV, or Excel formats
How many listings can one run return?
Craigslist now serves one static search page holding the newest ~360 matches; the old s= page offset redirects back to the first page. A run therefore returns at most the listings on that page (usually 300-360), and maxListings above that stops cleanly at what the page provides. To reach different listings, narrow the search with searchQuery, minPrice/maxPrice, a more specific category, or run per city.
Use Cases
- Monitor - Track prices and availability for used cars, furniture, electronics and rentals
- Lead generation - Collect housing, jobs and gigs postings for a city
- Analyze - Compare asking prices across cities and categories
- Build - Feed listing data into alerts, dashboards or price-comparison tools
Input Parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
location | string (required) | The Craigslist city code, e.g. sfbay, newyork, losangeles, chicago, seattle, austin | sfbay |
category | string (required) | Craigslist category code: sss (all for sale), hhh (all housing), jjj (all jobs), ggg (gigs), bbb (services), ccc (community), cta (cars & trucks), apa (apartments), ... | sss |
searchQuery | string | Keywords to search for (optional) | |
minPrice | integer | Minimum price filter (optional) | |
maxPrice | integer | Maximum price filter (optional) | |
maxListings | integer (required) | Maximum number of listings to return (capped by what the search page holds, ~360) | 100 |
includeDetails | boolean | Also fetch each posting page for full description, attributes, all images and posted/updated dates. Slower but more complete. | false |
sortBy | string | date (newest first), priceasc, pricedsc | date |
proxyConfiguration | object | Proxy settings for the scraper | {"useApifyProxy": true} |
Output Example
Search-page fields (every run):
{"title": "1999 TOYOTA CAMRY V6","price": 3425,"priceFormatted": "$3,425","currency": "USD","city": "Pflugerville","state": "TX","location": "Pflugerville, TX","locationText": "","latitude": 30.4421,"longitude": -97.6299,"images": ["https://images.craigslist.org/00w0w_7Be6FaDU5eI_0gw0co_600x450.jpg"],"url": "https://www.craigslist.org/view/d/pflugerville-1999-toyota-camry-v6/kPq4THTKMZFULt5dXwUkUJ","postingId": "kPq4THTKMZFULt5dXwUkUJ","postedDate": null,"category": "cta","searchLocation": "austin","searchQuery": "toyota","scrapedAt": "2026-09-28T21:02:38.179Z"}
With includeDetails: true each record also carries postedDate, updatedDate, fullDescription, attributes, allImages and mapAddress:
{"postedDate": "2026-09-28T15:08:11-0500","updatedDate": "2026-09-28T15:08:12-0500","fullDescription": "1999 TOYOTA CAMRY VIN: JT2BF28K7X0193095 V6 | AUTO | FWD Excellent condition, runs and drives great...","attributes": {"condition": "excellent","cylinders": "6 cylinders","drive": "fwd","fuel": "gas","odometer": "198,322","title_status": "clean","transmission": "automatic","type": "sedan"},"allImages": ["https://images.craigslist.org/00w0w_7Be6FaDU5eI_0gw0co_600x450.jpg", "..."],"mapAddress": ""}
Housing postings get bedrooms, bathrooms and sqft inside attributes when the posting states them. postedDate is null without includeDetails because the search page no longer exposes posting times.
Pricing
Pay per event:
- $0.01 per listing result ($10.00 per 1,000)
- $0.005 per actor start
No monthly fees. You only pay for what you scrape. The Apify Free plan includes $5/month in platform credits.
How to Run
Apify Console
- Go to the Craigslist - For Sale, Housing & Jobs Listings with Prices actor page
- Configure your input parameters
- Click Start and wait for the results
- Download data in JSON, CSV, or Excel format
API
curl -X POST "https://api.apify.com/v2/acts/fortuitous_pirate~craigslist-listings-for-sale-housing-jobs/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"location": "austin", "category": "cta", "searchQuery": "toyota", "maxListings": 50, "includeDetails": true}'
Python SDK
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("fortuitous_pirate/craigslist-listings-for-sale-housing-jobs").call(run_input={"location": "sfbay", "category": "apa", "minPrice": 1500, "maxPrice": 3500, "maxListings": 50})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["price"], item["url"])
Integration
- API access - Programmatic access via Apify API
- Webhooks - Get notified when scraping completes
- Scheduling - Set up recurring runs on any schedule
- Zapier / Make - Connect with 5,000+ apps via Apify integrations
- Python / Node.js SDKs - Native client libraries for easy integration