Craigslist Scraper – Listings, Prices & Seller Contacts avatar

Craigslist Scraper – Listings, Prices & Seller Contacts

Pricing

$1.39 / 1,000 listing records

Go to Apify Store
Craigslist Scraper – Listings, Prices & Seller Contacts

Craigslist Scraper – Listings, Prices & Seller Contacts

Scrape Craigslist listings from any city and category. Returns title, price, images, location, post_id, URL, and optionally description, posted date, and structured attributes. No proxy required. Parses server-side JSON-LD — stable against layout changes.

Pricing

$1.39 / 1,000 listing records

Rating

0.0

(0)

Developer

Vitalii Bondarev

Vitalii Bondarev

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Craigslist Scraper — Listings, Prices & Locations

Scrape Craigslist listings from any US city, category, and search query. Get title, price, images, location, post ID, and listing URL — plus optional description, posted datetime, and structured attributes (car specs, condition, odometer, etc.) from detail pages. This Craigslist scraper targets the JSON-LD ItemList block embedded by Craigslist itself — structural schema.org data, not CSS class names — making it immune to layout redesigns. No proxy required. Pay per result at $1.39 per 1,000 listings.

Not affiliated with or endorsed by Craigslist.


What you get

FieldSourceNotes
post_idDOM link10-digit Craigslist post ID
titleJSON-LDListing title
priceJSON-LDNumeric float; null for free/contact items
price_currencyJSON-LD"USD"
cityJSON-LDCity name (e.g. "San Francisco")
stateJSON-LDState abbreviation (e.g. "CA")
neighborhoodDetail pageSub-city neighborhood; null if not set
latitude / longitudeJSON-LD + detailPrecise coords from detail page when fetchDetails=true
urlDOM linkFull listing URL
categoryURLCategory abbreviation (e.g. "bik", "cto")
area_abbrevURLMetro sub-area (e.g. "sby", "sfc")
posted_datetimeDetail pageISO-8601 UTC; requires fetchDetails=true
image_urlsJSON-LDArray of full-size CDN image URLs
descriptionDetail pagePlain-text body; requires fetchDetails=true
attributesDetail pageDict of label→value (condition, make, cylinders, etc.)
parse_confidenceComputed0.0–1.0 data quality score
warningsComputedList of parse-issue codes
scraped_atComputedISO-8601 UTC timestamp

Common city slugs

CitySlug
San Francisco Bay Areasfbay
New Yorknewyork
Los Angeleslosangeles
Chicagochicago
Seattleseattle
Austinaustin
Bostonboston
Denverdenver

Full list: https://www.craigslist.org/about/sites

Common category codes

CategoryCode
For sale — allsss
Bicyclesbik
Cars & trucks by ownercto
Electronicsele
Furniturefua
Apartmentsapa
Jobsjjj
Clothingclt

Full list: https://www.craigslist.org/about/help/abbreviations


Example input

{
"city": "sfbay",
"query": "honda civic",
"category": "cto",
"maxResults": 50,
"fetchDetails": true
}

Example output record

{
"post_id": "7938685561",
"title": "2018 Honda Civic EX",
"price": 18500.0,
"price_currency": "USD",
"city": "San Jose",
"state": "CA",
"neighborhood": "South Bay",
"latitude": 37.3403,
"longitude": -121.9701,
"url": "https://sfbay.craigslist.org/sby/cto/d/san-jose-2018-honda-civic-ex/7938685561.html",
"category": "cto",
"area_abbrev": "sby",
"posted_datetime": "2026-06-04T10:51:23+00:00",
"image_urls": ["https://images.craigslist.org/00h0h_ABC_600x450.jpg"],
"description": "Clean title, low miles, well maintained...",
"attributes": {
"condition": "excellent",
"cylinders": "4 cylinders",
"drive": "fwd",
"fuel": "gas",
"odometer": "45,000",
"title status": "clean",
"transmission": "automatic"
},
"parse_confidence": 1.0,
"warnings": [],
"scraped_at": "2026-06-04T12:00:00+00:00"
}

How it works

  1. One HTTP request fetches the Craigslist search page for your city/category/query.
  2. JSON-LD parsing (structural, not CSS): Craigslist embeds all results as a schema.org ItemList in the page <head>. Up to ~350 results per query.
  3. DOM link extraction: listing URLs (with post_id, category, area_abbrev) are extracted from <a> tags in the body and matched to JSON-LD items by title slug.
  4. Detail page (optional): each listing's page is fetched for posted_datetime, description, and structured attributes.

Pricing

Pay-per-result: $0.00139 per listing ($1.39 / 1,000 listings).

With fetchDetails=false (default): ~1 request/run → very fast, very cheap.
With fetchDetails=true: 1 + N requests (one per listing) → richer data, proportionally more compute.


Use cases for Craigslist data

  • Price research — benchmark used car, electronics, or furniture prices across cities
  • Real estate leads — monitor for-rent and for-sale listings in target neighborhoods
  • Resale arbitrage — find underpriced items listed by private sellers
  • Job market intelligence — pull job listings from the jjj category across metros
  • Academic research — analyze classifieds data for economics or sociology studies
  • Competitor monitoring — track similar items listed by other sellers in your category

Frequently asked questions

Do I need a proxy? No. Craigslist search pages are server-side rendered and respond 200 from datacenter IPs. No proxy configuration is needed.

How many results per search? Craigslist includes all matching results in one JSON-LD block — typically up to ~350 items per query. For more coverage, run multiple narrowed queries.

How do I get descriptions and car specs? Set fetchDetails: true. This fetches each listing's detail page to extract description, posted_datetime, neighborhood, precise latitude/longitude, and structured attributes (condition, make, cylinders, etc.). This multiplies request count by N listings.

What is fetchDetails=false good for? Fast, cheap bulk listing collection — title, price, images, location, and URL from a single search-page request. Good for price monitoring and deduplication.

What does parse_confidence mean? 0.0–1.0 data quality score. 1.0 = all critical fields extracted. Below 0.7 = Craigslist may have changed its JSON-LD structure; check warnings for affected fields.

Can I scrape multiple cities? Yes — run the actor multiple times with different city slugs, or use Apify's batch run API to fan out across cities in parallel.


Limitations

  • Results per search: up to ~350 (Craigslist's JSON-LD includes all results in one page).
  • posted_datetime, description, attributes require fetchDetails=true.
  • neighborhood is only available on listings where the poster set it.
  • Craigslist does not expose full posted_datetime on search pages.

Integrations

Built for market researchers and resellers tracking US local listings, pricing trends, and inventory by city and category — the JSON/dataset output drops into the tools you already run, no glue code:

  • n8n / Make / Zapier — trigger a run or pipe every new dataset item into 500+ apps (Google Sheets, Airtable, Slack, HubSpot, your database) with no code: n8n, Make, Zapier.
  • Webhooks — fire your own endpoint the moment a run finishes, to push results straight into your pipeline (docs).
  • MCP server — expose this actor as a tool to Claude, Cursor, or any MCP client so an AI agent can pull this data mid-conversation (guide).
  • API & SDKs — fetch the dataset as JSON, CSV, or Excel through the Apify REST API or the Python / JS SDKs.

See all Apify integrations.