---
title: "Realtors Datasets: 400K+ US Property Listings, 50 States"
description: "Realtors datasets with 400,000+ US residential property listings from Realtor.com, covering all 50 states and Washington D.C. Listing-level records, cleaned, typed and deduplicated — ready to load into pandas, Postgres, BigQuery or Excel. Schema (45 columns) IDs: propertyid, listingid, regionid, ldp"
url: "https://ouro.foundation/datasets/aliraza/realtors-datasets-400k-us-property-listings-50-states"
id: "01a05dce-ae5c-704c-8619-c0b6f3446375"
type: "dataset"
---

# Realtors Datasets: 400K+ US Property Listings, 50 States

Dataset by @aliraza in #all (all) · 413,605 rows · 45 columns

- Asset id: `01a05dce-ae5c-704c-8619-c0b6f3446375`
- Page: https://ouro.foundation/datasets/aliraza/realtors-datasets-400k-us-property-listings-50-states

Realtors datasets with 400,000+ US residential property listings from Realtor.com, covering all 50 states and Washington D.C. Listing-level records, cleaned, typed and deduplicated — ready to load into pandas, Postgres, BigQuery or Excel.

Schema (45 columns)

IDs: property_id, listing_id, region_id, ldp_slug, detail_url Location: address_line, address_line2, city, state_code, postal_code, county_fips, latitude, longitude Pricing: list_price, price_min, price_max, price_prefix, price_reduced_label, price_reduced_amount Attributes: home_type, beds, baths, sqft, lot_sqft Status: status, status_text, status_dot_color, list_date, created_at, updated_at Flags: is_new_listing, is_price_reduced, is_pending, is_contingent, is_foreclosure, is_new_construction, is_coming_soon Media: primary_photo_url, photo_count, has_3d_tour, has_video_tour, has_virtual_tour Source: brokerage_name, attribution_text, raw (full JSONB payload)

Prices are numeric(14,2), baths numeric(4,1), timestamps timezone-aware, booleans default false — no type coercion needed on import.

Use cases

AVM and price-prediction models — beds, baths, sqft, lot size and precise lat/long give a usable feature set immediately Distressed-property screening via is_foreclosure and price_reduced_amount New-supply tracking via is_new_construction and is_coming_soon Clean joins to Census, HUD, FEMA and BLS data through county_fips — no fuzzy string matching Brokerage market-share analysis by metro or state Listing-quality research: photo_count and tour flags vs. days on market Geospatial dashboards in PostGIS, Kepler or Mapbox

Built for proptech teams, ML engineers, real estate investors and housing researchers who need listing-level granularity at national scale.

## Columns

| Column | Type | Notes |
| --- | --- | --- |
| address_line | text |  |
| address_line2 | text |  |
| attribution_text | text |  |
| baths | real |  |
| beds | real |  |
| brokerage_name | text |  |
| city | text |  |
| county_fips | text |  |
| created_at | timestamp with time zone |  |
| detail_url | text |  |
| has_3d_tour | bigint |  |
| has_video_tour | bigint |  |
| has_virtual_tour | bigint |  |
| home_type | text |  |
| id | uuid | primary key |
| is_coming_soon | bigint |  |
| is_contingent | bigint |  |
| is_foreclosure | bigint |  |
| is_new_construction | bigint |  |
| is_new_listing | bigint |  |
| is_pending | bigint |  |
| is_price_reduced | bigint |  |
| latitude | real |  |
| ldp_slug | text |  |
| list_date | timestamp with time zone |  |
| list_price | real |  |
| listing_id | real |  |
| longitude | real |  |
| lot_sqft | real |  |
| photo_count | real |  |
| postal_code | text |  |
| price_max | text |  |
| price_min | text |  |
| price_prefix | text |  |
| price_reduced_amount | real |  |
| price_reduced_label | text |  |
| primary_photo_url | text |  |
| property_id | bigint |  |
| region_id | text |  |
| sqft | real |  |
| state_code | text |  |
| status | text |  |
| status_dot_color | text |  |
| status_text | text |  |
| updated_at | timestamp with time zone |  |

## Query it

Read-only SQL, with `{{table}}` standing for this dataset's table.

From an agent connected to Ouro MCP:

```
query_dataset(dataset_id="01a05dce-ae5c-704c-8619-c0b6f3446375", sql="SELECT * FROM {{table}} LIMIT 20")
```

From Python:

```python
df = ouro.datasets.query("01a05dce-ae5c-704c-8619-c0b6f3446375", "SELECT * FROM {{table}} LIMIT 20")
```
