Serve filterable property listings from a Google Sheet
Property listings are a table your agents already maintain: address, price, beds, baths, status, photos. PasteSheet publishes that Google Sheet as a live JSON API with filtering and search built in, so your listings site lets buyers narrow by price, beds, or location without you standing up a backend.
Last updated
Key facts
- A Google Sheet is capped at 10 million cells (or 18,278 columns), which is the real ceiling on using one as a database. source
- The feed is capped by plan: 500 listings on Free, 5,000 on Starter ($9/mo), and no row cap on Pro ($19/mo).
-
Full-text
search=and aggregation (avgprice by city withgroup_by) are Pro ($19/mo) features. Exact-match filters on beds, status and type, pluscontains, sorting and pagination, work on every plan. - The endpoint is read-only, so a public listings site can filter and sort the feed but a visitor can never flip a home to sold.
Why keep listings in a Sheet
A listings feed is inherently tabular — one row per property, columns for price, beds, baths, city, and status. Agents already track this in a spreadsheet, updating a price or flipping a home to "sold" as deals move. Building a bespoke CMS to hold the same table, then a search backend on top, is a lot of work for data that fits in cells.
PasteSheet serves the Sheet as clean, typed JSON with filtering, search, and pagination in the URL — the querying a listings page needs, with no database or backend to run. Your site — a directory-style front end or a live dashboard — reads the endpoint and renders the results.
The filters a listings page needs
Buyers slice the same feed different ways, all from URL parameters:
-
Exact-match on discrete fields —
?beds=3,?status=active,?type=condo. -
Partial match on place names with
contains[city]=Austin, or full-textsearch=across the row (Pro). -
Sort by price with
sort=priceorsort=-price, and page long feeds withpage/per_page. -
Aggregate for market stats —
avgprice by city withgroup_by— on Pro.
Fetch listings as JSON
Point your listings page at the endpoint and combine a location filter, a sort, and pagination in one request:
curl "https://pastesheet.com/your-endpoint/Listings?contains[city]=Austin&sort=price&per_page=20"
{
"data": [
{
"address": "1204 Oak Ridge Dr",
"city": "Austin",
"price": 525000,
"beds": 3,
"baths": 2,
"status": "active"
}
]
}Safe to publish, nothing to wire up
Because the endpoint is read-only by design, it is safe to expose publicly or hand to a teammate: consumers can read and query the data but can never change the sheet. And there is no Google Cloud project, OAuth screen, or service account to set up — you paste a share URL and get a live API.
What it costs
Starter
For indie makers shipping a real app.
- Endpoints
- 10
- Requests / mo
- 50,000
- Row cap
- 5,000
- Full-text listing search
- Average price by city
- Private endpoints & keys
Full-text search and market stats are Pro. Start free to serve and filter listings on 3 endpoints; move to a paid plan for full-text search= across the row and aggregation (avg price by city with group_by), plus private endpoints when a feed should stay behind a key.
Frequently asked questions
Can buyers filter by price and beds at once?
Yes. Combine parameters in a single URL — ?beds=3&status=active&sort=price — and PasteSheet returns just the matching rows in order. Partial-match and full-text search let you add location and keyword filters too.
How do I keep listings current?
Agents edit the Google Sheet as normal — change a price, flip a home to sold — and the API reflects it after the cache refreshes. Paid plans set a custom TTL so a status change goes live in seconds.
Can I compute average prices by area?
Yes, on Pro. Aggregation with group_by, avg, count, and sum lets you return market stats — like the average price per city — straight from the endpoint without pulling every row into your own code.
Can anyone edit listings through the API?
No. The endpoint is read-only by design — there is no write path — so a public listings site is safe to publish, and you can lock a private feed behind a key when you need to.
Sources
Related use cases
Build a Directory Website From a Sheet
Turn a Google Sheet into a searchable directory. PasteSheet serves your listings as a filterable, read-only JSON API — no database, no admin panel, no code.
Run a Job Board From a Google Sheet
Post jobs from a spreadsheet. PasteSheet publishes your listings as a live, read-only JSON API, filterable by role, location, and remote — no backend needed.
Serve a Product Catalog from Google Sheets
Power a product catalog from a Google Sheet. PasteSheet serves products, prices, and stock as a live, read-only JSON API — no backend, no Google Cloud setup.
Feed a Live Dashboard From Google Sheets
Power a live dashboard from a Google Sheet: PasteSheet serves rows and count/sum/avg rollups as cached JSON your charts read — no backend, no database.
Turn your sheet into an API in minutes
Paste a Google Sheet URL and get a live REST API and MCP server — no backend, no code, free to start.