All scrapers

Marketplaces

Craigslist Scraper

craigslist.org

100% Success rate
2.1s Avg response
Bot detection + rate limiting Protection
1,200 calls Measured over

Craigslist is the classic US classifieds site, one metro subdomain at a time, covering goods, housing, jobs and services. This dedicated plugin endpoint takes a query and a city and returns the posts already parsed: the title, the price where listed, the location, a photo and a clean listing URL. Choose the category, filter by price and cap how many results you want - no HTML to parse yourself.

What you can extract

  • Post title and a clean listing URL
  • Price where listed
  • Location
  • Listing image
  • Metro and category searched

Dedicated endpoints

/marketplace/craigslist-search

A classifieds search on Craigslist

Craigslist listings for a query: a listings array with title, price, location, image and a listing url. Pick the metro with site (newyork, sfbay, chicago...), choose the category (sss, cta, apa, jjj), filter with min_price/max_price and cap with max_results. US classifieds.

How to scrape it

curl -X POST \
  -H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
  "https://api.scrapeunblocker.com/marketplace/craigslist-search?query=bicycle&site=newyork"
import requests

resp = requests.post(
    "https://api.scrapeunblocker.com/marketplace/craigslist-search",
    headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
    params={"query": "bicycle", "site": "newyork"},
)
print(resp.text)
import { ScrapeUnblockerClient } from 'scrapeunblocker';

const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });

const listings = await su.craigslistSearch('bicycle', {
  site: 'newyork',
  maxResults: 120,
});
console.log(listings);

Requests are POST and take their parameters in the query string. Browser rendering always happens - there is no flag to enable.

Example response

{
  "query": "bicycle",
  "site": "sfbay",
  "resultsCollected": 120,
  "listings": [
    {
      "pid": "7712345678",
      "title": "Specialized Rockhopper Mountain Bike",
      "url": "https://sfbay.craigslist.org/eby/bik/d/....html",
      "price": 350.0,
      "currency": "USD",
      "location": "oakland",
      "image": "https://images.craigslist.org/....jpg"
    }
  ]
}

Read the API docs

Frequently asked questions

Is it legal to scrape Craigslist?

Collecting publicly available Craigslist data such as post titles, prices and locations is lawful in many jurisdictions, but the rules depend on your country, the data you collect and how you use it. Some of it can be personal data, so follow the privacy rules that apply to you. ScrapeUnblocker returns the public page; what you collect and how you use it is your responsibility.

How do I scrape Craigslist without getting blocked?

Craigslist uses bot detection and rate limiting. The Craigslist plugin deals with that for you: ScrapeUnblocker rotates residential and ISP exits and handles challenges, then returns the listings already parsed as JSON. In ScrapeUnblocker's benchmark it returned real content on 100% of 1,200 calls, about 2.1s per call.

What Craigslist data can I get?

The /marketplace/craigslist-search endpoint returns a listings array with Craigslist's posting id (pid), title, a direct listing URL, price and currency where listed, location and a thumbnail image. Fields with no value are left out, since many classifieds carry no price. Filter with min_price and max_price, and set max_results up to 500.

Do I need a Craigslist API or account?

No. The Craigslist plugin returns search results as JSON without a Craigslist API account or login. Send a query, a metro in site and a section in category to /marketplace/craigslist-search with your ScrapeUnblocker key, and the listings come back already parsed.

Can I search Craigslist in a specific city?

Yes. Set site to any Craigslist metro subdomain, such as newyork, sfbay, losangeles or chicago (the default is newyork), and category to a section code: sss for sale, cta cars and trucks, apa housing or jjj jobs. Requests use a US exit by default, and proxy_country changes the exit country.

How much does it cost to scrape Craigslist?

A single plugin search is one request, and the response already contains the listings. 1 request = 1 credit: EUR 1.00 per 1,000 on pay as you go, down to about EUR 0.55 per 1,000 on the Ultimate plan. Blocks and timeouts are not billed, and the free trial covers 500 requests with no card.

Related scrapers

Start scraping this site today

Free tier included. No credit card required to test it.