Craigslist Classifieds Scraper — No Login Required avatar

Craigslist Classifieds Scraper — No Login Required

Pricing

from $3.00 / 1,000 search-card listing extracteds

Go to Apify Store
Craigslist Classifieds Scraper — No Login Required

Craigslist Classifieds Scraper — No Login Required

Extract Craigslist listings across real estate, cars, jobs, gigs, services, for-sale, free stuff, community, and events. No login or cookies needed. Supports API-first search, postal-radius scoping, detail/contact enrichment, Smart Scrape, garage-sale dates, and real estate presets.

Pricing

from $3.00 / 1,000 search-card listing extracteds

Rating

0.0

(0)

Developer

Crowd Pull

Crowd Pull

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Craigslist Classifieds Scraper

Extract Craigslist listings across real estate, cars, jobs, gigs, services, for-sale, free stuff, community, events, resumes, and direct post URLs. No login or cookies needed.

This actor is API-first. It calls Craigslist's public JSON search endpoint, decodes listing rows, and optionally hydrates post pages for full descriptions and attributes. Real estate is the highlighted workflow, with presets and output fields for apartments, rooms, sublets, FSBO, office/commercial, parking, beds, baths, square feet, pets, and furnished searches.

Features

  • All major Craigslist categories in one actor
  • Real estate presets and dedicated dataset view
  • Postal-radius scoping for accurate geography
  • Multi-city and multi-category fanout
  • Search-card mode for fast, low-cost runs
  • Optional detail enrichment for full descriptions and attributes
  • Optional public contact extraction from posting pages, including visible phone/email text, mailto/tel links, and Craigslist reply URL metadata
  • Owner/dealer/all listingType, native duplicate hiding, nearby search, delivery-available, and condition filters
  • Garage and moving sale date filters with startDate / endDate
  • Deleted, expired, and unavailable detail-page status fields for direct URLs and detail-enriched searches
  • Smart Scrape mode to emit only new or changed listings on scheduled runs
  • Canonical listing URLs, posting IDs, timestamps, images, location, price, and category-specific fields

Example Input

{
"searches": [
{
"city": "newyork",
"postalCode": "10001",
"searchDistance": 5,
"category": "apa",
"query": "studio",
"listingType": "owner",
"minBedrooms": 0,
"maxPrice": 3500,
"includeDetails": true,
"includeContactInfo": true,
"maxResultsPerSearch": 50
},
{
"city": "sfbay",
"postalCode": "94103",
"searchDistance": 25,
"category": "cta",
"query": "honda civic",
"condition": ["good", "excellent"],
"deliveryAvailable": true,
"maxResultsPerSearch": 100
},
{
"city": "sfbay",
"postalCode": "94103",
"searchDistance": 25,
"category": "gms",
"startDate": "2026-06-06",
"endDate": "2026-06-07",
"maxResultsPerSearch": 50
}
],
"onlyNew": false
}

Smart Scrape

Set onlyNew to true and keep the same cacheName for scheduled runs. The actor stores a material hash for each posting ID and only emits rows that are new or meaningfully changed.

{
"city": "detroit",
"postalCode": "48201",
"searchDistance": 20,
"categories": ["apa", "roo", "sub", "rea"],
"onlyNew": true,
"cacheName": "detroit-housing-monitor",
"maxResultsPerSearch": 200
}

Output

Each dataset item is a normalized Craigslist listing:

{
"type": "listing",
"source": "craigslist",
"status": "ok",
"postingId": "7938170495",
"url": "https://newyork.craigslist.org/brk/apa/d/brooklyn-no-fee-lrg-studio-loft-home/7938170495.html",
"title": "No Fee, Lrg Studio Loft + Home Office/1 Bed",
"category": "apa",
"categoryLabel": "apartments",
"listingType": "owner",
"city": "newyork",
"price": 3450,
"priceText": "$3,450",
"postedAt": "2026-06-01T23:32:13.000Z",
"updatedAt": "2026-06-02T12:14:00.000Z",
"neighborhood": "Bed-Stuy",
"bedrooms": 1,
"squareFeet": 855,
"imageUrls": ["https://images.craigslist.org/example_600x450.jpg"],
"listingStatus": "active",
"isDeleted": false,
"isExpired": false,
"contactInfoAvailable": true,
"contactPhones": ["212-555-0100"],
"replyUrlTemplate": "https://newyork.craigslist.org/reply/...",
"searchPostalCode": "10001",
"searchDistance": 5,
"scrapedAt": "2026-06-02T00:00:00.000Z"
}

Pricing

Recommended pay-per-event pricing:

  • Actor start: low fixed start fee
  • listing-extracted: about $0.00275 to $0.0035 per search-card listing
  • detail-enriched: about $0.00625 to $0.0075 per detail/contact-enriched listing

Detail/contact enrichment is optional so broad classifieds users can run cheaply while higher-value real estate monitoring pays for richer rows.

Limitations

  • Craigslist's JSON endpoint scopes reliably by postal code and search radius. The actor includes default postal codes for common city subdomains, but exact workflows should pass postalCode.
  • The actor does not log in, bypass reply flows, or extract private contact details. includeContactInfo only parses public posting-page text, public mailto/tel links, and Craigslist reply metadata when exposed.
  • Detail enrichment fetches public posting pages and may miss fields that Craigslist does not expose in public HTML.
  • Craigslist can remove or expire postings at any time; direct post URLs and detail-enriched rows surface listingStatus, isDeleted, isExpired, and detailFailureReason when this is detectable.