data·vault_
← Catalog

Airbnb data by city: 6 US markets, one schema

Per-city view of the Airbnb Listings, 6 US Cities pack · 90,169 rows · snapshots June–August 2026 · source: Inside Airbnb, CC BY 4.0.

Most Airbnb datasets force a choice: one giant multi-city file where you filter everything yourself, or a scatter of per-city downloads with different column names. This catalog does neither. You get one file per city, all six in the same 12-column schema, so a query written for Austin runs unchanged against San Diego. A 6-row summary (cities-index.csv) sits on top with row counts, median nightly prices, and room-type mix per market.

The table below is that summary. Pick a city, see its size and its median, then take one of the copy-paste queries further down to open just that market.

The 6 cities at a glance

Numbers copied from cities-index.csv, the per-city index that ships free with the sample files.

CitySnapshot dateListingsMedian nightly (USD)Entire home/aptPrivate room
Austin, TX2026-06-2211,29521782%14%
Nashville, TN2026-06-2610,24228290%8%
Denver, CO2026-06-304,93917685%12%
New York City, NY2026-08-1030,23417555%42%
Las Vegas (Clark County), NV2026-06-2720,23423469%28%
San Diego, CA2026-06-2713,22532383%14%

Three things the table says. New York City carries the most rows (30,234) and the lowest median (175), and that combination comes from its room mix: 42% private rooms, the highest share of the six markets, pulls the typical price down. San Diego is the priciest typical listing at a median of 323 with a conventional mix (83% entire homes). Denver is the smallest market at 4,939 listings, so treat any Denver split with wider error bars.

Every city keeps the same columns: id, name, neighbourhood (a ZIP code area), latitude, longitude, room_type, price, minimum_nights, availability_365, number_of_reviews, reviews_per_month, last_review. The Airbnb data guide explains each one.

One query per city

The dataset-mcp server queries the full released files without any download. Start it, then pass a file argument to pick the city: each market is its own file (airbnb-austin.csv, airbnb-nashville.csv, airbnb-denver.csv, airbnb-new-york-city.csv, airbnb-clark-county-nv.csv, airbnb-san-diego.csv), 100 rows per call.

npx --allow-git=all -y github:jayjex/dataset-mcp
# plain form works on npm 10/11: npx -y github:jayjex/dataset-mcp

Austin, TX

Five listings in downtown Austin, ZIP 78701:

query_dataset("airbnb-six-cities", {file: "airbnb-austin.csv", where: [{column: "neighbourhood", op: "=", value: "78701"}], limit: 5})

Nashville, TN

Nashville runs 90% entire homes, the most investor-shaped mix of the six. The whole market in one filter:

query_dataset("airbnb-six-cities", {file: "airbnb-nashville.csv", where: [{column: "room_type", op: "=", value: "Entire home/apt"}], limit: 5})

Denver, CO

Budget stays well under the city median of 176: cheap nightly rates on short minimum nights:

query_dataset("airbnb-six-cities", {file: "airbnb-denver.csv", where: [{column: "price", op: "lt", value: 80}, {column: "minimum_nights", op: "lt", value: 7}], limit: 5})

New York City, NY

Private rooms below the city median of 175, the segment that dominates NYC supply:

query_dataset("airbnb-six-cities", {file: "airbnb-new-york-city.csv", where: [{column: "room_type", op: "=", value: "Private room"}, {column: "price", op: "lt", value: 175}], limit: 5})

Las Vegas (Clark County), NV

Vegas ZIP codes start with 891, so a contains filter pulls the strip-adjacent market:

query_dataset("airbnb-six-cities", {file: "airbnb-clark-county-nv.csv", where: [{column: "neighbourhood", op: "contains", value: "891"}], limit: 5})

San Diego, CA

Active listings: wide-open calendar plus real review history, useful for gauging demand in the priciest market:

query_dataset("airbnb-six-cities", {file: "airbnb-san-diego.csv", where: [{column: "availability_365", op: "gt", value: 180}, {column: "number_of_reviews", op: "gt", value: 50}], limit: 5})

Operators are =, contains, gt, and lt; get_stats returns counts, min/max, and top values for any column without paging rows. To compare markets instead of opening one, the per-city index is the default file of the dataset, and its median_price_usd column filters straight to the expensive half:

query_dataset("airbnb-six-cities", {where: [{column: "median_price_usd", op: "gt", value: 200}], limit: 6})

Setup steps and worked examples for all five datasets: For agents.

FAQ

How do I get Airbnb data for one specific city?

Three routes. The free 20-row sample CSV shows the schema on Austin rows. The full pack ships one CSV per city (airbnb-austin.csv, airbnb-nashville.csv, airbnb-denver.csv, airbnb-new-york-city.csv, airbnb-clark-county-nv.csv, airbnb-san-diego.csv), 90,169 rows in total. Or query a single city file over MCP without downloading anything, as in the examples above.

Which cities does the Airbnb 6-city dataset cover?

Austin, TX (11,295 listings, snapshot 2026-06-22), Nashville, TN (10,242, 2026-06-26), Denver, CO (4,939, 2026-06-30), New York City, NY (30,234, 2026-08-10), Las Vegas Clark County, NV (20,234, 2026-06-27), and San Diego, CA (13,225, 2026-06-27). That is 90,169 listings in one shared 12-column schema, built from Inside Airbnb summary data.

How do I compare Airbnb prices across these cities?

Use cities-index.csv, the 6-row per-city summary that ships with the free sample: it carries row counts, median nightly prices (175 to 323 USD), and room-type mix for all six markets. Medians travel better than means because a few very expensive listings skew averages. One caveat: each city was captured on its own snapshot date, June through August 2026, so treat the comparison as a screen, not a same-day quote.

Get all six cities in one pack

90,169 rows across 6 city files plus cities-index.csv, data dictionary, methodology, and source checksums. Checkout and download run through Getly.

Keep reading