trulia.com APItrulia.com ↗
Access Trulia property listings, price history, photos, nearby schools, and local amenities via a structured API. Search for-sale, rental, and sold homes by location.
curl -X GET 'https://api.parse.bot/scraper/f436db0a-1bb1-4689-87b4-8f9e3d5e8993/search_for_sale_listings?page=1&location=New+York%2C+NY' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for properties for sale by location (city, state). Returns up to 40 listings per page with property details including price, bedrooms, bathrooms, and listing status.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| locationrequired | string | City and state, e.g. 'New York, NY' |
{
"type": "object",
"fields": {
"data": "object containing searchResultMap with homes array",
"page": "integer current page number",
"totalHomes": "integer total number of matching listings"
},
"sample": {
"data": {
"data": {
"searchResultMap": {
"homes": [
{
"url": "/home/9010-214th-st-queens-village-ny-11428-32149564",
"price": {
"price": 899000,
"formattedPrice": "$899,000"
},
"bedrooms": {
"value": 4,
"formattedValue": "4 Beds"
},
"location": {
"city": "Queens Village",
"zipCode": "11428",
"stateCode": "NY",
"streetAddress": "9010 214th Street"
},
"bathrooms": {
"value": 2.5,
"formattedValue": "2.5 Baths"
},
"__typename": "HOME_Property",
"floorSpace": {
"formattedDimension": "1,334 sqft"
},
"currentStatus": {
"isActiveForSale": true
}
}
],
"__typename": "SEARCH_Result"
}
},
"page": 1,
"totalHomes": 23056
},
"status": "success"
}
}About the trulia.com API
This API exposes 10 endpoints covering Trulia's real estate data, from paginated property searches to detailed listing records. search_for_sale_listings and search_for_rent_listings return up to 40 properties per page filtered by city and state, while get_listing_details delivers a single property's price, coordinates, floor space, features, media, and full price history in one response.
Search and Listing Endpoints
Three search endpoints — search_for_sale_listings, search_for_rent_listings, and search_sold_listings — accept a location string (city and state, e.g. 'Austin, TX') and an optional page integer for pagination. Each returns a data object with a searchResultMap containing a homes array, alongside totalHomes so you can calculate how many pages to walk. Each page contains up to 40 listings with price, bedroom and bathroom counts, and listing status.
Property Detail Endpoints
get_listing_details takes a Trulia URL path (e.g. /home/<address-slug-and-id>) and returns the most complete record: price with formattedPrice and currencyCode, location with street address, city, state, ZIP, and coordinates, floorSpace with formattedDimension, a features object with categorized home attributes, a media object with photos and map images, and a priceHistory array of dated events. If you only need photos, get_listing_photos returns an array of photo objects with multiple resolution URLs in both JPEG and WebP formats with captions. get_property_price_history returns the same history as a standalone array, with each entry carrying formattedDate, event type, source, and a price object.
Neighborhood and Utility Endpoints
get_local_amenities returns resident-survey data tied to a property's neighborhood: a localUGC object with a formattedQuestionAnswers array covering walkability, safety, and community topics, plus an ndpUrl linking to the full neighborhood detail page and a boolean ndpActive flag. get_nearby_schools and get_similar_homes are also available via property URL path. The get_mortgage_calculator endpoint takes price, down_payment, and optional rate and term parameters and returns monthly_payment, total_interest, and total_payment calculated via standard amortization.
Pagination and Input Notes
All three search endpoints use the same pagination pattern: omit page or pass 1 for the first page, then increment using totalHomes divided by 40 to find the ceiling. Location input must be city and state in plain text — ZIP code or coordinate-based search is not supported by the current endpoints.
- Aggregate for-sale and rental listings by city to build a real estate search feed
- Track price history events from
get_property_price_historyto chart how a listing's price changed over time - Pull
get_listing_photosfor all resolutions to populate a property image gallery or comparison tool - Use
get_local_amenitiessurvey data to surface neighborhood safety and walkability scores alongside listings - Feed
get_mortgage_calculatorwith a property's price to show buyers estimated monthly payments at different rates and terms - Compare recently sold prices via
search_sold_listingsagainst active listings to build a comparative market analysis tool - Retrieve
get_nearby_schoolsdata to filter or rank properties for families with school-age children
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Trulia have an official developer API?+
What does `get_listing_details` return beyond basic price and address?+
get_listing_details returns a features object with categorized home attributes, a media object containing photos and map images, a floorSpace object with a formattedDimension field, a priceHistory array of dated listing events, and a location object that includes latitude/longitude coordinates alongside the street address, ZIP code, and state code.Can I search by ZIP code or geographic coordinates instead of city and state?+
search_for_sale_listings, search_for_rent_listings, and search_sold_listings — require a city-and-state string as the location parameter. You can fork this API on Parse and revise it to add a ZIP-code or coordinate-based search endpoint.Does the API expose listing agent contact details or open house schedules?+
How does pagination work across the search endpoints?+
totalHomes integer representing the full result count. Divide totalHomes by 40 and round up to get the total number of pages, then pass the page integer parameter to walk through them sequentially.