ForSaleByOwner.com Scraper — FSBO Listings avatar

ForSaleByOwner.com Scraper — FSBO Listings

Pricing

from $1.90 / 1,000 listings

Go to Apify Store
ForSaleByOwner.com Scraper — FSBO Listings

ForSaleByOwner.com Scraper — FSBO Listings

Scrape for-sale-by-owner US homes from ForSaleByOwner.com: address, price, beds/baths, sqft, GPS, photos, owner-financing flag & status. Search by state or city.

Pricing

from $1.90 / 1,000 listings

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Pull for-sale-by-owner homes from ForSaleByOwner.com. Search by state or city and get one clean row per listing — address, asking price, beds, baths, square footage, GPS coordinates, photos, an owner-financing flag, and status. Owner-posted listings, not agent feeds.

How the ForSaleByOwner.com Scraper works

Why use this scraper

  • Owner listings. ForSaleByOwner.com is a for-sale-by-owner marketplace — the inventory agents' feeds skip.
  • Structured rows. Address (street/city/county/state/zip), price, beds/baths, square footage, year built, coordinates, photos and an owner-financing flag arrive parsed and typed.
  • Owner phone extracted, not just implied. Sellers frequently paste a phone number in the description; the actor pulls it into an ownerPhone field. Competitors on this same feed ship an empty phone column — this one is filled when a number is present.
  • Motivated-seller scoring. Every row gets a motivationScore (0–100) with a motivationReasons list, derived from price drops, owner financing, short sale, lease-to-own, days on market and an owner phone in the listing. Filter with minMotivationScore, onlyPriceReduced or minDaysOnMarket.
  • Daily fresh-listing feed. Monitoring mode returns only listings not seen on earlier runs.
  • Handles the US geo-block for you. The site is US-only behind a WAF; the actor runs on US residential with automatic IP rotation and retries.

What it does

You point the actor at states, city slugs, or ForSaleByOwner search URLs; it queries the site's listing API, pages through the full result set, and delivers clean JSON or CSV — one record per listing.

Supported inputs

  • US states — one or more two-letter codes (TX, FL), or leave empty for every state.
  • City location slugscity-state form, e.g. houston-texas, miami-florida.
  • ForSaleByOwner search URLs — e.g. https://www.forsalebyowner.com/search/list/houston-texas/fsbo-source/for_sale-status.
  • Source / status — owner-only (default) or all sources; for-sale, for-rent, sold or pending.

Use cases

  • Investors & wholesalers sourcing agent-free, often motivated sellers (owner-financing listings are flagged).
  • Buyer's agents finding FSBO inventory to represent buyers on.
  • Market analysts tracking owner-listing supply and pricing by market.
  • Lead tools & CRMs topping up a territory with fresh FSBO records on a schedule.

How it works

  1. You provide states, city slugs, or search URLs, plus source/status.
  2. The actor resolves each location and POSTs to ForSaleByOwner's search API through a US residential IP, retrying on a fresh IP if the WAF blocks one.
  3. It pages through the whole result set.
  4. Each listing is mapped to a clean row (coordinates, absolute photo URLs, owner-financing flag).
  5. With monitoring mode on, listings delivered before are skipped.
  6. Results stream to the dataset as JSON, CSV, Excel or API.

Input configuration

FieldTypeDescription
statesarrayTwo-letter US state codes. Empty = every state.
locationSlugsarrayCity slugs in city-state form.
startUrlsarrayForSaleByOwner search URLs (override the fields above).
sourcestringfsbo (owner only, default) or all.
statusstringfor_sale (default), for_rent, sold, pending.
monitoringModebooleanReturn only listings not seen on previous runs.
maxItemsintegerHard cap on delivered listings.
proxyobjectDefaults to Apify US residential.

Example input

{
"states": ["TX", "FL"],
"source": "fsbo",
"status": "for_sale",
"maxItems": 1000
}

Output overview

