Craigslist Scraper avatar

Craigslist Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Craigslist Scraper

Craigslist Scraper

Scrape Craigslist listings across all categories and cities. Search for-sale items, housing, jobs, services. Returns prices, descriptions, locations.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

lulz bot

lulz bot

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

2 days ago

Last modified

Categories

Share

Apify Actor for scraping Craigslist marketplace listings across any city. Uses CheerioCrawler for fast, efficient HTML parsing without a browser.

Features

  • Search any Craigslist city by subdomain (newyork, sfbay, chicago, etc.)
  • Filter by category, price range, and sort order
  • Two modes: quick search results or full detail scraping
  • Extracts JSON-LD structured data when available, falls back to HTML parsing
  • Detail mode captures: price, description, images, location coordinates, item attributes, post date, and post ID

Input

FieldTypeDefaultDescription
searchQueriesstring[]["bicycle"]Search terms to scrape
citystring"newyork"Craigslist city subdomain
categorystring"sss"Category code (sss=all, cta=cars, ela=electronics, etc.)
maxListingsinteger100Max listings per query (0=unlimited)
scrapeDetailsbooleanfalseVisit each listing for full details
minPriceinteger-Minimum price filter
maxPriceinteger-Maximum price filter
sortBystring""Sort: newest, price_asc, price_desc, relevant
proxyConfigurationobject{}Proxy settings (optional for Craigslist)

Example Input

{
"searchQueries": ["bicycle", "laptop"],
"city": "sfbay",
"category": "sss",
"maxListings": 50,
"scrapeDetails": true,
"minPrice": 50,
"maxPrice": 500
}

Output

Search-only mode (scrapeDetails: false)

{
"title": "Trek Mountain Bike",
"url": "https://sfbay.craigslist.org/sby/bik/d/trek-mountain-bike/123456.html",
"imageUrl": "https://images.craigslist.org/...",
"position": 1,
"city": "sfbay",
"searchQuery": "bicycle",
"scrapedAt": "2026-03-17T12:00:00.000Z"
}

Detail mode (scrapeDetails: true)

{
"title": "Trek Mountain Bike",
"url": "https://sfbay.craigslist.org/sby/bik/d/trek-mountain-bike/123456.html",
"price": 280,
"currency": "USD",
"description": "Great condition Trek mountain bike, 21 speed...",
"images": ["https://images.craigslist.org/..."],
"imageCount": 5,
"condition": "excellent",
"make": "Trek",
"model": "Marlin 5",
"attributes": {
"condition": "excellent",
"make": "Trek",
"model": "Marlin 5"
},
"addressLocality": "San Jose",
"addressRegion": "CA",
"latitude": 37.3382,
"longitude": -121.8863,
"postedDate": "2026-03-15T10:30:00-0700",
"postId": "7654321",
"searchQuery": "bicycle",
"scrapedAt": "2026-03-17T12:00:00.000Z"
}

Common City Subdomains

CitySubdomain
New Yorknewyork
San Francisco Bay Areasfbay
Los Angeleslosangeles
Chicagochicago
Seattleseattle
Bostonboston
Austinaustin
Denverdenver
Portlandportland
Miamimiami
Atlantaatlanta
Dallasdallas
Philadelphiaphiladelphia
Washington DCwashingtondc

How It Works

  1. Builds search URLs for each query using the city subdomain and category
  2. Parses search results via JSON-LD ItemList schema (300+ items per page)
  3. Falls back to HTML parsing (li.cl-static-search-result) if JSON-LD is unavailable
  4. Optionally visits each listing detail page for rich data extraction
  5. Detail pages are parsed via JSON-LD Product schema with HTML fallback enrichment

Quick Start

$apify run --purge

Deploy to Apify

apify login
apify push

More marketplace scrapers and data tools by lulzasaur: