Is There a Trulia API? How to Get Listing Data

Search for "Trulia API" and the first thing Google hands you is a Trulia press release announcing an open API for all developers. Encouraging. Click through and you land on a newsroom page; look for the developer portal it points at and you find nothing, because developer.trulia.com no longer resolves. Not a 404. The hostname is simply gone.
Meanwhile the AI summaries stitched together from that same press release will tell you, confidently, that the Trulia API gives you "sale listing data." That claim has been wrong for a decade, and it was never quite right even when the API was live.
Here is the accurate version, with receipts, followed by the part nobody writes down: what you can actually run today.
The short answer
No. Trulia has no public API in 2026. There is no developer portal, no key to request, no sandbox, and no Trulia product anywhere in parent company Zillow Group's developer catalog.
The twist that makes this question worth more than one paragraph: Trulia genuinely did run an official public API for roughly a decade. And if you had it today, it still would not solve your problem, because it never returned a single listing.
Trulia did have an API. Here is exactly what it returned
The Internet Archive has the developer portal captured from February 2007 onward, running on Mashery, the API-management platform of that era. The homepage is unambiguous about the scope. The Trulia API consisted of exactly two libraries:
- LocationInfo: neighborhoods in a city, cities in a state, counties in a state, a list of all 50 states, and ZIP codes in a state, with longitude and latitude for most locations.
- TruliaStats: average and median listing price of homes on Trulia, the same figures broken out by bedroom count, the number of listed homes on Trulia, that number by bedroom count, and the percent of total Trulia traffic going to a location.
Read that list again with a builder's eye. There is no endpoint that returns a property. No address, no photos, no beds and baths for a specific home, no listing ID you could follow anywhere. An API that returns the median listing price of a ZIP code is a market-research tool, not a listings API, and the difference is the entire ballgame if you are building a search product, a lead engine, or an investor dashboard.
The confusion is easy to trace. Trulia's own copy described TruliaStats as statistics pertaining to "Trulia traffic and for sale listing data." Skim that sentence and you hear "for sale listing data." Read it properly and it says statistics about for-sale listings. Every downstream summary since has repeated the skim.
If you want independent corroboration rather than an archived web page, the surviving open-source clients tell the same story. A Python wrapper for the Trulia REST API on GitHub exposes precisely two groups of calls: location hierarchies, and traffic and listing statistics by city, county, neighborhood, state, or ZIP. That is the whole surface anyone ever had.
The terms were tighter than the data
Even that modest dataset came fenced. The portal capped usage at 5,000 calls per day and 2 queries per second per key, granted the API for non-commercial use only, and required every site or app using it to display a "Powered by Trulia.com" logo under the attribution guidelines. So the API that did not return listings also could not legally be used in a commercial product. Worth knowing before you go hunting for a way to resurrect it.
When the door actually closed
You can date this precisely from the archive rather than guessing. The last successful capture of developer.trulia.com is from 15 July 2016. By 19 November 2016 the same URL was answering with a 301 redirect to trulia.com/tools/, and it kept redirecting through 2021. Today, as of this writing, the hostname does not resolve at all.

