Craigslist Scraper avatar

Craigslist Scraper

Pricing

Pay per event

Go to Apify Store
Craigslist Scraper

Craigslist Scraper

Scrape listings from Craigslist — for sale, housing, jobs, gigs, and services. Filter by city, category, and keyword. Extracts post title, price, location, description, images, post date, and attributes from any of 700+ Craigslist subdomains.

Pricing

Pay per event

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Scrape listings from Craigslist — for sale, housing, jobs, gigs, and services. Supply one or more Craigslist search/category URLs as input; the scraper visits each listing page and extracts structured post data.

Features

  • Scrape any Craigslist category across all 700+ subdomains (sfbay, nyc, chicago, london, and more)
  • Extracts: post title, price, description, post date, location, attributes, images, and post ID
  • Works with any search filter URL — keyword, category, neighborhood
  • Respects maxItems to cap output size for sampling or budget control
  • Server-rendered HTML — fast and lightweight (no browser required)

Input

FieldTypeDescription
startUrlsArrayCraigslist search URLs to scrape. Each URL is one search result page.
maxItemsIntegerMaximum records to scrape (0 = unlimited). Default: 0.

Example Input

{
"startUrls": [
{ "url": "https://sfbay.craigslist.org/search/sss" },
{ "url": "https://newyork.craigslist.org/search/jjj?query=software+engineer" }
],
"maxItems": 100
}

Finding the right URL

  1. Visit craigslist.org and choose your city
  2. Navigate to the category you want (e.g. "for sale", "jobs", "housing")
  3. Optionally add keywords or filters using Craigslist's search box
  4. Copy the URL from your browser's address bar — paste it into startUrls

Output

Each record in the dataset represents one Craigslist post:

FieldDescription
post_idUnique 10-digit Craigslist post ID
urlFull URL of the post
titlePost title
priceAsking price (e.g. "$195")
descriptionFull post body text
post_dateDate and time the post was published
locationCity/neighborhood from the post
listing_locationLocation shown in the search results
attributesAdditional attributes (condition, make, model, etc.)
imagesComma-separated list of image URLs
categoryCraigslist category label
scraped_atISO 8601 timestamp of when the record was scraped

Example Output Record

{
"post_id": "7932671587",
"url": "https://sfbay.craigslist.org/scz/pts/d/aptos-1963-corvette-stingray-fuel-door/7932671587.html",
"title": "1963 Corvette Stingray Fuel Door",
"price": "$195",
"description": "For all 1963 Corvette Stingrays Coupe or Convertible...",
"post_date": "2026-05-06 21:34",
"location": null,
"listing_location": "Aptos",
"attributes": "condition: excellent\nmake / manufacturer: Chevrolet Corvette",
"images": "https://images.craigslist.org/00m0m_kAZboEDqSKq_0CI0hR_600x450.jpg",
"category": "auto parts",
"scraped_at": "2026-06-05T08:00:00.000Z"
}

Notes

  • Craigslist search pages display up to ~360 listings per page (the full result set in one load)
  • Listings without images will have images: null
  • Posts without a displayed price will have price: null
  • The location field comes from the post detail page map; listing_location is from the search result card

Use responsibly and in accordance with Craigslist's Terms of Use. Intended for personal research, lead generation, and market analysis.