Trulia Scraper avatar

Trulia Scraper

Pricing

from $2.20 / 1,000 listings

Go to Apify Store
Trulia Scraper

Trulia Scraper

Collect Trulia for-sale, for-rent, and sold listings as structured data from search URLs or location queries, with optional property-page details such as description, photos, agent, and price history.

Pricing

from $2.20 / 1,000 listings

Rating

0.0

(0)

Developer

Scraptivo

Scraptivo

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Share

Trulia Scraper collects for-sale, for-rent, and sold listings from Trulia and turns them into structured data for market research and real-estate lead generation. Provide a location query like "Austin, TX" or a Trulia search URL, run the Actor, and export price, beds, baths, address, property type, and agent details to JSON, CSV, or Excel. Use it to monitor price changes, build lead lists, and track sold comps. Scraptivo pricing starts at $0.0025 per listing on the free plan.

Trulia Scraper — input to structured data

What can you automate with Trulia Scraper?

  • Build targeted lead lists — pull agent and broker names alongside every listing for outreach and CRM enrichment.
  • Monitor price changes — track asking prices over time with per-property price history and estimated values.
  • Enrich listings with property-page details — collect full descriptions, photo sets, features, and listing dates in one run.
  • Track sold comps — capture sold listings and sold prices to support valuations and investment decisions.
  • Keep a fresh rental inventory — collect for-rent listings with rent, beds, and baths for market analysis.
  • Schedule recurring collection — run daily or weekly and export to JSON, CSV, or Excel automatically.

Who is this scraper for?

TeamWorkflow
Real-estate agents and brokersBuild prospecting lists of active listings and agent contacts by city or ZIP.
Lead-generation agenciesCollect property records plus agent and broker names for outbound campaigns.
Investors and appraisersPull sold comps, price history, and estimated values for valuations.
Market researchersBenchmark prices, inventory, and property mix across neighborhoods.

What data can you collect from Trulia?

Data groupExample fieldsHow it helps
Locationaddress, city, state, zipCode, neighborhoodMap and segment listings by market.
PricingformattedPrice, price, status, propertyTypeCompare asking prices and market type.
Size and layoutbedrooms, bathrooms, livingArea, yearBuiltFilter by property size and age.
Agent and brokeragentName, brokerName, mlsAttributionIdentify listing parties for outreach.
Media and detailsimageUrl, description, photos, features, priceHistoryEnrich listings when details are enabled.

Some detail fields, such as the full description, photos, and price history, are only populated when you enable includeListingDetails. Fields like agentPhone depend on what Trulia exposes on the property page.

How to use Trulia Scraper

  1. Open Trulia Scraper on Apify Store.
  2. Enter a searchQueries value such as "Austin, TX" or a 5-digit ZIP, or paste a Trulia search or listing URL into startUrls.
  3. Choose searchType (FOR_SALE, FOR_RENT, or SOLD) and set maxListings.
  4. Optionally enable includeListingDetails to collect descriptions, photos, agents, and price history.
  5. Run the Actor and export the results to JSON, CSV, or Excel from the Output tab.

Minimal input example:

{
"searchQueries": ["Austin, TX"],
"searchType": "FOR_SALE",
"maxListings": 10,
"includeListingDetails": true,
"detailConcurrency": 5,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Example workflow

Build a weekly list of new listings for a target ZIP

  1. Run searchQueries entry "78744" with searchType set to FOR_SALE every Monday.
  2. Keep the records matching your price and bedroom criteria in a spreadsheet.
  3. Send new rows to Google Sheets or your CRM.
  4. Deduplicate across runs using the stable listingId field.

Automate and integrate your results

Run Trulia Scraper on a schedule from the Apify Console Schedules tab — daily is usually enough for real-estate data, weekly for slower markets. Add a webhook on run completion to push fresh listings into your CRM, database, or notification pipeline. Connect the dataset to Google Sheets, Make, Zapier, or Slack, or call the Actor from your own code via the API:

curl -X POST "https://api.apify.com/v2/acts/scraptivo/trulia-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchQueries": ["Austin, TX"], "searchType": "FOR_SALE", "maxListings": 10}'

For deduplication across runs, key on the stable listingId field, which uniquely identifies each property.

Input reference

FieldTypeRequiredDefaultWhat it controls
startUrlsarrayNoTrulia search or listing URLs. Search URLs keep any filters already in the path.
searchQueriesarrayNoLocation queries such as "Austin, TX" or a ZIP, used when no URL is provided.
searchTypeenumNoFOR_SALEMarket applied to searchQueries only: FOR_SALE, FOR_RENT, or SOLD.
maxListingsintegerNo10Maximum listings to collect across all URLs and queries (0 = unlimited).
includeListingDetailsbooleanNofalseOpen property pages for description, photos, agent, price history, and features.
detailConcurrencyintegerNo5Parallel property-page fetches when details are enabled (1–20).
proxyConfigurationobjectNoresidentialProxy settings; residential proxies are the default.