One row per listing. Prices are in US dollars, coordinates are split into latitude/longitude, photo URLs are absolute, and ownerFinancing flags sellers open to financing.

Output sample

{
"listingId": "6aa3350dfc2bee7de504f075",
"listingUrl": "https://www.forsalebyowner.com/listing/1301-REAR-Bellaire-Street-Amarillo-TX-79106/6aa3350dfc2bee7de504f075",
"street": "1301 REAR Bellaire Street",
"city": "Amarillo",
"county": "Potter",
"state": "TX",
"zip": "79106",
"propertyType": "House",
"bedrooms": 1,
"bathrooms": 1,
"livingAreaSqft": 13047,
"yearBuilt": 1946,
"listPrice": 108800,
"latitude": 35.201901,
"longitude": -101.8887064,
"status": "Active",
"source": "For Sale By Owner",
"forSaleByOwner": true,
"ownerFinancing": true,
"willWorkWithBuyersAgent": "buyer_agent_and_commission",
"photoCount": 7,
"listingSource": "ForSaleByOwner.com",
"scrapedAt": "2026-09-11T15:05:31.551Z"
}

Key output fields

FieldDescription
listingIdForSaleByOwner.com internal ID.
listingUrlBrowsable listing URL.
street, city, county, state, zipFull property address.
propertyTypeHouse, Condo, Land, etc.
bedrooms, bathrooms, livingAreaSqft, yearBuiltCore property facts.
listPriceAsking price in US dollars.
latitude, longitudeProperty coordinates.
status, sourceListing status and source.
forSaleByOwnerTrue when the source is an owner.
ownerFinancing, shortSale, leaseToOwnSeller-flexibility / distress flags.
ownerPhone, ownerPhones, ownerEmailsOwner contact pulled from the description text (present when the owner included it).
daysOnMarketWhole days since the listing date.
motivationScore, motivationReasonsSeller-motivation score 0–100 and the signals behind it.
descriptionProperty description — often contains the owner's phone number.
primaryPhotoUrl, photoUrls, photoCountListing photos.

FAQ

Is there an owner phone number? There is no dedicated structured contact field, but sellers frequently include a phone number in the listing description, so many rows carry direct contact.

Why does it need a US proxy? ForSaleByOwner.com serves listings only to US visitors. The actor routes through its own US residential proxy (fresh IP + retry per request) by default, so you don't configure anything. To use your own US residential proxy instead, set the proxy input.

Owner listings only? Yes with source: fsbo (the default). Set source: all to include the agent/MLS listings the site also aggregates.

Can I get only new listings each day? Yes — enable monitoring mode and schedule the actor.

Support

Found a bug or need an extra field? Open an issue on the actor's Issues tab in Apify Console.

Additional services

Need bigger US for-sale-by-owner volume? The companion FSBO.com Scraper (same owner-listing niche, tens of thousands of listings) pairs well with this one. Ask via the contact on the profile.

Explore more scrapers

Part of a large real-estate scraping suite covering FSBO.com, Zillow, Redfin, Realtor.com, Trulia, LoopNet, Crexi, Land.com and more.

🤖 For AI agents & LLM apps

Inputs and outputs are plain JSON with documented field names, so an LLM agent can ask for "for-sale-by-owner homes in Texas with owner financing" and get structured rows — address, price, beds/baths, coordinates, owner-financing flag and listing URL — no HTML parsing.

⚠️ Disclaimer

This scraper collects only publicly available listing information from ForSaleByOwner.com. Use the data in line with ForSaleByOwner.com's terms of service and all applicable laws, including real-estate marketing, data-protection and anti-solicitation rules in your jurisdiction. You are responsible for how you use the output.

SEO keywords

ForSaleByOwner scraper, ForSaleByOwner.com scraper, for sale by owner listings, FSBO scraper, FSBO leads, owner listings, US real estate scraper, owner financing homes, motivated seller leads, real estate investor leads, off-market properties, property data API, homes for sale by owner, real estate lead generation.