Craigslist Scraper avatar

Craigslist Scraper

Pricing

Pay per event

Go to Apify Store
Craigslist Scraper

Craigslist Scraper

Scrape Craigslist search results — listings, prices, locations, descriptions, and images.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

3

Monthly active users

4 days ago

Last modified

Share

What does Craigslist Scraper do?

Craigslist Scraper extracts listing data from Craigslist search results across any US city. Search by keyword in any category — for sale, housing, jobs, services, gigs, community — and get structured data for every listing. Optionally follow each listing URL to get full descriptions, images, posting dates, and item attributes.

Use it for market research, price comparison, lead generation, inventory sourcing, and local market analysis.

Use cases

  • Price comparison — Compare prices for used goods, electronics, furniture, or vehicles across different Craigslist cities and regions.
  • Inventory sourcing — Find products to resell by scanning for underpriced items in for-sale categories.
  • Rental market research — Monitor housing listings to analyze rent prices, availability, and trends in specific neighborhoods.
  • Job market analysis — Track job postings by keyword to understand local hiring trends and salary ranges.
  • Lead generation — Find service providers, contractors, or freelancers in specific cities and categories.
  • Local market intelligence — Analyze listing volumes and prices to understand supply/demand in any metro area.

Why use Craigslist Scraper?

  • Any US city — Works with any Craigslist subdomain: newyork, sfbay, losangeles, chicago, seattle, and hundreds more.
  • All categories — For sale, housing, jobs, services, gigs, and community.
  • Fast and lightweight — Pure HTTP extraction with Cheerio. No browser needed. Gets 300+ listings per search in seconds.
  • Optional detail enrichment — Enable includeDetails to follow each listing URL and get full descriptions, images, posting dates, and item attributes.
  • Price filtering — Filter by minimum and maximum price to narrow results.
  • Multiple search queries — Run several keyword searches in a single run.
  • Clean structured data — Every listing includes title, price, location, URL, and more.
  • Pay-per-event pricing — You only pay for listings scraped. No monthly subscription.

What data can you extract?

Each listing in the output includes:

FieldDescription
listingIdCraigslist listing ID
titleListing title
pricePrice as displayed (e.g., "$200")
priceNumericPrice as a number (e.g., 200)
locationNeighborhood or area within the city
cityCraigslist city/region (e.g., "newyork", "sfbay")
categoryCategory searched (e.g., "for_sale")
urlDirect link to the listing
descriptionFull listing description (when includeDetails is enabled)
postedAtPosting date/time as ISO string (when includeDetails is enabled)
imageCountNumber of images (when includeDetails is enabled)
imageUrlsArray of image URLs (when includeDetails is enabled)
latitudeLatitude coordinate (when includeDetails is enabled)
longitudeLongitude coordinate (when includeDetails is enabled)
addressStreet address (when includeDetails is enabled)
bedroomsBedrooms/bathrooms (housing, when includeDetails is enabled)
sqftSquare footage (housing, when includeDetails is enabled)
conditionItem condition (for-sale, when includeDetails is enabled)
scrapedAtISO timestamp of when data was collected

How much does it cost to scrape Craigslist?

This Actor uses pay-per-event pricing — you pay only for what you scrape. No monthly subscription. All platform costs (compute, proxy, storage) are included.

EventPrice
Actor start$0.005
Per listing$0.002

Example costs:

  • 20 listings (basic) → ~$0.045
  • 100 listings (basic) → ~$0.205
  • 10 listings with details → ~$0.025
  • 1,000 listings → ~$2.01

The free tier on Apify gives you $5/month — enough for ~2,400 listings.

How to scrape Craigslist

  1. Click Try for free to open the Actor in Apify Console.
  2. Enter one or more search keywords (e.g., "laptop", "bicycle").
  3. Choose a Craigslist city (e.g., "newyork", "sfbay", "losangeles").
  4. Select a category (For Sale, Housing, Jobs, etc.).
  5. Optionally enable Include listing details for full descriptions and images.
  6. Click Start and wait for the run to finish.
  7. Download your data as JSON, CSV, or Excel from the Dataset tab.

Example input:

{
"searchQueries": ["laptop", "macbook"],
"city": "newyork",
"category": "for_sale",
"maxResults": 50,
"includeDetails": true,
"minPrice": 100,
"maxPrice": 1000
}

Input parameters

