Run the hosted Craigslist Scraper without code, or call it from Python, JavaScript or cURL to collect structured listings, prices, locations, images and posting details across 50 US and Canadian regions.
Open Craigslist Scraper on Apify
- Search Craigslist by region, category, keyword, price, condition, image and date filters.
- Collect cars, housing, jobs, electronics, furniture, services, gigs, community, resumes and events.
- Export deduplicated listings with descriptions, attributes, gallery URLs, map data and public contact text when published.
See data/sample-output.json and data/sample-output.csv for a sanitized listing example.
{
"postId": "7961647320",
"title": "MAXFLI Golf Bag & misc. clubs",
"price": 30,
"currency": "USD",
"region": "newyork",
"categoryLabel": "For sale",
"location": "Upper East Side",
"hasImages": true,
"detailsStatus": "not_requested"
}- Open Craigslist Scraper on Apify.
- In the Input tab, choose a city or region and category, or paste a Craigslist search URL.
- Optionally set a keyword, price range, condition, image/date filters and maximum results.
- Choose whether to include full posting details and click Start.
- Open the Dataset tab and export JSON, CSV or Excel.
See docs/no-code-guide.md for the field-by-field walkthrough.
Apify's Free plan includes $5 in monthly prepaid usage and does not require a credit card. It can cover a small first test while credit is available; it is not unlimited free usage. Unused credits expire at the end of the billing cycle. Check current Apify pricing before larger runs.
Install the client and set APIFY_API_TOKEN, then run:
pip install -r examples/python/requirements.txt
python examples/python/craigslist_search.pyThe example reads data/sample-input.json, starts the hosted Actor and prints Dataset items.
{
"region": "seattle",
"category": "ela",
"searchTerm": "20uf",
"includeDetails": true,
"maxResults": 20
}category uses readable Craigslist codes: sss For sale, cta Cars & trucks, ela Electronics, fua Furniture, apa Apartments & houses, roo Rooms & shares, sub Sublets & temporary, jjj Jobs, ggg Gigs, bbb Services, ccc Community, rrr Resumes and eee Events. Use startUrls for a specific subcategory.\n\nSee docs/input-reference.md for all fields.
Examples use the hosted Actor and do not expose a proxy or require source code locally.
| Field | Meaning |
|---|---|
postId, url, title |
Stable Craigslist posting identity and title. |
price, currency |
Published asking price and local currency. |
region, categoryLabel, location, neighborhood |
Search area and published location labels. |
description, attributes, imageUrls |
Optional detail-page content and category fields. |
latitude, longitude, mapAccuracy |
Published map coordinates and precision when available. |
emails, phoneNumbers |
Contact text publicly published in the posting. |
detailsStatus, isDeleted, isNearby |
Extraction, deletion and nearby-result status. |
See docs/output-reference.md for the complete contract.
See docs/use-cases.md for vehicle price research, housing monitoring, job-market collection and second-hand inventory tracking.
Use examples/python/craigslist_search.py with a small maxResults value for a first run, then export the returned Dataset to JSON or CSV.
Set region to a supported US or Canadian area and choose apa for apartments and houses or jjj for jobs. Use searchTerm and maxResults to narrow the run.
See docs/faq.md.
The Actor accepts up to 100 startUrls and has a global safety cap of 100,000 unique output rows. includeDetails is optional; failed detail enrichment keeps the valid listing with a detailsStatus value. The current introductory price is $0.001 per unique listing ($1 per 1,000 listings). Billing is shown on the hosted Actor page.
Use the hosted version for repeatable runs, scheduling, batching, API access and Dataset storage: Craigslist Scraper on Apify.
Use returned data lawfully and respect Craigslist terms, access rules and privacy obligations. The Actor does not open the private Reply flow or reconstruct hidden seller contact details.
For examples, open a GitHub issue with sanitized input and the error message. For execution problems include the Apify run ID, never your token.
MIT. See LICENSE.