Craigslist Marketplace Scraper - Multi-City Ads & Prices
Pricing
from $2.80 / 1,000 listings
Craigslist Marketplace Scraper - Multi-City Ads & Prices
Craigslist cities scraper - one keyword across many Craigslist cities in a single run. Titles, prices, post dates, neighbourhoods and direct links, deduplicated across cities. Filter by min/max price. No API key, no login. Export CSV, JSON or Excel.
Pricing
from $2.80 / 1,000 listings
Rating
0.0
(0)
Developer
Flash Scrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Craigslist Multi-City Scraper - Classifieds, Prices & Photos
A Craigslist cities scraper: run one keyword across many Craigslist cities at once and get every listing with its price, location and posting date.
What the Craigslist cities scraper returns
Search Craigslist across one or many cities and export clean listing rows - title, price, location, date, URL and image flag - using Craigslist's static pages. No browser, no API key, fast and cheap.
- Multi-city in one run - pass several city slugs and search them all
- Any section - for-sale, services, housing, gigs and more via category
- Static-page technique - no JavaScript rendering, so runs are seconds, not minutes
- 12 stable columns per row
Quick start
Open the actor, keep the defaults, press Save & start. The reference run below is exactly that. Then adjust the input for your own search and export CSV, JSON or Excel from the dataset tab - or call it from the API and read the dataset programmatically.
A real row
Straight from a reference run, trimmed to the highlights:
{"listing_id": "d1dqFVvRQ8MpjcnqMoMrL5","title": "Schwinn 26\" ladies bicycle mountain bike good condition $190","price": 190,"currency": "USD","location": "manhattan","url": "https://www.craigslist.org/view/d/brooklyn-schwinn-26-ladies-bicycle/d1dqFVvRQ8MpjcnqMoMrL5","city": "newyork","category": "sss","search_query": "mountain bike","scraped_at": "2026-08-12T13:37:51Z","actor_build": "0.1.5","actor_run_id": "Wjdg7WnnqlKnZfSPs"}
How it works
Craigslist still serves classic server-rendered HTML. The actor requests the static list pages for each city+category, parses listings without any JavaScript execution, dedupes across cities and pushes clean rows.
Every column, with measured fill
| Column | Filled on the reference run |
|---|---|
listing_id | 100% |
title | 100% |
price | 100% |
currency | 100% |
location | 100% |
url | 100% |
city | 100% |
category | 100% |
search_query | 100% |
scraped_at | 100% |
actor_build | 100% |
actor_run_id | 100% |
A missing value is null; the column set never shifts, so your CSV import is stable across runs.
Input reference
| Field | Type | Default | Notes |
|---|---|---|---|
searchTerms | array | ['mountain bike'] | What to look for, e.g. 'mountain bike', 'iphone 15', 'dining table'. maxItems is split across every city x ter |
cities | array | ['newyork'] | Craigslist city subdomains, e.g. newyork, losangeles, chicago, austin, london. Find yours in the URL: |
category | string | sss | Craigslist search category code. 'sss' = all for-sale. Others: cta (cars+trucks), ela (electronics), fua (furn |
minPrice | integer | Only listings at or above this price. Leave empty for no minimum. | |
maxPrice | integer | Only listings at or below this price. Leave empty for no maximum. | |
includeDetails | boolean | False | Also open each listing page for the full description, posting date, seller attributes (condition, make, size) |
maxItems | integer | 50 | Maximum number of listings to return in total. |
proxyConfiguration | object | {'useApifyProxy': Fals | Optional. Route requests through Apify Proxy. Recommended for larger runs: this site throttles or blocks datac |
Pricing
Pay per result - charged only for rows delivered; the current rate is on this page's Pricing tab. Zero results cost zero, and failed fetches are never billed.
Use cases
- Arbitrage & flipping - Watch underpriced listings across nearby cities in one export
- Demand research - What sells, at what asking price, in which metro
- Service prospecting - Gigs and services sections as a lead source
Honest limits
We would rather say it here than have you find out on a paid run:
- Craigslist shows ~120 results per search page set; very broad searches should be split by category or city
- Seller contact info is behind Craigslist's relay - the row carries the listing URL, not a personal email
Scheduling & integrations
Every input works identically from the API, so this actor drops into schedules and pipelines: run it on an Apify Schedule for a recurring export, point a webhook at the finished run to push rows into Slack, Google Sheets (via Zapier/Make/n8n) or your warehouse, and page through the dataset with the standard Dataset API. Saved tasks keep your configuration one click away.
FAQ
Which cities work? Any craigslist subdomain (e.g. austin, sfbay, newyork). Pass the slug per city.
Does it handle images? Rows flag whether a listing has images and carry the listing URL for full detail.
Related actors from this account
Built by Flash Scrape - measured claims, stable columns, no API keys. Something missing? Open an issue on this actor and ask.