Craigslist Marketplace Scraper - Multi-City Ads & Prices avatar

Craigslist Marketplace Scraper - Multi-City Ads & Prices

Pricing

from $2.80 / 1,000 listings

Go to Apify Store
Craigslist Marketplace Scraper - Multi-City Ads & Prices

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

Flash Scrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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

ColumnFilled on the reference run
listing_id100%
title100%
price100%
currency100%
location100%
url100%
city100%
category100%
search_query100%
scraped_at100%
actor_build100%
actor_run_id100%

A missing value is null; the column set never shifts, so your CSV import is stable across runs.

Input reference

FieldTypeDefaultNotes
searchTermsarray['mountain bike']What to look for, e.g. 'mountain bike', 'iphone 15', 'dining table'. maxItems is split across every city x ter
citiesarray['newyork']Craigslist city subdomains, e.g. newyork, losangeles, chicago, austin, london. Find yours in the URL:
categorystringsssCraigslist search category code. 'sss' = all for-sale. Others: cta (cars+trucks), ela (electronics), fua (furn
minPriceintegerOnly listings at or above this price. Leave empty for no minimum.
maxPriceintegerOnly listings at or below this price. Leave empty for no maximum.
includeDetailsbooleanFalseAlso open each listing page for the full description, posting date, seller attributes (condition, make, size)
maxItemsinteger50Maximum number of listings to return in total.
proxyConfigurationobject{'useApifyProxy': FalsOptional. 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.


Built by Flash Scrape - measured claims, stable columns, no API keys. Something missing? Open an issue on this actor and ask.