Bungalow
Bungalow's live, priced room and whole-home rental inventory and tour-booking availability, read straight off their own documented API — no key, no…
Bungalow's live, priced room and whole-home rental inventory and tour-booking availability, read straight off their own documented API — no key, no browser.
Domain: bungalow.com
Also known as: Bungalow, bungalow.com, Livebungalow
Call it directly
bowmark.providers.bungalow.listMarkets(): Promise<{ markets: BungalowMarket[] }>
bowmark.providers.bungalow.searchListings(filters: BungalowSearchFilters): Promise<BungalowSearchResult>
bowmark.providers.bungalow.getListing(slug: string): Promise<BungalowListingDetail>Functions
| Function | What it does |
|---|---|
listMarkets | Lists every market Bungalow currently operates in, with the slug every other function's marketSlug argument takes. |
searchListings | Searches live, priced room and whole-home rental listings in one market, filterable by price, neighborhood and marketing type. |
getListing | Returns one listing's full detail — room-level rent and availability, amenities, promotions and tour-booking availability. |
Types
interface BungalowMarket {
slug: string;
displayName: string;
region: string;
regionCode: string;
country: string;
countryCode: string;
}
interface BungalowListingSummary {
id: string;
slug: string;
headline: string | null;
marketingType: "co_living" | "group_living" | string;
numBathrooms: string;
sqft: number | null;
city: string;
neighborhood: string | null;
marketSlug: string;
marketDisplayName: string;
isComingSoon: boolean;
}
interface BungalowSearchResult {
listings: BungalowListingSummary[];
count: number;
totalMatching: number;
}
interface BungalowSearchFilters {
marketSlug: string;
marketingType?: "co_living" | "group_living";
neighborhoodSlug?: string;
minPrice?: number;
maxPrice?: number;
petFriendly?: boolean;
limit?: number;
}
interface BungalowListingDetail {
id: string;
slug: string;
headline: string | null;
marketingType: "co_living" | "group_living" | string;
totalRoomCount: number;
availableRoomCount: number;
earliestAvailableDate: string | null;
roomPrices: number[];
fullPropertyPrice: number | null;
sqft: number | null;
numBathrooms: string;
amenities: unknown;
matterportUrl: string | null;
activePromotions: string[];
isMeetAndGreetAvailable: boolean;
showingsAvailable: { virtual: string | null; inPerson: string | null };
}