Craigslist Scraper avatar

Craigslist Scraper

Pricing

from $1.00 / 1,000 listings

Go to Apify Store
Craigslist Scraper

Craigslist Scraper

Find listings across Craigslist cities for sale, housing, jobs, gigs and services.

Pricing

from $1.00 / 1,000 listings

Rating

0.0

(0)

Developer

Philip Kirkbride

Philip Kirkbride

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Categories

Features

Limited permissions

Share

Find listings across Craigslist city sites for sale, housing, jobs, gigs and services. Compare titles, prices, locations and photo counts in a downloadable dataset.

Search up to 20 Craigslist cities in one run (sfbay, newyork, chicago, losangeles, toronto, ...) with your own keywords and price range, and get one row per listing: title, price and currency, neighborhood, map coordinates, photo count and the listing link. Turn on details to add the posting date and the listing's property or vehicle attributes (bedrooms, bathrooms, square feet, year, make, model, odometer, condition and more).

Built for resellers, deal hunters, landlords and renters checking the market, and researchers who want Craigslist data in a spreadsheet.

What sets it apart

  • $1 per 1,000 listings, plus $0.005 per run. Details cost the same per listing.
  • Many cities in one run, with listings found in two cities delivered once.
  • Only clean values. Prices, currencies, dates and attributes that are ambiguous are left empty rather than guessed (for example a $ price whose currency the page does not state).
  • Fast. A typical run finishes in a few seconds.

Use cases

  • Price research: what a used bike, couch or car sells for across several cities.
  • Rental market checks: asking rents, bedrooms and square feet in a city, filtered by a price range.
  • Deal alerts: a scheduled search for an item under a price, with the newest matches in each run.
  • Used-car sourcing: year, make, model, odometer and condition for vehicle listings (with details).
  • Local job and gig scans: titles and neighborhoods of jobs, gigs and services posted in a city.

Quick start

Press Start with the default form: it searches the San Francisco Bay Area (sfbay) for-sale listings for bicycle and returns 50 listings in a few seconds (about $0.055). An empty input {} runs the same search as a small sample (up to 10 listings), and the status message says it was a sample.

{"citySites": ["sfbay", "newyork", "chicago"], "category": "for-sale", "query": "road bike", "maxPrice": 800, "maxItems": 100, "includeDetails": true}

More examples:

  • Apartments in New York between $1,000 and $3,000: {"citySites": ["newyork"], "category": "housing", "query": "", "minPrice": 1000, "maxPrice": 3000, "maxItems": 20}
  • Jobs in Chicago: {"citySites": ["chicago"], "category": "jobs", "query": "", "maxItems": 15}
  • A used car with its attributes: {"citySites": ["sfbay"], "category": "for-sale", "query": "honda civic", "maxItems": 8, "includeDetails": true}

Input

NameTypeDefaultWhat it does
citySitesarray["sfbay"]1 to 20 Craigslist city site codes: the word before .craigslist.org (sfbay, newyork, chicago, seattle, losangeles, ...). An empty list stops the run with a message.
categorystringfor-salefor-sale, housing, jobs, gigs or services.
querystringnoneSearch words (up to 300 characters), such as bicycle. Leave it out or use "" to list the category without keywords.
minPrice, maxPricenumbernonePrice range in the currency of the chosen city sites.
maxItemsinteger50Maximum listings for the whole run (1 to 5,000). The empty-input sample stops at 10.
includeDetailsbooleanfalseOpen each listing to add the posting date and its property or vehicle attributes. Slower, same price.

Output

One dataset row per listing: postingId, title, price, currency, category, citySite, neighborhood, postedDate, postedDateRaw, latitude, longitude, imageCount, url, attributes.

What each category returns:

  • For sale: price with currency, plus coordinates and image count on most rows.
  • Housing: price, but the currency is often empty because Craigslist does not state it. No coordinates or image count.
  • Jobs, gigs and services: no price, coordinates or image count. Titles, neighborhoods and links are included.

postedDate, postedDateRaw and attributes are filled only with includeDetails. Attributes are kept only when they are clearly readable, with keys such as bedrooms, bathrooms, sqft, year, make, model, odometer, fuel, transmission, drive and condition. A posting time without a time zone becomes postedDate only for the sfbay, newyork and chicago sites; elsewhere it stays in postedDateRaw.

Titles, listing links and neighborhoods are delivered as Craigslist shows them, including any phone number or email address a seller types into a title or location. Descriptions and reply links are not collected.

Output example

A for-sale row from a recorded San Francisco Bay Area search (example values; live listings change constantly):

{"postingId":"ds79c4m42S7QnpqR3tavir","title":"Diamondback commuter bike for 5.7-6.1 inch tall in great conditio","price":150.0,"currency":"USD","category":"for-sale","citySite":"sfbay","neighborhood":"lower pac hts","postedDate":null,"postedDateRaw":null,"latitude":37.7856000070447,"longitude":-122.435799287915,"imageCount":3,"url":"https://www.craigslist.org/view/d/san-francisco-diamondback-commuter-bike/ds79c4m42S7QnpqR3tavir","attributes":null}

With includeDetails, a row adds its posting date and attributes, for example:

{"postedDate":"2026-11-02T18:13:48-08:00","postedDateRaw":"2026-11-02T18:13:48-0800","attributes":{"condition":"excellent"}}

A vehicle listing's attributes can look like {"condition":"good","fuel":"hybrid","odometer":"80500","transmission":"automatic","year":"2018"}; a rental's like {"bedrooms":"0","bathrooms":"1","sqft":"497"} (example values from recorded listings).

The status message says how many listings were delivered and whether any city or listing page could not be read; the RUN-SUMMARY record holds the same counts.

Pricing

Pay per result:

  • $0.005 per Actor start (one start event per GB of memory; the default 512 MB run is one start event, charged even when nothing matches).
  • $0.001 per delivered listing, with or without details.

Worked costs: the default 50-listing run is about $0.055; 500 listings about $0.505; 1,000 listings about $1.005.

Scheduling

Schedule the same search hourly or daily and compare runs by postingId to spot new listings and price changes. Each run is a full snapshot and charges every listing it returns; there is no built-in "new listings only" mode, so keep maxItems modest for frequent runs.

FAQ

How many listings does a city return? The listings on Craigslist's search result page for that city and search, often a few hundred for a broad search. Narrow searches return fewer. maxItems is a limit, not a guarantee.

How fresh is the data? Every run reads Craigslist at run time; nothing is cached between runs.

Why is the currency empty on housing rows? Craigslist housing pages do not state a currency, and a bare $ could be US, Canadian or Australian dollars, so it is left empty rather than guessed.

Which export formats are available? JSON, CSV, Excel, XML or RSS from the dataset, or read the rows with the Apify API.

Limits

  • One search result page per city and search, up to 20 cities per run; later result pages are not read.
  • Posting dates and attributes need includeDetails, which takes longer (one listing at a time; the default run timeout is 5 minutes).
  • No descriptions, reply links or seller contact fields.
  • If no city can be read at all, the run fails with a clear message instead of finishing with an empty dataset.

Support

For help, use the Issues tab on the Actor page and include the run ID.