4.9 KiB
Reonomy URL Research - Findings
Date
2026-01-15
Confirmed URL Patterns
Search URL (with filters)
https://app.reonomy.com/#!/search/{search-id}
Example from user:
https://app.reonomy.com/#!/search/504a2d13-d88f-4213-9ac6-a7c8bc7c20c6
This URL points to a search with pre-applied filters (phone + email).
Property Ownership URLs
https://app.reonomy.com/#!/search/{search-id}/property/{property-id}/ownership
Examples from user:
https://app.reonomy.com/#!/search/504a2d13-d88f-4213-9ac6-a7c8bc7c20c6/property/2b370b6a-7461-5b2c-83be-a59b84788125/ownershiphttps://app.reonomy.com/#!/search/504a2d13-d88f-4213-9ac6-a7c8bc7c20c6/property/eac231fb-2e3c-4fe9-8231-fb2e3cafe9c9/ownershiphttps://app.reonomy.com/#!/search/504a2d13-d88f-4213-9ac6-a7c8bc7c20c6/property/b6222331-c1e5-4e4c-a223-31c1e59e4c0b/ownershiphttps://app.reonomy.com/#!/search/504a2d13-d88f-4213-9ac6-a7c8bc7c20c6/property/988d9810-6cf5-5fda-9af3-7715de381fb2/ownership
Key Insight: The search ID (504a2d13-d88f-4213-9ac6-a7c8bc7c20c6) encodes the filters.
Page Structure
Search Results Page
- Left panel: Map view
- Right panel: Scrollable list of property cards
- Each property card: Contains link to property details
Property Ownership Page
The user noted we need to collect from BOTH tabs:
- Builder and Lot Tab — Property details (SF, type, etc.)
- Owner Tab — Contact info (phones, emails)
User provided phone selector:
p.MuiTypography-root.jss1797.jss1798.MuiTypography-body2
This appears to be the class used for phone numbers on the Owner tab.
Key Findings
| Aspect | Finding |
|---|---|
| Direct URL construction works | ✅ Yes - URL contains search ID with encoded filters |
| Search ID encodes filters | ✅ 504a2d13-d88f-4213-9ac6-a7c8bc7c20c6 = phone + email filters |
| Ownership URL pattern confirmed | ✅ /search/{id}/property/{id}/ownership |
| OAuth redirect works | ✅ After login, redirects to desired ownership page |
| No URL parameters needed | ✅ Just use search ID from filtered search |
| Need to capture search ID once | ✅ Search with filters → capture search ID → reuse for all properties |
How to Generate Filtered Search URL
Current Understanding
We DON'T need to construct URL with query parameters. Instead:
-
Perform search once with filters applied in UI
- Log in to Reonomy
- Navigate to Advanced Search
- Check "Has Phone" filter
- Check "Has Email" filter
- Enter location
- Click search
- Copy the resulting search ID from URL
-
Reuse search ID for subsequent scrapes
- Construct ownership URLs using that search ID
- No need to repeat search in UI
Example Workflow
# Step 1: Manual search (one-time)
# User: Apply filters + search location
# Capture: https://app.reonomy.com/#!/search/504a2d13-d88f-4213-9ac6-a7c8bc7c20c6
# Extract: search ID = 504a2d13-d88f-4213-9ac6-a7c8bc7c20c6
# Step 2: Scrape properties using captured search ID
# Scraper: Navigate to ownership pages directly
# URL pattern: https://app.reonomy.com/#!/search/{search-id}/property/{id}/ownership
Scraper Data Extraction Requirements
Per user instructions: "collect all of the info under 'Builder and Lot' as well as 'owner'"
Builder and Lot Tab
- Property address
- City, State, ZIP
- Square footage
- Property type
- Year built (if available)
Owner Tab
- Owner names
- Phone numbers (using:
p.MuiTypography-root.jss1797.jss1798.MuiTypography-body2) - Email addresses
- Owner location
Next Steps for Scraper
-
Add input for pre-configured search ID
SEARCH_ID="504a2d13-d88f-4213-9ac6-a7c8bc7c20c6" node scraper.js -
Or add manual search capture flow
- Log in via browser
- Apply filters
- Search
- Extract search ID from URL
- Save to config file
-
Implement dual-tab extraction
- Extract from Builder and Lot tab
- Navigate to Owner tab (or use /ownership URL)
- Extract contact info using provided selector
-
Test with agent-browser
- Use new tool instead of Puppeteer
- Leverage refs, semantic locators, state save/load
Status
| Component | Status |
|---|---|
| URL pattern decoded | ✅ Complete |
| Filter encoding | ✅ Search ID encodes phone+email |
| OAuth flow | ✅ Working |
| Property access | ✅ Direct ownership URLs work |
| Selectors | ✅ User provided CSS class for phones |
| Next step | ⏳ Wait for user confirmation to build scraper |
Notes
- Direct URL construction via query strings is NOT needed
- Search ID from a filtered search can be reused infinitely
- No API access required — just capture search ID from UI once
- User wants to use agent-browser instead of Puppeteer
- Need to extract data from BOTH tabs (Builder and Lot + Owner)