Craigslist Classifieds Scraper

Scrape Craigslist classifieds by city, category, query, filters, or search URL. Export local listing data for pricing, housing, resale, and alert workflows.

Data fields

FieldTypeDescription
idstring | nullCraigslist posting ID parsed from the listing URL when available.
urlstringPublic Craigslist listing URL.
titlestring | nullListing title from search results or the detail page.
pricenumber | nullNumeric listing price when Craigslist shows one.
currencystring | nullDetected currency code, usually USD for dollar-priced listings.
categorystring | nullCraigslist category code from the search URL.
cityOrSitestring | nullCraigslist city subdomain used for the search.
neighborhoodstring | nullNeighborhood or locality text when visible.

Input preview

startUrlsCraigslist search URLs
cityOrSiteCity/site subdomain
categoryCategory code
querySearch query
maxItemsMaximum listings
includeDetailsOpen listing detail pages

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

Ready-to-run examples

Open a saved Apify example, adjust the input, and run the actor in your own Apify account.

View all examples

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Scrape public Craigslist listings by city, category, keyword, filters, or search URL.

Use this Actor to export local listing data for resale research, housing scans, pricing checks, classified alerts, and API workflows. It saves one dataset row per public listing and can optionally open listing detail pages for richer fields.

At a glance

  • Best for: Craigslist search exports, local marketplace monitoring, apartment scans, garage-sale tracking, and price research.
  • Inputs: Craigslist search URLs or structured city/category/query filters, price range, image filter, sort order, posted-today filter, item limit, detail mode, and proxy settings.
  • Outputs: Listing URL, title, price, city/site, category, location, neighborhood, timestamps, description, attributes, images, map coordinates, reply-button availability, and scrape timestamp.
  • Access: Public Craigslist pages only. No login, cookies, private seller data, or private contact extraction.
  • Cost: $0.005 per run plus the item event for each saved Craigslist listing.

What can it do?

Craigslist Classifieds Scraper turns public Craigslist searches and listing URLs into structured local-listing rows.

  • Export Craigslist search results by city, category, keyword, price range, image filter, sort order, and posted date.
  • Open listing pages when needed to collect public descriptions, attributes, images, timestamps, and map fields.
  • Monitor local marketplaces for housing, resale, jobs, garage sales, community posts, and other public categories.
  • Build alerts and dashboards by scheduling stable Craigslist searches and deduplicating listing URLs.
  • Use it as a Craigslist listings API for CSV, JSON, Excel, RSS, Dataset API, or AI-agent workflows.

Input example

{
  "cityOrSite": "sfbay",
  "category": "sss",
  "query": "desk",
  "maxItems": 10,
  "includeDetails": true,
  "minPrice": 20,
  "maxPrice": 250,
  "hasImage": true,
  "sort": "date",
  "postedWithin": "anytime",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}

Output example

{
  "id": "1234567890",
  "url": "https://sfbay.craigslist.org/sfc/fuo/d/san-francisco-standing-desk/1234567890.html",
  "title": "Standing desk",
  "price": 120,
  "currency": "USD",
  "category": "sss",
  "cityOrSite": "sfbay",
  "neighborhood": "San Francisco",
  "location": "San Francisco",
  "postedAt": "2026-07-03T09:30:00-0700",
  "updatedAt": null,
  "description": "Adjustable standing desk in good condition.",
  "attributes": {
    "condition": "good"
  },
  "imageUrls": ["https://images.craigslist.org/example.jpg"],
  "latitude": 37.7749,
  "longitude": -122.4194,
  "sellerContactAvailable": true,
  "scrapedAt": "2026-07-03T10:00:00.000Z"
}

Common workflows

  • Local price research: Track prices for furniture, bikes, cars, tools, or rentals in a city.
  • Housing scans: Search apartment category apa with price limits and detail pages enabled.
  • Daily alerts: Schedule a small posted-today run for categories such as garage sales or free items.
  • API export: Feed public listing rows into spreadsheets, dashboards, internal alerts, or AI agents.

Tips

  • Use direct search URLs for exact searches: Paste a Craigslist URL into startUrls when you already tuned filters in a browser.
  • Use structured inputs for repeatability: cityOrSite, category, and query are easier to schedule and modify.
  • Open details only when needed: includeDetails adds richer fields but makes runs slower.
  • Keep limits small for alerting: Use maxItems: 10 to 50 for recurring monitoring.

Limits and caveats

  • Public pages only: The Actor does not log in and does not bypass private contact protections.
  • Reply button is not contact data: sellerContactAvailable only reports whether a public reply control was detected.
  • Some categories have sparse fields: Price, map, timestamps, image, and attribute fields depend on the listing and category.
  • Craigslist can block or throttle traffic: Use modest limits and proxy settings when needed.

API usage

Run through the Apify API with the same JSON keys as the input schema:

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~craigslist-classifieds-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"cityOrSite":"sfbay","category":"sss","query":"desk","maxItems":10,"includeDetails":true}'

MCP and AI agents

For AI agents, use the official Apify MCP server. A focused single-Actor server URL is:

https://mcp.apify.com?tools=fetch_cat/craigslist-classifieds-scraper

Example agent prompt: "Run Craigslist Classifieds Scraper for SF Bay desk listings under 250 dollars, then return title, price, neighborhood, and URL."

Support

Open an issue on the Actor page if a public Craigslist search URL stops parsing or an expected field is missing from output.

Common questions

Questions and answers reused from the canonical actor README.

Can I use any Craigslist city?

Use the public Craigslist city subdomain, such as sfbay, austin, seattle, or newyork.

Does the Actor open every listing page?

Only when includeDetails is enabled. Search-only mode is faster but returns fewer detail fields.

Can I export to CSV, Excel, JSON, or API?

Yes. Apify datasets can be downloaded as CSV, Excel, JSON, JSONL, XML, RSS, or accessed through the API.

Can it scrape private seller emails or phone numbers?

No. It works with public page data and does not extract private contact details.

Why did I get fewer listings than requested?

Craigslist may return fewer public results for the search, remove old posts, throttle a request, or hide detail fields.