The timing is not a coincidence. Zillow announced its acquisition of Trulia on 28 July 2014 in a deal valued at $3.5 billion, and the transaction closed on 17 February 2015. The developer portal went dark the following year. Portals do not retire APIs because nobody used them; they retire APIs because the data became the business. Once Trulia was inside Zillow Group, a free public feed of anything adjacent to listings stopped making sense on the org chart.
What Zillow Group offers instead
This is where most articles wave vaguely at "the Zillow API" and stop. The specifics matter, so here they are.
Zillow Group's developer site publishes a catalog of roughly seventeen APIs. They cover mortgage rates, mortgage leads and loan-origination plumbing, rentals feeds and rental leads, agent and lender reviews, public records, neighborhood data, real estate metrics, transaction management, Zestimates, and MLS listings through Bridge. Not one of them is a Trulia product. Trulia is not mentioned in the catalog at all, and the performance-reporting URL that still surfaces in search results for this question returns a 404.
The closest thing to a listings feed is the Bridge MLS Listings API, which serves RESO-normalized MLS data to brokers and developers. Read its access requirements before you get excited: the platform is, in its own words, "currently invite only." It is built for licensed participants with an MLS relationship, not for a developer who wants Trulia's search results in JSON by Friday. We walked the same road in more detail in how to get property data from Zillow using an API, and the shape of the answer is identical on the Trulia side of the group.
Your four real options in 2026
Every route to Trulia data is a trade between money, engineering time, and how often something wakes you up. The honest comparison:
| Option | Pricing | Setup effort | Where it hurts |
|---|---|---|---|
| Official Trulia API | Doesn't exist | n/a | Portal offline since 2016; the hostname no longer resolves. Nothing to sign up for. |
| Zillow Group Bridge MLS Listings | Not publicly listed | Weeks, if you qualify | Invite only, MLS-participant oriented, and it is MLS data rather than Trulia's own search surface. |
| DIY scraper (headless browser plus proxies) | "Free," plus proxies and your time | Days to build, forever to maintain | Trulia answers unadorned scripted requests with a 403 before you parse a single byte. Then come the layout changes. |
| Scraper marketplaces and per-call scrapers | Roughly $30 per 1,000 results on one Apify actor; 10 credits per call on ScrapeHero's Trulia search API | Hours | You still own schemas, dedup, and monitoring. Actors break when the site shifts, and per-result pricing gets expensive at survey scale. |
| Hosted REST endpoints (RealtyAPI) | On the subscription plans, currently from $20/month for 20,000 requests | Minutes | Covers what Trulia itself shows, so US only, and it sits on the paid plans rather than the free tier. |
That 403 in the third row is not a rhetorical flourish. Fetching trulia.com/legal/terms/ with a plain command-line client returns 403 Forbidden. You cannot read Trulia's terms of use with a script, which tells you what a script trying to read ten thousand listings is in for. If you want the general version of this argument, we laid it out in web scraping vs API. Short version: scraping wins when the data has no API at any price and your volume is tiny. It loses the day uptime matters.
Here is what the scraping route looks like when a vendor demos it, which is a fair way to judge how much machinery sits between you and the data:
Is scraping Trulia legal?
The question everyone asks quietly. Scraping publicly visible data is not automatically illegal in the United States, and courts have gone back and forth on the point for years. None of that ambiguity makes your Tuesday deploy more reliable when the bot wall tightens.
What you can check yourself is Trulia's robots.txt, which is public and specific. It fully disallows several named crawlers by user agent, and for everyone else it blocks a long list of paths including /api/, /account/, /signup, /login, /_next, and the internal property-estimate JSON endpoints. That is a site telling automated clients where it does not want them, in writing, before any terms-of-use argument starts. We cover the wider landscape in is website scraping legal? and explain how we handle sourcing in is RealtyAPI legal?
The practical read has not changed in years: the legal risk is real but ambiguous, while the engineering pain is certain. Most teams do not quit scraping because a lawyer called. They quit because of maintenance.
What RealtyAPI's Trulia endpoints cover
RealtyAPI runs hosted Trulia endpoints as part of its real estate data platform. You call a normal REST endpoint with a key, and proxies, browser fingerprints, and anti-bot plumbing stop being your problem. Ten endpoints cover the surface:
| Endpoint | What it does |
|---|---|
GET /search/bylocation | Search by city, neighborhood, ZIP, or free text, with the full filter set below. The only search endpoint that paginates. |
GET /search/byzip | Search a single ZIP code directly |
GET /search/bycoordinates | Search around a lat/long within a radius in miles |
GET /search/byurl | Paste a Trulia search URL, get the results behind it as JSON |
GET /details/byaddress | Full property details from a free-text address |
GET /details/byid | Full property details from a Trulia listing ID |
GET /details/byurl | Full property details from a Trulia property URL or path |
GET /autocomplete | Resolve a typed string into cities, neighborhoods, schools, and addresses |
GET /similar | Comparable homes for a given property |
GET /amenities | Nearby restaurants, groceries, nightlife, cafes, shopping, arts, and fitness |

Auth is a single x-realtyapi-key header and responses are JSON. Search results carry price, beds and baths, photos, coordinates, and listing status; the details endpoints add features, taxes, and price history for a single property. Every request costs one credit, so a paginated sweep costs one credit per page rather than one per listing, which is the pricing difference that matters when you compare it to per-result scraper billing.
The filters that make it feel like Trulia
A generic national listings API gives you a bounding box and wishes you luck. These are the parameters on /search/bylocation that let you ask a real question:
searchType:FOR_SALE,FOR_RENT, orSOLD. The sold side is the one people forget, and it is where comps live.propertyType: comma-separated fromhouse,condo,townhouse,apartment,multi_family,land, andmobile.minPriceandmaxPrice, plusminBedrooms/maxBedroomsandminBathrooms/maxBathrooms.minSquareFeet/maxSquareFeetandminYearBuilt/maxYearBuiltfor anything that turns on building age or size.sort:relevance,price_low,price_high,newest,lot_size,sqft, orprice_per_sqft. Usenewestif you are building alerts.resultCountup to 200 per page, andpageto walk past the first one.
Quick start: Trulia listings in three requests
Base URL: https://trulia.realtyapi.io. Auth: your key in the x-realtyapi-key header. One note before you start. Trulia sits in RealtyAPI's premium set, so it is available on the subscription plans rather than the free tier; the pricing page has the current numbers and the free tier is still the right place to feel out request and response shapes on the standard APIs first. The docs cover key setup in about two minutes.
1. Resolve the place
Autocomplete turns whatever a human typed into something the search understands, and it returns cities, neighborhoods, schools, and addresses with the details attached to each suggestion.
curl "https://trulia.realtyapi.io/autocomplete?query=Wicker%20Park&searchType=FOR_SALE" \
-H "x-realtyapi-key: YOUR_KEY"
You can skip this step when you already trust your input. /search/bylocation resolves the location itself, so "Austin, TX" or "78704" works directly. Autocomplete earns its credit when the string came from a search box and might be a school name, a misspelling, or a neighborhood that three cities share.
2. Search
curl "https://trulia.realtyapi.io/search/bylocation?location=Austin,%20TX&searchType=FOR_SALE&propertyType=house,townhouse&minBedrooms=3&maxPrice=650000&sort=newest&resultCount=100" \
-H "x-realtyapi-key: YOUR_KEY"
Each result carries the price, beds and baths, photos, coordinates, and listing status, along with the identifier you will use next. Ask for up to 200 per page and add &page=2 to continue. If you are searching by ZIP, coordinates, or a pasted Trulia URL instead, note the asymmetry: those three endpoints take resultCount but not page, so pull the count you need in one call rather than planning to paginate.
3. Pull the detail
curl "https://trulia.realtyapi.io/details/byid?id=83157434" \
-H "x-realtyapi-key: YOUR_KEY"
Details come back with price, beds and baths, photos, location, features, taxes, and price history. Two variants save you a lookup: /details/byaddress takes free text like 8390 SW 72nd Ave, Miami, FL 33143, and /details/byurl takes a Trulia property URL or just the path, which is handy when your input is a link somebody pasted into Slack.

