Trulia Property Scraper avatar

Trulia Property Scraper

Pricing

from $0.89 / 1,000 listings

Go to Apify Store
Trulia Property Scraper

Trulia Property Scraper

Scrape Trulia for-sale and rental listings by location or search URL. Extract price, beds, baths, sqft, address, coordinates, agent, photos, tags and more. Export as JSON, CSV, Excel.

Pricing

from $0.89 / 1,000 listings

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Trulia Property Scraper

Scrape Trulia for-sale and rental listings from any location or search URL — price, beds, baths, square footage, full address with coordinates, listing agent, photo galleries, tags and cross-listing IDs.

Pull structured Trulia listing data at scale — by state, city, or a pasted search URL, for sale or for rent. 40+ fields per home, ready-to-analyze. Export JSON, CSV, Excel.

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

Apify Actor: parsebird/trulia-property-scraper — scrapes Trulia for-sale / rental listings from Trulia's Next.js search data (no detail-page fetch). Call: ApifyClient("TOKEN").actor("parsebird/trulia-property-scraper").call(run_input={"start_url": "https://www.trulia.com/CA/San_Leandro/", "location": "NY", "listing_type": "buy", "results_wanted": 20, "proxyConfiguration": {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US"}}). Inputs: start_url (a Trulia search URL — takes priority), location (state code / city / "City, ST"), listing_type ("buy" or "rent", used only with location), results_wanted (int, default 20). Output: dataset of listings with url, price, listing_status, listing_type, date_listed, property_type, beds, baths, sqft, lot_size, address, city, state, zip_code, full_address, latitude, longitude, listing_by, listing_agent, broker, feature_highlights, review, tags, description, image_url, photo_count, photo_urls[], has_3d_tour, has_video, is_auction, listing_id, zpid, home_id, composite_id, tracking_summary, search_page, search_location_id. API docs: https://docs.apify.com/api/v2 Token: https://console.apify.com/settings/integrations

What does Trulia Property Scraper do?

Give it a search URL or a location. It walks Trulia's search results, page by page, and returns a structured record per listing:

  • Priceprice ("$559,000"), priceValue (559000)
  • Status & typelisting_status ("Active for sale"), listing_type ("For sale" / "For rent"), date_listed
  • Propertyproperty_type (SINGLE_FAMILY_HOME, CONDO, MOBILE_MANUFACTURED, …), beds, baths, sqft, lot_size
  • Locationaddress, city, state, zip_code, full_address, latitude, longitude
  • Listing sourcelisting_by, listing_agent, broker
  • Mediaimage_url, photo_count, photo_urls[]
  • Highlightsfeature_highlights ("Year Built: 1920 | Lot Size: 5,400 sqft"), review (a one-line readable summary), tags ("NEW, OPEN SAT, FORECLOSURE")
  • Flagshas_3d_tour, has_video, is_auction
  • IDslisting_id, zpid, home_id, composite_id, search_location_id, search_page

Input parameters

ParameterTypeRequiredDefaultDescription
start_urlstringNohttps://www.trulia.com/NY/Direct Trulia search URL to scrape. Takes priority over location.
locationstringNoNYState code, city, or "City, ST" — used to build a URL when start_url is omitted.
listing_typestringNobuybuy or rent. Only used with location.
results_wantedintegerNo20Maximum listings to collect.
proxyConfigurationobjectNoRESIDENTIAL / USTrulia needs a residential proxy (PerimeterX).

If both start_url and location are omitted, the actor uses NY. When both are provided, start_url wins.

Output example

{
"url": "https://www.trulia.com/home/123-example-st-san-leandro-ca-94577-12345678",
"price": "$559,000",
"priceValue": 559000,
"listing_status": "Active for sale",
"listing_type": "For sale",
"date_listed": "2026-02-18T00:00:00+00:00",
"property_type": "SINGLE_FAMILY_HOME",
"beds": "3",
"baths": "2",
"sqft": "1405",
"lot_size": "5,400 sqft",
"address": "123 Example St",
"city": "San Leandro",
"state": "CA",
"zip_code": "94577",
"full_address": "123 Example St, San Leandro, CA 94577",
"latitude": 37.7242,
"longitude": -122.1561,
"listing_by": "Listing by: ABC Realty",
"listing_agent": "Jane Smith",
"broker": "ABC Realty",
"feature_highlights": "Year Built: 1920 | Lot Size: 5,400 sqft",
"review": "$559,000 | 3 Beds, 2 Baths, 1405 sqft | 123 Example St, San Leandro, CA 94577 | Year Built: 1920",
"tags": "OPEN SAT, 11-1PM, NEW",
"image_url": "https://www.trulia.com/pictures/thumbs_4/zillowstatic/fp/example-full.jpg",
"photo_count": 24,
"photo_urls": ["https://www.trulia.com/pictures/thumbs_5/zillowstatic/fp/example-full.jpg"],
"has_3d_tour": "No",
"has_video": "No",
"is_auction": "No",
"listing_id": "12345678",
"zpid": "12345678",
"home_id": "12345678_ZPID",
"composite_id": "7012345678-2012345678",
"tracking_summary": "Listing Price: $559,000 | Listing Status: Active for sale",
"search_page": 1,
"search_location_id": "abc123"
}

Use cases

  • Market analysis — price, sqft and days-on-market trends for any area
  • Lead generation — active listings with agent and brokerage names
  • Comps & valuation — pull recent listings around a subject property
  • Investor sourcing — filter for foreclosures, auctions, price cuts via tags
  • Data pipelines — clean JSON of listings, coordinates and photos for your database or map

How it works

  1. A search URL is built from start_url, or from location + listing_type.
  2. A warmed residential session loads each results page; the listing data is read from Trulia's embedded __NEXT_DATA__ — no per-listing page fetch, so it stays fast and cheap.
  3. Pages are collected (40 listings each) and de-duplicated until results_wanted is reached.
  4. If Trulia's bot protection challenges the session, the proxy IP is rotated and the session re-warmed.
  5. Progress is checkpointed so a platform migration mid-run resumes without duplicates.

Pricing

EventFreeBronze / Silver / Gold
listing$0.00099$0.00089

One event per listing saved. 1,000 listings on the Free plan ≈ $0.99.

FAQ

Do I need a proxy? Yes — Trulia uses PerimeterX. The default (Apify Proxy, RESIDENTIAL, US) works out of the box.

Can I scrape rentals? Yes. Set listing_type to rent, or pass a /for_rent/… URL as start_url.

How many listings can I get per location? Trulia paginates its search results; the actor follows the pages up to results_wanted. Very large areas are capped by Trulia's own result limit.

Does it fetch individual property pages? No. Everything in the output comes from the search results data, which keeps the cost low. Fields that only appear on a property's own page (HOA, full amenity list) are not included.

Can I schedule it? Yes. Use Apify Schedules to re-run daily and monitor new listings in an area.

This actor collects publicly available real-estate listing data from Trulia's search pages. It does not access private accounts or bypass paywalls. You are responsible for using the exported data in compliance with Trulia's terms, applicable laws (including real-estate data licensing and MLS rules), and any contractual obligations. Use it for lawful purposes such as market research and analytics.