ParameterTypeDefaultDescription
searchQueriesarrayrequiredKeywords to search on Craigslist
citystring"newyork"Craigslist city subdomain (e.g., newyork, sfbay, losangeles, chicago)
categorystring"for_sale"Category: for_sale, housing, jobs, services, gigs, community
maxResultsinteger100Maximum listings to return per keyword
includeDetailsbooleanfalseFollow each listing for full description, images, and attributes
minPriceintegerMinimum price filter
maxPriceintegerMaximum price filter
maxRequestRetriesinteger3Retry attempts for failed requests (1–10)

Output example

{
"listingId": "7916291766",
"title": "Dell Inspiron notebook laptop computer",
"price": "$200",
"priceNumeric": 200,
"location": "Brooklyn",
"city": "newyork",
"category": "for_sale",
"url": "https://newyork.craigslist.org/brk/sys/d/brooklyn-dell-inspiron-notebook-laptop/7916291766.html",
"description": "Very good condition and seldom taken out of the house...",
"postedAt": "2026-02-19T18:13:00-0500",
"imageCount": 2,
"imageUrls": [
"https://images.craigslist.org/00505_6GdwfDeDqEP_0t20CI_600x450.jpg",
"https://images.craigslist.org/00r0r_75O90wuRsu3_0t20CI_600x450.jpg"
],
"latitude": 40.6782,
"longitude": -73.9442,
"address": "123 Flatbush Ave",
"bedrooms": "",
"sqft": "",
"condition": "excellent",
"scrapedAt": "2026-03-03T00:11:52.977Z"
}

Tips for best results

  • Start without details — Basic mode scrapes 300+ listings in seconds. Enable includeDetails only when you need descriptions and images.
  • Use specific keywords — "macbook pro m3" returns better results than just "laptop".
  • Try different cities — Compare prices across cities for arbitrage. Popular cities: newyork, sfbay, losangeles, chicago, seattle, boston, denver, austin, miami, portland.
  • Filter by price — Use minPrice and maxPrice to narrow results to your target range.
  • Schedule regular runs — Use Apify Schedules for daily monitoring of new listings.
  • Combine categories — Run separate searches for "for_sale" and "housing" to build a comprehensive local market dataset.
  • Multiple keywords per run — Add several keywords to searchQueries for efficient batch scraping.

Integrations

Connect Craigslist Scraper to your existing tools and workflows:

  • Google Sheets — Export scraped data directly to Google Sheets.
  • Zapier — Trigger actions in 5,000+ apps when new listings are found.
  • Make (Integromat) — Build automated workflows with scraped Craigslist data.
  • Slack — Get notified when new listings match your criteria.
  • Webhooks — Send data to your own API endpoint after each run.
  • Apify API — Programmatically start runs and retrieve results.

Using the Apify API

Node.js:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/craigslist-scraper').call({
searchQueries: ['laptop'],
city: 'newyork',
maxResults: 50,
includeDetails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python:

from apify_client import ApifyClient
client = ApifyClient('YOUR_API_TOKEN')
run = client.actor('automation-lab/craigslist-scraper').call(run_input={
'searchQueries': ['laptop'],
'city': 'newyork',
'maxResults': 50,
'includeDetails': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Craigslist cities

Popular city subdomains you can use:

CitySubdomainCitySubdomain
New YorknewyorkSan Franciscosfbay
Los AngeleslosangelesChicagochicago
SeattleseattleBostonboston
DenverdenverAustinaustin
MiamimiamiPortlandportland
DallasdallasAtlantaatlanta
PhoenixphoenixMinneapolisminneapolis
PhiladelphiaphiladelphiaWashington DCwashingtondc

For a complete list of cities, visit craigslist.org/about/sites.

FAQ

How many listings can I scrape per search? Craigslist returns up to ~300-400 listings per search query. Use maxResults to limit the output.

How fast is the scraper? Basic mode (no details) scrapes 300+ listings in 2-3 seconds. With includeDetails enabled, each listing takes about 1-2 seconds to fetch the detail page.

Can I search multiple cities? Currently, each run searches one city. To search multiple cities, run the actor once per city or schedule separate runs.

What categories are available? For Sale, Housing, Jobs, Services, Gigs, and Community. These cover the main Craigslist sections.

Why are description and images empty? Enable the includeDetails option to fetch full descriptions, images, and posting dates from each listing's detail page. Basic mode only returns data from the search results page.