Output example

{
"url": "https://www.trulia.com/home/1042-rosemont-st-1-austin-tx-78723-401885104",
"listingId": "401885104_ZPID",
"listingType": "RESALE",
"status": "for sale",
"propertyType": "single-family home",
"address": "1042 Rosemont St #1, Austin, TX 78723",
"city": "Austin",
"state": "TX",
"zipCode": "78723",
"neighborhood": "Windsor Park",
"formattedPrice": "$439,900",
"price": 439900,
"bedrooms": 3,
"bathrooms": 3.5,
"livingArea": "2,536 sqft",
"yearBuilt": 2022,
"imageUrl": "https://www.trulia.com/pictures/thumbs_4/zillowstatic/fp/66ce9ac7553744231dfea16f984f61b4-full.jpg",
"description": "Spacious, modern East Austin opportunity! This newly built home offers a bright open-concept layout...",
"dateListed": "2026-08-22T04:09:44+00:00",
"estimatedValue": 436200,
"estimatedRent": 3041,
"agentName": "Steven Robertson",
"agentPhone": "(XXX) XXX-XXXX",
"brokerName": "Real Estate Diplomats",
"mlsAttribution": "NTREIS, MLS#21365155",
"photoCount": 15,
"photos": [
"https://www.trulia.com/pictures/thumbs_5/zillowstatic/fp/66ce9ac7553744231dfea16f984f61b4-full.jpg"
],
"features": [
{ "name": "Parking", "value": "1 Car Garage" },
{ "name": "Living Area", "value": "2536 Square Feet" },
{ "name": "Year Built", "value": "2022" }
],
"priceHistory": [
{ "date": "2026-08-22T00:00:00+00:00", "event": "Listed For Sale", "price": 439900 },
{ "date": "2025-12-11T00:00:00+00:00", "event": "PriceChange", "price": 499999 }
],
"detailsFetched": true,
"sourceQuery": "Austin, TX"
}

How much does it cost to scrape Trulia?

Trulia Scraper uses pay-per-event billing. The primary listing event costs $0.0025 per listing ($2.50 per 1,000 listings), available on the free plan and as low as $0.0022 per listing on higher plans. When includeListingDetails is enabled, a listing-details event adds $0.0025 per listing for property pages that are successfully fetched. Each run also incurs a one-time $0.00005 Actor Start fee.

For example, 1,000 listings cost about $2.50, and 10,000 listings about $25. A run with details enabled costs roughly double, since the listing-details event charges in addition to the listing event.

Reliability and responsible use

Trulia Scraper defaults to residential proxies and retries automatically when Trulia presents an anti-bot challenge. Some detail fields are conditional and only appear when Trulia exposes them on the property page, so individual records may have empty values. The Actor collects publicly available listing data; you are responsible for using it in accordance with Trulia's terms and applicable law.

Frequently asked questions

Can I scrape sold listings and rentals from Trulia?

Yes. Set searchType to SOLD or FOR_RENT when using searchQueries, or paste a Trulia /sold/ or /for_rent/ URL into startUrls. Sold listings include sold prices, and rentals include rent where Trulia exposes it.

Can I schedule Trulia Scraper to run automatically?

Yes. Create a recurring schedule from the Apify Console Schedules tab or via the API. A daily schedule keeps listings fresh; weekly works for slower markets.

What counts as one result?

One listing event is charged for each property record pushed to your dataset. If includeListingDetails is on and a detail page is fetched successfully, an additional listing-details event is charged for that same property.

Why are some fields empty?

Some fields, including description, photos, features, and priceHistory, are only populated when includeListingDetails is enabled. Others, such as agentPhone or estimatedValue, appear only when Trulia exposes them on the property page.

How do I avoid duplicate records?

Key on the stable listingId field, which uniquely identifies each property. If you write results into an existing dataset by datasetId, Apify also deduplicates identical records automatically.

Do I need a proxy?

Residential proxies are the default and recommended. Trulia may show an anti-bot challenge on some IPs; the Actor rotates proxies and retries automatically.

Support and custom workflows

Need a different field, source, or delivery workflow? Contact Scraptivo at scraptivo@gmail.com. Include the Actor name, a sample URL, the required fields, and your expected volume so we can assess the request.