@tapline/client 0.2.8 → 0.2.10
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/README.md +10 -2
- package/dist/cjs/client.d.ts +10 -0
- package/dist/cjs/client.d.ts.map +1 -1
- package/dist/cjs/client.js +15 -0
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/index.d.ts +10 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +16 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/services/birdeye/client.d.ts +39 -0
- package/dist/cjs/services/birdeye/client.d.ts.map +1 -0
- package/dist/cjs/services/birdeye/client.js +92 -0
- package/dist/cjs/services/birdeye/client.js.map +1 -0
- package/dist/cjs/services/birdeye/index.d.ts +3 -0
- package/dist/cjs/services/birdeye/index.d.ts.map +1 -0
- package/dist/cjs/services/birdeye/index.js +22 -0
- package/dist/cjs/services/birdeye/index.js.map +1 -0
- package/dist/cjs/services/birdeye/types.d.ts +1388 -0
- package/dist/cjs/services/birdeye/types.d.ts.map +1 -0
- package/dist/cjs/services/birdeye/types.js +4 -0
- package/dist/cjs/services/birdeye/types.js.map +1 -0
- package/dist/cjs/services/expedia/client.d.ts +35 -0
- package/dist/cjs/services/expedia/client.d.ts.map +1 -0
- package/dist/cjs/services/expedia/client.js +74 -0
- package/dist/cjs/services/expedia/client.js.map +1 -0
- package/dist/cjs/services/expedia/index.d.ts +3 -0
- package/dist/cjs/services/expedia/index.d.ts.map +1 -0
- package/dist/cjs/services/expedia/index.js +22 -0
- package/dist/cjs/services/expedia/index.js.map +1 -0
- package/dist/cjs/services/expedia/types.d.ts +614 -0
- package/dist/cjs/services/expedia/types.d.ts.map +1 -0
- package/dist/cjs/services/expedia/types.js +4 -0
- package/dist/cjs/services/expedia/types.js.map +1 -0
- package/dist/cjs/services/imovelweb/client.d.ts +21 -0
- package/dist/cjs/services/imovelweb/client.d.ts.map +1 -0
- package/dist/cjs/services/imovelweb/client.js +44 -0
- package/dist/cjs/services/imovelweb/client.js.map +1 -0
- package/dist/cjs/services/imovelweb/index.d.ts +3 -0
- package/dist/cjs/services/imovelweb/index.d.ts.map +1 -0
- package/dist/cjs/services/imovelweb/index.js +22 -0
- package/dist/cjs/services/imovelweb/index.js.map +1 -0
- package/dist/cjs/services/imovelweb/types.d.ts +1038 -0
- package/dist/cjs/services/imovelweb/types.d.ts.map +1 -0
- package/dist/cjs/services/imovelweb/types.js +4 -0
- package/dist/cjs/services/imovelweb/types.js.map +1 -0
- package/dist/cjs/services/linkedin/client.d.ts +21 -0
- package/dist/cjs/services/linkedin/client.d.ts.map +1 -0
- package/dist/cjs/services/linkedin/client.js +40 -0
- package/dist/cjs/services/linkedin/client.js.map +1 -0
- package/dist/cjs/services/linkedin/index.d.ts +3 -0
- package/dist/cjs/services/linkedin/index.d.ts.map +1 -0
- package/dist/cjs/services/linkedin/index.js +22 -0
- package/dist/cjs/services/linkedin/index.js.map +1 -0
- package/dist/cjs/services/linkedin/types.d.ts +284 -0
- package/dist/cjs/services/linkedin/types.d.ts.map +1 -0
- package/dist/cjs/services/linkedin/types.js +4 -0
- package/dist/cjs/services/linkedin/types.js.map +1 -0
- package/dist/cjs/services/tiktok/client.d.ts +7 -1
- package/dist/cjs/services/tiktok/client.d.ts.map +1 -1
- package/dist/cjs/services/tiktok/client.js +12 -0
- package/dist/cjs/services/tiktok/client.js.map +1 -1
- package/dist/cjs/services/tiktok/types.d.ts +1444 -60
- package/dist/cjs/services/tiktok/types.d.ts.map +1 -1
- package/dist/cjs/services/zillow/client.d.ts +17 -0
- package/dist/cjs/services/zillow/client.d.ts.map +1 -0
- package/dist/cjs/services/zillow/client.js +35 -0
- package/dist/cjs/services/zillow/client.js.map +1 -0
- package/dist/cjs/services/zillow/index.d.ts +3 -0
- package/dist/cjs/services/zillow/index.d.ts.map +1 -0
- package/dist/cjs/services/zillow/index.js +22 -0
- package/dist/cjs/services/zillow/index.js.map +1 -0
- package/dist/cjs/services/zillow/types.d.ts +1340 -0
- package/dist/cjs/services/zillow/types.d.ts.map +1 -0
- package/dist/cjs/services/zillow/types.js +4 -0
- package/dist/cjs/services/zillow/types.js.map +1 -0
- package/dist/client.d.ts +10 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +15 -0
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/services/birdeye/client.d.ts +39 -0
- package/dist/services/birdeye/client.d.ts.map +1 -0
- package/dist/services/birdeye/client.js +88 -0
- package/dist/services/birdeye/client.js.map +1 -0
- package/dist/services/birdeye/index.d.ts +3 -0
- package/dist/services/birdeye/index.d.ts.map +1 -0
- package/dist/services/birdeye/index.js +4 -0
- package/dist/services/birdeye/index.js.map +1 -0
- package/dist/services/birdeye/types.d.ts +1388 -0
- package/dist/services/birdeye/types.d.ts.map +1 -0
- package/dist/services/birdeye/types.js +3 -0
- package/dist/services/birdeye/types.js.map +1 -0
- package/dist/services/expedia/client.d.ts +35 -0
- package/dist/services/expedia/client.d.ts.map +1 -0
- package/dist/services/expedia/client.js +70 -0
- package/dist/services/expedia/client.js.map +1 -0
- package/dist/services/expedia/index.d.ts +3 -0
- package/dist/services/expedia/index.d.ts.map +1 -0
- package/dist/services/expedia/index.js +4 -0
- package/dist/services/expedia/index.js.map +1 -0
- package/dist/services/expedia/types.d.ts +614 -0
- package/dist/services/expedia/types.d.ts.map +1 -0
- package/dist/services/expedia/types.js +3 -0
- package/dist/services/expedia/types.js.map +1 -0
- package/dist/services/imovelweb/client.d.ts +21 -0
- package/dist/services/imovelweb/client.d.ts.map +1 -0
- package/dist/services/imovelweb/client.js +40 -0
- package/dist/services/imovelweb/client.js.map +1 -0
- package/dist/services/imovelweb/index.d.ts +3 -0
- package/dist/services/imovelweb/index.d.ts.map +1 -0
- package/dist/services/imovelweb/index.js +4 -0
- package/dist/services/imovelweb/index.js.map +1 -0
- package/dist/services/imovelweb/types.d.ts +1038 -0
- package/dist/services/imovelweb/types.d.ts.map +1 -0
- package/dist/services/imovelweb/types.js +3 -0
- package/dist/services/imovelweb/types.js.map +1 -0
- package/dist/services/linkedin/client.d.ts +21 -0
- package/dist/services/linkedin/client.d.ts.map +1 -0
- package/dist/services/linkedin/client.js +36 -0
- package/dist/services/linkedin/client.js.map +1 -0
- package/dist/services/linkedin/index.d.ts +3 -0
- package/dist/services/linkedin/index.d.ts.map +1 -0
- package/dist/services/linkedin/index.js +4 -0
- package/dist/services/linkedin/index.js.map +1 -0
- package/dist/services/linkedin/types.d.ts +284 -0
- package/dist/services/linkedin/types.d.ts.map +1 -0
- package/dist/services/linkedin/types.js +3 -0
- package/dist/services/linkedin/types.js.map +1 -0
- package/dist/services/tiktok/client.d.ts +7 -1
- package/dist/services/tiktok/client.d.ts.map +1 -1
- package/dist/services/tiktok/client.js +12 -0
- package/dist/services/tiktok/client.js.map +1 -1
- package/dist/services/tiktok/types.d.ts +1444 -60
- package/dist/services/tiktok/types.d.ts.map +1 -1
- package/dist/services/zillow/client.d.ts +17 -0
- package/dist/services/zillow/client.d.ts.map +1 -0
- package/dist/services/zillow/client.js +31 -0
- package/dist/services/zillow/client.js.map +1 -0
- package/dist/services/zillow/index.d.ts +3 -0
- package/dist/services/zillow/index.d.ts.map +1 -0
- package/dist/services/zillow/index.js +4 -0
- package/dist/services/zillow/index.js.map +1 -0
- package/dist/services/zillow/types.d.ts +1340 -0
- package/dist/services/zillow/types.d.ts.map +1 -0
- package/dist/services/zillow/types.js +3 -0
- package/dist/services/zillow/types.js.map +1 -0
- package/package.json +9 -2
|
@@ -0,0 +1,1038 @@
|
|
|
1
|
+
export interface ErrorDetail {
|
|
2
|
+
ctx?: Record<string, unknown> | null;
|
|
3
|
+
input?: unknown | null;
|
|
4
|
+
loc?: (string | number)[] | null;
|
|
5
|
+
msg?: string | null;
|
|
6
|
+
type?: string | null;
|
|
7
|
+
}
|
|
8
|
+
export interface ErrorResponse {
|
|
9
|
+
code: PublicError;
|
|
10
|
+
details?: ErrorDetail[] | null;
|
|
11
|
+
domain?: string | null;
|
|
12
|
+
message: string;
|
|
13
|
+
request_id: string;
|
|
14
|
+
upgrade_url?: string | null;
|
|
15
|
+
}
|
|
16
|
+
export interface GetListingParams {
|
|
17
|
+
/** imovelweb listing id: the number at the end of a listing URL (`...-3047460005.html`). */
|
|
18
|
+
posting_id: string;
|
|
19
|
+
}
|
|
20
|
+
export interface GetPublisherParams {
|
|
21
|
+
/** imovelweb publisher (agency, developer or owner) id: `publisher.id` on a listing. */
|
|
22
|
+
publisher_id: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The paid placement a listing bought, as imovelweb's listing page names it; `free` is an
|
|
26
|
+
* unpaid listing.
|
|
27
|
+
*/
|
|
28
|
+
export type ImovelwebAdTier = "simple" | "simple_plus" | "highlighted" | "highlighted_plus" | "super_highlighted" | "exclusive" | "free";
|
|
29
|
+
/**
|
|
30
|
+
* An amenity of the condominium or the unit. Those outside the search's `features` filter
|
|
31
|
+
* appear on listings, but imovelweb does not filter by them.
|
|
32
|
+
*/
|
|
33
|
+
export type ImovelwebAmenity = "wheelchair_access" | "central_heating" | "green_area" | "toy_library" | "security_cameras" | "football_field" | "golf_course" | "barbecue" | "elevator" | "generator" | "jogging_track" | "playground" | "electronic_gate" | "doorman_24h" | "near_metro" | "tennis_court" | "pool" | "furnished" | "balcony" | "air_conditioning" | "bar" | "closet" | "open_kitchen" | "maid_room" | "home_office" | "accepts_swap" | "sea_front" | "hot_tub" | "garden" | "fireplace" | "suites" | "rental_pool" | "pets_allowed" | "backyard" | "alarm_system" | "service_area" | "gym" | "laundry" | "sauna" | "party_room" | "games_room" | "heated_pool" | "covered_pool" | "guardhouse" | "bike_rack" | "paved_access" | "pantry" | "leisure_area" | "pet_care" | "gourmet_balcony" | "gourmet_space" | "sports_court" | "dining_room" | "visitor_parking" | "pet_play" | "kids_pool" | "square" | "massage_room" | "pool_wet_deck" | "gourmet_kitchen" | "zen_space" | "security_24h" | "hammock_area" | "spa" | "refrigerator" | "futsal_court" | "piped_gas" | "service_entrance" | "wifi" | "tv" | "pizza_oven" | "solarium" | "tiled_floor" | "separate_kitchen";
|
|
34
|
+
/**
|
|
35
|
+
* Where an amenity is: the condominium's `common` areas, the `private` unit, or `other`
|
|
36
|
+
* details such as the building's floor count.
|
|
37
|
+
*/
|
|
38
|
+
export type ImovelwebAmenityArea = "common" | "private" | "other";
|
|
39
|
+
/**
|
|
40
|
+
* One amenity on a listing page. `amenity` is null for ids this API does not name; `id`
|
|
41
|
+
* and `label` are imovelweb's. `quantity` is the number imovelweb attaches to a few
|
|
42
|
+
* entries, such as the floor count of 30001 "Andares".
|
|
43
|
+
*/
|
|
44
|
+
export interface ImovelwebAmenityEntry {
|
|
45
|
+
amenity: ImovelwebAmenity | null;
|
|
46
|
+
area: ImovelwebAmenityArea | null;
|
|
47
|
+
id: string;
|
|
48
|
+
label: string;
|
|
49
|
+
quantity: number | null;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* A filter imovelweb says it applied, as this API's query parameter and values: compare
|
|
53
|
+
* it with the request to spot a filter imovelweb dropped. Numbers and flags are strings,
|
|
54
|
+
* as in a query string.
|
|
55
|
+
*/
|
|
56
|
+
export interface ImovelwebAppliedFilter {
|
|
57
|
+
filter: string;
|
|
58
|
+
values: string[];
|
|
59
|
+
}
|
|
60
|
+
/** A GeoJSON geometry. */
|
|
61
|
+
export interface ImovelwebAreaOutline {
|
|
62
|
+
coordinates: number[][][][];
|
|
63
|
+
type: string;
|
|
64
|
+
}
|
|
65
|
+
/** Square metres. */
|
|
66
|
+
export interface ImovelwebAreaRange {
|
|
67
|
+
max: number | null;
|
|
68
|
+
min: number | null;
|
|
69
|
+
}
|
|
70
|
+
export interface ImovelwebCountRange {
|
|
71
|
+
max: number | null;
|
|
72
|
+
min: number | null;
|
|
73
|
+
}
|
|
74
|
+
export interface ImovelwebCoverPicture {
|
|
75
|
+
size: string;
|
|
76
|
+
url: string;
|
|
77
|
+
}
|
|
78
|
+
/** An ISO 4217 currency code. */
|
|
79
|
+
export type ImovelwebCurrency = "BRL" | "USD";
|
|
80
|
+
export type ImovelwebCursorCompletion = "exhausted" | "depth_limit";
|
|
81
|
+
export interface ImovelwebCursorPagination {
|
|
82
|
+
completion: ImovelwebCursorCompletion | null;
|
|
83
|
+
next_cursor: string | null;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* A new development: its stage, delivery date and the ranges across its units. A unit
|
|
87
|
+
* carries only the stage, delivery and unit count.
|
|
88
|
+
*/
|
|
89
|
+
export interface ImovelwebDevelopment {
|
|
90
|
+
bathrooms: ImovelwebCountRange | null;
|
|
91
|
+
bedrooms: ImovelwebCountRange | null;
|
|
92
|
+
delivery: ImovelwebDevelopmentDelivery | null;
|
|
93
|
+
parking_spaces: ImovelwebCountRange | null;
|
|
94
|
+
price: ImovelwebMoneyRange | null;
|
|
95
|
+
prices_by_operation: ImovelwebDevelopmentPrice[];
|
|
96
|
+
raw: ImovelwebDevelopmentRaw;
|
|
97
|
+
stage: ImovelwebDevelopmentStage | null;
|
|
98
|
+
steps: ImovelwebDevelopmentStep[];
|
|
99
|
+
total_area_m2: ImovelwebAreaRange | null;
|
|
100
|
+
unit_count: number | null;
|
|
101
|
+
unit_groups: ImovelwebUnitGroup[];
|
|
102
|
+
usable_area_m2: ImovelwebAreaRange | null;
|
|
103
|
+
}
|
|
104
|
+
/** When the developer hands over the units: immediately, or in a month and year. */
|
|
105
|
+
export interface ImovelwebDevelopmentDelivery {
|
|
106
|
+
is_immediate: boolean;
|
|
107
|
+
month: number | null;
|
|
108
|
+
year: number | null;
|
|
109
|
+
}
|
|
110
|
+
export interface ImovelwebDevelopmentPrice {
|
|
111
|
+
operation: ImovelwebOperation | null;
|
|
112
|
+
price: ImovelwebMoney | null;
|
|
113
|
+
}
|
|
114
|
+
export interface ImovelwebDevelopmentRaw {
|
|
115
|
+
ambientes?: ImovelwebRawNumberRange;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* A development's stage: about to launch (breve lançamento), on sale before building (na
|
|
119
|
+
* planta), under construction (em obra), or ready to move into (mude já).
|
|
120
|
+
*/
|
|
121
|
+
export type ImovelwebDevelopmentStage = "launching_soon" | "off_plan" | "under_construction" | "ready_to_move";
|
|
122
|
+
export interface ImovelwebDevelopmentStep {
|
|
123
|
+
stage: ImovelwebDevelopmentStage | null;
|
|
124
|
+
status: ImovelwebStepStatus | null;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* One unit of a development, a listing of its own. `created_at` is when the unit was
|
|
128
|
+
* listed. `status` is null: a development page sends every unit as OFFLINE (kept in
|
|
129
|
+
* `raw.status`), live or not, so `/listings/{posting_id}` on the unit's id has its status.
|
|
130
|
+
*/
|
|
131
|
+
export interface ImovelwebDevelopmentUnit {
|
|
132
|
+
ad_tier: ImovelwebAdTier | null;
|
|
133
|
+
amenities: ImovelwebAmenityEntry[];
|
|
134
|
+
bathrooms: number | null;
|
|
135
|
+
bedrooms: number | null;
|
|
136
|
+
building_age_years: number | null;
|
|
137
|
+
code: string | null;
|
|
138
|
+
created_at: string | null;
|
|
139
|
+
description: string | null;
|
|
140
|
+
development: ImovelwebDevelopment | null;
|
|
141
|
+
generated_title: string | null;
|
|
142
|
+
highlighted_amenities: ImovelwebAmenity[];
|
|
143
|
+
id: string;
|
|
144
|
+
is_premier: boolean;
|
|
145
|
+
is_reserved: boolean;
|
|
146
|
+
location: ImovelwebListingLocation;
|
|
147
|
+
operations: ImovelwebOperationPrice[];
|
|
148
|
+
parking_spaces: number | null;
|
|
149
|
+
photos: ImovelwebPicture[];
|
|
150
|
+
posting_type: ImovelwebPostingType | null;
|
|
151
|
+
property_subtype: ImovelwebPropertySubtype | null;
|
|
152
|
+
property_type: ImovelwebPropertyKind | null;
|
|
153
|
+
quintoandar_network: ImovelwebNetworkRole | null;
|
|
154
|
+
raw: ImovelwebDevelopmentUnitRaw;
|
|
155
|
+
status: ImovelwebPostingStatus | null;
|
|
156
|
+
suites: number | null;
|
|
157
|
+
title: string | null;
|
|
158
|
+
total_area_m2: number | null;
|
|
159
|
+
url: string;
|
|
160
|
+
usable_area_m2: number | null;
|
|
161
|
+
visit_booking_url: string | null;
|
|
162
|
+
whatsapp: string | null;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Feature codes and highlight names this API does not know, `whatsApp` when this API
|
|
166
|
+
* could not read a number in it, and imovelweb's `status`, OFFLINE on every unit a
|
|
167
|
+
* development page lists.
|
|
168
|
+
*/
|
|
169
|
+
export interface ImovelwebDevelopmentUnitRaw {
|
|
170
|
+
alt: boolean;
|
|
171
|
+
developmentFeatures: Record<string, Record<string, ImovelwebRawFeature>>;
|
|
172
|
+
enableBannerFicha: boolean;
|
|
173
|
+
expenses?: ImovelwebRawPrice | null;
|
|
174
|
+
highlightedFeatures: string[];
|
|
175
|
+
mainFeatures: Record<string, ImovelwebRawFeature>;
|
|
176
|
+
ownershipRede?: string;
|
|
177
|
+
pixelPlus: boolean;
|
|
178
|
+
plans?: ImovelwebRawDetailPicture[];
|
|
179
|
+
postingType?: string;
|
|
180
|
+
publicationAreaId: string;
|
|
181
|
+
realEstateSubTypeId?: string;
|
|
182
|
+
realEstateTypeId?: string;
|
|
183
|
+
requestVisit5A: ImovelwebRequestVisitRaw;
|
|
184
|
+
showFirst360: boolean;
|
|
185
|
+
status: string;
|
|
186
|
+
tour?: ImovelwebRawMedia | null;
|
|
187
|
+
unsafe: boolean;
|
|
188
|
+
videos?: ImovelwebRawMedia[];
|
|
189
|
+
whatsApp?: string;
|
|
190
|
+
}
|
|
191
|
+
/** A publisher advertising the same property, with its own listing of it. */
|
|
192
|
+
export interface ImovelwebDuplicatePublisher {
|
|
193
|
+
ad_tier: ImovelwebAdTier | null;
|
|
194
|
+
is_premier: boolean;
|
|
195
|
+
listing_id: string;
|
|
196
|
+
listing_url: string;
|
|
197
|
+
logo_url: string | null;
|
|
198
|
+
name: string;
|
|
199
|
+
raw: ImovelwebDuplicatePublisherRaw;
|
|
200
|
+
}
|
|
201
|
+
export interface ImovelwebDuplicatePublisherRaw {
|
|
202
|
+
publicationAreaId: string;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* One search result. `description` is plain text, imovelweb's markup removed;
|
|
206
|
+
* `photo_count` counts every photo, beyond the few a search card carries;
|
|
207
|
+
* `ai_description` is imovelweb's own generated summary, when it wrote one; `logo_url` is a
|
|
208
|
+
* development's own logo. `published_days_ago` is 0 for today; a listing without a date has
|
|
209
|
+
* null. `units` lists a development's units when imovelweb sends them with the search.
|
|
210
|
+
* `duplicate_group_id` names the group of publishers' copies the listing belongs to, the
|
|
211
|
+
* same on every copy, and is null for a listing no one else publishes. Search results carry
|
|
212
|
+
* no IPTU: imovelweb sends it as null; `/listings/{posting_id}` has it.
|
|
213
|
+
*/
|
|
214
|
+
export interface ImovelwebListing {
|
|
215
|
+
ad_tier: ImovelwebAdTier | null;
|
|
216
|
+
ai_description: string | null;
|
|
217
|
+
bathrooms: number | null;
|
|
218
|
+
bedrooms: number | null;
|
|
219
|
+
building_age_years: number | null;
|
|
220
|
+
code: string | null;
|
|
221
|
+
condo_fee: ImovelwebMoney | null;
|
|
222
|
+
description: string | null;
|
|
223
|
+
development: ImovelwebDevelopment | null;
|
|
224
|
+
duplicate: ImovelwebListingDuplicate | null;
|
|
225
|
+
duplicate_group_id: string | null;
|
|
226
|
+
generated_title: string | null;
|
|
227
|
+
has_floor_plans: boolean;
|
|
228
|
+
has_tour: boolean;
|
|
229
|
+
has_video: boolean;
|
|
230
|
+
highlighted_amenities: ImovelwebAmenity[];
|
|
231
|
+
id: string;
|
|
232
|
+
is_foreclosure_auction: boolean;
|
|
233
|
+
is_premier: boolean;
|
|
234
|
+
is_reserved: boolean;
|
|
235
|
+
location: ImovelwebListingLocation;
|
|
236
|
+
logo_url: string | null;
|
|
237
|
+
modified_at: string | null;
|
|
238
|
+
operations: ImovelwebOperationPrice[];
|
|
239
|
+
parking_spaces: number | null;
|
|
240
|
+
photo_count: number;
|
|
241
|
+
photos: ImovelwebPicture[];
|
|
242
|
+
posting_type: ImovelwebPostingType | null;
|
|
243
|
+
promotion_title: string | null;
|
|
244
|
+
property_type: ImovelwebPropertyKind | null;
|
|
245
|
+
published_days_ago: number | null;
|
|
246
|
+
publisher: ImovelwebListingPublisher;
|
|
247
|
+
quintoandar_network: ImovelwebNetworkRole | null;
|
|
248
|
+
raw: ImovelwebListingRaw;
|
|
249
|
+
status: ImovelwebPostingStatus | null;
|
|
250
|
+
suites: number | null;
|
|
251
|
+
title: string | null;
|
|
252
|
+
total_area_m2: number | null;
|
|
253
|
+
units: ImovelwebDevelopmentUnit[];
|
|
254
|
+
url: string;
|
|
255
|
+
usable_area_m2: number | null;
|
|
256
|
+
visit_booking_url: string | null;
|
|
257
|
+
whatsapp: string | null;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* A listing page. `description` is plain text with line breaks kept;
|
|
261
|
+
* `/listings/{posting_id}/publishers` lists the other agencies advertising the same property.
|
|
262
|
+
* `view_count` and `popularity_message` are imovelweb's own counters, when it shows them.
|
|
263
|
+
* `iptu` is the property tax as the page's price block shows it, in whole reais; imovelweb
|
|
264
|
+
* gives no period and advertisers enter yearly or monthly amounts, so read it with the
|
|
265
|
+
* description.
|
|
266
|
+
*/
|
|
267
|
+
export interface ImovelwebListingDetail {
|
|
268
|
+
ad_tier: ImovelwebAdTier | null;
|
|
269
|
+
amenities: ImovelwebAmenityEntry[];
|
|
270
|
+
bathrooms: number | null;
|
|
271
|
+
bedrooms: number | null;
|
|
272
|
+
building_age_years: number | null;
|
|
273
|
+
code: string | null;
|
|
274
|
+
condo_fee: ImovelwebMoney | null;
|
|
275
|
+
description: string | null;
|
|
276
|
+
development: ImovelwebDevelopment | null;
|
|
277
|
+
floor_plans: ImovelwebPicture[];
|
|
278
|
+
generated_title: string | null;
|
|
279
|
+
id: string;
|
|
280
|
+
iptu: ImovelwebMoney | null;
|
|
281
|
+
is_development_unit: boolean;
|
|
282
|
+
is_foreclosure_auction: boolean;
|
|
283
|
+
is_premier: boolean;
|
|
284
|
+
is_reserved: boolean;
|
|
285
|
+
location: ImovelwebListingLocation;
|
|
286
|
+
operations: ImovelwebOperationPrice[];
|
|
287
|
+
parking_spaces: number | null;
|
|
288
|
+
photos: ImovelwebPicture[];
|
|
289
|
+
popularity_message: string | null;
|
|
290
|
+
posting_type: ImovelwebPostingType | null;
|
|
291
|
+
property_type: ImovelwebPropertyKind | null;
|
|
292
|
+
published_at: string | null;
|
|
293
|
+
published_days_ago: number | null;
|
|
294
|
+
publisher: ImovelwebListingDetailPublisher | null;
|
|
295
|
+
quintoandar_network: ImovelwebNetworkRole | null;
|
|
296
|
+
raw: ImovelwebListingDetailRaw;
|
|
297
|
+
status: ImovelwebPostingStatus | null;
|
|
298
|
+
suites: number | null;
|
|
299
|
+
title: string | null;
|
|
300
|
+
total_area_m2: number | null;
|
|
301
|
+
units: ImovelwebDevelopmentUnit[];
|
|
302
|
+
url: string;
|
|
303
|
+
usable_area_m2: number | null;
|
|
304
|
+
view_count: number | null;
|
|
305
|
+
visit_booking_url: string | null;
|
|
306
|
+
whatsapp: string | null;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* The publisher on a listing page. `partial_phone` is the first digits imovelweb shows
|
|
310
|
+
* before its contact form; `/publishers/{publisher_id}` has the full numbers and the
|
|
311
|
+
* publisher's `is_premier`, which a listing page does not carry.
|
|
312
|
+
*/
|
|
313
|
+
export interface ImovelwebListingDetailPublisher {
|
|
314
|
+
chat_url: string | null;
|
|
315
|
+
creci: string | null;
|
|
316
|
+
id: string | null;
|
|
317
|
+
logo_url: string | null;
|
|
318
|
+
name: string | null;
|
|
319
|
+
partial_phone: string | null;
|
|
320
|
+
type: ImovelwebPublisherKind | null;
|
|
321
|
+
url: string | null;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Feature codes and flags this API does not know, and `whatsApp` when this API could not
|
|
325
|
+
* read a number in it. `requestVisit5A` is false, or on a QuintoAndar-network listing the
|
|
326
|
+
* visit booking URL that `visit_booking_url` also carries.
|
|
327
|
+
*/
|
|
328
|
+
export interface ImovelwebListingDetailRaw {
|
|
329
|
+
cronut5A: ImovelwebRequestVisitRaw;
|
|
330
|
+
developmentUrl?: string | null;
|
|
331
|
+
enableBannerFicha: boolean;
|
|
332
|
+
featuresWithIcon: number[];
|
|
333
|
+
flagsFeatures: ImovelwebRawFeature[];
|
|
334
|
+
haveVideo?: boolean;
|
|
335
|
+
mainFeatures: Record<string, ImovelwebRawFeature>;
|
|
336
|
+
ownershipRede?: string;
|
|
337
|
+
pixelPlus: boolean;
|
|
338
|
+
postingType?: string;
|
|
339
|
+
promotion?: ImovelwebRawPromotion | null;
|
|
340
|
+
publicationAreaId: string | null;
|
|
341
|
+
realEstateTypeId?: string;
|
|
342
|
+
requestVisit5A: boolean | string;
|
|
343
|
+
status?: string;
|
|
344
|
+
tour?: ImovelwebRawMedia | null;
|
|
345
|
+
videos?: ImovelwebRawMedia[];
|
|
346
|
+
whatsApp?: string;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* The listing is one of several publishers' copies of the same property. `url` is
|
|
350
|
+
* imovelweb's page for the group, which lists every copy; `has_whatsapp` is whether the group
|
|
351
|
+
* offers a WhatsApp contact. `/listings/{posting_id}/publishers` lists the copies.
|
|
352
|
+
*/
|
|
353
|
+
export interface ImovelwebListingDuplicate {
|
|
354
|
+
has_whatsapp: boolean;
|
|
355
|
+
url: string;
|
|
356
|
+
}
|
|
357
|
+
/** An amenity the search filters by: the amenities imovelweb honours as a filter. */
|
|
358
|
+
export type ImovelwebListingFeature = "wheelchair_access" | "central_heating" | "green_area" | "toy_library" | "security_cameras" | "football_field" | "golf_course" | "barbecue" | "elevator" | "generator" | "jogging_track" | "playground" | "electronic_gate" | "doorman_24h" | "near_metro" | "tennis_court" | "pool" | "furnished" | "balcony" | "air_conditioning" | "bar" | "closet" | "open_kitchen" | "maid_room" | "home_office" | "accepts_swap" | "sea_front" | "hot_tub" | "garden" | "fireplace" | "suites" | "rental_pool" | "pets_allowed" | "backyard" | "alarm_system";
|
|
359
|
+
/**
|
|
360
|
+
* Where the listing is. Coordinates are null when the advertiser hides the map position;
|
|
361
|
+
* `static_map_url` is imovelweb's own map image of it.
|
|
362
|
+
*/
|
|
363
|
+
export interface ImovelwebListingLocation {
|
|
364
|
+
address: string | null;
|
|
365
|
+
address_visibility: ImovelwebVisibility | null;
|
|
366
|
+
city: ImovelwebPlace | null;
|
|
367
|
+
coordinates_visibility: ImovelwebVisibility | null;
|
|
368
|
+
country: ImovelwebPlace | null;
|
|
369
|
+
district: ImovelwebPlace | null;
|
|
370
|
+
latitude: number | null;
|
|
371
|
+
longitude: number | null;
|
|
372
|
+
neighbourhood: ImovelwebPlace | null;
|
|
373
|
+
state: ImovelwebPlace | null;
|
|
374
|
+
static_map_url: string | null;
|
|
375
|
+
sub_district: ImovelwebPlace | null;
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* The publisher of a search result. `creci` is the CRECI licence; `main_phone` is filled
|
|
379
|
+
* only when the publisher publishes one, and `/publishers/{publisher_id}` has every number.
|
|
380
|
+
* An owner selling directly has no profile page, so its `url` is null; `logo_url` is null
|
|
381
|
+
* where imovelweb shows its placeholder image.
|
|
382
|
+
*/
|
|
383
|
+
export interface ImovelwebListingPublisher {
|
|
384
|
+
active_listing_count: number | null;
|
|
385
|
+
chat_url: string | null;
|
|
386
|
+
creci: string | null;
|
|
387
|
+
id: string;
|
|
388
|
+
is_premier: boolean;
|
|
389
|
+
joined_at: string | null;
|
|
390
|
+
joined_year: number | null;
|
|
391
|
+
logo_url: string | null;
|
|
392
|
+
main_phone: string | null;
|
|
393
|
+
name: string;
|
|
394
|
+
partial_phone: string | null;
|
|
395
|
+
raw: ImovelwebListingPublisherRaw;
|
|
396
|
+
slug: string | null;
|
|
397
|
+
type: ImovelwebPublisherKind | null;
|
|
398
|
+
url: string | null;
|
|
399
|
+
}
|
|
400
|
+
/** `mainPhone` is here only when this API could not read a phone number in it. */
|
|
401
|
+
export interface ImovelwebListingPublisherRaw {
|
|
402
|
+
approved: boolean;
|
|
403
|
+
id_portal: string | null;
|
|
404
|
+
mainPhone?: string;
|
|
405
|
+
parentPublisher: unknown | null;
|
|
406
|
+
publisherStatistics: unknown | null;
|
|
407
|
+
publisherTags: number[];
|
|
408
|
+
publisherTypeId?: string;
|
|
409
|
+
quantity_posting_by_operation_type: unknown | null;
|
|
410
|
+
slotFilterUrl: unknown | null;
|
|
411
|
+
}
|
|
412
|
+
export interface ImovelwebListingPublishers {
|
|
413
|
+
publishers: ImovelwebDuplicatePublisher[];
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Feature codes, flags and highlight names this API does not know, `triggerPill` when it
|
|
417
|
+
* names no amenity this API knows, and `whatsApp` when this API could not read a number in
|
|
418
|
+
* it.
|
|
419
|
+
*/
|
|
420
|
+
export interface ImovelwebListingRaw {
|
|
421
|
+
action: unknown | null;
|
|
422
|
+
alphanumeric_key: string;
|
|
423
|
+
alt: boolean;
|
|
424
|
+
developmentFeatures: Record<string, Record<string, ImovelwebRawFeature>>;
|
|
425
|
+
earlyDemandCronut: boolean;
|
|
426
|
+
features: unknown | null;
|
|
427
|
+
flagsFeatures: ImovelwebRawFeature[];
|
|
428
|
+
highlightedFeatures: string[];
|
|
429
|
+
house: unknown | null;
|
|
430
|
+
iptu: unknown | null;
|
|
431
|
+
leadWhatsappDevelopmentRequestData: boolean;
|
|
432
|
+
leadWhatsappPostingRequestData: boolean;
|
|
433
|
+
mainFeatures: Record<string, ImovelwebRawFeature>;
|
|
434
|
+
ownerDomain: unknown | null;
|
|
435
|
+
ownershipRede?: string;
|
|
436
|
+
pixelPlus: boolean;
|
|
437
|
+
postingType?: string;
|
|
438
|
+
publicationAreaId: string;
|
|
439
|
+
publisherSlot: string;
|
|
440
|
+
realEstateTypeId?: string;
|
|
441
|
+
requestVisit5A: ImovelwebRequestVisitRaw;
|
|
442
|
+
slot: number | null;
|
|
443
|
+
slotColor: unknown | null;
|
|
444
|
+
sponsor: unknown | null;
|
|
445
|
+
status?: string;
|
|
446
|
+
triggerPill?: string;
|
|
447
|
+
trigger_pills: string[];
|
|
448
|
+
viewPhoneAnonymousLead: boolean;
|
|
449
|
+
whatsApp?: string;
|
|
450
|
+
}
|
|
451
|
+
export type ImovelwebListingSort = "relevance" | "lowest_price" | "highest_price" | "newest" | "most_viewed" | "price_dropped";
|
|
452
|
+
export interface ImovelwebListingsMap {
|
|
453
|
+
applied_filters: ImovelwebAppliedFilter[];
|
|
454
|
+
area: ImovelwebMapArea | null;
|
|
455
|
+
markers: ImovelwebMapMarker[];
|
|
456
|
+
raw: ImovelwebListingsMapRaw;
|
|
457
|
+
total: number;
|
|
458
|
+
viewport: ImovelwebViewport | null;
|
|
459
|
+
}
|
|
460
|
+
/** `appliedFilters` is imovelweb's echo as it sent it. */
|
|
461
|
+
export interface ImovelwebListingsMapRaw {
|
|
462
|
+
appliedFilters: ImovelwebRawAppliedFilter[];
|
|
463
|
+
}
|
|
464
|
+
export interface ImovelwebListingsPage {
|
|
465
|
+
applied_filters: ImovelwebAppliedFilter[];
|
|
466
|
+
listings: ImovelwebListing[];
|
|
467
|
+
pagination: ImovelwebCursorPagination;
|
|
468
|
+
raw: ImovelwebListingsPageRaw;
|
|
469
|
+
title: string;
|
|
470
|
+
total: number;
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* `appliedFilters` is imovelweb's echo as it sent it; `developmentData` holds development
|
|
474
|
+
* data for listings not on this page.
|
|
475
|
+
*/
|
|
476
|
+
export interface ImovelwebListingsPageRaw {
|
|
477
|
+
appliedFilters: ImovelwebRawAppliedFilter[];
|
|
478
|
+
developmentData: Record<string, ImovelwebRawDevelopmentData>;
|
|
479
|
+
total5A: number | null;
|
|
480
|
+
}
|
|
481
|
+
/** A place the search can filter by: send `id` as `location_id`. */
|
|
482
|
+
export interface ImovelwebLocation {
|
|
483
|
+
id: string;
|
|
484
|
+
label: string;
|
|
485
|
+
level: ImovelwebLocationLevel | null;
|
|
486
|
+
name: string;
|
|
487
|
+
raw: ImovelwebLocationRaw;
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* The level of a place: `country`, `state`, `city`, `district` (a zone of a city),
|
|
491
|
+
* `sub_district`, or `neighbourhood`.
|
|
492
|
+
*/
|
|
493
|
+
export type ImovelwebLocationLevel = "country" | "state" | "city" | "district" | "sub_district" | "neighbourhood";
|
|
494
|
+
export interface ImovelwebLocationRaw {
|
|
495
|
+
label: string;
|
|
496
|
+
tokens: string[];
|
|
497
|
+
}
|
|
498
|
+
export interface ImovelwebLocations {
|
|
499
|
+
locations: ImovelwebLocation[];
|
|
500
|
+
}
|
|
501
|
+
export interface ImovelwebMapArea {
|
|
502
|
+
center: ImovelwebPoint;
|
|
503
|
+
id: string;
|
|
504
|
+
level: ImovelwebLocationLevel | null;
|
|
505
|
+
name: string;
|
|
506
|
+
outline: ImovelwebAreaOutline;
|
|
507
|
+
raw: ImovelwebMapAreaRaw;
|
|
508
|
+
}
|
|
509
|
+
export interface ImovelwebMapAreaRaw {
|
|
510
|
+
idciudad: number;
|
|
511
|
+
idpais: number;
|
|
512
|
+
idprovincia: number;
|
|
513
|
+
idsubzonaciudad: number;
|
|
514
|
+
idzonaciudad: number;
|
|
515
|
+
solr_geometry: unknown | null;
|
|
516
|
+
tipoN: string;
|
|
517
|
+
}
|
|
518
|
+
/**
|
|
519
|
+
* A listing on the map with its first listed price. `development_id` is the development
|
|
520
|
+
* a unit belongs to.
|
|
521
|
+
*/
|
|
522
|
+
export interface ImovelwebMapMarker {
|
|
523
|
+
coordinates_visibility: ImovelwebVisibility | null;
|
|
524
|
+
development_id: string | null;
|
|
525
|
+
id: string;
|
|
526
|
+
is_premier: boolean;
|
|
527
|
+
latitude: number;
|
|
528
|
+
longitude: number;
|
|
529
|
+
operation: ImovelwebOperation | null;
|
|
530
|
+
price: ImovelwebMoney | null;
|
|
531
|
+
price_drop_percent: number | null;
|
|
532
|
+
title: string;
|
|
533
|
+
}
|
|
534
|
+
export type ImovelwebMaxAge = "under_construction" | "launching_soon" | "5_years" | "10_years" | "20_years" | "50_years" | "over_50_years";
|
|
535
|
+
/**
|
|
536
|
+
* A kind of media. Pictures are photos or floor plans; videos and 360° tours exist only as
|
|
537
|
+
* the search's `has_video` and `has_tour` flags.
|
|
538
|
+
*/
|
|
539
|
+
export type ImovelwebMediaKind = "photo" | "video" | "tour_360" | "floor_plan";
|
|
540
|
+
/**
|
|
541
|
+
* An amount and its currency. `display` is the amount as imovelweb formats it
|
|
542
|
+
* ("2.990.000", or "R$ 1.2M" on map markers).
|
|
543
|
+
*/
|
|
544
|
+
export interface ImovelwebMoney {
|
|
545
|
+
amount: number;
|
|
546
|
+
currency: ImovelwebCurrency | null;
|
|
547
|
+
display: string | null;
|
|
548
|
+
}
|
|
549
|
+
/**
|
|
550
|
+
* The lowest and highest price of a development's units. `min` is null when imovelweb
|
|
551
|
+
* shows no starting price, as its site then asks you to enquire.
|
|
552
|
+
*/
|
|
553
|
+
export interface ImovelwebMoneyRange {
|
|
554
|
+
currency: ImovelwebCurrency | null;
|
|
555
|
+
max: number | null;
|
|
556
|
+
min: number | null;
|
|
557
|
+
}
|
|
558
|
+
/** Media a search can require. */
|
|
559
|
+
export type ImovelwebMultimedia = "tour_360" | "video" | "floor_plan";
|
|
560
|
+
/**
|
|
561
|
+
* How imovelweb marks a listing in QuintoAndar's network (its `ownershipRede`, 1P or 3P);
|
|
562
|
+
* QuintoAndar books visits to these listings at `visit_booking_url`.
|
|
563
|
+
*/
|
|
564
|
+
export type ImovelwebNetworkRole = "first_party" | "third_party";
|
|
565
|
+
/**
|
|
566
|
+
* How a listing is offered: `sale`, `rent` (long term), `season` (short stays), `auction`,
|
|
567
|
+
* or `development` (new developments sold by their developer). `development` is a search
|
|
568
|
+
* filter; a development's own prices carry `sale`.
|
|
569
|
+
*/
|
|
570
|
+
export type ImovelwebOperation = "sale" | "rent" | "season" | "auction" | "development";
|
|
571
|
+
/**
|
|
572
|
+
* The price of one operation the listing is offered for. `price` is null when imovelweb
|
|
573
|
+
* shows no amount (developments ask for contact); `price_drop_percent` is how far the price
|
|
574
|
+
* fell, when imovelweb flags a drop.
|
|
575
|
+
*/
|
|
576
|
+
export interface ImovelwebOperationPrice {
|
|
577
|
+
operation: ImovelwebOperation | null;
|
|
578
|
+
price: ImovelwebMoney | null;
|
|
579
|
+
price_drop_percent: number | null;
|
|
580
|
+
}
|
|
581
|
+
export type ImovelwebParkingSpaces = "none" | "1" | "2" | "3" | "4";
|
|
582
|
+
/**
|
|
583
|
+
* One picture in every size imovelweb serves it; a size the route does not carry is
|
|
584
|
+
* null. `url_720x532` is imovelweb's `url730x532`, named after the size its path holds;
|
|
585
|
+
* the `resized_` URLs are imovelweb's resize service. `width` and `height` are the
|
|
586
|
+
* original's.
|
|
587
|
+
*/
|
|
588
|
+
export interface ImovelwebPicture {
|
|
589
|
+
caption: string | null;
|
|
590
|
+
height: number | null;
|
|
591
|
+
kind: ImovelwebMediaKind | null;
|
|
592
|
+
resized_url_1200x1200: string | null;
|
|
593
|
+
resized_url_720x532: string | null;
|
|
594
|
+
url_100x75: string | null;
|
|
595
|
+
url_1200x1200: string | null;
|
|
596
|
+
url_130x70: string | null;
|
|
597
|
+
url_215x159: string | null;
|
|
598
|
+
url_360x266: string;
|
|
599
|
+
url_720x532: string;
|
|
600
|
+
width: number | null;
|
|
601
|
+
}
|
|
602
|
+
/**
|
|
603
|
+
* One level of a listing's location. `id` is the `location_id` the search takes for
|
|
604
|
+
* every level except the country; `acronym` is the state's two letters.
|
|
605
|
+
*/
|
|
606
|
+
export interface ImovelwebPlace {
|
|
607
|
+
acronym: string | null;
|
|
608
|
+
id: string;
|
|
609
|
+
name: string;
|
|
610
|
+
}
|
|
611
|
+
export interface ImovelwebPoint {
|
|
612
|
+
latitude: number;
|
|
613
|
+
longitude: number;
|
|
614
|
+
}
|
|
615
|
+
/** Whether a listing is live. */
|
|
616
|
+
export type ImovelwebPostingStatus = "online" | "offline";
|
|
617
|
+
/** A single `property`, a new `development`, or one `unit` of a development. */
|
|
618
|
+
export type ImovelwebPostingType = "property" | "development" | "unit";
|
|
619
|
+
/**
|
|
620
|
+
* A listing's property type: the five the search filters by, and the kinds of new
|
|
621
|
+
* development: towers (`new_development_vertical`), houses (`new_development_horizontal`),
|
|
622
|
+
* both (`new_development_mixed`), commercial units (`new_development_commercial`), lots
|
|
623
|
+
* (`land_subdivision`), whole buildings (`building`) and condominiums of buildings
|
|
624
|
+
* (`building_condominium`).
|
|
625
|
+
*/
|
|
626
|
+
export type ImovelwebPropertyKind = "apartment" | "house" | "land" | "commercial" | "rural" | "new_development_vertical" | "new_development_horizontal" | "new_development_mixed" | "new_development_commercial" | "land_subdivision" | "building" | "building_condominium";
|
|
627
|
+
/** A property subtype; each belongs to one property type (`penthouse` to `apartment`). */
|
|
628
|
+
export type ImovelwebPropertySubtype = "standard_apartment" | "studio" | "penthouse" | "flat" | "garden" | "loft" | "duplex" | "standard_house" | "condo_house" | "townhouse" | "village_house" | "office" | "commercial_point" | "store" | "garage_box" | "commercial_house" | "warehouse" | "inn" | "whole_building" | "small_farm" | "farm";
|
|
629
|
+
/** A property type the search filters by. */
|
|
630
|
+
export type ImovelwebPropertyType = "apartment" | "house" | "land" | "commercial" | "rural";
|
|
631
|
+
export type ImovelwebPublishedWithin = "today" | "since_yesterday" | "7_days" | "15_days" | "30_days" | "45_days";
|
|
632
|
+
/**
|
|
633
|
+
* An agency's or developer's profile. `phone_text` is the free text the publisher
|
|
634
|
+
* writes; `phone_numbers` holds each number in it as +55, area code and number.
|
|
635
|
+
* `active_listing_count` is imovelweb's count of live listings and `listed_count` the
|
|
636
|
+
* count its profile page lists. `ratings` is null when imovelweb keeps no statistics.
|
|
637
|
+
*/
|
|
638
|
+
export interface ImovelwebPublisher {
|
|
639
|
+
about: string | null;
|
|
640
|
+
active_listing_count: number | null;
|
|
641
|
+
address: string | null;
|
|
642
|
+
cover_picture_url: string | null;
|
|
643
|
+
cover_pictures: ImovelwebCoverPicture[];
|
|
644
|
+
description: string | null;
|
|
645
|
+
has_main_phone: boolean;
|
|
646
|
+
has_microsite: boolean;
|
|
647
|
+
id: string;
|
|
648
|
+
is_premier: boolean;
|
|
649
|
+
joined_year: number | null;
|
|
650
|
+
listed_count: number | null;
|
|
651
|
+
logo_url: string | null;
|
|
652
|
+
name: string;
|
|
653
|
+
phone_numbers: string[];
|
|
654
|
+
phone_text: string | null;
|
|
655
|
+
ratings: ImovelwebPublisherRatings | null;
|
|
656
|
+
raw: ImovelwebPublisherRaw;
|
|
657
|
+
type: ImovelwebPublisherKind | null;
|
|
658
|
+
video_url: string | null;
|
|
659
|
+
}
|
|
660
|
+
/**
|
|
661
|
+
* Who publishes a listing, in imovelweb's own words where its code has them: an `owner`
|
|
662
|
+
* selling directly (Particular), an `agency` (Inmobiliaria), a `developer` (Desarrollador)
|
|
663
|
+
* or a `broker` (Corredor), a firm or a single agent. `builder` is the kind imovelweb's code
|
|
664
|
+
* leaves unnamed; most of its publishers are construction and development companies.
|
|
665
|
+
*/
|
|
666
|
+
export type ImovelwebPublisherKind = "owner" | "agency" | "developer" | "broker" | "builder";
|
|
667
|
+
/**
|
|
668
|
+
* What buyers rated the publisher, from 1 to 5. An unrated publisher has a null
|
|
669
|
+
* `review_count`, `average` and `recommend_percent`, and no questions.
|
|
670
|
+
*/
|
|
671
|
+
export interface ImovelwebPublisherRatings {
|
|
672
|
+
average: number | null;
|
|
673
|
+
is_new_publisher: boolean;
|
|
674
|
+
questions: ImovelwebRatingQuestion[];
|
|
675
|
+
raw: ImovelwebPublisherRatingsRaw;
|
|
676
|
+
recommend_percent: number | null;
|
|
677
|
+
review_count: number | null;
|
|
678
|
+
}
|
|
679
|
+
/** `scoreReputation` is null for an agency imovelweb marks as new. */
|
|
680
|
+
export interface ImovelwebPublisherRatingsRaw {
|
|
681
|
+
scoreReputation: number | null;
|
|
682
|
+
}
|
|
683
|
+
export interface ImovelwebPublisherRaw {
|
|
684
|
+
isApproved: boolean;
|
|
685
|
+
isPublisher5A: boolean;
|
|
686
|
+
publisherTypeId?: string;
|
|
687
|
+
}
|
|
688
|
+
/**
|
|
689
|
+
* Which publishers a search returns: `all`, `company` for every publisher that is not an
|
|
690
|
+
* owner (agencies, developers, brokers and builders), or `owner` for owners selling
|
|
691
|
+
* directly.
|
|
692
|
+
*/
|
|
693
|
+
export type ImovelwebPublisherType = "all" | "company" | "owner";
|
|
694
|
+
export interface ImovelwebRatingQuestion {
|
|
695
|
+
average: number;
|
|
696
|
+
question: string;
|
|
697
|
+
topic: string;
|
|
698
|
+
}
|
|
699
|
+
/** One filter imovelweb says it applied, in its own filter names and codes. */
|
|
700
|
+
export interface ImovelwebRawAppliedFilter {
|
|
701
|
+
groups?: ImovelwebRawAppliedFilterGroup[];
|
|
702
|
+
idsArea?: ImovelwebRawAppliedFilterAreaKind;
|
|
703
|
+
options?: ImovelwebRawAppliedFilterOption[] | null;
|
|
704
|
+
renderType?: number;
|
|
705
|
+
type: string;
|
|
706
|
+
units?: ImovelwebRawAppliedFilterUnit[];
|
|
707
|
+
}
|
|
708
|
+
export interface ImovelwebRawAppliedFilterAreaKind {
|
|
709
|
+
id: string;
|
|
710
|
+
label: string;
|
|
711
|
+
}
|
|
712
|
+
export interface ImovelwebRawAppliedFilterGroup {
|
|
713
|
+
label: string;
|
|
714
|
+
options: ImovelwebRawAppliedFilterOption[];
|
|
715
|
+
}
|
|
716
|
+
export interface ImovelwebRawAppliedFilterOption {
|
|
717
|
+
label?: string | null;
|
|
718
|
+
max?: string | null;
|
|
719
|
+
maxLabel?: string;
|
|
720
|
+
min?: string | null;
|
|
721
|
+
minLabel?: string;
|
|
722
|
+
subtypes?: ImovelwebRawAppliedFilterSubtype[];
|
|
723
|
+
type?: string;
|
|
724
|
+
}
|
|
725
|
+
export interface ImovelwebRawAppliedFilterSubtype {
|
|
726
|
+
label: string;
|
|
727
|
+
min: string;
|
|
728
|
+
}
|
|
729
|
+
export interface ImovelwebRawAppliedFilterUnit {
|
|
730
|
+
id: string;
|
|
731
|
+
label?: string;
|
|
732
|
+
symbol: string;
|
|
733
|
+
}
|
|
734
|
+
export interface ImovelwebRawDetailPicture {
|
|
735
|
+
height: number | null;
|
|
736
|
+
multimediaTypeId: number;
|
|
737
|
+
order: number;
|
|
738
|
+
resizeUrl1200x1200: string;
|
|
739
|
+
resizeUrl720x532: string;
|
|
740
|
+
title: string;
|
|
741
|
+
url100x75: string;
|
|
742
|
+
url1200x1200: string;
|
|
743
|
+
url215x159: string;
|
|
744
|
+
url360x266: string;
|
|
745
|
+
url730x532: string;
|
|
746
|
+
width: number | null;
|
|
747
|
+
}
|
|
748
|
+
export interface ImovelwebRawDevelopmentData {
|
|
749
|
+
ambientes: ImovelwebRawNumberRange;
|
|
750
|
+
bathrooms: ImovelwebRawNumberRange;
|
|
751
|
+
coveredArea: ImovelwebRawNumberRange;
|
|
752
|
+
delivery: string;
|
|
753
|
+
garages: ImovelwebRawNumberRange;
|
|
754
|
+
majorPrices?: ImovelwebRawPriceRange;
|
|
755
|
+
minorPrices?: ImovelwebRawPriceRange;
|
|
756
|
+
numberOfUnits: number;
|
|
757
|
+
prices?: ImovelwebRawPriceRange;
|
|
758
|
+
pricesByOperationType?: ImovelwebRawPricesByOperationType[];
|
|
759
|
+
rooms: ImovelwebRawNumberRange;
|
|
760
|
+
steps: ImovelwebRawDevelopmentStep[];
|
|
761
|
+
totalArea: ImovelwebRawNumberRange;
|
|
762
|
+
unitGroupsData: Record<string, Record<string, ImovelwebRawUnitGroup>>;
|
|
763
|
+
}
|
|
764
|
+
export interface ImovelwebRawDevelopmentStep {
|
|
765
|
+
stage: string;
|
|
766
|
+
status: string;
|
|
767
|
+
}
|
|
768
|
+
/** A listing attribute keyed by imovelweb's feature code, with its value as a string. */
|
|
769
|
+
export interface ImovelwebRawFeature {
|
|
770
|
+
featureCategoryId?: string | null;
|
|
771
|
+
featureId: string;
|
|
772
|
+
icon?: string | null;
|
|
773
|
+
label: string;
|
|
774
|
+
maxValue?: string | null;
|
|
775
|
+
measure?: string | null;
|
|
776
|
+
minValue?: string | null;
|
|
777
|
+
value: string | null;
|
|
778
|
+
}
|
|
779
|
+
/** A video or virtual tour: `reference` is a YouTube id or the tour's URL. */
|
|
780
|
+
export interface ImovelwebRawMedia {
|
|
781
|
+
order: number;
|
|
782
|
+
preview?: string;
|
|
783
|
+
reference: string;
|
|
784
|
+
}
|
|
785
|
+
export interface ImovelwebRawNumberRange {
|
|
786
|
+
tuple0?: number | null;
|
|
787
|
+
tuple1?: number | null;
|
|
788
|
+
}
|
|
789
|
+
/**
|
|
790
|
+
* A development unit's condo fee carries only `currency`, `amount` and
|
|
791
|
+
* `formattedAmount`.
|
|
792
|
+
*/
|
|
793
|
+
export interface ImovelwebRawPrice {
|
|
794
|
+
amount: number | null;
|
|
795
|
+
currency: string;
|
|
796
|
+
currencyId?: string | null;
|
|
797
|
+
formattedAmount: string | null;
|
|
798
|
+
isoCode?: string;
|
|
799
|
+
}
|
|
800
|
+
export interface ImovelwebRawPriceRange {
|
|
801
|
+
tuple0?: ImovelwebRawPrice | null;
|
|
802
|
+
tuple1?: ImovelwebRawPrice | null;
|
|
803
|
+
}
|
|
804
|
+
export interface ImovelwebRawPricesByOperationType {
|
|
805
|
+
operationTypeName: string;
|
|
806
|
+
prices: ImovelwebRawPrice[];
|
|
807
|
+
}
|
|
808
|
+
export interface ImovelwebRawPromotion {
|
|
809
|
+
description: string;
|
|
810
|
+
title: string;
|
|
811
|
+
}
|
|
812
|
+
export interface ImovelwebRawRequestVisitUrl {
|
|
813
|
+
urlControl?: string | null;
|
|
814
|
+
urlEarlyDemand?: string | null;
|
|
815
|
+
urlVariant?: string | null;
|
|
816
|
+
urlWhatsappConcierge?: string | null;
|
|
817
|
+
}
|
|
818
|
+
export interface ImovelwebRawUnitGroup {
|
|
819
|
+
coveredArea: ImovelwebRawNumberRange;
|
|
820
|
+
majorPrices?: ImovelwebRawPriceRange;
|
|
821
|
+
minorPrices?: ImovelwebRawPriceRange;
|
|
822
|
+
numberOfUnits: number;
|
|
823
|
+
operationTypeId: string | null;
|
|
824
|
+
picture?: string | null;
|
|
825
|
+
prices?: ImovelwebRawPriceRange;
|
|
826
|
+
realEstateTypeId: string;
|
|
827
|
+
rooms: string;
|
|
828
|
+
title: string;
|
|
829
|
+
totalArea: ImovelwebRawNumberRange;
|
|
830
|
+
}
|
|
831
|
+
export interface ImovelwebRequestVisitRaw {
|
|
832
|
+
activeModal5A: boolean;
|
|
833
|
+
activeModalPostlead5A: boolean;
|
|
834
|
+
cronutEarlyDemand: boolean;
|
|
835
|
+
cronutRent: boolean;
|
|
836
|
+
cronutSell: boolean;
|
|
837
|
+
requestVisitUrl: ImovelwebRawRequestVisitUrl;
|
|
838
|
+
showWhatsapp: boolean;
|
|
839
|
+
}
|
|
840
|
+
/**
|
|
841
|
+
* imovelweb's compact card for a similar listing. Its type, operation and price arrive
|
|
842
|
+
* as display text, which this API decodes; `location.label` is the card's own wording.
|
|
843
|
+
*/
|
|
844
|
+
export interface ImovelwebSimilarListing {
|
|
845
|
+
ad_tier: ImovelwebAdTier | null;
|
|
846
|
+
bathrooms: number | null;
|
|
847
|
+
bedrooms: number | null;
|
|
848
|
+
building_age_years: number | null;
|
|
849
|
+
id: string;
|
|
850
|
+
is_premier: boolean;
|
|
851
|
+
location: ImovelwebSimilarListingLocation;
|
|
852
|
+
operation: ImovelwebOperation | null;
|
|
853
|
+
parking_spaces: number | null;
|
|
854
|
+
photos: ImovelwebPicture[];
|
|
855
|
+
posting_type: ImovelwebPostingType | null;
|
|
856
|
+
price: ImovelwebMoney | null;
|
|
857
|
+
property_type: ImovelwebPropertyKind | null;
|
|
858
|
+
publisher_logo_url: string | null;
|
|
859
|
+
raw: ImovelwebSimilarListingRaw;
|
|
860
|
+
suites: number | null;
|
|
861
|
+
title: string;
|
|
862
|
+
total_area_m2: number | null;
|
|
863
|
+
usable_area_m2: number | null;
|
|
864
|
+
}
|
|
865
|
+
export interface ImovelwebSimilarListingLocation {
|
|
866
|
+
address: string | null;
|
|
867
|
+
label: string | null;
|
|
868
|
+
}
|
|
869
|
+
export interface ImovelwebSimilarListingRaw {
|
|
870
|
+
descripcionNormalized: string | null;
|
|
871
|
+
developmentData: ImovelwebRawDevelopmentData | null;
|
|
872
|
+
mainFeatures: Record<string, ImovelwebRawFeature>;
|
|
873
|
+
operationType?: string;
|
|
874
|
+
postingType?: string;
|
|
875
|
+
publicationAreaId: string | null;
|
|
876
|
+
realestateType?: string;
|
|
877
|
+
}
|
|
878
|
+
export interface ImovelwebSimilarListings {
|
|
879
|
+
listings: ImovelwebSimilarListing[];
|
|
880
|
+
}
|
|
881
|
+
/** Whether a development has passed a stage, is at it, or has yet to reach it. */
|
|
882
|
+
export type ImovelwebStepStatus = "done" | "in_progress" | "to_do";
|
|
883
|
+
/** The development's units of one type and bedroom count. */
|
|
884
|
+
export interface ImovelwebUnitGroup {
|
|
885
|
+
bedrooms: number | null;
|
|
886
|
+
operation: ImovelwebOperation | null;
|
|
887
|
+
price: ImovelwebMoneyRange | null;
|
|
888
|
+
property_type: ImovelwebPropertyKind | null;
|
|
889
|
+
raw: ImovelwebUnitGroupRaw;
|
|
890
|
+
title: string;
|
|
891
|
+
total_area_m2: ImovelwebAreaRange | null;
|
|
892
|
+
unit_count: number;
|
|
893
|
+
usable_area_m2: ImovelwebAreaRange | null;
|
|
894
|
+
}
|
|
895
|
+
export interface ImovelwebUnitGroupRaw {
|
|
896
|
+
picture?: string | null;
|
|
897
|
+
}
|
|
898
|
+
export interface ImovelwebViewport {
|
|
899
|
+
east: number;
|
|
900
|
+
north: number;
|
|
901
|
+
south: number;
|
|
902
|
+
west: number;
|
|
903
|
+
}
|
|
904
|
+
/**
|
|
905
|
+
* How precisely imovelweb shows an address or a map position: `exact`, or `approximate`
|
|
906
|
+
* (a circle of about 200 m on the map).
|
|
907
|
+
*/
|
|
908
|
+
export type ImovelwebVisibility = "exact" | "approximate";
|
|
909
|
+
export interface ListListingPublishersParams {
|
|
910
|
+
/** imovelweb listing id: the number at the end of a listing URL (`...-3047460005.html`). */
|
|
911
|
+
posting_id: string;
|
|
912
|
+
}
|
|
913
|
+
export interface ListListingsParams {
|
|
914
|
+
/** `pagination.next_cursor` from the previous page; empty for the first page. A cursor holds only a page number, so send it with the same filters and sort as the page it came from. `pagination.completion` is `exhausted` at the last page and `depth_limit` at page 1,000 (30,000 listings), the deepest page imovelweb serves; narrow the filters to reach the rest. imovelweb's `relevance` order changes over minutes, so a long crawl that pages by relevance can skip or repeat listings. */
|
|
915
|
+
cursor?: string;
|
|
916
|
+
/** Development stage; repeat for several, a development at any of them matches. Only with `operation=development`. */
|
|
917
|
+
development_stage?: ImovelwebDevelopmentStage[];
|
|
918
|
+
/** Required amenities, such as `pool` or `pets_allowed`; repeat for several. A listing must have all of them. imovelweb's development search cannot filter by `garden`. */
|
|
919
|
+
features?: ImovelwebListingFeature[];
|
|
920
|
+
/** Free-text keyword matched against listing text, such as `piscina`. */
|
|
921
|
+
keyword?: string | null;
|
|
922
|
+
/** Location `id` from `/v1/imovelweb/locations` (`V1-C-109668` is the city of São Paulo). Repeat the parameter for several locations; listings in any of them match. An id imovelweb does not know answers 400 `invalid_request` naming it (not charged). */
|
|
923
|
+
location_id?: string[];
|
|
924
|
+
/** Building age: `under_construction`, `launching_soon`, at most `5_years` to `50_years`, or `over_50_years`. */
|
|
925
|
+
max_age?: ImovelwebMaxAge | null;
|
|
926
|
+
/** Maximum bedrooms. imovelweb's top bucket is 5 or more, so 4 is the highest cap. Send the same number as `min_bedrooms` for an exact count. */
|
|
927
|
+
max_bedrooms?: number | null;
|
|
928
|
+
/** Maximum monthly condominium fee in R$. */
|
|
929
|
+
max_condo_fee?: number | null;
|
|
930
|
+
/** Maximum price in R$. */
|
|
931
|
+
max_price?: number | null;
|
|
932
|
+
/** Maximum total area in m². Not with the usable-area range. */
|
|
933
|
+
max_total_area?: number | null;
|
|
934
|
+
/** Maximum usable (private) area in m². */
|
|
935
|
+
max_usable_area?: number | null;
|
|
936
|
+
/** Minimum bathrooms. */
|
|
937
|
+
min_bathrooms?: number | null;
|
|
938
|
+
/** Minimum bedrooms. */
|
|
939
|
+
min_bedrooms?: number | null;
|
|
940
|
+
/** Minimum monthly condominium fee in R$. */
|
|
941
|
+
min_condo_fee?: number | null;
|
|
942
|
+
/** Minimum price in R$. */
|
|
943
|
+
min_price?: number | null;
|
|
944
|
+
/** Minimum total area in m². Not with the usable-area range. */
|
|
945
|
+
min_total_area?: number | null;
|
|
946
|
+
/** Minimum usable (private) area in m². */
|
|
947
|
+
min_usable_area?: number | null;
|
|
948
|
+
/** Only listings with these media; repeat for several. A listing must have all of them. */
|
|
949
|
+
multimedia?: ImovelwebMultimedia[];
|
|
950
|
+
/** `sale`, `rent`, `season` (short stays), `auction`, or `development` (new developments and launches, sold by their developer). */
|
|
951
|
+
operation?: ImovelwebOperation;
|
|
952
|
+
/** `none` for listings without parking, or `1` to `4` for at least that many spaces. */
|
|
953
|
+
parking_spaces?: ImovelwebParkingSpaces | null;
|
|
954
|
+
/** Compare `min_price` and `max_price` with the rent plus the monthly condo fee. Only with `operation=rent` and a price bound. */
|
|
955
|
+
price_includes_condo_fee?: boolean;
|
|
956
|
+
/** Property subtype, such as `penthouse` or `townhouse`; repeat for several. Send its type in `property_type` too (`penthouse` needs `apartment`). Not with `operation=development`. */
|
|
957
|
+
property_subtype?: ImovelwebPropertySubtype[];
|
|
958
|
+
/** Property type; repeat for several. Not with `operation=development`. */
|
|
959
|
+
property_type?: ImovelwebPropertyType[];
|
|
960
|
+
/** Only listings published within this window. */
|
|
961
|
+
published_within?: ImovelwebPublishedWithin | null;
|
|
962
|
+
/** Only this publisher's listings (`publisher.id` on a listing). */
|
|
963
|
+
publisher_id?: string | null;
|
|
964
|
+
/** `company` for every publisher that is not an owner: agencies, developers, brokers and builders (imovelweb's Imobiliária option). `owner` for owners selling directly. `all` for both. */
|
|
965
|
+
publisher_type?: ImovelwebPublisherType;
|
|
966
|
+
/** `relevance`, `lowest_price`, `highest_price`, `newest`, `most_viewed` or `price_dropped`. imovelweb keeps its premier listings in their own ordered run, so prices on one page can step back where the two runs meet, and it sorts a development by its highest unit price while showing its lowest. `relevance` reshuffles over minutes, so a long crawl should sort by `newest`. */
|
|
967
|
+
sort?: ImovelwebListingSort;
|
|
968
|
+
/** Only rentals that need no guarantor (imovelweb's Aluguel sem fiador). Only with `operation=rent`. */
|
|
969
|
+
without_guarantor?: boolean;
|
|
970
|
+
}
|
|
971
|
+
export interface ListLocationsParams {
|
|
972
|
+
/** Suggestions to return. */
|
|
973
|
+
limit?: number;
|
|
974
|
+
/** Place name, such as `pinheiros` or `rio de janeiro`. */
|
|
975
|
+
query: string;
|
|
976
|
+
}
|
|
977
|
+
export interface ListSimilarListingsParams {
|
|
978
|
+
/** Listings to return. */
|
|
979
|
+
limit?: number;
|
|
980
|
+
/** imovelweb listing id: the number at the end of a listing URL (`...-3047460005.html`). */
|
|
981
|
+
posting_id: string;
|
|
982
|
+
}
|
|
983
|
+
export interface MapListingsParams {
|
|
984
|
+
/** Development stage; repeat for several, a development at any of them matches. Only with `operation=development`. */
|
|
985
|
+
development_stage?: ImovelwebDevelopmentStage[];
|
|
986
|
+
/** Required amenities, such as `pool` or `pets_allowed`; repeat for several. A listing must have all of them. imovelweb's development search cannot filter by `garden`. */
|
|
987
|
+
features?: ImovelwebListingFeature[];
|
|
988
|
+
/** Free-text keyword matched against listing text, such as `piscina`. */
|
|
989
|
+
keyword?: string | null;
|
|
990
|
+
/** Location `id` from `/v1/imovelweb/locations` (`V1-C-109668` is the city of São Paulo). Repeat the parameter for several locations; listings in any of them match. An id imovelweb does not know answers 400 `invalid_request` naming it (not charged). */
|
|
991
|
+
location_id?: string[];
|
|
992
|
+
/** Building age: `under_construction`, `launching_soon`, at most `5_years` to `50_years`, or `over_50_years`. */
|
|
993
|
+
max_age?: ImovelwebMaxAge | null;
|
|
994
|
+
/** Maximum bedrooms. imovelweb's top bucket is 5 or more, so 4 is the highest cap. Send the same number as `min_bedrooms` for an exact count. */
|
|
995
|
+
max_bedrooms?: number | null;
|
|
996
|
+
/** Maximum monthly condominium fee in R$. */
|
|
997
|
+
max_condo_fee?: number | null;
|
|
998
|
+
/** Maximum price in R$. */
|
|
999
|
+
max_price?: number | null;
|
|
1000
|
+
/** Maximum total area in m². Not with the usable-area range. */
|
|
1001
|
+
max_total_area?: number | null;
|
|
1002
|
+
/** Maximum usable (private) area in m². */
|
|
1003
|
+
max_usable_area?: number | null;
|
|
1004
|
+
/** Minimum bathrooms. */
|
|
1005
|
+
min_bathrooms?: number | null;
|
|
1006
|
+
/** Minimum bedrooms. */
|
|
1007
|
+
min_bedrooms?: number | null;
|
|
1008
|
+
/** Minimum monthly condominium fee in R$. */
|
|
1009
|
+
min_condo_fee?: number | null;
|
|
1010
|
+
/** Minimum price in R$. */
|
|
1011
|
+
min_price?: number | null;
|
|
1012
|
+
/** Minimum total area in m². Not with the usable-area range. */
|
|
1013
|
+
min_total_area?: number | null;
|
|
1014
|
+
/** Minimum usable (private) area in m². */
|
|
1015
|
+
min_usable_area?: number | null;
|
|
1016
|
+
/** Only listings with these media; repeat for several. A listing must have all of them. */
|
|
1017
|
+
multimedia?: ImovelwebMultimedia[];
|
|
1018
|
+
/** `sale`, `rent`, `season` (short stays), `auction`, or `development` (new developments and launches, sold by their developer). */
|
|
1019
|
+
operation?: ImovelwebOperation;
|
|
1020
|
+
/** `none` for listings without parking, or `1` to `4` for at least that many spaces. */
|
|
1021
|
+
parking_spaces?: ImovelwebParkingSpaces | null;
|
|
1022
|
+
/** Compare `min_price` and `max_price` with the rent plus the monthly condo fee. Only with `operation=rent` and a price bound. */
|
|
1023
|
+
price_includes_condo_fee?: boolean;
|
|
1024
|
+
/** Property subtype, such as `penthouse` or `townhouse`; repeat for several. Send its type in `property_type` too (`penthouse` needs `apartment`). Not with `operation=development`. */
|
|
1025
|
+
property_subtype?: ImovelwebPropertySubtype[];
|
|
1026
|
+
/** Property type; repeat for several. Not with `operation=development`. */
|
|
1027
|
+
property_type?: ImovelwebPropertyType[];
|
|
1028
|
+
/** Only listings published within this window. */
|
|
1029
|
+
published_within?: ImovelwebPublishedWithin | null;
|
|
1030
|
+
/** Only this publisher's listings (`publisher.id` on a listing). */
|
|
1031
|
+
publisher_id?: string | null;
|
|
1032
|
+
/** `company` for every publisher that is not an owner: agencies, developers, brokers and builders (imovelweb's Imobiliária option). `owner` for owners selling directly. `all` for both. */
|
|
1033
|
+
publisher_type?: ImovelwebPublisherType;
|
|
1034
|
+
/** Only rentals that need no guarantor (imovelweb's Aluguel sem fiador). Only with `operation=rent`. */
|
|
1035
|
+
without_guarantor?: boolean;
|
|
1036
|
+
}
|
|
1037
|
+
export type PublicError = "blocked" | "concurrency_exceeded" | "timeout" | "extraction_failed" | "upstream_blocked" | "upstream_unavailable" | "upstream_response_invalid" | "invalid_url_scheme" | "invalid_url_host" | "unauthenticated" | "forbidden" | "resource_forbidden" | "not_found" | "rate_limited" | "invalid_request" | "invalid_cursor" | "insufficient_credits" | "internal_error";
|
|
1038
|
+
//# sourceMappingURL=types.d.ts.map
|