Craigslist Scraper — Listings, Prices & Locations
Pricing
from $2.60 / 1,000 listing scrapeds
Craigslist Scraper — Listings, Prices & Locations
Extract public Craigslist listing data by search, category, and location with prices, titles, URLs, dates, maps, and listing metadata.
Pricing
from $2.60 / 1,000 listing scrapeds
Rating
5.0
(1)
Developer
junipr
Maintained by CommunityActor stats
1
Bookmarked
16
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
What does Craigslist Scraper — Listings, Prices & Locations do?
Craigslist Scraper extracts listings from Craigslist city and category search pages. It supports jobs, housing, for sale, services, community, and gigs sections. Search rows include titles, prices, locations, URLs, and posting dates; optional detail-page visits add body text, images, structured attributes, and geo-coordinates when those fields are available.
You can search by keyword, filter by price range, require images, sort results, and control how many pages to crawl. The two-phase approach (search pages first, then detail pages) gives you both breadth and depth, with the option to skip detail scraping for faster runs when you only need listing summaries.
Features
- Six categories — Jobs, housing, for sale, services, community, and gigs
- Any city — Works with any Craigslist city subdomain (newyork, sfbay, chicago, losangeles, etc.)
- Full detail scraping — Optionally visits each listing page for complete body text, images, attributes, and geo-coordinates
- Keyword search — Filter listings by search terms within any category
- Price filters — Set minimum and maximum price ranges
- Image filter — Only return listings that include photos
- Sort options — Sort by date, price ascending, price descending, or relevance
- Automatic pagination — Crawls multiple search result pages to reach your target result count
- Structured attributes — Extracts category-specific fields like bedrooms, compensation, employment type, make/model
- Geo-coordinates — Captures latitude and longitude when listings include a map
- Image URLs — Collects all listing image URLs from detail pages
- Configurable rate limiting — Adjustable delay and concurrency to avoid Craigslist's aggressive rate limiting
- Direct URL input — Paste any Craigslist search URL directly instead of configuring city/category/query
Input Configuration
{"city": "newyork","category": "jjj","query": "software engineer","maxResults": 1,"maxPages": 1,"sortBy": "date","hasPic": false,"minPrice": 0,"maxPrice": 0,"scrapeDetails": false,"requestDelay": 1500,"maxConcurrency": 1}
| Parameter | Type | Default | Description |
|---|---|---|---|
searchUrl | string | "" | Direct Craigslist search URL (overrides city/category if provided) |
city | string | "newyork" | Craigslist city subdomain |
category | string | "jjj" | Category code: jjj (jobs), hhh (housing), sss (for sale), bbb (services), ccc (community), ggg (gigs) |
query | string | "" | Keyword search term |
maxResults | integer | 1 | Maximum listings to extract (1-5,000) |
maxPages | integer | 1 | Maximum search result pages to crawl (1-50) |
sortBy | string | "date" | Sort order: date, priceasc, pricedsc, or rel |
hasPic | boolean | false | Only return listings with images |
minPrice | integer | 0 | Minimum price filter (0 = no minimum) |
maxPrice | integer | 0 | Maximum price filter (0 = no maximum) |
scrapeDetails | boolean | false | Visit each listing's detail page for full data |
requestDelay | integer | 1500 | Delay between requests in ms (minimum 500, 1500+ recommended) |
maxConcurrency | integer | 1 | Maximum concurrent page requests (1-10, keep low) |
Output Format
Each listing in the dataset looks like this:
{"title": "Senior Software Engineer - Remote","url": "https://newyork.craigslist.org/mnh/sof/d/senior-software-engineer/7812345678.html","price": "$150,000","location": "Manhattan","postDate": "2026-03-10T14:30:00.000Z","category": "jobs","body": "We are looking for a senior software engineer to join our team...","images": ["https://images.craigslist.org/00A0A_abc123_600x450.jpg"],"attributes": {"employment_type": "full-time","compensation": "$150,000/year"},"hasMap": true,"latitude": 40.7589,"longitude": -73.9851,"replyUrl": "https://newyork.craigslist.org/reply/mnh/sof/7812345678","scrapedAt": "2026-03-11T12:00:00.000Z"}
Usage Examples / Use Cases
- Job market research — Analyze job postings by city to understand salary ranges, required skills, and hiring volume in specific markets
- Real estate monitoring — Track housing listings in target neighborhoods with price filters to spot deals or monitor rental trends
- Marketplace analytics — Collect for-sale listings to study pricing patterns, popular products, and geographic demand
- Lead generation — Find service providers and gig posters who may need your product or service
- Academic research — Build structured datasets of classified ad content for labor economics, housing studies, or marketplace analysis
- Competitive intelligence — Monitor competitor job postings to understand their hiring priorities and growth areas
Proxy Requirements
Craigslist can rate-limit or reject automated requests. The actor attempts to use the run's Apify proxy configuration and falls back to direct requests if proxy setup is unavailable. Keep requestDelay at 1500 ms or higher and concurrency low. A proxy does not guarantee access; failed requests are recorded as diagnostics.
Ready-to-run public tasks
- Check Austin gigs — one newest-first result from the gigs category.
- Check New York jobs — one newest-first result from the jobs category.
- Check San Francisco for-sale listings — one newest-first marketplace result.
Every task uses the actor's city/category URL builder and caps pagination, results, and concurrency at one.
Pricing
This actor uses Pay-Per-Event pricing with the listing-scraped event at $2.60 per 1,000 listings scraped ($0.0026 per listing) in the live Store pricing entry.
Apify platform usage is passed through according to the live Store pricing entry because Craigslist detail scraping and proxy usage can add crawl cost. Keep scrapeDetails, maxResults, and maxPages intentional for larger runs.
FAQ
What is the difference between search URL and city/category inputs?
You can configure the search two ways. Either set city and category (and optionally query, price filters, etc.) and the actor builds the search URL for you, or paste a complete Craigslist search URL into the searchUrl field. If searchUrl is provided, it takes priority and the city/category fields are ignored. Use searchUrl when you have a pre-filtered search from the Craigslist website.
Should I enable detail scraping?
If you need full listing text, images, attributes, and geo-coordinates, enable scrapeDetails. It is disabled by default so the bounded first run can return a search result without a second request. Leave it off when titles, prices, locations, URLs, and posting dates are sufficient.
How do I avoid getting blocked by Craigslist?
Keep requestDelay at 1500 ms or higher, use low concurrency, and increase maxResults and maxPages deliberately. If direct traffic is blocked, configure a proxy you are authorized to use and retry a bounded run.
What cities are supported?
Any Craigslist city subdomain works. Common examples: newyork, losangeles, sfbay, chicago, seattle, boston, austin, denver, portland, miami, dallas, atlanta. Check craigslist.org for the full list of city subdomains.
Can I scrape multiple cities in one run?
Not directly. Each run targets one city. To scrape multiple cities, run the actor multiple times with different city values, or use the searchUrl field with different city URLs in separate runs. You can schedule multiple runs to collect data from several cities automatically.
Related Actors
- Indeed Job Scraper — Scrape job listings from Indeed with detailed job descriptions and company info
- Yellow Pages Scraper — Extract business listings with contact details from Yellow Pages
- Contact Info Scraper — Extract emails, phones, and social links from any website
- Google News Scraper — Collect news articles by topic or keyword
- Trustpilot Reviews Scraper — Scrape business reviews and ratings from Trustpilot