Craigslist Real Estate Scraper - FSBO Listings & Rentals avatar

Craigslist Real Estate Scraper - FSBO Listings & Rentals

Pricing

from $16.00 / 1,000 results

Go to Apify Store
Craigslist Real Estate Scraper - FSBO Listings & Rentals

Craigslist Real Estate Scraper - FSBO Listings & Rentals

Craigslist FSBO homes and rentals for any city, with a by-owner flag and a 0-100 lead score on every listing, plus price, beds, baths, size, coordinates, photos, posting text and contact availability. Filter by owner or dealer, price, bedrooms, keyword and distance.

Pricing

from $16.00 / 1,000 results

Rating

0.0

(0)

Developer

Ben

Ben

Maintained by Community

Actor stats

3

Bookmarked

156

Total users

5

Monthly active users

4 days ago

Last modified

Share

Craigslist Real Estate Scraper — FSBO, Rentals & Off-Market Property Data

Extract real estate listings from Craigslist — for-sale-by-owner (FSBO) homes, rentals, rooms, sublets and vacation properties — as clean, structured data with an rule-based lead score on every listing. It's the off-market inventory that never reaches Zillow or Realtor.com: direct-from-owner deals with no MLS gatekeepers. Export to JSON/CSV/Excel, run on a schedule, call via API, or pipe into Make / Zapier / n8n.

How the lead score is calculated: a fixed formula adds up to 30 points for a by-owner listing (by_owner), 25 for photos and contact availability, 25 for price and size, and 20 for complete details, so FSBO listings with photos and a way to reply rank first (full table below).

Transparent pricing: $0.02 per returned listing plus a $0.00005 actor-start event per GB of run memory (at least one). At the standard 512 MB setting, 10 listings cost about $0.20005 before account discounts.

🏠 What is the Craigslist Real Estate Scraper?

It turns any Craigslist real-estate search into a structured dataset. Give it a city (and optional filters for FSBO, price, bedrooms or a postal-code radius) and it returns every matching listing with full details, photos, contact availability and a 0–100 lead score that ranks the best opportunities first — so agents, investors and property managers can work the hottest leads without manual browsing.

What data does it extract?

  • Price, bedrooms, bathrooms, square footage and property attributes
  • Title & full description (body text)
  • Location, map coordinates and the exact posting time (spot fresh listings)
  • Up to 20 photos per listing
  • Owner flag (by_owner) — by-owner vs agent/dealer. Exact for sale (rea); a wording-based heuristic for rentals, rooms, sublets and vacation posts
  • Contact availability, the reply link, the Craigslist post ID and the listing URL
  • Lead score (0–100) from a fixed, published formula (see below)

⬇️ Input

Run it two ways — search a city with filters, or pass exact listing URLs:

FieldDescription
modesearch (by city + filters) or direct_urls
cityCraigslist city code, e.g. sfbay, newyork, losangeles, chicago
categoryapa (apartments/rent), rea (for sale), roo (rooms), sub (sublets), vac (vacation)
listingTypeall, owner (by owner only), or dealer. For apa, roo, sub and vac the owner split is a heuristic read from the posting text, and the run opens up to 3x maxListings postings to find matches
minPrice / maxPrice / minBedroomsStandard filters
postalCode + searchDistanceRadius search around a ZIP
maxListingsCap the run (1–500)
includePhotos / includeContactInfo / includeLeadScoreToggle extras

Example input

{
"mode": "search",
"city": "sfbay",
"category": "rea",
"listingType": "owner",
"minPrice": 200000,
"maxPrice": 900000,
"minBedrooms": 2,
"maxListings": 100,
"includeLeadScore": true
}

⬆️ Output

Every listing is one clean row (view as a table, or export JSON / CSV / Excel):

{
"url": "https://www.craigslist.org/view/d/san-francisco-2br-condo-for-sale-by/abc123",
"post_id": "7976797995",
"title": "2BR Condo — For Sale By Owner, Mission District",
"price": 825000,
"bedrooms": 2,
"bathrooms": 1,
"sqft": 950,
"location": "24th St near Mission St",
"latitude": 37.7522,
"longitude": -122.4184,
"posting_date": "2026-10-02T10:38:41-0700",
"photos": ["https://images.craigslist.org/..."],
"body": "Charming 2 bedroom condo with hardwood floors...",
"attributes": ["2BR / 1Ba", "950ft2", "condo", "w/d in unit"],
"reply_link": "https://sfbay.craigslist.org/reply/sfo/reo/7976797995",
"by_owner": true,
"housing_type": "/ 2br - 950ft2 -",
"contact_available": true,
"lead_score": 84,
"scraped_at": "2026-06-26T15:30:00.000Z"
}