A production-ish Python loop
The version with pagination and the error handling you actually want, because any API fronting live web data will occasionally have a bad minute upstream:
import time
import requests
BASE = "https://trulia.realtyapi.io"
HEADERS = {"x-realtyapi-key": "YOUR_KEY"}
def get(path, **params):
for attempt in range(3):
r = requests.get(BASE + path, params=params, headers=HEADERS, timeout=60)
if r.status_code in (429, 502, 503, 504):
time.sleep(2 ** attempt)
continue
r.raise_for_status()
return r.json()
raise RuntimeError(f"{path} failed after 3 attempts")
def search(location, pages=5, **filters):
seen = set()
for page in range(1, pages + 1):
data = get("/search/bylocation", location=location,
page=page, resultCount=100, **filters)
# Be liberal about where the array lives; normalize once, here.
items = data if isinstance(data, list) else (
data.get("results") or data.get("listings") or data.get("data") or []
)
if not items:
break
for item in items:
key = item.get("id") or item.get("url")
if key and key not in seen:
seen.add(key)
yield item
for home in search("Austin, TX", searchType="FOR_SALE",
propertyType="house", minBedrooms=3,
maxPrice=650000, sort="newest"):
print(home.get("id"), home.get("price"))
Two habits worth stealing from that snippet. Retry on the transient status codes only, so a genuine 400 fails loudly instead of being retried three times into the same wall. And keep the shape-normalizing in one function, so when a field moves you change four lines rather than auditing your whole codebase. That principle is the real lesson of the dead Trulia API: every integration you own should be one layer thick.
From there it is your product. Diff sort=newest results against yesterday's for a new-listing alert, sweep searchType=SOLD by ZIP to build comps, or chain /details/byid into /similar and /amenities for a property page that has something to say about the neighborhood.
What you still can't get
Honesty section, because a comparison that only lists strengths is an advertisement.
These endpoints return what Trulia shows now: active listings, sold records it exposes, details, and the current filter set. They are not a time machine. The /details responses include price history for a property, but if you want your own longitudinal record across a whole market you capture snapshots on a schedule; the loop above plus cron and a database gets you further than you would think. Coverage follows Trulia, so this is a United States answer, not a global one. And it lives on the subscription plans, which is the honest trade for data that costs real money to keep flowing.
If your app needs more than one market or more than one source, pair it the way we approached the StreetEasy API question, whether Redfin has an API, what counts as a Realtor.com API, and the wider listing API comparison.
Key takeaways
- Trulia has no public API, and the answers you find are describing a dead one. The developer portal's last good capture is July 2016; today the hostname does not resolve.
- Even the original API never returned listings. LocationInfo gave you geography, TruliaStats gave you averages and traffic percentages. Non-commercial use only, with a mandatory "Powered by Trulia.com" logo.
- Zillow Group's catalog has no Trulia product. The nearest listings feed is Bridge MLS, which is invite only and aimed at MLS participants, not app developers.
- Scraper marketplaces price per result; hosted endpoints price per request. At roughly $30 per 1,000 results, a market-wide sweep costs real money before you have written a line of product code.
- Whatever route you pick, keep the integration one layer thick. The Trulia API disappeared with no migration path. Assume every upstream will, and make swapping it a one-file change.
If you are building something that needs US listing data, the fastest way to find out whether this fits is to run the three requests above against your own market and look at what comes back. Pick a ZIP you know well, sort by newest, and see whether the results match what you would see on the site. That comparison takes ten minutes and settles the question better than any article can, including this one. Start at the pricing page for a key.
