Campaigns
A campaign is one marketing period for a property. It is a single attempt to sell or rent that property, from when the listing starts until that period ends.
The same property can be marketed more than once. Each time it returns to the market, that stretch of marketing is its own campaign.
The Campaign object
Attributes
id string
Unique identifier for the object.
agents object
Agents attached to the campaign.
Show child attributesHide child attributes
agents.id string
Unique identifier for the object.
agents.agency nullable object
Agency the agent belongs to.
Show child attributesHide child attributes
agency.name string
Agency name.
agency.website_url nullable string
Agency website URL.
agents.email nullable string
Agent email address.
agents.name string
Agent name.
agents.phone nullable string
Agent phone number.
auction_date nullable datetime
Scheduled auction date and time in the property's local time.
created_at nullable datetime
When the campaign record was created.
current_guide_price nullable object
Current guide price. Either `{ "kind": "exact", "value": number }` or `{ "kind": "range", "min": number, "max": number }`. Nullable.
days_on_market nullable number
Days the campaign has been on market.
end_date nullable date
Campaign end date in the property's local time (YYYY-MM-DD).
first_guide_price nullable object
First recorded guide price. Either `{ "kind": "exact", "value": number }` or `{ "kind": "range", "min": number, "max": number }`. Nullable.
inspection_date nullable datetime
Next inspection date and time in the property's local time.
last_guide_price nullable object
Most recent guide price before the current one. Either `{ "kind": "exact", "value": number }` or `{ "kind": "range", "min": number, "max": number }`. Nullable.
last_seen_active_at nullable datetime
When the campaign was last observed as active.
last_seen_at nullable datetime
When the campaign was last observed.
listing_urls string[]
Public listing URLs for the campaign.
property object
Property details for the campaign.
Show child attributesHide child attributes
property.address string
Property address.
property.address_id string
Property identifier.
property.bathrooms nullable number
Number of bathrooms.
property.bedrooms nullable number
Number of bedrooms.
property.building_age nullable enum
Whether the property is new or established.
Possible enum values
An existing property.
A newly built property.
property.car_spaces nullable number
Number of car spaces.
property.land_size nullable number
Land size in square metres.
property.latitude nullable number
Property latitude.
property.longitude nullable number
Property longitude.
property.time_zone string
IANA time zone for the property.
property.type nullable enum
Property type.
Possible enum values
Apartment or unit.
House.
Vacant land.
Retirement living property.
Townhouse.
Other property type.
sold_date nullable date
Date the property sold, in the property's local time (YYYY-MM-DD).
sold_price nullable number
Sold price in dollars.
start_date nullable date
Campaign start date in the property's local time (YYYY-MM-DD).
status enum
Current campaign status.
Possible enum values
Available on market.
A deposit has been taken.
The property has been leased.
Likely withdrawn from market.
The property has sold.
Under offer.
Withdrawn from market.
type nullable enum
Campaign sale or rent type.
Possible enum values
Sold by auction.
Private treaty sale.
Rental campaign.
Sold by tender.
updated_at nullable datetime
When the campaign record was last updated.
withdrawn_date nullable date
Date the campaign was withdrawn, in the property's local time (YYYY-MM-DD).
{
"agents": [
{
"agency": {
"name": "Example Realty",
"website_url": "https://example-realty.com"
},
"email": "alice@example-realty.com",
"id": "8f3c2a1b-6d4e-4f70-9a12-bc34de56f789",
"name": "Alice Agent",
"phone": "+61400000000"
}
],
"auction_date": null,
"created_at": "2026-01-10T02:15:00Z",
"current_guide_price": {
"kind": "range",
"min": 820000,
"max": 880000
},
"days_on_market": 14,
"end_date": null,
"first_guide_price": {
"kind": "exact",
"value": 850000
},
"id": "2c6f8a40-1b7e-4d93-8c55-0e9a7b3d1f24",
"inspection_date": "2026-01-18T01:00:00+11:00",
"last_guide_price": null,
"last_seen_active_at": "2026-01-24T04:30:00Z",
"last_seen_at": "2026-01-24T04:30:00Z",
"listing_urls": [
"https://example-realty.com/listings/2c6f8a40-1b7e-4d93-8c55-0e9a7b3d1f24"
],
"property": {
"address": "100 Example Street, Sydney NSW 2000",
"address_id": "5a9e1c72-0d84-4b16-a3f8-67c2e0d4b915",
"bathrooms": 2,
"building_age": "established",
"bedrooms": 3,
"car_spaces": 1,
"land_size": 420,
"latitude": -33.8688,
"longitude": 151.2093,
"time_zone": "Australia/Sydney",
"type": "house"
},
"sold_date": null,
"sold_price": null,
"start_date": "2026-01-10",
"status": "under_offer",
"type": "private_treaty",
"updated_at": "2026-01-24T04:30:00Z",
"withdrawn_date": null
}Search campaigns
POST /v1/search-campaigns
Parameters
category enum Required
Search category.
If type is rent, one of:
- on_market
- off_market
If type is sale, one of:
- active
- sold
- withdrawn
Possible enum values
Active sale listings.
Off-market rentals.
On-market rentals.
Sold listings.
Withdrawn sale listings.
filters object Required
Search filters.
Show child parametersHide child parameters
filters.bathrooms_max number
Maximum bathrooms.
filters.bathrooms_min number
Minimum bathrooms.
filters.bedrooms_max number
Maximum bedrooms.
filters.bedrooms_min number
Minimum bedrooms.
filters.car_spaces_max number
Maximum car spaces.
filters.car_spaces_min number
Minimum car spaces.
filters.guide_price_max number
Maximum guide price in dollars.
filters.guide_price_min number
Minimum guide price in dollars.
filters.include_deposit_taken boolean
Include properties with a deposit taken. Applies when type is rent and category is on_market. The field defaults to false.
filters.include_under_offer boolean
Include properties currently under offer. Applies when type is sale and category is active. The field defaults to false.
filters.land_size_max number
Maximum land size in square metres.
filters.land_size_min number
Minimum land size in square metres.
filters.listed_date_max string
Latest listed date. Applies when type is rent and category is on_market, or type is sale and category is active.
filters.listed_date_min string
Earliest listed date. Applies when type is rent and category is on_market, or type is sale and category is active.
filters.off_market_date_max string
Latest off-market date. Applies when type is rent and category is off_market.
filters.off_market_date_min string
Earliest off-market date. Applies when type is rent and category is off_market.
filters.property_types enum[] Required
Property types to include. At least one value.
Possible enum values
Apartment or unit.
House.
Vacant land.
Retirement living property.
Townhouse.
Other property type.
filters.sold_date_max string
Latest sold date. Applies when type is sale and category is sold.
filters.sold_date_min string
Earliest sold date. Applies when type is sale and category is sold.
filters.suburbs object Required
Suburbs to search. At least one entry.
Show child parametersHide child parameters
suburbs.name string Required
Suburb name.
suburbs.postcode string Required
Suburb postcode.
suburbs.state string Required
Suburb state.
filters.withdrawn_date_max string
Latest withdrawn date. Applies when type is sale and category is withdrawn.
filters.withdrawn_date_min string
Earliest withdrawn date. Applies when type is sale and category is withdrawn.
pagination object
Pagination options.
Show child parametersHide child parameters
pagination.items_per_page integer
Items per page. The field defaults to 10. Maximum is 100.
pagination.page_number integer
Page to return. The field defaults to 1.
sort object
Sort order.
Show child parametersHide child parameters
sort.direction enum
Sort direction. sort is optional and has no default.
Possible enum values
Ascending order.
Descending order.
sort.field enum
Field to sort by. sort is optional and has no default.
Possible enum values
Sort by record creation time.
Sort by campaign end time.
Sort by off-market date. Use when category is off_market.
Sort by sold date. Use when category is sold.
Sort by campaign start time.
Sort by last update time.
Sort by withdrawn date. Use when category is withdrawn.
type enum Required
Whether to search rentals or sales.
Possible enum values
Search rental campaigns.
Search sale campaigns.
Returns a list of Campaign objects.
curl -X POST 'https://feed.homerapp.com.au/v1/search-campaigns' \
-H 'Content-Type: application/json' \
-H 'Homer-API-Key: secret' \
-H 'Homer-Version: 2026-09-28' \
-d '{
"category": "active",
"filters": {
"property_types": ["house"],
"suburbs": [
{ "name": "Sydney", "postcode": "2000", "state": "NSW" }
]
},
"type": "sale"
}'{
"data": [
{
"agents": [
{
"agency": {
"name": "Example Realty",
"website_url": "https://example-realty.com"
},
"email": "alice@example-realty.com",
"id": "8f3c2a1b-6d4e-4f70-9a12-bc34de56f789",
"name": "Alice Agent",
"phone": "+61400000000"
}
],
"auction_date": null,
"created_at": "2026-01-10T02:15:00Z",
"current_guide_price": {
"kind": "range",
"min": 820000,
"max": 880000
},
"days_on_market": 14,
"end_date": null,
"first_guide_price": {
"kind": "exact",
"value": 850000
},
"id": "2c6f8a40-1b7e-4d93-8c55-0e9a7b3d1f24",
"inspection_date": "2026-01-18T01:00:00+11:00",
"last_guide_price": null,
"last_seen_active_at": "2026-01-24T04:30:00Z",
"last_seen_at": "2026-01-24T04:30:00Z",
"listing_urls": [
"https://example-realty.com/listings/2c6f8a40-1b7e-4d93-8c55-0e9a7b3d1f24"
],
"property": {
"address": "100 Example Street, Sydney NSW 2000",
"address_id": "5a9e1c72-0d84-4b16-a3f8-67c2e0d4b915",
"bathrooms": 2,
"building_age": "established",
"bedrooms": 3,
"car_spaces": 1,
"land_size": 420,
"latitude": -33.8688,
"longitude": 151.2093,
"time_zone": "Australia/Sydney",
"type": "house"
},
"sold_date": null,
"sold_price": null,
"start_date": "2026-01-10",
"status": "under_offer",
"type": "private_treaty",
"updated_at": "2026-01-24T04:30:00Z",
"withdrawn_date": null
}
],
"pagination": {
"page_number": 1,
"items_per_page": 10,
"total_items": 1,
"total_pages": 1
}
}