Track home prices and rents by ZIP code from Zillow listings
Get Zillow homes for sale, for rent or recently sold by ZIP code as JSON with price, beds, baths, area, address and Zestimate, to track a local market.
If you invest in rentals, price homes as an agent or build a market report, you need to know what homes in a ZIP code ask, what they sold for and what they rent for, this month and not from a quarterly PDF. Zillow shows that, one search at a time. Lovely Router runs the search for you. Send ZIP codes, get one JSON object per listing, pay per listing from a prepaid balance. Run it from a script, a spreadsheet job or an AI agent with one API key.
Hand it to your AI agent
Copy this prompt into Claude Code, Cursor, Codex or any coding agent. It tells the agent where the docs are and how to use your API key.
Track home prices and rents by ZIP code from Zillow listings. Use the Lovely Router data tools: each returns JSON and is billed per result.
- Docs (read first): https://lovelyrouter.com/docs/tools/find.md and https://lovelyrouter.com/docs/tools/run.md
- Plan first: POST https://lovelyrouter.com/v1/tools/suggest with `{"task": "<my task in plain words>"}` (free). It returns the tools to run in order, each with an example `input`, the `input_required` fields, an estimated cost and a ready-made `run` request. Replace the example values with my task's; if a field is unclear, read the tool with GET https://lovelyrouter.com/v1/tools/<id>. To browse instead, POST https://lovelyrouter.com/v1/tools/discover searches the catalog.
- Show me the plan and its estimated cost (`total_est_cost_usd`) before running anything large.
- Run: POST https://lovelyrouter.com/v1/tools/<id>/run with `{"input": {...}, "max_results": N}`. A 200 has the finished run with `items`; a 202 means it is still running, so poll the `poll` path until `status` is `succeeded`, `failed`, `timed_out` or `stopped`.
- Only delivered results are billed. Keep max_results small on the first run, check the output, then scale up.
- If you support MCP, connect https://lovelyrouter.com/mcp instead (Streamable HTTP, same key; https://lovelyrouter.com/docs/tools/mcp.md) and use suggest_tools, get_tool and run_tool.
- Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `Authorization: Bearer $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys.
- Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large.
- Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt.
My task: <the inputs (links, keywords or accounts) and how many results you need>How it works
List your ZIP codes
Pick the ZIP codes of the neighborhoods you watch: where you own, where you want to buy, where your clients live.
Run the tool with a cap
Send them to
POST /v1/tools/zillow-listings/runwithoperationset tobuy,rentorsold,maxItemsfor the number of listings andmax_resultsas the run cap. The run holds its maximum cost from your balance and returns the listings as JSON.Compute and compare
Per ZIP code, compute the median price, price per square foot of living area and the gap to the Zestimate. Save it with a date and compare month over month.
Get a ZIP code's listings with one request
Search Zillow listings takes ZIP codes in locations. Narrow with minPrice and maxPrice (0 means any; for rent the price is per week, as the field is labeled). For sales, agentListed and ownerPosted choose which kinds of listings come back:
curl https://lovelyrouter.com/v1/tools/zillow-listings/run \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{
"input": {
"locations": ["78701"],
"operation": "buy",
"maxItems": 5
},
"max_results": 5
}'A run still going after 60 seconds returns 202; Run a tool shows how to poll. One run can return up to 200 listings.
What each listing holds
| Field group | What you get |
|---|---|
| Price | The asking or sold price |
| Size | Beds, baths and living area |
| Location | Address |
| Valuation | Zillow's Zestimate |
Recipes
On the first of the month, run buy for each ZIP code you track, store the median asking price and the count, and chart it.
Run rent and buy for the same ZIP code, and compare typical rent with typical price per bedroom to find areas that pencil out for a rental.
Run sold for the ZIP code, keep homes with similar beds, baths and living area, and use their prices as comparables.
For buy results, compute asking price against the Zestimate and list those priced far above it.
Set minPrice and maxPrice, and send yourself the new listings every morning.
Prefer plain words? Connect the MCP server and tell Claude Code or Cursor: "For ZIP codes 78701, 78702 and 78704, get 40 homes for sale each and show median price, median living area and median gap to the Zestimate. Set max_results to 120."
Pair it with other sources
Listings are the supply side. Around them:
Zillow homes for sale, for rent or recently sold in ZIP codes: price, beds, baths, living area, address, Zestimate.
Airbnb listings for a place and dates: price for the stay and per night, rating, reviews, host, amenities, house rules, photos.
Find local businesses on Google Maps by keyword and location: name, address, phone, website, rating, review count, opening hours, coordinates.
News articles from Google News for a search (operators work: "exact phrase", OR, -word, site:, intitle:), optionally within a time window: title, source, date and the article's link on the publisher's site.
Google Trends interest over time and by region for a keyword.
airbnb-listingsshows short-term rental pricing, to compare with long-term rent.google-maps-placeslists the shops, schools and amenities around a property.google-newstracks local news that moves a market, such as a new employer.google-trendsshows whether search interest in a city is growing.
For travel and property data together, see travel and real estate data.
What you pay
You pay per listing: starting a run holds its maximum cost, the per-call fee plus the per-listing fee times max_results, and the run settles to what it returned. The rest of the hold goes back to your balance. A run that fails or times out pays only for the listings it delivered, and a run refused at the start costs nothing.
Tracking 12 ZIP codes at 50 listings each is billed as 600 listings. There is no subscription and no monthly minimum: top up from $5, and one balance pays for tools and models. The card above shows today's price; pricing lists every tool.
Frequently asked questions
Can I search by city or address?+
This tool searches by ZIP code only. Put ZIP codes in locations.
Can I get sold homes and rentals?+
Yes. operation accepts buy, rent or sold.
Does it include the Zestimate?+
Yes. The description of the tool lists price, beds, baths, living area, address and Zestimate for each listing.
How many listings can I get?+
maxItems sets the number per run, and the run cap max_results goes up to 200 listings. For more, start several runs.
Can I filter by price?+
Yes, with minPrice and maxPrice. Use 0 for any.
Do I need a subscription?+
No. You add credit to a prepaid balance and each run draws it down. Failed runs pay only for the results they delivered, and nothing renews automatically.
Studying a property market? See travel and real estate data, e-commerce intelligence and the tool catalog.