Craigslist Scraper: Listings, Cars, Housing, Jobs & For Sale avatar

Craigslist Scraper: Listings, Cars, Housing, Jobs & For Sale

Pricing

from $1.50 / 1,000 listings

Go to Apify Store
Craigslist Scraper: Listings, Cars, Housing, Jobs & For Sale

Craigslist Scraper: Listings, Cars, Housing, Jobs & For Sale

Scrape Craigslist listings from any city or all US sites: for sale, cars & trucks, housing, jobs, gigs. Price, location, photos, map coordinates and details.

Pricing

from $1.50 / 1,000 listings

Rating

0.0

(0)

Developer

Marlon Lee

Marlon Lee

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a month ago

Last modified

Categories

Security

Limited permissions

Share

Scrape Craigslist listings from any city, or from every US Craigslist site in one run: for sale, cars and trucks, apartments and housing, jobs, gigs and services. You get title, price, location, map coordinates, posting date and photos for each listing, and with details on, the full description plus attributes such as odometer, condition, make and model, bedrooms and square footage. Car flippers, rental researchers and resellers use it as a Craigslist API they can schedule and export to a spreadsheet.

The Actor reads the same JSON search API that craigslist.org's own search page uses. One request returns every matching listing ID, and one more fills in titles and photos for up to 1,080 listings. No browser and no login.

What you get

For each listing:

  • Posting ID, URL, title, price, price text and currency
  • Category code (for example cto) and category ID
  • Site, subarea, location text and neighborhood
  • Latitude and longitude
  • Posting date
  • Photo URLs (600x450)
  • Category-specific fields when Craigslist provides them: bedrooms and sqft for housing, odometer and monthlyPayment for cars, salary, company and jobTitle for jobs and gigs, open house dates and event dates

With Include posting details on, the Actor opens each posting and adds:

  • Full description
  • Last updated date
  • Address (street when shown, city, region, ZIP, country) and map accuracy
  • Readable category name
  • Year and make/model for vehicles
  • Bedrooms, bathrooms, square footage and availability date for housing
  • All posting attributes (condition, fuel, odometer, paint color, title status, transmission...) and features such as "w/d in unit" or "street parking"
  • The full photo list

Search options:

  • One or many sites (sfbay, newyork, losangeles...) or all ~400 US sites
  • Any category code: sss for sale, cta cars and trucks, apa apartments, hhh housing, jjj jobs, ggg gigs, bbb services, and every sub-category
  • Keyword, minimum and maximum price, posted today, has image, ZIP code with a radius in miles, and sort order (newest, relevance, price, distance)
  • Search URLs pasted from your browser, with every filter in the URL kept (make/model, model year, bedrooms, owner or dealer...)

Listings that appear in more than one of your searches are saved once.

Use cases

  • Car flipping and dealer sourcing: watch cars and trucks by make, model, price and mileage across many cities.
  • Rental market research: collect rents, bedrooms, square footage and coordinates for apartments in any metro.
  • Resale and arbitrage: catch underpriced furniture, electronics, tools or free stuff soon after it's posted.
  • Job and gig market analysis: pull job titles, companies and pay across cities.
  • Local market lists: see which dealers, property managers and service businesses post in your area.
  • Price monitoring: schedule a daily run with "posted today" on to get only new listings.

How to use

  1. Open the Actor in the Apify Console.
  2. Enter one or more Craigslist sites (the part before .craigslist.org), or turn on Search all US sites. Or paste search URLs from your browser.
  3. Add category codes, a keyword and any filters you want.
  4. Set Max listings per search. Turn on Include posting details if you need descriptions and attributes.
  5. Click Start, then download the dataset as JSON, CSV, Excel or HTML, or read it through the Apify API.

Input example

{
"sites": ["sfbay", "losangeles"],
"categories": ["cta"],
"query": "honda civic",
"maxPrice": 15000,
"hasPic": true,
"postedToday": false,
"sort": "date",
"searchUrls": ["https://www.craigslist.org/search/area/newyork?cat=apa&min_bedrooms=2&max_price=3500"],
"maxItems": 200,
"includeDetails": true
}
  • categories: the Actor runs one search for each site and category pair.
  • postal + searchDistance: search in a radius around a ZIP code. Listings Craigslist marks as "nearby" (outside the radius) are left out.
  • maxItems applies to each search, not to the whole run.

Output example

A real listing scraped with includeDetails: true (photo list shortened):

{
"id": 7974687042,
"url": "https://www.craigslist.org/view/d/pleasanton-2008-honda-civic/9GYFErjp5ChgvA7RDBM9Z4",
"title": "2008 Honda Civic",
"price": 5500,
"priceText": "$5,500",
"currency": "USD",
"category": "cto",
"categoryId": 145,
"site": "sfbay",
"subarea": "eby",
"location": "Dublin",
"neighborhood": null,
"latitude": 37.7159,
"longitude": -121.8527,
"postedAt": "2026-09-29T03:04:28.000Z",
"images": ["https://images.craigslist.org/00101_abdMGR16n0E_0t20CI_600x450.jpg"],
"odometer": 155000,
"description": "2008 honda civic low miles 155k miles mechanically in excellent condition...",
"updatedAt": "2026-09-29T14:44:50.000Z",
"address": { "street": null, "city": "Pleasanton", "region": "CA", "postalCode": "94588", "country": "US" },
"categoryName": "cars+trucks",
"year": 2008,
"makeModel": "honda civic",
"attributes": {
"condition": "excellent",
"fuel": "gas",
"odometer": "155,000",
"paint color": "silver",
"title status": "clean",
"transmission": "automatic"
},
"features": []
}

Pricing

You pay per result: each listing saved to the dataset counts as one result, and you're charged only for results saved. A listing with posting details costs more than a search-only listing, because the Actor loads one extra page for it. If a posting page fails to load, the Actor saves the search data with a detailsError field and doesn't charge for it. There's no monthly rental. Set a spending limit on the run and the Actor stops cleanly when it reaches it.

FAQ

Is it legal to scrape Craigslist? The Actor reads only public search results and public posting pages, the same pages anyone sees without logging in. It never uses Craigslist's reply or contact flow, and it replaces phone numbers and email addresses written inside listings with [phone removed] and [email removed]. You are responsible for how you use the data, including Craigslist's terms and the privacy laws that apply to you.

Do I need a proxy? Will I get blocked? Craigslist may block data-center IPs, so the default proxy is Apify residential. The Actor also limits itself to 4 parallel requests and 120 requests a minute, and retries failed requests. If the JSON search API still fails, it falls back to Craigslist's static HTML results page, which gives the first ~340 results without posting IDs until details are fetched.

Do I need a Craigslist account? No.

How many listings can one search return? As many as Craigslist has for that search, often several thousand, up to your Max listings per search.

Why is category a code like cto? That's Craigslist's own category code (cto = cars by owner, ctd = cars by dealer, apa = apartments). With details on, categoryName gives the readable name.

Can I scrape other countries? You can put any Craigslist site name in Sites (for example toronto), but the Actor has only been tested on US sites. Search all US sites covers the US only.

What are the limits?

  • neighborhood is set only when the poster picked one. location is the free text the poster typed.
  • The updated date, description and attributes need Include posting details.
  • Photo URLs are the 600x450 size Craigslist serves on its site.
  • "All US sites" runs one search per site and category, so it takes a few minutes and uses more requests.