@rent-scraper/api 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs ADDED
@@ -0,0 +1,2461 @@
1
+ import u from"dayjs";import*as M from"cheerio";import{getValueFromConfigFile as O}from"@rent-scraper/utils/config";import m from"axios";import{g as A,a as X}from"./shared/api.ucFn6Zgb.mjs";import{parseError as F,throwError as S,getRandomArrayValue as q}from"@rent-scraper/utils";import Y from"puppeteer";const N=async(e,t)=>{const{fromFile:r=!0}=t??{};return r?(await O("redfin","regionIds"))[String(e)]??await P(e):await P(e)},y=e=>JSON.parse(e.replace("{}&&","")),P=async e=>{const t="https://www.redfin.com/stingray/do/rental-location-autocomplete",r={"Content-Type":"application/json; charset=utf-8","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"},o=`?location=${e}&v=2`;try{const a=`${t}${o}`,i=await(await fetch(a,{method:"GET",headers:r})).text(),n=y(i),{exactMatch:p}=n.payload||{},s=Number(p.id.replace(p.type,"").replace("_",""));return s||console.log("no region id found for zip"),s}catch{return console.log("zip code not found"),null}},K=async e=>({data:await R(e)}),H=async e=>{const t=await R(e);return v(t)},v=e=>{const t=M.load(e)('script:contains("ReactServerAgent.cache")').text()?.replace(`_tLAB.wait(function(){
2
+ (function (root) {
3
+ /* -- Data -- */
4
+ root.__reactServerState || (root.__reactServerState = {});
5
+ root.__reactServerState.InitialContext = {"ReactServerAgent.cache":`,"")?.split(',"deviceType":"desktop"')[0],r=t&&y(JSON.parse(t)?.dataCache?.["/stingray/api/home/details/initialInfo"]?.res?.text)?.payload,o=r?.propertyId??r?.redirectUrl?.split("/").pop(),a=t&&JSON.parse(t)?.dataCache?.[`/stingray/api/v1/rentals/homecards?propertyIds=${o}`]?.res?.text,i=a&&y(a),n=t&&JSON.parse(t)?.dataCache?.["/stingray/api/home/details/belowTheFold"]?.res?.text,p=n&&y(n)?.payload,s=t&&JSON.parse(t)?.dataCache?.[`/stingray/api/home/details/propertyParcelInfo?propertyId=${o}&pageType=6`]?.res?.text,l=s&&y(s)?.payload,_=i?.homes?.[0]?.rentalExtension?.rentalId,d=t&&JSON.parse(t)?.dataCache?.[`/stingray/api/v1/rentals/${_}/floorPlans?`]?.res?.text,c=d&&y(d),g={hasPropertyHistory:!!p?.propertyHistoryInfo,propertyId:o,rentalId:_,initialInfo:r,homeCards:i,floorPlans:c,belowTheFold:p,propertyParcelInfo:l};return{timestamp:u(),...g}},R=async(e,t)=>{const{timeoutMs:r}=t??{},o={headers:{"Content-Type":"text/html; charset=utf-8","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"},...r&&{signal:(i=>{const n=new AbortController;return setTimeout(()=>n.abort(),i||0),n.signal})(r)}},a=await fetch(e,o);if(a.ok)return await a.text();{const i=JSON.parse(await a?.text())?.error??a?.statusText;throw new Error(i)}},$=async e=>await Q(e),Q=async e=>{const t=`https://www.redfin.com/CA/Los-Angeles/home/${e}`;return await H(t)},J=async({regionId:e,zipCode:t,timeoutMs:r,daysListed:o})=>{t&&(e=await N(t)??e);try{const a=await V({regionId:e,timeoutMs:r}),i=a?.numMatchedHomes,n=o?a?.homes?.filter(l=>u().diff(l?.rentalExtension?.freshnessTimestamp,"day")<o):a?.homes,p=n?.map(l=>l?.detailUrl),s=n?.length;return s?{timestamp:u(),...t&&{zipCode:t},regionId:e,numResults:s,totalResultCount:i,results:n,urls:p}:null}catch(a){throw console.log(a),a}},V=async({regionId:e,timeoutMs:t})=>{const r="https://www.redfin.com/stingray/api/v1/search/rentals",o={"Content-Type":"application/json; charset=utf-8","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"},a=`?al=1&isRentals=true&market=socal&num_homes=350&ord=days-on-redfin-asc&page_number=1&region_id=${e}&region_type=2&sf=1,2,3,5,6,7&start=0&status=9&uipt=1,2,3,4&use_max_pins=true&v=8`,i={headers:o,...t&&{signal:(p=>{const s=new AbortController;return setTimeout(()=>s.abort(),p||0),s.signal})(t)}},n=`${r}${a}`;return await(await fetch(n,i)).json()},B=async(e,t)=>{const{fromFile:r=!0}=t??{};return r?(await O("zillow","regionIds"))[String(e)]??await U(e):await U(e)},U=async e=>{const t="https://www.zillow.com/graphql",r={operationName:"getAutocompleteResults",variables:{query:String(e),queryOptions:{maxResults:10,userIdentity:{abKey:"3176854b-962d-4266-8bb8-f9e8f2377158"},userSearchContext:"FOR_RENT",userLocation:{latitude:34.11,longitude:-118.23}},resultType:["REGIONS","FORSALE","RENTALS","SOLD","COMMUNITIES","BUILDER_COMMUNITIES"]},query:`query getAutocompleteResults($query: String!, $queryOptions: SearchAssistanceQueryOptions, $resultType: [SearchAssistanceResultType]) {
6
+ searchAssistanceResult: zgsAutocompleteRequest(
7
+ query: $query
8
+ queryOptions: $queryOptions
9
+ resultType: $resultType
10
+ ) {
11
+ requestId
12
+ results {
13
+ __typename
14
+ id
15
+ ...RegionResultFields
16
+ ...SemanticResultFields
17
+ ...RentalCommunityResultFields
18
+ ...SchoolResultFields
19
+ ...BuilderCommunityResultFields
20
+ }
21
+ __typename
22
+ }
23
+ }
24
+
25
+ fragment RegionResultFields on SearchAssistanceRegionResult {
26
+ regionId
27
+ subType
28
+ __typename
29
+ }
30
+
31
+ fragment SchoolResultFields on SearchAssistanceSchoolResult {
32
+ id
33
+ schoolDistrictId
34
+ schoolId
35
+ __typename
36
+ }
37
+
38
+ fragment SemanticResultFields on SearchAssistanceSemanticResult {
39
+ nearMe
40
+ regionIds
41
+ regionTypes
42
+ regionDisplayIds
43
+ queryResolutionStatus
44
+ viewLatitudeDelta
45
+ filters {
46
+ basementStatusType
47
+ baths {
48
+ min
49
+ max
50
+ __typename
51
+ }
52
+ beds {
53
+ min
54
+ max
55
+ __typename
56
+ }
57
+ excludeTypes
58
+ hoaFeesPerMonth {
59
+ min
60
+ max
61
+ __typename
62
+ }
63
+ homeType
64
+ keywords
65
+ listingStatusType
66
+ livingAreaSqft {
67
+ min
68
+ max
69
+ __typename
70
+ }
71
+ lotSizeSqft {
72
+ min
73
+ max
74
+ __typename
75
+ }
76
+ parkingSpots {
77
+ min
78
+ max
79
+ __typename
80
+ }
81
+ price {
82
+ min
83
+ max
84
+ __typename
85
+ }
86
+ searchRentalFilters {
87
+ monthlyPayment {
88
+ min
89
+ max
90
+ __typename
91
+ }
92
+ petsAllowed
93
+ rentalAvailabilityDate {
94
+ min
95
+ max
96
+ __typename
97
+ }
98
+ __typename
99
+ }
100
+ searchSaleFilters {
101
+ daysOnZillow {
102
+ min
103
+ max
104
+ __typename
105
+ }
106
+ __typename
107
+ }
108
+ showOnlyType
109
+ view
110
+ yearBuilt {
111
+ min
112
+ max
113
+ __typename
114
+ }
115
+ __typename
116
+ }
117
+ __typename
118
+ }
119
+
120
+ fragment RentalCommunityResultFields on SearchAssistanceRentalCommunityResult {
121
+ location {
122
+ latitude
123
+ longitude
124
+ __typename
125
+ }
126
+ __typename
127
+ }
128
+
129
+ fragment BuilderCommunityResultFields on SearchAssistanceBuilderCommunityResult {
130
+ plid
131
+ __typename
132
+ }`},o={accept:"*/*","accept-encoding":"gzip, deflate, br, zstd","accept-language":"en-US,en;q=0.7","client-id":"hops-homepage","content-type":"application/json",origin:"https://www.zillow.com",priority:"u=1, i",referer:"https://www.zillow.com/","sec-ch-ua":'"Brave";v="131", "Chromium";v="131", "Not_A Brand";v="24"',"sec-ch-ua-mobile":"?0","sec-ch-ua-platform":'"macOS"',"user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36","sec-fetch-site":"same-origin","sec-fetch-dest":"empty","sec-fetch-mode":"cors",cookie:await A()};try{const{data:a}=await m.post(t,r,{headers:o})||{},{regionId:i}=a.data.searchAssistanceResult.results.filter(n=>n?.regionId)?.[0]||{};return i||console.log("no region id found for zip"),i}catch(a){const{status:i,message:n}=F(a)??{};if(E(i,n))S(n,i);else return console.log("zip code not found"),null}},G={Accept:"*/*","Accept-Language":"en-US,en;q=0.9","Content-Type":"application/json","Cache-Control":"no-cache",Pragma:"no-cache","Sec-Ch-Ua":'"Brave";v="135", "Not-A.Brand";v="8", "Chromium";v="135"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","Sec-Fetch-User":"?1","Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36"},x=async({page:e,daysOnZillow:t,regionId:r,zipCode:o,mergePageResults:a,timeoutMs:i})=>{o&&(r=await B(o)??r),e=(a?1:e)??1;const n=await f({page:e,daysOnZillow:t,regionId:r,timeoutMs:i}),p=n?.cat1?.searchList?.totalResultCount,s=n?.cat1?.searchList?.resultsPerPage,l=n?.cat1?.searchList?.totalPages;if(e&&e>l)return null;const _=a&&Array.from({length:l},(h,I)=>I+1),d=a&&l>1&&_?(await Promise.all(_?.map(async h=>await f({page:h,daysOnZillow:t,regionId:r},!0)))).flat():n?.cat1?.searchResults?.listResults,c=d?.map(h=>h?.detailUrl),g=d?.length;return g?{timestamp:u(),...o&&{zipCode:o},regionId:r,numResults:g,totalResultCount:p,resultsPerPage:s,...a&&{mergePageResults:a},..._?{pagesCrawled:_?.length}:{page:e},totalPages:l,results:d,urls:c}:null},f=async({page:e,daysOnZillow:t,regionId:r,timeoutMs:o},a)=>{const i="https://www.zillow.com/async-create-search-page-state",n={searchQueryState:{pagination:{currentPage:e??1},isMapVisible:!1,mapBounds:{east:-116.2057669921875,north:35.424914784130365,south:32.12915408246069,west:-120.3915580078125},regionSelection:[{regionId:r}],filterState:{sortSelection:{value:"days"},doz:{value:t??"5"},isNewConstruction:{value:!1},isForSaleForeclosure:{value:!1},isForSaleByOwner:{value:!1},isForSaleByAgent:{value:!1},isForRent:{value:!0},isComingSoon:{value:!1},isAuction:{value:!1},isAllHomes:{value:!0}},isListVisible:!0},wants:{cat1:["listResults"]},requestId:6,isDebugRequest:!1},p=d=>{const c=new AbortController;return setTimeout(()=>c.abort(),d||0),c.signal},s=await A(),l={headers:{...G,cookie:s},...o&&{signal:p(o)}},{data:_}=await m.put(i,n,l)||{};return a?_?.cat1?.searchResults?.listResults:_},b=async(e,t)=>{const{timeoutMs:r}=t??{},o={headers:{Host:"www.zillow.com",accept:"*/*","content-type":"text/html; charset=utf-8","user-agent":"insomnia/10.3.0"},...r&&{signal:(i=>{const n=new AbortController;return setTimeout(()=>n.abort(),i||0),n.signal})(r)}},{data:a}=await m.options(e,o)||{};return a},j=async e=>({data:await b(e)}),ee=async e=>{const t=await b(e);return z(t)},te=(e,t)=>{if(t==="building")return e?.initialReduxState?.gdp?.building??null;{e=e&&JSON.parse(e?.gdpClientCache);const r=e&&Object.keys(e)?.[0];return e=e?.[r]?.property,e??null}},z=e=>{const t=M.load(e)("#__NEXT_DATA__").text(),r=t&&JSON.parse(t)?.props?.pageProps?.componentProps,o=r?.initialReduxState?.gdp?"building":"property",a=te(r,o);return{timestamp:u(),...a}},w={accept:"*/*","accept-encoding":"gzip, deflate, br, zstd","accept-language":"en-US,en;q=0.9","client-id":"for-sale-sub-app-browser-client","content-type":"application/json","Cache-Control":"no-cache",Pragma:"no-cache",priority:"u=1, i","sec-ch-ua":'"Not(A:Brand";v="99", "Google Chrome";v="133", "Chromium";v="133"',"sec-ch-ua-mobile":"?0","sec-ch-ua-platform":'"macOS"',"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"same-origin","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36","x-z-enable-oauth-conversion":"true"},k=async(e,t)=>{const{altFetch:r,onlyRemovedListings:o=!1}=t??{},a=(r?await oe(e,t):await re(e,t))||{},{property:i,...n}=a;if(i){const{buyAbilityData:p,collections:s,nearbyCities:l,nearbyNeighborhoods:_,nearbyZipcodes:d,schools:c,nearbyHomes:g,listingMetadata:h,homeInsights:I,responsivePhotos:_e,submitFlow:de,contactFormRenderData:ce,tourEligibility:me,onsiteMessage:ye,ZoDsFsUpsellTop:ue,streetViewMetadataUrlMapLightboxAddress:ge,responsivePhotosOriginalRatio:he,thirdPartyVirtualTour:Te,vrModel:Ae,topNavJson:be,...T}=i||{};if(!T?.priceHistory)return null;if(o){const{homeStatus:D}=T??{};if(!D)return console.log("no home status",e),null;if(D==="FOR_RENT"){const[L]=T?.priceHistory??{};return L?.event?console.log("recent price history not removed",e,L?.event):console.log("no recent price history"),null}}return{timestamp:u(),...T,...n,...r&&{altFetch:r}}}},re=async(e,t)=>{const{timeoutMs:r}=t??{},o="https://www.zillow.com/graphql",a=`?extensions=%7B%22persistedQuery%22%3A%7B%22version%22%3A1%2C%22sha256Hash%22%3A%222a50ebbffc7b6fb6e70fad24b7738df5db7f2ed5b61c2b980542749accff1f17%22%7D%7D&variables=%7B%22zpid%22%3A${e}%2C%22platform%22%3A%22DESKTOP_WEB%22%2C%22formType%22%3A%22OPAQUE%22%2C%22contactFormRenderParameter%22%3A%7B%22zpid%22%3A${e}%2C%22platform%22%3A%22desktop%22%2C%22isDoubleScroll%22%3Atrue%7D%2C%22skipCFRD%22%3Afalse%2C%22ompPlatform%22%3A%22web%22%7D`,i=`${o}${a}`,n=_=>{const d=new AbortController;return setTimeout(()=>d.abort(),_||0),d.signal},p=await A(),s={headers:{...w,cookie:p},...r&&{signal:n(r)}},{data:l}=await m.get(i,s)||{};return l?.data},oe=async(e,{timeoutMs:t})=>{const r="https://www.zillow.com/graphql",o={operationName:"ForRentShopperPlatformFullRenderQuery",variables:{zpid:e,altId:null},query:`query ForRentShopperPlatformFullRenderQuery($zpid: ID!, $altId: ID, $skipPropertyPrice: Boolean = false, $skipPropertyAddress: Boolean = false) {
133
+ property(zpid: $zpid, palsId: $altId) {
134
+ ...FrActionBarContent_property
135
+ ...FrMediaColumnContent_property
136
+ ...FrDataViewContent_property
137
+ ...PageViewTracker_property
138
+ ...FrSummaryContent_property
139
+ ...FrLightboxes_property
140
+ ...UniversalAnalyticsDataLayerFragment_property
141
+ ...ForRentSearchPageStateParamsFragment_property
142
+ }
143
+ viewer {
144
+ ...FrActionBarContent_viewer
145
+ ...FrSummaryContent_viewer
146
+ ...FrLightboxes_viewer
147
+ ...PageViewTracker_viewer
148
+ }
149
+ abTests {
150
+ HDP_RENTERS_INSURANCE_UPSELL: abTest(trial: "HDP_RENTERS_INSURANCE_UPSELL")
151
+ ACTIVATION_UPSELL_CONTENT: abTest(trial: "ACTIVATION_UPSELL_CONTENT")
152
+ Activation_Hollywood_Enabled: abTest(trial: "Activation_Hollywood_Enabled")
153
+ SI_CostsAndFees_Elevate_HDP_Web: abTest(
154
+ trial: "SI_CostsAndFees_Elevate_HDP_Web"
155
+ )
156
+ ...abTestManager_abTests
157
+ ...FrSummaryContent_abTests
158
+ ...DsNeighborhood_abTests
159
+ ...FrLightboxes_abTests
160
+ ...FrDataViewContent_abTests
161
+ ...UniversalAnalyticsDataLayerFragment_abTests
162
+ ...RentalContactForm_abTests_hdp
163
+ ...RentalPrequalificationCard
164
+ }
165
+ }
166
+
167
+ fragment FrActionBarContent_property on Property {
168
+ ...ActionBarController_property
169
+ ...EditRentalListing_property
170
+ ...ReleaseOwnership_property
171
+ ...EditPropertyHistory_property
172
+ ...CSPropertyUpdatePage_property
173
+ ...CSMoveHomeMapLocation_property
174
+ ...PropertyEventLog_property
175
+ ...ReportProblemLightbox_property
176
+ }
177
+
178
+ fragment ActionBarController_property on Property {
179
+ ...DsActionBar_property
180
+ }
181
+
182
+ fragment DsActionBar_property on Property {
183
+ zpid
184
+ city
185
+ state
186
+ homeStatus
187
+ ...SaveHome_property
188
+ ...SuperShareMenu_property
189
+ }
190
+
191
+ fragment SaveHome_property on Property {
192
+ address {
193
+ streetAddress
194
+ city
195
+ state
196
+ zipcode
197
+ }
198
+ homeStatus
199
+ isListingClaimedByCurrentSignedInUser
200
+ isCurrentSignedInAgentResponsible
201
+ zpid
202
+ bedrooms
203
+ bathrooms
204
+ price
205
+ yearBuilt
206
+ }
207
+
208
+ fragment SuperShareMenu_property on Property {
209
+ ...Share_property
210
+ }
211
+
212
+ fragment Share_property on Property {
213
+ zpid
214
+ streetAddress
215
+ city
216
+ state
217
+ zipcode
218
+ homeStatus
219
+ }
220
+
221
+ fragment EditRentalListing_property on Property {
222
+ listingAccount {
223
+ zuid
224
+ }
225
+ ssid
226
+ zpid
227
+ }
228
+
229
+ fragment ReleaseOwnership_property on Property {
230
+ zpid
231
+ isListingClaimedByCurrentSignedInUser
232
+ isCurrentSignedInUserVerifiedOwner
233
+ }
234
+
235
+ fragment EditPropertyHistory_property on Property {
236
+ editPropertyHistorylink
237
+ }
238
+
239
+ fragment CSPropertyUpdatePage_property on Property {
240
+ propertyUpdatePageLink
241
+ }
242
+
243
+ fragment CSMoveHomeMapLocation_property on Property {
244
+ moveHomeMapLocationLink
245
+ }
246
+
247
+ fragment PropertyEventLog_property on Property {
248
+ propertyEventLogLink
249
+ }
250
+
251
+ fragment ReportProblemLightbox_property on Property {
252
+ zpid
253
+ homeStatus
254
+ }
255
+
256
+ fragment FrActionBarContent_viewer on Viewer {
257
+ ...ActionBarController_viewer
258
+ ...ReportProblemLightbox_viewer
259
+ }
260
+
261
+ fragment ActionBarController_viewer on Viewer {
262
+ ...DsActionBar_viewer
263
+ }
264
+
265
+ fragment DsActionBar_viewer on Viewer {
266
+ email
267
+ ...SuperShareMenu_viewer
268
+ }
269
+
270
+ fragment SuperShareMenu_viewer on Viewer {
271
+ ...Share_viewer
272
+ }
273
+
274
+ fragment Share_viewer on Viewer {
275
+ email
276
+ }
277
+
278
+ fragment ReportProblemLightbox_viewer on Viewer {
279
+ email
280
+ }
281
+
282
+ fragment FrMediaColumnContent_property on Property {
283
+ ...FrMediaStream_property
284
+ ...FrPhotoCarousel_property
285
+ }
286
+
287
+ fragment FrMediaStream_property on Property {
288
+ responsivePhotos: photos {
289
+ caption
290
+ subjectType
291
+ url
292
+ mixedSources(aspectRatio: FourThirds) {
293
+ jpeg {
294
+ url
295
+ width
296
+ }
297
+ webp {
298
+ url
299
+ width
300
+ }
301
+ }
302
+ }
303
+ ...MediaStreamFloorMapTile_property
304
+ ...PanoramaTile_property
305
+ ...ThirdPartyVirtualTourTile_property
306
+ ...VideoTile_property
307
+ ...ContactUpsellTile_property
308
+ richMedia {
309
+ virtualTour {
310
+ vrModelGuid
311
+ revisionId
312
+ viewerUrl
313
+ }
314
+ }
315
+ }
316
+
317
+ fragment MediaStreamFloorMapTile_property on Property {
318
+ ...FloorMapTile_property
319
+ ...ShouldShowFloorMap_property
320
+ ...IMXLightboxEntryFragments_property
321
+ }
322
+
323
+ fragment FloorMapTile_property on Property {
324
+ richMedia {
325
+ floorPlan {
326
+ viewerUrl
327
+ }
328
+ }
329
+ }
330
+
331
+ fragment IMXLightboxEntryFragments_property on Property {
332
+ isShowcaseListing
333
+ ...IMXPhotoView_property
334
+ ...IMXRichMedia_property
335
+ ...IMXViewContainer_property
336
+ ...IMXViewMenu_property
337
+ ...SphereViewerListing_property
338
+ }
339
+
340
+ fragment IMXPhotoView_property on Property {
341
+ listingMetadata {
342
+ mustPreferMlsPhotos
343
+ }
344
+ originalPhotos: photos {
345
+ caption
346
+ mixedSources(aspectRatio: Original) {
347
+ jpeg {
348
+ url
349
+ width
350
+ }
351
+ webp {
352
+ url
353
+ width
354
+ }
355
+ }
356
+ }
357
+ }
358
+
359
+ fragment IMXRichMedia_property on Property {
360
+ richMedia {
361
+ imx {
362
+ viewerUrl
363
+ revisionId
364
+ hasLocalizedPhotos
365
+ isLmsTour
366
+ }
367
+ }
368
+ }
369
+
370
+ fragment IMXViewContainer_property on Property {
371
+ bedrooms
372
+ bathrooms
373
+ contingentListingType
374
+ homeStatus
375
+ listingSubType: listing_sub_type {
376
+ isFSBA: is_FSBA
377
+ isFSBO: is_FSBO
378
+ isPending: is_pending
379
+ isNewHome: is_newHome
380
+ isForeclosure: is_foreclosure
381
+ isBankOwned: is_bankOwned
382
+ isForAuction: is_forAuction
383
+ isOpenHouse: is_openHouse
384
+ isComingSoon: is_comingSoon
385
+ }
386
+ livingAreaValue
387
+ price @skip(if: $skipPropertyPrice)
388
+ ...IMXAttribution_property
389
+ }
390
+
391
+ fragment IMXAttribution_property on Property {
392
+ listingAccountUserId
393
+ attributionInfo {
394
+ agentName
395
+ agentEmail
396
+ agentPhoneNumber
397
+ brokerName
398
+ mlsId
399
+ }
400
+ }
401
+
402
+ fragment IMXViewMenu_property on Property {
403
+ isUndisclosedAddress
404
+ address @skip(if: $skipPropertyAddress) {
405
+ streetAddress
406
+ zipcode
407
+ city
408
+ state
409
+ }
410
+ }
411
+
412
+ fragment SphereViewerListing_property on Property {
413
+ streetAddress @skip(if: $skipPropertyAddress)
414
+ listingSubType: listing_sub_type {
415
+ isFSBA: is_FSBA
416
+ isPending: is_pending
417
+ isNewHome: is_newHome
418
+ isForeclosure: is_foreclosure
419
+ isBankOwned: is_bankOwned
420
+ isForAuction: is_forAuction
421
+ isOpenHouse: is_openHouse
422
+ isComingSoon: is_comingSoon
423
+ }
424
+ zpid
425
+ hdpUrl
426
+ tourViewCount
427
+ }
428
+
429
+ fragment ShouldShowFloorMap_property on Property {
430
+ homeStatus
431
+ richMedia {
432
+ floorPlan {
433
+ viewerUrl
434
+ }
435
+ }
436
+ }
437
+
438
+ fragment PanoramaTile_property on Property {
439
+ ...ShouldShowVirtualTour_property
440
+ ...SphereViewerContainer_property
441
+ ...IMXLightboxEntryFragments_property
442
+ }
443
+
444
+ fragment ShouldShowVirtualTour_property on Property {
445
+ homeStatus
446
+ richMedia {
447
+ virtualTour {
448
+ viewerUrl
449
+ revisionId
450
+ }
451
+ }
452
+ }
453
+
454
+ fragment SphereViewerContainer_property on Property {
455
+ ...SphereViewerListing_property
456
+ ...SphereViewerAttribution_property
457
+ ...SphereViewerVrModel_property
458
+ }
459
+
460
+ fragment SphereViewerAttribution_property on Property {
461
+ postingContact {
462
+ name
463
+ photo(size: PROFILE_120_120) {
464
+ url
465
+ }
466
+ }
467
+ }
468
+
469
+ fragment SphereViewerVrModel_property on Property {
470
+ vrModel {
471
+ vrModelGuid
472
+ revisionId
473
+ }
474
+ richMedia {
475
+ virtualTour {
476
+ viewerUrl
477
+ revisionId
478
+ }
479
+ }
480
+ }
481
+
482
+ fragment ThirdPartyVirtualTourTile_property on Property {
483
+ thirdPartyVirtualTour {
484
+ externalUrl
485
+ lightboxUrl
486
+ staticUrl
487
+ providerKey
488
+ }
489
+ ...couldShowThirdPartyVirtualTour_property
490
+ }
491
+
492
+ fragment couldShowThirdPartyVirtualTour_property on Property {
493
+ homeStatus
494
+ hasApprovedThirdPartyVirtualTourUrl
495
+ thirdPartyVirtualTour {
496
+ approved
497
+ }
498
+ }
499
+
500
+ fragment VideoTile_property on Property {
501
+ streetAddress
502
+ description
503
+ primaryPublicVideo {
504
+ sourceVideoWidth
505
+ sourceVideoHeight
506
+ videoDurationSeconds
507
+ createdAt
508
+ sources {
509
+ src
510
+ type
511
+ }
512
+ }
513
+ richMediaVideos {
514
+ mp4Url
515
+ hlsUrl
516
+ }
517
+ ...ShouldShowVideo_property
518
+ }
519
+
520
+ fragment ShouldShowVideo_property on Property {
521
+ homeStatus
522
+ isZillowOwned
523
+ hasPublicVideo
524
+ primaryPublicVideo {
525
+ sources {
526
+ src
527
+ }
528
+ }
529
+ richMediaVideos {
530
+ mp4Url
531
+ hlsUrl
532
+ }
533
+ }
534
+
535
+ fragment ContactUpsellTile_property on Property {
536
+ ...HomeDetailsContactUpsell_property
537
+ }
538
+
539
+ fragment HomeDetailsContactUpsell_property on Property {
540
+ ...DsContactButtons_property
541
+ }
542
+
543
+ fragment DsContactButtons_property on Property {
544
+ zpid
545
+ listing_sub_type {
546
+ is_FSBA
547
+ is_FSBO
548
+ }
549
+ state
550
+ ...DsGetAuctionDetailsButton_property
551
+ }
552
+
553
+ fragment DsGetAuctionDetailsButton_property on Property {
554
+ postingUrl
555
+ }
556
+
557
+ fragment FrPhotoCarousel_property on Property {
558
+ ...getPhotoTiles_property
559
+ ...PanoUpsellTile_property
560
+ ...MultiMediaEntryPoint_property
561
+ }
562
+
563
+ fragment getPhotoTiles_property on Property {
564
+ responsivePhotos: photos {
565
+ caption
566
+ mixedSources(aspectRatio: FourThirds) {
567
+ jpeg {
568
+ url
569
+ width
570
+ }
571
+ webp {
572
+ url
573
+ width
574
+ }
575
+ }
576
+ }
577
+ }
578
+
579
+ fragment PanoUpsellTile_property on Property {
580
+ ...ShouldShowVirtualTour_property
581
+ }
582
+
583
+ fragment MultiMediaEntryPoint_property on Property {
584
+ zpid
585
+ ...ShouldShowFloorMap_property
586
+ ...ShouldShowVideo_property
587
+ ...ShouldShowVirtualTour_property
588
+ }
589
+
590
+ fragment FrDataViewContent_property on Property {
591
+ isListingOwnedByCurrentSignedInUser
592
+ ...FrCollections_property
593
+ ...ForRentFactsAndFeatures_property
594
+ ...ServicesAvailable_property
595
+ ...DsHomeValue_property
596
+ ...DsPriceAndTaxHistory_property
597
+ ...DsNearbySchools_property
598
+ ...DsNeighborhood_property
599
+ ...DsNearbyApartments_property
600
+ ...FrOverview_property
601
+ ...FrSpecialOffers_property
602
+ ...ListingProvidedBy_property
603
+ ...DsRentalFooterSection_property
604
+ ...BdpModule_property
605
+ ...FrOnsiteMessage_property
606
+ ...GetShareWithCaseManagerEnabled_property
607
+ ...IsPropertyAndViewerEnrolledInLlp_property
608
+ ...IsRoomForRent_property
609
+ ...AgentSignature_property
610
+ }
611
+
612
+ fragment FrCollections_property on Property {
613
+ collections(
614
+ cExperienceId: "zFRHDP"
615
+ contentTypes: [FOR_RENT]
616
+ placements: [NEIGHBORHOOD]
617
+ ) {
618
+ modules {
619
+ ... on Collection {
620
+ name
621
+ placement
622
+ propertyDetails {
623
+ ...DsMiniCard_property
624
+ }
625
+ }
626
+ }
627
+ trackingTags {
628
+ value
629
+ }
630
+ }
631
+ providerListingID
632
+ zpid
633
+ }
634
+
635
+ fragment DsMiniCard_property on Property {
636
+ miniCardPhotos: photos(count: 1, size: S) {
637
+ url
638
+ }
639
+ ...DsMiniCardCommon_property
640
+ }
641
+
642
+ fragment DsMiniCardCommon_property on Property {
643
+ price
644
+ currency
645
+ bedrooms
646
+ bathrooms
647
+ livingArea
648
+ livingAreaValue
649
+ livingAreaUnits
650
+ livingAreaUnitsShort
651
+ listingMetadata {
652
+ comminglingCategoryIsRulesApplicable
653
+ }
654
+ lotSize
655
+ lotAreaValue
656
+ lotAreaUnits
657
+ address {
658
+ streetAddress
659
+ city
660
+ state
661
+ zipcode
662
+ }
663
+ parentRegion {
664
+ name
665
+ }
666
+ formattedChip(xConsumerUsername: "hdp-web") {
667
+ location {
668
+ fullValue
669
+ }
670
+ }
671
+ latitude
672
+ longitude
673
+ zpid
674
+ homeStatus
675
+ homeType
676
+ hdpUrl
677
+ hdpTypeDimension
678
+ propertyTypeDimension
679
+ listingTypeDimension
680
+ listing_sub_type {
681
+ is_newHome
682
+ is_forAuction
683
+ is_bankOwned
684
+ is_foreclosure
685
+ is_FSBO
686
+ is_comingSoon
687
+ }
688
+ providerListingID
689
+ attributionInfo {
690
+ mlsId
691
+ mlsName
692
+ providerLogo
693
+ agentName
694
+ agentPhoneNumber
695
+ brokerName
696
+ brokerPhoneNumber
697
+ trueStatus
698
+ }
699
+ ...Variant_property
700
+ ...NcVariant_property
701
+ }
702
+
703
+ fragment Variant_property on Property {
704
+ isShowcaseListing
705
+ isPremierBuilder
706
+ homeStatus
707
+ listing_sub_type {
708
+ is_FSBO
709
+ is_FSBA
710
+ is_newHome
711
+ is_foreclosure
712
+ is_bankOwned
713
+ is_forAuction
714
+ is_comingSoon
715
+ }
716
+ zpid
717
+ state
718
+ }
719
+
720
+ fragment NcVariant_property on Property {
721
+ isPremierBuilder
722
+ newConstructionType
723
+ }
724
+
725
+ fragment ForRentFactsAndFeatures_property on Property {
726
+ ...ForRentFactsAndFeaturesInitialRender_property
727
+ ...IsRoomForRent_property
728
+ roomForRent {
729
+ leaseDetails {
730
+ leaseTerm
731
+ leaseDescription
732
+ }
733
+ roomDetails {
734
+ utilitiesShareDescription
735
+ hasPrivateBath
736
+ roomIsFurnished
737
+ }
738
+ roommateDetails {
739
+ roommateGenderDetails {
740
+ type
741
+ genderCount
742
+ }
743
+ totalCount
744
+ roommatePetDetails {
745
+ type
746
+ petCount
747
+ }
748
+ }
749
+ roommateRequirements {
750
+ genderTypes
751
+ }
752
+ }
753
+ }
754
+
755
+ fragment ForRentFactsAndFeaturesInitialRender_property on Property {
756
+ ...FactsAndFeaturesCommon_property
757
+ listPriceLow
758
+ timeOnZillow
759
+ resoFacts {
760
+ constructionMaterials
761
+ exteriorFeatures
762
+ livingAreaRangeUnits
763
+ allowedPets
764
+ leaseTerm
765
+ petsMaxWeight
766
+ tenantPays
767
+ virtualTour
768
+ availabilityDate
769
+ }
770
+ }
771
+
772
+ fragment FactsAndFeaturesCommon_property on Property {
773
+ state
774
+ attributionInfo {
775
+ listingAgreement
776
+ }
777
+ currency
778
+ homeStatus
779
+ homeType
780
+ interactiveFloorPlanUrl
781
+ lotPremium
782
+ listPriceLow
783
+ price
784
+ resoFacts {
785
+ aboveGradeFinishedArea
786
+ accessibilityFeatures
787
+ additionalFeeInfo
788
+ additionalParcelsDescription
789
+ architecturalStyle
790
+ associations {
791
+ feeFrequency
792
+ name
793
+ phone
794
+ }
795
+ associationFee
796
+ associationAmenities
797
+ associationFee2
798
+ associationFeeIncludes
799
+ associationName
800
+ associationName2
801
+ associationPhone
802
+ associationPhone2
803
+ basementYN
804
+ buildingFeatures
805
+ buildingName
806
+ appliances
807
+ atAGlanceFacts {
808
+ factLabel
809
+ factValue
810
+ }
811
+ attic
812
+ availabilityDate
813
+ basement
814
+ bathrooms
815
+ bathroomsFull
816
+ bathroomsHalf
817
+ bathroomsOneQuarter
818
+ bathroomsPartial
819
+ bathroomsFloat
820
+ bathroomsThreeQuarter
821
+ bedrooms
822
+ belowGradeFinishedArea
823
+ bodyType
824
+ builderModel
825
+ builderName
826
+ buildingArea
827
+ buildingAreaSource
828
+ canRaiseHorses
829
+ carportParkingCapacity
830
+ cityRegion
831
+ commonWalls
832
+ communityFeatures
833
+ compensationBasedOn
834
+ constructionMaterials
835
+ contingency
836
+ cooling
837
+ coveredParkingCapacity
838
+ cropsIncludedYN
839
+ cumulativeDaysOnMarket
840
+ developmentStatus
841
+ doorFeatures
842
+ electric
843
+ elevation
844
+ elevationUnits
845
+ entryLevel
846
+ entryLocation
847
+ exclusions
848
+ exteriorFeatures
849
+ feesAndDues {
850
+ type
851
+ fee
852
+ name
853
+ phone
854
+ }
855
+ fencing
856
+ fireplaceFeatures
857
+ fireplaces
858
+ flooring
859
+ foundationArea
860
+ foundationDetails
861
+ frontageLength
862
+ frontageType
863
+ furnished
864
+ garageParkingCapacity
865
+ gas
866
+ greenBuildingVerificationType
867
+ greenEnergyEfficient
868
+ greenEnergyGeneration
869
+ greenIndoorAirQuality
870
+ greenSustainability
871
+ greenWaterConservation
872
+ hasAdditionalParcels
873
+ hasAssociation
874
+ hasAttachedGarage
875
+ hasAttachedProperty
876
+ hasCooling
877
+ hasCarport
878
+ hasElectricOnProperty
879
+ hasFireplace
880
+ hasGarage
881
+ hasHeating
882
+ hasHomeWarranty
883
+ hasLandLease
884
+ hasOpenParking
885
+ hasRentControl
886
+ hasSpa
887
+ hasPetsAllowed
888
+ hasPrivatePool
889
+ hasView
890
+ hasWaterfrontView
891
+ heating
892
+ highSchool
893
+ highSchoolDistrict
894
+ hoaFee
895
+ hoaFeeTotal
896
+ homeType
897
+ horseAmenities
898
+ horseYN
899
+ inclusions
900
+ incomeIncludes
901
+ interiorFeatures
902
+ irrigationWaterRightsAcres
903
+ irrigationWaterRightsYN
904
+ isNewConstruction
905
+ isSeniorCommunity
906
+ landLeaseAmount
907
+ landLeaseExpirationDate
908
+ laundryFeatures
909
+ leaseTerm
910
+ levels
911
+ listingId
912
+ listingTerms
913
+ lotFeatures
914
+ lotSize
915
+ lotSizeDimensions
916
+ livingArea
917
+ livingAreaRange
918
+ livingAreaRangeUnits
919
+ livingQuarters {
920
+ livingArea
921
+ livingAreaUnits
922
+ areaTotal
923
+ areaTotalUnits
924
+ features
925
+ livingQuarterType
926
+ }
927
+ mainLevelBathrooms
928
+ mainLevelBedrooms
929
+ marketingType
930
+ media {
931
+ mediaCategory
932
+ mediaURL
933
+ }
934
+ middleOrJuniorSchool
935
+ middleOrJuniorSchoolDistrict
936
+ municipality
937
+ numberOfUnitsInCommunity
938
+ numberOfUnitsVacant
939
+ offerReviewDate
940
+ onMarketDate
941
+ openParkingCapacity
942
+ otherEquipment
943
+ otherFacts {
944
+ name
945
+ value
946
+ }
947
+ otherParking
948
+ otherStructures
949
+ ownership
950
+ ownershipType
951
+ parcelNumber
952
+ parkingCapacity
953
+ parkingFeatures
954
+ parkName
955
+ patioAndPorchFeatures
956
+ petsMaxWeight
957
+ poolFeatures
958
+ pricePerSquareFoot
959
+ propertyCondition
960
+ propertySubType
961
+ roadSurfaceType
962
+ roofType
963
+ rooms {
964
+ area
965
+ description
966
+ dimensions
967
+ level
968
+ features
969
+ roomArea
970
+ roomAreaSource
971
+ roomAreaUnits
972
+ roomDescription
973
+ roomDimensions
974
+ roomFeatures
975
+ roomLength
976
+ roomLengthWidthSource
977
+ roomLengthWidthUnits
978
+ roomLevel
979
+ roomType
980
+ roomWidth
981
+ }
982
+ roomTypes
983
+ securityFeatures
984
+ sewer
985
+ spaFeatures
986
+ specialListingConditions
987
+ stories
988
+ storiesDecimal
989
+ storiesTotal
990
+ structureType
991
+ subdivisionName
992
+ taxAnnualAmount
993
+ taxAssessedValue
994
+ tenantPays
995
+ topography
996
+ totalActualRent
997
+ utilities
998
+ vegetation
999
+ view
1000
+ virtualTour
1001
+ waterSource
1002
+ waterBodyName
1003
+ waterfrontFeatures
1004
+ waterView
1005
+ waterViewYN
1006
+ windowFeatures
1007
+ woodedArea
1008
+ yearBuilt
1009
+ yearBuiltEffective
1010
+ zoning
1011
+ zoningDescription
1012
+ }
1013
+ }
1014
+
1015
+ fragment IsRoomForRent_property on Property {
1016
+ listing_sub_type {
1017
+ is_roomForRent
1018
+ }
1019
+ }
1020
+
1021
+ fragment ServicesAvailable_property on Property {
1022
+ adTargets
1023
+ }
1024
+
1025
+ fragment DsHomeValue_property on Property {
1026
+ country
1027
+ ...SecondGenHomeValue_property
1028
+ }
1029
+
1030
+ fragment SecondGenHomeValue_property on Property {
1031
+ country
1032
+ ...DsMessagePrompt_property
1033
+ ...SecondGenZestimateSummary_property
1034
+ }
1035
+
1036
+ fragment SecondGenZestimateSummary_property on Property {
1037
+ zpid
1038
+ ...SecondGenZestimateRange_property
1039
+ }
1040
+
1041
+ fragment SecondGenZestimateRange_property on Property {
1042
+ zestimate
1043
+ zestimateLowPercent
1044
+ zestimateHighPercent
1045
+ rentZestimate
1046
+ restimateLowPercent
1047
+ restimateHighPercent
1048
+ }
1049
+
1050
+ fragment DsMessagePrompt_property on Property {
1051
+ zpid
1052
+ yearBuilt
1053
+ livingArea
1054
+ livingAreaValue
1055
+ bathrooms
1056
+ bedrooms
1057
+ homeType
1058
+ zestimate
1059
+ price
1060
+ homeStatus
1061
+ ...NcVariant_property
1062
+ }
1063
+
1064
+ fragment DsPriceAndTaxHistory_property on Property {
1065
+ zpid
1066
+ countyFIPS
1067
+ parcelId
1068
+ taxHistory {
1069
+ time
1070
+ taxPaid
1071
+ taxIncreaseRate
1072
+ value
1073
+ valueIncreaseRate
1074
+ }
1075
+ priceHistory {
1076
+ date
1077
+ time
1078
+ price
1079
+ pricePerSquareFoot
1080
+ priceChangeRate
1081
+ event
1082
+ source
1083
+ buyerAgent {
1084
+ photo {
1085
+ url
1086
+ }
1087
+ profileUrl
1088
+ name
1089
+ }
1090
+ sellerAgent {
1091
+ photo {
1092
+ url
1093
+ }
1094
+ profileUrl
1095
+ name
1096
+ }
1097
+ showCountyLink
1098
+ postingIsRental
1099
+ attributeSource {
1100
+ infoString1
1101
+ infoString2
1102
+ infoString3
1103
+ }
1104
+ }
1105
+ currency
1106
+ country
1107
+ listing_sub_type {
1108
+ is_forAuction
1109
+ is_comingSoon
1110
+ }
1111
+ }
1112
+
1113
+ fragment DsNearbySchools_property on Property {
1114
+ country
1115
+ state
1116
+ schools {
1117
+ distance
1118
+ name
1119
+ rating
1120
+ level
1121
+ studentsPerTeacher
1122
+ assigned
1123
+ grades
1124
+ link
1125
+ type
1126
+ size
1127
+ totalCount
1128
+ assigned
1129
+ isAssigned
1130
+ }
1131
+ citySearchUrl {
1132
+ text
1133
+ }
1134
+ ...DsResoSchools_property
1135
+ }
1136
+
1137
+ fragment DsResoSchools_property on Property {
1138
+ isPremierBuilder
1139
+ resoFacts {
1140
+ elementarySchool
1141
+ middleOrJuniorSchool
1142
+ highSchool
1143
+ elementarySchoolDistrict
1144
+ }
1145
+ attributionInfo {
1146
+ mlsName
1147
+ }
1148
+ }
1149
+
1150
+ fragment DsNeighborhood_property on Property {
1151
+ adTargets
1152
+ ...DsNeighborhoodIncludingNearbyHomes_property
1153
+ }
1154
+
1155
+ fragment DsNeighborhoodIncludingNearbyHomes_property on Property {
1156
+ ...DsNeighborhoodCommon_property
1157
+ nearbyHomes(count: 8) {
1158
+ ...DsMiniCardGallery_property
1159
+ ...DsMiniCardCarousel_property
1160
+ }
1161
+ }
1162
+
1163
+ fragment DsNeighborhoodCommon_property on Property {
1164
+ homeStatus
1165
+ price
1166
+ rentZestimate
1167
+ zestimate
1168
+ homeValues {
1169
+ region {
1170
+ shortName
1171
+ link
1172
+ zhvi {
1173
+ yoy
1174
+ value
1175
+ }
1176
+ zhviForecast {
1177
+ value
1178
+ }
1179
+ }
1180
+ }
1181
+ address {
1182
+ zipcode
1183
+ }
1184
+ parentRegion {
1185
+ name
1186
+ }
1187
+ }
1188
+
1189
+ fragment DsMiniCardGallery_property on Property {
1190
+ zpid
1191
+ ...DsMiniCard_property
1192
+ }
1193
+
1194
+ fragment DsMiniCardCarousel_property on Property {
1195
+ zpid
1196
+ ...DsMiniCard_property
1197
+ }
1198
+
1199
+ fragment DsNearbyApartments_property on Property {
1200
+ zpid
1201
+ nearbyBuildings {
1202
+ bdpLink
1203
+ bedroomGroups {
1204
+ beds
1205
+ }
1206
+ buildingAddress
1207
+ buildingName
1208
+ lotId
1209
+ latitude
1210
+ longitude
1211
+ maxPrice
1212
+ minBaths
1213
+ minBeds
1214
+ minLivingArea
1215
+ minPrice
1216
+ photo {
1217
+ url
1218
+ }
1219
+ photoCount
1220
+ showUpdateTime
1221
+ listingMetadata {
1222
+ BuildingDataG
1223
+ BuildingDataH
1224
+ BuildingDataI
1225
+ BuildingDataJ
1226
+ BuildingDataL
1227
+ BuildingDataM
1228
+ BuildingDataN
1229
+ BuildingDataO
1230
+ BuildingDataP
1231
+ }
1232
+ providerListingId
1233
+ }
1234
+ }
1235
+
1236
+ fragment FrOverview_property on Property {
1237
+ state
1238
+ city
1239
+ zpid
1240
+ description
1241
+ isHousingConnector
1242
+ isIncomeRestricted
1243
+ rentalMarketingTreatments
1244
+ building {
1245
+ buildingName
1246
+ bdpUrl
1247
+ rentalUnitsSummary {
1248
+ unitCount
1249
+ }
1250
+ }
1251
+ daysOnZillow
1252
+ rentalApplicationsAcceptedType
1253
+ postingProductType
1254
+ ...InsightsTags_property
1255
+ ...DsVirtualOpenHouse_property
1256
+ ...DsOpenHouseCalendar_property
1257
+ ...CommuteWithMapFallback_property
1258
+ ...GetShareWithCaseManagerEnabled_property
1259
+ ...IsPropertyAndViewerEnrolledInLlp_property
1260
+ ...RoomFrOverviewSection_property
1261
+ ...IsRoomForRent_property
1262
+ ...RentalStats_property
1263
+ }
1264
+
1265
+ fragment InsightsTags_property on Property {
1266
+ homeInsights {
1267
+ insights {
1268
+ modelId
1269
+ treatmentId
1270
+ phrases
1271
+ }
1272
+ }
1273
+ }
1274
+
1275
+ fragment DsVirtualOpenHouse_property on Property {
1276
+ timeZone
1277
+ resoFacts {
1278
+ otherFacts {
1279
+ value
1280
+ name
1281
+ }
1282
+ }
1283
+ address {
1284
+ streetAddress
1285
+ city
1286
+ state
1287
+ zipcode
1288
+ }
1289
+ }
1290
+
1291
+ fragment DsOpenHouseCalendar_property on Property {
1292
+ latitude
1293
+ longitude
1294
+ country
1295
+ address {
1296
+ streetAddress
1297
+ city
1298
+ state
1299
+ zipcode
1300
+ }
1301
+ zpid
1302
+ hdpUrl
1303
+ openHouseSchedule {
1304
+ startTime
1305
+ endTime
1306
+ }
1307
+ desktopWebHdpImageLink
1308
+ price
1309
+ currency
1310
+ brokerageName
1311
+ homeStatus
1312
+ }
1313
+
1314
+ fragment CommuteWithMapFallback_property on Property {
1315
+ ...SecondGenCommute_property
1316
+ ...MapAndStreetViewTile_property
1317
+ }
1318
+
1319
+ fragment SecondGenCommute_property on Property {
1320
+ latitude
1321
+ longitude
1322
+ }
1323
+
1324
+ fragment MapAndStreetViewTile_property on Property {
1325
+ hasBadGeocode
1326
+ ...GoogleStreetViewTile_property
1327
+ ...StaticMap_property
1328
+ }
1329
+
1330
+ fragment GoogleStreetViewTile_property on Property {
1331
+ zpid
1332
+ longitude
1333
+ latitude
1334
+ listing_sub_type {
1335
+ is_FSBA
1336
+ is_newHome
1337
+ }
1338
+ streetViewMetadataUrlMediaWallLatLong: googleStreetViewMetadataSignedUrl(
1339
+ featureArea: "hdpMediaWall"
1340
+ locationType: LAT_LONG
1341
+ )
1342
+ streetViewMetadataUrlMediaWallAddress: googleStreetViewMetadataSignedUrl(
1343
+ featureArea: "hdpMediaWall"
1344
+ locationType: ADDRESS
1345
+ )
1346
+ streetViewTileImageUrlMediumLatLong: googleStreetViewImageSignedUrl(
1347
+ featureArea: "hdpMediaWall"
1348
+ locationType: LAT_LONG
1349
+ width: 400
1350
+ height: 250
1351
+ )
1352
+ streetViewTileImageUrlMediumAddress: googleStreetViewImageSignedUrl(
1353
+ featureArea: "hdpMediaWall"
1354
+ locationType: ADDRESS
1355
+ width: 400
1356
+ height: 250
1357
+ )
1358
+ streetViewServiceUrl: streetViewServiceUrl(
1359
+ featureArea: "hdpMediaWall"
1360
+ width: 512
1361
+ height: 234
1362
+ )
1363
+ }
1364
+
1365
+ fragment StaticMap_property on Property {
1366
+ staticMap(
1367
+ featureArea: "hdpMediaWall"
1368
+ shouldGetAdditionalHighResSources: true
1369
+ zoom: 15
1370
+ ) {
1371
+ sources(aspectRatio: FourThirds, minWidth: 150, maxWidth: 768) {
1372
+ width
1373
+ url
1374
+ isHighResolutionStaticMap
1375
+ }
1376
+ }
1377
+ }
1378
+
1379
+ fragment GetShareWithCaseManagerEnabled_property on Property {
1380
+ isHousingConnector
1381
+ homeStatus
1382
+ }
1383
+
1384
+ fragment IsPropertyAndViewerEnrolledInLlp_property on Property {
1385
+ isHousingConnector
1386
+ }
1387
+
1388
+ fragment RoomFrOverviewSection_property on Property {
1389
+ description
1390
+ roomForRent {
1391
+ postedBy
1392
+ roommateDetails {
1393
+ description
1394
+ }
1395
+ }
1396
+ }
1397
+
1398
+ fragment RentalStats_property on Property {
1399
+ ...IsRoomForRent_property
1400
+ }
1401
+
1402
+ fragment FrSpecialOffers_property on Property {
1403
+ specialOffers {
1404
+ description
1405
+ startDate
1406
+ endDate
1407
+ }
1408
+ }
1409
+
1410
+ fragment ListingProvidedBy_property on Property {
1411
+ listingProvider {
1412
+ title
1413
+ disclaimerText
1414
+ enhancedVideoURL
1415
+ enhancedDescriptionText
1416
+ showLogos
1417
+ logos {
1418
+ src
1419
+ link
1420
+ }
1421
+ showNoContactInfoMessage
1422
+ agentName
1423
+ agentLicenseNumber
1424
+ postingWebsiteURL
1425
+ postingWebsiteLinkText
1426
+ postingGroupName
1427
+ sourceText
1428
+ isZRMSourceText
1429
+ }
1430
+ zpid
1431
+ isIncomeRestricted
1432
+ listing_sub_type {
1433
+ is_newHome
1434
+ is_FSBA
1435
+ is_comingSoon
1436
+ is_forAuction
1437
+ }
1438
+ brokerId
1439
+ ssid
1440
+ attributionInfo {
1441
+ listingAttributionContact
1442
+ listingAgentAttributionContact
1443
+ infoString3
1444
+ infoString5
1445
+ infoString10
1446
+ infoString16
1447
+ providerLogo
1448
+ agentPhoneNumber
1449
+ mlsDisclaimer
1450
+ agentEmail
1451
+ brokerPhoneNumber
1452
+ }
1453
+ state
1454
+ homeStatus
1455
+ ...NcVariant_property
1456
+ }
1457
+
1458
+ fragment DsRentalFooterSection_property on Property {
1459
+ ...Comscore_property
1460
+ ...DsRentalFooter_property
1461
+ ...DsBreadcrumbs_property
1462
+ adTargets
1463
+ }
1464
+
1465
+ fragment Comscore_property on Property {
1466
+ zpid
1467
+ address {
1468
+ streetAddress
1469
+ state
1470
+ city
1471
+ zipcode
1472
+ }
1473
+ hdpUrl
1474
+ }
1475
+
1476
+ fragment DsRentalFooter_property on Property {
1477
+ listing_sub_type {
1478
+ is_newHome
1479
+ }
1480
+ ...NearbyCitiesColumn_property
1481
+ ...NearbyNeighborhoodsColumn_property
1482
+ ...NearbyZipcodesColumn_property
1483
+ ...DsNearbyBuildingsColumn_property
1484
+ }
1485
+
1486
+ fragment NearbyCitiesColumn_property on Property {
1487
+ nearbyCities {
1488
+ regionUrl {
1489
+ path
1490
+ }
1491
+ name
1492
+ body {
1493
+ city
1494
+ state
1495
+ }
1496
+ }
1497
+ }
1498
+
1499
+ fragment NearbyNeighborhoodsColumn_property on Property {
1500
+ nearbyNeighborhoods {
1501
+ regionUrl {
1502
+ path
1503
+ }
1504
+ name
1505
+ body {
1506
+ neighborhood
1507
+ city
1508
+ state
1509
+ }
1510
+ }
1511
+ }
1512
+
1513
+ fragment NearbyZipcodesColumn_property on Property {
1514
+ country
1515
+ nearbyZipcodes {
1516
+ regionUrl {
1517
+ path
1518
+ }
1519
+ name
1520
+ body {
1521
+ zipcode
1522
+ city
1523
+ state
1524
+ }
1525
+ }
1526
+ }
1527
+
1528
+ fragment DsNearbyBuildingsColumn_property on Property {
1529
+ nearbyBuildingLinks {
1530
+ buildingUrl {
1531
+ path
1532
+ text
1533
+ }
1534
+ }
1535
+ }
1536
+
1537
+ fragment DsBreadcrumbs_property on Property {
1538
+ ...Breadcrumbs_property
1539
+ }
1540
+
1541
+ fragment Breadcrumbs_property on Property {
1542
+ streetAddress
1543
+ abbreviatedAddress
1544
+ city
1545
+ state
1546
+ county
1547
+ zipcode
1548
+ address {
1549
+ neighborhood
1550
+ community
1551
+ subdivision
1552
+ }
1553
+ neighborhoodRegion {
1554
+ name
1555
+ }
1556
+ building {
1557
+ bdpUrl
1558
+ buildingName
1559
+ }
1560
+ isUndisclosedAddress
1561
+ boroughId
1562
+ providerListingID
1563
+ neighborhoodSearchUrl {
1564
+ path
1565
+ }
1566
+ stateSearchUrl {
1567
+ path
1568
+ }
1569
+ countySearchUrl {
1570
+ text
1571
+ path
1572
+ }
1573
+ citySearchUrl {
1574
+ text
1575
+ path
1576
+ }
1577
+ zipcodeSearchUrl {
1578
+ path
1579
+ }
1580
+ boroughSearchUrl {
1581
+ text
1582
+ path
1583
+ }
1584
+ communityUrl {
1585
+ path
1586
+ }
1587
+ ...Variant_property
1588
+ }
1589
+
1590
+ fragment FrOnsiteMessage_property on Property {
1591
+ onsiteMessage(placementNames: ["FRHDPTopSlot"]) {
1592
+ eventId
1593
+ decisionContext
1594
+ messages {
1595
+ skipDisplayReason
1596
+ shouldDisplay
1597
+ isGlobalHoldout
1598
+ isPlacementHoldout
1599
+ placementName
1600
+ testPhase
1601
+ bucket
1602
+ placementId
1603
+ passThrottle
1604
+ lastModified
1605
+ eventId
1606
+ decisionContext
1607
+ selectedTreatment {
1608
+ id
1609
+ name
1610
+ component
1611
+ status
1612
+ renderingProps
1613
+ lastModified
1614
+ }
1615
+ qualifiedTreatments {
1616
+ id
1617
+ name
1618
+ status
1619
+ lastModified
1620
+ }
1621
+ }
1622
+ }
1623
+ }
1624
+
1625
+ fragment BdpModule_property on Property {
1626
+ building {
1627
+ buildingName
1628
+ bdpUrl
1629
+ streetAddress
1630
+ rentalUnitsSummary {
1631
+ unitCount
1632
+ }
1633
+ }
1634
+ }
1635
+
1636
+ fragment AgentSignature_property on Property {
1637
+ isListedByOwner
1638
+ roomForRent {
1639
+ postedBy
1640
+ }
1641
+ }
1642
+
1643
+ fragment FrDataViewContent_abTests on ABTests {
1644
+ ...FrOverview_abTests
1645
+ SEOTEST_REMOVE_RENT_ZESTIMATE: abTest(trial: "SEOTEST_REMOVE_RENT_ZESTIMATE")
1646
+ ...IsRoomForRent_abTests
1647
+ ...RentalUpsellContainer_abTests
1648
+ ...DsRentalFooterSection_abTests
1649
+ ...AtAGlanceFactsWrapper_abTests
1650
+ ...HousingVoucherABTests_abTests
1651
+ ...HomeDetailsListingCriteriaCard_abTests
1652
+ SI_CostAndFees_HDP_Triage: abTest(trial: "SI_CostAndFees_HDP_Triage")
1653
+ }
1654
+
1655
+ fragment FrOverview_abTests on ABTests {
1656
+ ...RentalStats_abTests
1657
+ ...IsRoomForRent_abTests
1658
+ ...HomeDetailsRentalsAgentCard_abTests
1659
+ }
1660
+
1661
+ fragment RentalStats_abTests on ABTests {
1662
+ RE_HDP_Reputation_Data: abTest(trial: "RE_HDP_Reputation_Data")
1663
+ ...IsRoomForRent_abTests
1664
+ }
1665
+
1666
+ fragment IsRoomForRent_abTests on ABTests {
1667
+ RE_R4R_SRP: abTest(trial: "RE_R4R_SRP")
1668
+ }
1669
+
1670
+ fragment HomeDetailsRentalsAgentCard_abTests on ABTests {
1671
+ AGENT_CARD_TCPA_DISCLAIMER: abTest(trial: "AGENT_CARD_TCPA_DISCLAIMER")
1672
+ }
1673
+
1674
+ fragment AtAGlanceFactsWrapper_abTests on ABTests {
1675
+ RE_HDP_AGENT_INFO: abTest(trial: "RE_HDP_AGENT_INFO")
1676
+ }
1677
+
1678
+ fragment RentalUpsellContainer_abTests on ABTests {
1679
+ RE_UPDATE_APPLICATION_UPSELL_PRICING: abTest(
1680
+ trial: "RE_UPDATE_APPLICATION_UPSELL_PRICING"
1681
+ )
1682
+ }
1683
+
1684
+ fragment DsRentalFooterSection_abTests on ABTests {
1685
+ RE_ARCANE_HDP: abTest(trial: "RE_ARCANE_HDP")
1686
+ }
1687
+
1688
+ fragment HousingVoucherABTests_abTests on ABTests {
1689
+ ...HousingVoucher_abTests
1690
+ }
1691
+
1692
+ fragment HousingVoucher_abTests on ABTests {
1693
+ SI_Housing_Voucher_Tips: abTest(trial: "SI_Housing_Voucher_Tips")
1694
+ }
1695
+
1696
+ fragment HomeDetailsListingCriteriaCard_abTests on ABTests {
1697
+ RE_LISTING_CRITERIA: abTest(trial: "RE_LISTING_CRITERIA")
1698
+ RC_LISTING_CRITERIA_PET_POLICY_UPDATE: abTest(
1699
+ trial: "RC_LISTING_CRITERIA_PET_POLICY_UPDATE"
1700
+ )
1701
+ }
1702
+
1703
+ fragment PageViewTracker_property on Property {
1704
+ zpid
1705
+ address {
1706
+ streetAddress
1707
+ state
1708
+ city
1709
+ zipcode
1710
+ neighborhood
1711
+ }
1712
+ zestimate
1713
+ hdpUrl
1714
+ price
1715
+ homeType
1716
+ homeStatus
1717
+ listing_sub_type {
1718
+ is_pending
1719
+ is_comingSoon
1720
+ is_FSBO
1721
+ is_bankOwned
1722
+ is_newHome
1723
+ is_foreclosure
1724
+ is_forAuction
1725
+ is_FSBA
1726
+ }
1727
+ isRecentStatusChange
1728
+ isNonOwnerOccupied
1729
+ brokerId
1730
+ ssid
1731
+ buildingId
1732
+ county
1733
+ newConstructionType
1734
+ daysOnZillow
1735
+ latitude
1736
+ longitude
1737
+ bedrooms
1738
+ bathrooms
1739
+ livingArea
1740
+ livingAreaValue
1741
+ lotSize
1742
+ lotAreaValue
1743
+ yearBuilt
1744
+ foreclosureTypes {
1745
+ isBankOwned
1746
+ wasNonRetailAuction
1747
+ wasDefault
1748
+ }
1749
+ isFeatured
1750
+ postingUrl
1751
+ providerListingID
1752
+ isPremierBuilder
1753
+ rentalApplicationsAcceptedType
1754
+ brokerageName
1755
+ currency
1756
+ propertyTypeDimension
1757
+ hdpTypeDimension
1758
+ listingTypeDimension
1759
+ featuredListingTypeDimension
1760
+ brokerIdDimension
1761
+ keystoneHomeStatus
1762
+ pageUrlFragment
1763
+ contingentListingType
1764
+ isRentalsLeadCapMet
1765
+ isPaidMultiFamilyBrokerId
1766
+ timeZone
1767
+ resoFacts {
1768
+ otherFacts {
1769
+ value
1770
+ name
1771
+ }
1772
+ }
1773
+ tourEligibility(
1774
+ platform: WEB
1775
+ useAsyncAb: false
1776
+ supportedTourTypes: [STANDARD, INSTANT, INSTANT_BOOK]
1777
+ ) {
1778
+ isPropertyTourEligible
1779
+ }
1780
+ virtualTourUrl
1781
+ bedrooms
1782
+ bathrooms
1783
+ ...IMXRichMedia_property
1784
+ ...NcVariant_property
1785
+ ...ShouldShowFloorMap_property
1786
+ ...ShouldShowVideo_property
1787
+ ...ShouldShowVirtualTour_property
1788
+ ...couldShowThirdPartyVirtualTour_property
1789
+ ...couldShowEmbeddedThirdPartyVirtualTour_property
1790
+ }
1791
+
1792
+ fragment couldShowEmbeddedThirdPartyVirtualTour_property on Property {
1793
+ thirdPartyVirtualTour {
1794
+ lightboxUrl
1795
+ }
1796
+ ...couldShowThirdPartyVirtualTour_property
1797
+ }
1798
+
1799
+ fragment PageViewTracker_viewer on Viewer {
1800
+ emailHash
1801
+ }
1802
+
1803
+ fragment abTestManager_abTests on ABTests {
1804
+ AB_DASHBOARD_AA_TEST: abTest(trial: "AB_DASHBOARD_AA_TEST")
1805
+ ACTIVATION_ENABLED: abTest(trial: "Activation_Enabled")
1806
+ ACTIVATION_ONBOARDING: abTest(trial: "Activation_Onboarding")
1807
+ ACTIVATION_ONBOARDING_ENABLED: abTest(trial: "Activation_Onboarding_Enabled")
1808
+ ACTIVATION_GA_METRICS_ENABLED: abTest(trial: "Activation_GA_Metrics_Enabled")
1809
+ AIPERS_SIMILAR_HOMES_GDP: abTest(trial: "AIPERS_SIMILAR_HOMES_GDP")
1810
+ AR_CSAT_ONSITE_HDP: abTest(trial: "AR_CSAT_ONSITE_HDP")
1811
+ AR_CSAT_MODAL_HDP_LOAD_DELAY: abTest(trial: "AR_CSAT_MODAL_HDP_LOAD_DELAY")
1812
+ AR_SHOWCASE_HDP_WIDGET: abTest(trial: "AR_SHOWCASE_HDP_WIDGET")
1813
+ HDP_CONSTELLATION_PROPERTY_CARD: abTest(
1814
+ trial: "HDP_CONSTELLATION_PROPERTY_CARD"
1815
+ )
1816
+ HDP_DESKTOP_LAYOUT_TOPNAV: abTest(trial: "HDP_DESKTOP_LAYOUT_TOPNAV")
1817
+ HDP_EARLY_TRIAGE_REORDER: abTest(trial: "HDP_EARLY_TRIAGE_REORDER")
1818
+ HDP_EARLY_TRIAGE_REORDER_APP: abTest(trial: "HDP_EARLY_TRIAGE_REORDER_APP")
1819
+ HDP_FNF_BULLETS: abTest(trial: "HDP_FNF_BULLETS")
1820
+ HDP_HFF_ACCORDION: abTest(trial: "HDP_HFF_ACCORDION")
1821
+ HDP_HIGHLIGHT_OFFER_REVIEW: abTest(trial: "HDP_HIGHLIGHT_OFFER_REVIEW")
1822
+ HDP_HOLLYWOOD_FS_SUBTYPES: abTest(trial: "HDP_HOLLYWOOD_FS_SUBTYPES")
1823
+ HDP_HOME_INSIGHTS: abTest(trial: "HDP_HOME_INSIGHTS")
1824
+ HDP_INSIGHTS_VERSION: abTest(trial: "HDP_INSIGHTS_VERSION")
1825
+ HDP_REORDER_AT_A_GLANCE: abTest(trial: "HDP_REORDER_AT_A_GLANCE")
1826
+ HDP_SELLING_SOON_MSG: abTest(trial: "HDP_SELLING_SOON_MSG")
1827
+ HDP_SELLING_SOON_V2_TEST: abTest(trial: "HDP_SELLING_SOON_V2_TEST")
1828
+ HDP_TOP_SLOT: abTest(trial: "HDP_TOP_SLOT")
1829
+ HDP_UPDATED_FNF: abTest(trial: "HDP_UPDATED_FNF")
1830
+ HDP_ZHVI_CHART_MIGRATION: abTest(trial: "HDP_ZHVI_CHART_MIGRATION")
1831
+ MIGHTY_MONTH_2022_HOLDOUT: abTest(trial: "MIGHTY_MONTH_2022_HOLDOUT")
1832
+ MTT_GDP_PVS_CALL_GATE: abTest(trial: "MTT_GDP_PVS_CALL_GATE")
1833
+ NFSHDP_OWNER_OPTIONS_GOOGLE_AD: abTest(trial: "NFSHDP_OWNER_OPTIONS_GOOGLE_AD")
1834
+ PERF_DEFER_PHOTOS: abTest(trial: "PERF_DEFER_PHOTOS")
1835
+ PERF_PRELOAD_HDP_IMAGE: abTest(trial: "PERF_PRELOAD_HDP_IMAGE")
1836
+ RE_CANADA_CTA: abTest(trial: "RE_CANADA_CTA")
1837
+ RE_HDP_HOME_INSIGHTS: abTest(trial: "RE_HDP_HOME_INSIGHTS")
1838
+ RE_HDP_HOME_INSIGHTS_VERSION: abTest(trial: "RE_HDP_HOME_INSIGHTS_VERSION")
1839
+ RE_VARIANT_HDP_DEFERRED_HYDRATION: abTest(
1840
+ trial: "RE_VARIANT_HDP_DEFERRED_HYDRATION"
1841
+ )
1842
+ RE_NON_VARIANT_HDP_DEFERRED_HYDRATION: abTest(
1843
+ trial: "RE_NON_VARIANT_HDP_DEFERRED_HYDRATION"
1844
+ )
1845
+ SI_DownPaymentAssistance: abTest(trial: "SI_DownPaymentAssistance")
1846
+ SI_DPA_Apps: abTest(trial: "SI_DPA_Apps")
1847
+ SI_CostAndFees_HDP_Triage: abTest(trial: "SI_CostAndFees_HDP_Triage")
1848
+ SPT_RENDER_FOR_RENT_PAGE: abTest(trial: "SPT_RENDER_FOR_RENT_PAGE")
1849
+ TRACK_HOME_VALUE_V1: abTest(trial: "TRACK_HOME_VALUE_V1")
1850
+ UnassistedHomeShowingWeb: abTest(trial: "UnassistedHomeShowingWeb")
1851
+ SPT_RENDER_FOR_SALE_PAGE: abTest(trial: "SPT_RENDER_FOR_SALE_PAGE")
1852
+ VL_BDP_NEW_TAB: abTest(trial: "VL_BDP_NEW_TAB")
1853
+ HDP_NEW_ZESTIMATE_CHART: abTest(trial: "HDP_NEW_ZESTIMATE_CHART")
1854
+ ZEXP_HOLDOUT_ES_PILOT: abTest(trial: "ZEXP_HOLDOUT_ES_PILOT")
1855
+ ZHL_HDP_CHIP_PERSONALIZE_PAYMENT_CTAS: abTest(
1856
+ trial: "ZHL_HDP_CHIP_PERSONALIZE_PAYMENT_CTAS"
1857
+ )
1858
+ ZHL_HDP_CHIP_PERSONALIZE_PAYMENT_PERSISTENCE: abTest(
1859
+ trial: "ZHL_HDP_CHIP_PERSONALIZE_PAYMENT_PERSISTENCE"
1860
+ )
1861
+ ZHL_PERSONALIZED_PAYMENT_WEB_MVP: abTest(
1862
+ trial: "ZHL_PERSONALIZED_PAYMENT_WEB_MVP"
1863
+ )
1864
+ ZHL_PERSONALIZED_PAYMENT_MODULE: abTest(
1865
+ trial: "ZHL_PERSONALIZED_PAYMENT_MODULE"
1866
+ )
1867
+ }
1868
+
1869
+ fragment FrSummaryContent_property on Property {
1870
+ ...FrChip_property
1871
+ ...GetShareWithCaseManagerEnabled_property
1872
+ ...RentalContactForm_property
1873
+ }
1874
+
1875
+ fragment FrChip_property on Property {
1876
+ ...PriceAndFactsRow_property
1877
+ ...AddressRow_property
1878
+ ...StatusAndZestimateRow_property
1879
+ ...IsRoomForRent_property
1880
+ }
1881
+
1882
+ fragment PriceAndFactsRow_property on Property {
1883
+ currency
1884
+ postingProductType
1885
+ bedrooms
1886
+ ...BedBathBeyond_property
1887
+ }
1888
+
1889
+ fragment BedBathBeyond_property on Property {
1890
+ bedrooms
1891
+ bathrooms
1892
+ livingArea
1893
+ homeType
1894
+ lotSize
1895
+ lotAreaValue
1896
+ lotAreaUnits
1897
+ livingAreaValue
1898
+ livingAreaUnitsShort
1899
+ state
1900
+ resoFacts {
1901
+ bathroomsFull
1902
+ bathroomsThreeQuarter
1903
+ bathroomsHalf
1904
+ bathroomsOneQuarter
1905
+ }
1906
+ }
1907
+
1908
+ fragment AddressRow_property on Property {
1909
+ ...Address_property
1910
+ ...getDisplayAddress_property
1911
+ }
1912
+
1913
+ fragment Address_property on Property {
1914
+ streetAddress
1915
+ city
1916
+ state
1917
+ zipcode
1918
+ isUndisclosedAddress
1919
+ formattedChip(xConsumerUsername: "hdp-web") {
1920
+ location {
1921
+ fullValue
1922
+ }
1923
+ }
1924
+ }
1925
+
1926
+ fragment getDisplayAddress_property on Property {
1927
+ streetAddress
1928
+ marketingName
1929
+ building {
1930
+ buildingName
1931
+ }
1932
+ postingProductType
1933
+ }
1934
+
1935
+ fragment StatusAndZestimateRow_property on Property {
1936
+ rentZestimate
1937
+ currency
1938
+ homeType
1939
+ isIncomeRestricted
1940
+ postingProductType
1941
+ ...StatusArea_property
1942
+ ...RoomSizeAndHousemates_property
1943
+ }
1944
+
1945
+ fragment StatusArea_property on Property {
1946
+ homeStatus
1947
+ homeType
1948
+ attributionInfo {
1949
+ trueStatus
1950
+ }
1951
+ listing_sub_type {
1952
+ is_roomForRent
1953
+ }
1954
+ }
1955
+
1956
+ fragment RoomSizeAndHousemates_property on Property {
1957
+ roomForRent {
1958
+ roommateDetails {
1959
+ totalCount
1960
+ }
1961
+ roomDetails {
1962
+ roomArea
1963
+ roomAreaUnits
1964
+ }
1965
+ }
1966
+ }
1967
+
1968
+ fragment RentalContactForm_property on Property {
1969
+ rentalApplicationsAcceptedType
1970
+ providerListingID
1971
+ isInstantTourEnabled
1972
+ rentalInstantTour {
1973
+ schedulingStatus
1974
+ tourId
1975
+ startTime
1976
+ zoneId
1977
+ }
1978
+ odpPropertyModels {
1979
+ rentalsSidecar {
1980
+ rentalsSidecarListings {
1981
+ tourSchedulingPayload {
1982
+ inPersonTourEnabled
1983
+ liveVideoTourEnabled
1984
+ selfGuidedTourEnabled
1985
+ instantTourConfigurations {
1986
+ provider
1987
+ tourType
1988
+ }
1989
+ }
1990
+ }
1991
+ }
1992
+ }
1993
+ }
1994
+
1995
+ fragment FrSummaryContent_viewer on Viewer {
1996
+ ...GetShareWithCaseManagerEnabled_viewer
1997
+ }
1998
+
1999
+ fragment GetShareWithCaseManagerEnabled_viewer on Viewer {
2000
+ roles {
2001
+ isLlpRenter
2002
+ }
2003
+ }
2004
+
2005
+ fragment FrSummaryContent_abTests on ABTests {
2006
+ ...FrChip_abTests
2007
+ RE_CANADA_CTA: abTest(trial: "RE_CANADA_CTA")
2008
+ }
2009
+
2010
+ fragment FrChip_abTests on ABTests {
2011
+ ...StatusAndZestimateRow_abTests
2012
+ ...IsRoomForRent_abTests
2013
+ }
2014
+
2015
+ fragment StatusAndZestimateRow_abTests on ABTests {
2016
+ SEOTEST_REMOVE_RENT_ZESTIMATE: abTest(trial: "SEOTEST_REMOVE_RENT_ZESTIMATE")
2017
+ }
2018
+
2019
+ fragment DsNeighborhood_abTests on ABTests {
2020
+ ...DsNearbyHomes_abTests
2021
+ }
2022
+
2023
+ fragment DsNearbyHomes_abTests on ABTests {
2024
+ RE_Similar_Homes_new_position: abTest(trial: "RE_Similar_Homes_new_position")
2025
+ }
2026
+
2027
+ fragment FrLightboxes_property on Property {
2028
+ ...ReportProblemLightbox_property
2029
+ ...Share_property
2030
+ ...ShareWithCaseManagerLightbox_property
2031
+ ...GetShareWithCaseManagerEnabled_property
2032
+ ...MapLightboxContainer_property
2033
+ ...MixedMediaLightbox_property
2034
+ }
2035
+
2036
+ fragment ShareWithCaseManagerLightbox_property on Property {
2037
+ ...Share_property
2038
+ }
2039
+
2040
+ fragment MapLightboxContainer_property on Property {
2041
+ ...GalleryLightboxMapGoogle_property
2042
+ }
2043
+
2044
+ fragment GalleryLightboxMapGoogle_property on Property {
2045
+ zpid
2046
+ streetAddress
2047
+ city
2048
+ state
2049
+ zipcode
2050
+ latitude
2051
+ longitude
2052
+ isUndisclosedAddress
2053
+ streetViewTileImageUrlMediumLatLong: googleStreetViewImageSignedUrl(
2054
+ featureArea: "hdpMediaWall"
2055
+ locationType: LAT_LONG
2056
+ width: 400
2057
+ height: 250
2058
+ )
2059
+ streetViewTileImageUrlMediumAddress: googleStreetViewImageSignedUrl(
2060
+ featureArea: "hdpMediaWall"
2061
+ locationType: ADDRESS
2062
+ width: 400
2063
+ height: 250
2064
+ )
2065
+ ...GalleryLightboxActionButtons_property
2066
+ ...GoogleStreetViewPanorama_property
2067
+ ...LotLinesMap_property
2068
+ ...GetShareWithCaseManagerEnabled_property
2069
+ }
2070
+
2071
+ fragment LotLinesMap_property on Property {
2072
+ latitude
2073
+ longitude
2074
+ homeStatus
2075
+ zpid
2076
+ price
2077
+ thumb: photos(count: 1, size: THUMBNAIL) {
2078
+ url
2079
+ }
2080
+ neighborhoodMapThumb: photos(count: 1, size: S) {
2081
+ url
2082
+ }
2083
+ }
2084
+
2085
+ fragment GalleryLightboxActionButtons_property on Property {
2086
+ zpid
2087
+ homeStatus
2088
+ isPremierBuilder
2089
+ address {
2090
+ streetAddress
2091
+ city
2092
+ state
2093
+ zipcode
2094
+ }
2095
+ ...SaveHome_property
2096
+ ...Variant_property
2097
+ ...HomeDetailsContactUpsell_property
2098
+ }
2099
+
2100
+ fragment GoogleStreetViewPanorama_property on Property {
2101
+ zpid
2102
+ longitude
2103
+ latitude
2104
+ streetViewMetadataUrlMapLightboxAddress: googleStreetViewMetadataSignedUrl(
2105
+ featureArea: "hdpMapLightbox"
2106
+ locationType: ADDRESS
2107
+ )
2108
+ }
2109
+
2110
+ fragment MixedMediaLightbox_property on Property {
2111
+ zpid
2112
+ homeStatus
2113
+ photoCount
2114
+ address {
2115
+ city
2116
+ state
2117
+ streetAddress
2118
+ zipcode
2119
+ }
2120
+ ...GalleryLightboxActionButtons_property
2121
+ ...SphereViewerContainer_property
2122
+ ...ShouldShowVideo_property
2123
+ ...ShouldShowVirtualTour_property
2124
+ ...VideoContainer_property
2125
+ ...GalleryLightboxFooter_property
2126
+ ...GalleryLightboxResponsiveGallery_property
2127
+ ...CommunityStyle_property
2128
+ ...GalleryLightboxThirdPartyVirtualTour_property
2129
+ ...GetShareWithCaseManagerEnabled_property
2130
+ responsivePhotosOriginalRatio: photos {
2131
+ caption
2132
+ key: photoKey
2133
+ mixedSources(aspectRatio: Original) {
2134
+ jpeg {
2135
+ url
2136
+ width
2137
+ }
2138
+ webp {
2139
+ url
2140
+ width
2141
+ }
2142
+ }
2143
+ }
2144
+ ...couldShowEmbeddedThirdPartyVirtualTour_property
2145
+ }
2146
+
2147
+ fragment VideoContainer_property on Property {
2148
+ ...VideoWalkthroughContainer_property
2149
+ ...GalleryLightboxHeaderMobile_property
2150
+ }
2151
+
2152
+ fragment VideoWalkthroughContainer_property on Property {
2153
+ primaryPublicVideo {
2154
+ videoIdEncoded
2155
+ postingClient
2156
+ sourceVideoWidth
2157
+ sourceVideoHeight
2158
+ sources {
2159
+ presetName
2160
+ src
2161
+ type
2162
+ }
2163
+ }
2164
+ richMediaVideos {
2165
+ mp4Url
2166
+ hlsUrl
2167
+ }
2168
+ }
2169
+
2170
+ fragment GalleryLightboxHeaderMobile_property on Property {
2171
+ ...SaveHome_property
2172
+ }
2173
+
2174
+ fragment GalleryLightboxFooter_property on Property {
2175
+ ...GalleryLightboxHomeInfo_property
2176
+ }
2177
+
2178
+ fragment GalleryLightboxHomeInfo_property on Property {
2179
+ price
2180
+ lastSoldPrice
2181
+ bedrooms
2182
+ bathrooms
2183
+ livingArea
2184
+ livingAreaValue
2185
+ livingAreaUnits
2186
+ homeStatus
2187
+ homeType
2188
+ currency
2189
+ listing_sub_type {
2190
+ is_newHome
2191
+ is_FSBO
2192
+ is_bankOwned
2193
+ is_foreclosure
2194
+ is_forAuction
2195
+ is_comingSoon
2196
+ }
2197
+ contingentListingType
2198
+ attributionInfo {
2199
+ trueStatus
2200
+ }
2201
+ isPremierBuilder
2202
+ newConstructionType
2203
+ }
2204
+
2205
+ fragment GalleryLightboxResponsiveGallery_property on Property {
2206
+ homeStatus
2207
+ isPremierBuilder
2208
+ ...GalleryLightboxHeaderMobile_property
2209
+ ...GalleryLightboxActionButtons_property
2210
+ ...GalleryLightboxContactUpsell_property
2211
+ }
2212
+
2213
+ fragment GalleryLightboxContactUpsell_property on Property {
2214
+ ...HomeDetailsContactUpsell_property
2215
+ }
2216
+
2217
+ fragment GalleryLightboxThirdPartyVirtualTour_property on Property {
2218
+ thirdPartyVirtualTour {
2219
+ lightboxUrl
2220
+ }
2221
+ ...couldShowEmbeddedThirdPartyVirtualTour_property
2222
+ }
2223
+
2224
+ fragment CommunityStyle_property on Property {
2225
+ homeType
2226
+ }
2227
+
2228
+ fragment FrLightboxes_viewer on Viewer {
2229
+ ...ReportProblemLightbox_viewer
2230
+ ...ShareWithCaseManagerLightbox_viewer
2231
+ ...GetShareWithCaseManagerEnabled_viewer
2232
+ ...MapLightboxContainer_viewer
2233
+ ...MixedMediaLightbox_viewer
2234
+ }
2235
+
2236
+ fragment ShareWithCaseManagerLightbox_viewer on Viewer {
2237
+ caseworker {
2238
+ emailAddress
2239
+ zuid
2240
+ }
2241
+ }
2242
+
2243
+ fragment MapLightboxContainer_viewer on Viewer {
2244
+ ...GalleryLightboxMapGoogle_viewer
2245
+ }
2246
+
2247
+ fragment GalleryLightboxMapGoogle_viewer on Viewer {
2248
+ ...GetShareWithCaseManagerEnabled_viewer
2249
+ }
2250
+
2251
+ fragment MixedMediaLightbox_viewer on Viewer {
2252
+ ...GalleryLightboxActionButtons_viewer
2253
+ ...GalleryLightboxResponsiveGallery_viewer
2254
+ ...GetShareWithCaseManagerEnabled_viewer
2255
+ }
2256
+
2257
+ fragment GalleryLightboxResponsiveGallery_viewer on Viewer {
2258
+ ...GalleryLightboxContactUpsell_viewer
2259
+ }
2260
+
2261
+ fragment GalleryLightboxContactUpsell_viewer on Viewer {
2262
+ ...HomeDetailsContactUpsell_viewer
2263
+ }
2264
+
2265
+ fragment HomeDetailsContactUpsell_viewer on Viewer {
2266
+ ...DsContactButtons_viewer
2267
+ }
2268
+
2269
+ fragment DsContactButtons_viewer on Viewer {
2270
+ email
2271
+ }
2272
+
2273
+ fragment GalleryLightboxActionButtons_viewer on Viewer {
2274
+ ...HomeDetailsContactUpsell_viewer
2275
+ }
2276
+
2277
+ fragment FrLightboxes_abTests on ABTests {
2278
+ ...MixedMediaLightbox_abTests
2279
+ }
2280
+
2281
+ fragment MixedMediaLightbox_abTests on ABTests {
2282
+ RMX_LIGHTBOX_CHROME_1_5: abTest(trial: "RMX_LIGHTBOX_CHROME_1.5")
2283
+ ...SphereViewerContainer_abTests
2284
+ ...GalleryLightboxResponsiveGallery_abTests
2285
+ ...GalleryLightboxActionButtons_abTests
2286
+ }
2287
+
2288
+ fragment SphereViewerContainer_abTests on ABTests {
2289
+ DELETE_WHEN_REAL_TRIAL_ADDED: abTest(trial: "DELETE_WHEN_REAL_TRIAL_ADDED")
2290
+ }
2291
+
2292
+ fragment GalleryLightboxResponsiveGallery_abTests on ABTests {
2293
+ ...GalleryLightboxContactUpsell_abTests
2294
+ }
2295
+
2296
+ fragment GalleryLightboxContactUpsell_abTests on ABTests {
2297
+ ...HomeDetailsContactUpsell_abTests
2298
+ }
2299
+
2300
+ fragment HomeDetailsContactUpsell_abTests on ABTests {
2301
+ ...DsContactButtons_abTests
2302
+ }
2303
+
2304
+ fragment DsContactButtons_abTests on ABTests {
2305
+ __typename
2306
+ }
2307
+
2308
+ fragment GalleryLightboxActionButtons_abTests on ABTests {
2309
+ ...HomeDetailsContactUpsell_abTests
2310
+ }
2311
+
2312
+ fragment UniversalAnalyticsDataLayerFragment_property on Property {
2313
+ ...PropertyInfoBlockFragment_property
2314
+ ...Variant_property
2315
+ }
2316
+
2317
+ fragment PropertyInfoBlockFragment_property on Property {
2318
+ zpid
2319
+ buildingId
2320
+ virtualTourUrl
2321
+ isPremierBuilder
2322
+ isShowcaseListing
2323
+ thirdPartyVirtualTour {
2324
+ providerKey
2325
+ }
2326
+ ...ShouldShowVirtualTour_property
2327
+ ...IMXRichMedia_property
2328
+ ...IMXLightboxEntryFragments_property
2329
+ }
2330
+
2331
+ fragment UniversalAnalyticsDataLayerFragment_abTests on ABTests {
2332
+ ...PropertyInfoBlockFragment_abTests
2333
+ ...Variant_abTests
2334
+ }
2335
+
2336
+ fragment PropertyInfoBlockFragment_abTests on ABTests {
2337
+ ...IMXLightboxEntryFragments_abTests
2338
+ }
2339
+
2340
+ fragment IMXLightboxEntryFragments_abTests on ABTests {
2341
+ IMX_REPORT_PROBLEM: abTest(trial: "IMX_REPORT_PROBLEM")
2342
+ RMX_HIGH_RES_PHOTO: abTest(trial: "RMX_HIGH_RES_PHOTO")
2343
+ IMX_FSHDP_MICRO_FRONTEND: abTest(trial: "IMX_FSHDP_MICRO_FRONTEND")
2344
+ ...IMXViewContainer_abTests
2345
+ ...SphereViewerContainer_abTests
2346
+ ...IMXViewMenu_abTests
2347
+ }
2348
+
2349
+ fragment IMXViewContainer_abTests on ABTests {
2350
+ ...IMXAttribution_abTests
2351
+ }
2352
+
2353
+ fragment IMXAttribution_abTests on ABTests {
2354
+ DELETE_WHEN_REAL_TRIAL_ADDED: abTest(trial: "DELETE_WHEN_REAL_TRIAL_ADDED")
2355
+ }
2356
+
2357
+ fragment IMXViewMenu_abTests on ABTests {
2358
+ GROUP_BY_ROOM_TOGGLE_IMX_LIGHTBOX: abTest(
2359
+ trial: "GROUP_BY_ROOM_TOGGLE_IMX_LIGHTBOX"
2360
+ )
2361
+ }
2362
+
2363
+ fragment Variant_abTests on ABTests {
2364
+ SPT_RENDER_FOR_SALE_PAGE: abTest(trial: "SPT_RENDER_FOR_SALE_PAGE")
2365
+ }
2366
+
2367
+ fragment RentalContactForm_abTests_hdp on ABTests {
2368
+ ...RentalContactForm_abTests_shared
2369
+ HDP_INSTANT_TOUR: abTest(trial: "HDP_INSTANT_TOUR")
2370
+ }
2371
+
2372
+ fragment RentalContactForm_abTests_shared on ABTests {
2373
+ RE_RENTER_PROFILE_ENABLE_CLEAR_DATA: abTest(
2374
+ trial: "RE_RENTER_PROFILE_ENABLE_CLEAR_DATA"
2375
+ )
2376
+ RE_Contact_Property_CTA: abTest(trial: "RE_Contact_Property_CTA")
2377
+ RE_RP_NO_DELAY: abTest(trial: "RE_RP_NO_DELAY")
2378
+ SI_IncomeRestrictedDisclaimer: abTest(trial: "SI_IncomeRestrictedDisclaimer")
2379
+ SI_LLP_DirectToEmployer: abTest(trial: "SI_LLP_DirectToEmployer")
2380
+ RE_CTA_BUTTONS: abTest(trial: "RE_CTA_BUTTONS")
2381
+ RC_INLINE_FORM_REDUCED: abTest(trial: "RC-INLINE_FORM_REDUCED")
2382
+ RC_RENTER_PROFILE_VOUCHER: abTest(trial: "RC_RENTER_PROFILE_VOUCHER")
2383
+ RC_PREFILL_CONTACT_INFO: abTest(trial: "RC_PREFILL_CONTACT_INFO")
2384
+ RC_QUALIFICATION_FLOW: abTest(trial: "RC_QUALIFICATION_FLOW")
2385
+ RC_RP_DETAIL_INCOME: abTest(trial: "RC_RP_DETAIL_INCOME")
2386
+ RC_HDP_MULTICONTACT: abTest(trial: "RC_HDP_MULTICONTACT")
2387
+ }
2388
+
2389
+ fragment ForRentSearchPageStateParamsFragment_property on Property {
2390
+ latitude
2391
+ longitude
2392
+ cityId
2393
+ stateId
2394
+ boroughId
2395
+ countyId
2396
+ }
2397
+
2398
+ fragment RentalPrequalificationCard on ABTests {
2399
+ RC_QUALIFICATION_FLOW: abTest(trial: "RC_QUALIFICATION_FLOW")
2400
+ }
2401
+ `},a=s=>{const l=new AbortController;return setTimeout(()=>l.abort(),s||0),l.signal},i=await A(),n={headers:{...w,cookie:i},...t&&{signal:a(t)}},{data:p}=await m.post(r,o,n)||{};return p?.data},ae=async e=>{const t="https://www.zillow.com/graphql",r={operationName:"ListingContactDetailsQuery",variables:{zpid:e,altId:null},query:`query ListingContactDetailsQuery($zpid: ID!, $altId: ID) {
2402
+ viewer {
2403
+ roles {
2404
+ isLandlordLiaisonMember
2405
+ isLlpRenter
2406
+ }
2407
+ }
2408
+ property(zpid: $zpid, palsId: $altId) {
2409
+ zpid
2410
+ brokerId
2411
+ isHousingConnectorExclusive
2412
+ rentalListingOwnerReputation {
2413
+ responseRate
2414
+ responseTimeMs
2415
+ contactCount
2416
+ applicationCount
2417
+ isLandlordIdVerified
2418
+ }
2419
+ isFeatured
2420
+ isListedByOwner
2421
+ rentalListingOwnerContact {
2422
+ displayName
2423
+ businessName
2424
+ phoneNumber
2425
+ agentBadgeType
2426
+ photoUrl
2427
+ reviewsReceivedCount
2428
+ reviewsUrl
2429
+ ratingAverage
2430
+ isBrokerLocalCompliance
2431
+ }
2432
+ postingProductType
2433
+ postingContact {
2434
+ brokerName
2435
+ brokerageName
2436
+ name
2437
+ }
2438
+ postingUrl
2439
+ rentalMarketingTreatments
2440
+ building {
2441
+ bdpUrl
2442
+ buildingName
2443
+ housingConnector {
2444
+ hcLink {
2445
+ text
2446
+ }
2447
+ }
2448
+ ppcLink {
2449
+ text
2450
+ }
2451
+ }
2452
+ roomForRent {
2453
+ postedBy
2454
+ }
2455
+ attributionInfo {
2456
+ listingAttributionContact
2457
+ listingAgentAttributionContact
2458
+ }
2459
+ }
2460
+ }
2461
+ `},{data:o}=await m.post(t,r,{headers:w})||{};return o?.data?.property},E=(e,t)=>e===403&&t?.includes("captcha"),ie=e=>q(e),ne=async e=>{await m.post("http://localhost:8082/browser/open",{url:e})},C=async e=>{try{if(!await X())return S("zip codes required, please run the createConfig script");const{fetchListings:t=!1}=e??{},r=3101,{results:o}=await x({regionId:r,daysOnZillow:1,mergePageResults:!1})??{},{zpid:a,detailUrl:i}=o?.[0]??{};return a&&t?await k(a):i&&!i.startsWith("/apartments")?await b(i):await C(),!0}catch(t){const{status:r,message:o}=F(t);E(r,o)&&S("Zillow bot filtering! Please open https://zillow.com in your browser and complete the challenge to continue.")}},se=async()=>await new Promise(e=>{const t=setInterval(async()=>{try{await ne("https://www.zillow.com/homes/for_rent/");const r=await C();r&&(e(r),clearInterval(t))}catch{}},500)}),W=()=>{const e=["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Safari/605.1.15","Mozilla/5.0 (Macintosh; Intel Mac OS X 13_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Safari/605.1.15"],t=Math.floor(Math.random()*e.length);return e[t]},pe=async(e,t)=>{const r=await Y.launch({headless:!0,timeout:1e5,defaultViewport:null}),o=await r.newPage();if(e.includes("file://"))await o.setJavaScriptEnabled(!1);else{const i=W();await o.setUserAgent(i)}await o.goto(e,{waitUntil:"networkidle2"});const a=await o.evaluate(()=>document.querySelector(".layout-content-container")?.clientHeight);a&&await o.setViewport({width:1024,height:a}),await o.screenshot({path:t,fullPage:!0,captureBeyondViewport:!0}),await o.close(),await r.close(),console.log(`screenshot complete, ${t}`)},le=e=>{if(e==null||typeof e!="object")return!1;const t=e;return!(t.address===void 0||typeof t.bedrooms!="number"||typeof t.bedrooms!="number"||typeof t.daysOnZillow!="number"||typeof t.hdpUrl!="string"||typeof t.homeStatus!="string"||typeof t.homeType!="string"||typeof t.isRentalListingOffMarket!="boolean"||typeof t.price!="number"||typeof t.timeOnZillow!="string"||typeof t.zipcode!="string"||typeof t.zpid!="number")};var Z=(e=>(e.chrome="Google Chrome",e.brave="Brave Browser",e))(Z||{});export{Z as Browser,C as checkForZillowBotFiltering,R as fetchHtmlFromRedfinListingUrl,b as fetchHtmlFromZillowListingUrl,V as fetchRedfinListingResults,P as fetchRedfinRegionIdByZipCode,f as fetchZillowListingResults,W as generateRandomUA,K as getHtmlFromRedfinListingUrl,j as getHtmlFromZillowListingUrl,ie as getRandomZipCode,$ as getRedfinListingDetailsById,J as getRedfinListingResults,N as getRedfinRegionIdByZipCode,ae as getZillowListingContactDetailsByZpid,k as getZillowListingDetailsByZpid,x as getZillowListingResults,B as getZillowRegionIdByZipCode,E as isZillowBotFiltering,le as isZillowListingForRow,y as parseRedfinResponse,v as scrapeDataFromRedfinListingHtml,H as scrapeDataFromRedfinListingUrl,z as scrapeDataFromZillowListingHtml,ee as scrapeDataFromZillowListingUrl,pe as screenshotZillowListing,se as waitForSolvedZillowCaptcha,G as zillowListingResultsHeaders};