|
openapi: 3.0.0 |
|
info: |
|
title: Domain Rent Search API |
|
description: A plugin that allows the user to search for an ideal apartment using ChatGPT. |
|
version: 0.0.1 |
|
servers: |
|
- url: https://www.domain.com.au |
|
paths: |
|
/rent/: |
|
get: |
|
summary: Fetch rental listings based on various criteria |
|
description: Retrieve listings for rent based on suburb, property type, number of bedrooms, bathrooms, price range, car spaces, and additional features. |
|
operationId: fetchRentListings |
|
tags: |
|
- Rent Listings |
|
parameters: |
|
- in: query |
|
name: suburb |
|
schema: |
|
type: string |
|
description: Comma-separated list of suburb slugs. |
|
example: "brunswick-vic-3056,brunswick-east-vic-3057" |
|
- in: query |
|
name: ptype |
|
schema: |
|
type: string |
|
description: Comma-separated list of property types. |
|
example: "house,apartment-unit-flat" |
|
- in: query |
|
name: bedrooms |
|
schema: |
|
type: string |
|
description: Bedroom range. |
|
example: "2-any" |
|
- in: query |
|
name: bathrooms |
|
schema: |
|
type: string |
|
description: Bathroom range. |
|
example: "1-any" |
|
- in: query |
|
name: price |
|
schema: |
|
type: string |
|
description: Price range. |
|
example: "50-5000" |
|
- in: query |
|
name: excludedeposittaken |
|
schema: |
|
type: boolean |
|
description: Exclude listings where deposit is taken. |
|
- in: query |
|
name: carspaces |
|
schema: |
|
type: string |
|
description: Car space range. |
|
example: "1-any" |
|
- in: query |
|
name: features |
|
schema: |
|
type: string |
|
description: Comma-separated list of additional features. |
|
example: "builtinwardrobes,gas" |
|
- in: query |
|
name: keywords |
|
schema: |
|
type: string |
|
description: Search keywords. |
|
example: "air conditioner" |
|
responses: |
|
'200': |
|
description: Successful response with rental listings |
|
content: |
|
application/json: |
|
schema: |
|
type: object |
|
properties: |
|
props: |
|
type: object |
|
properties: |
|
listingsMap: |
|
type: object |
|
additionalProperties: |
|
$ref: '#/components/schemas/Listing' |
|
|
|
components: |
|
schemas: |
|
Breadcrumbs: |
|
type: array |
|
items: |
|
$ref: '#/components/schemas/Breadcrumb' |
|
|
|
Breadcrumb: |
|
type: object |
|
properties: |
|
title: |
|
type: string |
|
description: The title of the breadcrumb |
|
url: |
|
type: string |
|
format: uri |
|
description: The URL associated with the breadcrumb |
|
|
|
Listing: |
|
type: object |
|
properties: |
|
id: |
|
type: integer |
|
listingType: |
|
type: string |
|
listingModel: |
|
$ref: '#/components/schemas/ListingModel' |
|
|
|
ListingModel: |
|
type: object |
|
properties: |
|
promoType: |
|
type: string |
|
url: |
|
type: string |
|
format: uri |
|
images: |
|
type: array |
|
items: |
|
type: string |
|
format: uri |
|
skeletonImages: |
|
type: array |
|
items: |
|
$ref: '#/components/schemas/SkeletonImage' |
|
brandingAppearance: |
|
type: string |
|
price: |
|
type: string |
|
hasVideo: |
|
type: boolean |
|
branding: |
|
$ref: '#/components/schemas/Branding' |
|
address: |
|
$ref: '#/components/schemas/Address' |
|
features: |
|
$ref: '#/components/schemas/Features' |
|
inspection: |
|
$ref: '#/components/schemas/Inspection' |
|
auction: |
|
type: object |
|
nullable: true |
|
# Reference a specific schema for 'auction' if defined |
|
tags: |
|
$ref: '#/components/schemas/Tags' |
|
displaySearchPriceRange: |
|
type: string |
|
nullable: true |
|
enableSingleLineAddress: |
|
type: boolean |
|
|
|
SkeletonImage: |
|
type: object |
|
properties: |
|
images: |
|
type: object |
|
properties: |
|
original: |
|
$ref: '#/components/schemas/ImageDetail' |
|
tablet: |
|
$ref: '#/components/schemas/ImageDetail' |
|
mobile: |
|
$ref: '#/components/schemas/ImageDetail' |
|
mediaType: |
|
type: string |
|
description: The type of media, e.g., 'image' |
|
|
|
ImageDetail: |
|
type: object |
|
properties: |
|
url: |
|
type: string |
|
format: uri |
|
description: URL of the image |
|
width: |
|
type: integer |
|
description: Width of the image |
|
height: |
|
type: integer |
|
description: Height of the image |
|
|
|
Branding: |
|
type: object |
|
properties: |
|
agencyId: |
|
type: integer |
|
description: ID of the agency |
|
agents: |
|
type: array |
|
items: |
|
$ref: '#/components/schemas/Agent' |
|
agentNames: |
|
type: string |
|
description: Comma-separated names of agents |
|
brandLogo: |
|
type: string |
|
format: uri |
|
description: URL of the brand logo |
|
skeletonBrandLogo: |
|
type: string |
|
format: uri |
|
description: URL of the skeleton brand logo |
|
brandName: |
|
type: string |
|
description: Name of the brand |
|
brandColor: |
|
type: string |
|
description: Color of the brand |
|
agentPhoto: |
|
type: string |
|
format: uri |
|
description: URL of the agent's photo |
|
nullable: true |
|
agentName: |
|
type: string |
|
description: Name of the agent |
|
|
|
Agent: |
|
type: object |
|
properties: |
|
agentName: |
|
type: string |
|
description: Name of the agent |
|
agentPhoto: |
|
type: string |
|
format: uri |
|
description: URL of the agent's photo |
|
nullable: true |
|
|
|
Address: |
|
type: object |
|
properties: |
|
street: |
|
type: string |
|
description: Street address of the property |
|
suburb: |
|
type: string |
|
description: Suburb where the property is located |
|
state: |
|
type: string |
|
description: State where the property is located |
|
postcode: |
|
type: string |
|
description: Postal code of the property |
|
lat: |
|
type: number |
|
format: float |
|
description: Latitude coordinate of the property |
|
lng: |
|
type: number |
|
format: float |
|
description: Longitude coordinate of the property |
|
|
|
Features: |
|
type: object |
|
properties: |
|
beds: |
|
type: integer |
|
description: Number of bedrooms |
|
baths: |
|
type: integer |
|
description: Number of bathrooms |
|
parking: |
|
type: integer |
|
description: Number of parking spaces |
|
propertyType: |
|
type: string |
|
description: Type of the property, e.g., 'ApartmentUnitFlat' |
|
propertyTypeFormatted: |
|
type: string |
|
description: Formatted property type, e.g., 'Apartment / Unit / Flat' |
|
isRural: |
|
type: boolean |
|
description: Indicates if the property is in a rural area |
|
landSize: |
|
type: integer |
|
description: Size of the land |
|
landUnit: |
|
type: string |
|
description: Unit of land size measurement, e.g., 'm²' |
|
isRetirement: |
|
type: boolean |
|
description: Indicates if the property is intended for retirement living |
|
|
|
Inspection: |
|
type: object |
|
properties: |
|
openTime: |
|
type: string |
|
format: 'date-time' |
|
description: Opening time for the property inspection |
|
nullable: true |
|
closeTime: |
|
type: string |
|
format: 'date-time' |
|
description: Closing time for the property inspection |
|
nullable: true |
|
|
|
Tags: |
|
type: object |
|
properties: |
|
tagText: |
|
type: string |
|
description: Text of the tag associated with the listing |
|
nullable: true |
|
tagClassName: |
|
type: string |
|
description: Class name for the tag, used for styling purposes |
|
nullable: true |