💡 Use cases

  • 🎯 Agents — FSBO lead generation: find owners selling without an agent (a warm listing-appointment lead) before competitors do.
  • 💰 Investors — off-market deals: motivated, un-bid-up sellers and distressed properties for flips and wholesale.
  • 🏢 Property managers & landlords: benchmark rental rates, amenities and vacancy by neighborhood.
  • 📊 Market research: track pricing and supply trends across cities over time.

🧮 How the lead score works

The score is a fixed formula, not a model. The same listing always gets the same score, and you can recompute it from the output fields:

PartPoints
FSBO (by_owner)30 if by owner, 10 otherwise
Photos15 for 10+, 10 for 5–9, 5 for 1–4
Contact (contact_available)+10 (photos and contact together max 25)
Price15 for $500k+, 12 for $200k+, 8 for $100k+, 5 below
Size (sqft)10 for 2,000+ ft², 7 for 1,000+, 3 below (price and size together max 25)
Completeness5 each for price, bedrooms, size and at least one photo (max 20)

80–100 = hot lead, 60–79 = good, 40–59 = average. The price bands are built for homes for sale, so rentals score lower on price by design; compare rentals with each other, not with sale listings. With includePhotos or includeContactInfo off, those parts count as zero.

❓ FAQ

How do I scrape Craigslist real estate listings? Pick a city code and optional filters (FSBO, price, bedrooms, radius), then Run. You get structured listings with price, beds, baths, photos, contact info, FSBO detection and a lead score.

Can I get For Sale By Owner (FSBO) leads? Yes — set listingType: owner to keep only by-owner listings; each is flagged and scored.

How reliable is the owner filter on rentals? Craigslist has a by-owner flag only for real estate for sale. For apartments, rooms, sublets and vacation rentals the actor reads the title, description and attributes: 'by owner' wording marks an owner, broker, realty, management or fee wording marks a broker, and a post with neither is treated as an owner post. Treat it as a heuristic and check the leads that matter.

Does it cover rentals too? Yes — apartments, rooms, sublets and vacation rentals, as well as homes for sale.

Do I need an API key or login? No. It reads public Craigslist data — just give it a city and filters.

How do I find my city code? It's the subdomain on craigslist.org (e.g. sfbay.craigslist.org). Popular: sfbay, newyork, losangeles, chicago, seattle, boston, miami, austin, denver, sandiego.

Can I search a specific ZIP area? Yes — set postalCode and searchDistance (miles) for a radius search.

How many listings can it return? Up to your maxListings cap of 500 per run. One Craigslist results page lists about 350 postings; for more, the Actor reads the same search in other sort orders and saves each posting once.

How fast is it? The Actor reads Craigslist's pages directly, without a browser. In a test run on October 25, 2026 (San Francisco Bay Area, FSBO homes for sale, maxListings: 40, 512 MB) it saved 40 listings in 9.4 seconds. Larger runs read one posting page per listing, so time grows with maxListings.

What if a search finds nothing, or the city code is wrong? The run finishes without rows and the status message says why. Only the start fee is charged.

What happens with a short timeout or a spending limit? The run stops cleanly before its time limit, or when your maximum charge is used up. The listings saved so far stay in the dataset and the status message says why it stopped.

Can I run it on a schedule or via API? Yes — schedule recurring runs in Apify, call it via the API/SDK, or connect it to Make, Zapier or n8n.

Is scraping Craigslist legal? It extracts publicly available listing data. Use it responsibly for research and lead generation, and follow applicable laws and Craigslist's terms.

⚠️ Empty fields and what they mean

  • No phone number or email, ever. Craigslist hides the poster's contact behind its reply page and relays email through anonymous addresses. The Actor gives you the reply_link to that page and contact_available: true. When a posting has no reply button (the poster turned replies off, or the post was flagged or expired), reply_link is an empty string and contact_available is false.
  • Location fields depend on the poster. location is empty and latitude / longitude are null when the poster didn't place a map pin. bedrooms, bathrooms and sqft are null when the posting's attribute box leaves them out (19 of 40 listings in the October 25, 2026 test run of San Francisco FSBO homes for sale had no sqft); they are never guessed from the text.

🔗 You might also like


Keywords: Craigslist scraper, Craigslist real estate scraper, FSBO leads, for sale by owner, real estate lead generation, off-market properties, rental listings scraper, Craigslist API, property data, real estate investor leads, motivated sellers, Zillow alternative data.