{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/domain-group/main/json-schema/domain-group-bookings-v2-rate-for-new-listing-request-schema.json",
  "title": "Bookings.V2.RateForNewListingRequest",
  "description": "Provide a summary of the intended listing for which to calculate a rate.",
  "x-generated": "2026-10-21",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/domain-group-products-api-openapi.yml#/components/schemas/Bookings.V2.RateForNewListingRequest",
  "required": [
    "agencyId",
    "agentEmail",
    "agentFirstName",
    "agentLastName",
    "channel",
    "isNewDevelopment",
    "listingType",
    "postcode",
    "price",
    "propertyType",
    "state",
    "suburb"
  ],
  "type": "object",
  "properties": {
    "agencyId": {
      "type": "integer",
      "description": "Id of the agency for whom rates are to be calculated.",
      "format": "int32"
    },
    "agentFirstName": {
      "minLength": 1,
      "type": "string",
      "description": "The first name of the primary agent associated with the listing."
    },
    "agentLastName": {
      "minLength": 1,
      "type": "string",
      "description": "The last name of the primary agent associated with the listing"
    },
    "agentEmail": {
      "minLength": 1,
      "type": "string",
      "description": "The email of the primary agent associated with the listing."
    },
    "suburb": {
      "minLength": 1,
      "type": "string",
      "description": "Suburb for which rates are to be calculated."
    },
    "postcode": {
      "minLength": 1,
      "type": "string",
      "description": "Postcode for which rates are to be calculated."
    },
    "state": {
      "minLength": 1,
      "type": "string",
      "description": "State for which rates are to be calculated"
    },
    "propertyType": {
      "enum": [
        "unknown",
        "accessoriesParts",
        "accommodationTourism",
        "accounting",
        "acreageSemiRural",
        "adult",
        "advertisingMarketing",
        "aerial",
        "aeronautical",
        "agedCare",
        "agricultural",
        "air",
        "aircraft",
        "alarms",
        "alcoholLiquor",
        "amusements",
        "animalRelated",
        "apartmentUnitFlat",
        "aquaculture",
        "aquaticMarineMarinaBerth",
        "artsCrafts",
        "autoElectrical",
        "automotive",
        "backpackerHostel",
        "bakery",
        "barsNightclubs",
        "beautyHealth",
        "beautyProducts",
        "beautySalon",
        "bikeAndMotorcycle",
        "blockOfUnits",
        "boardingKennels",
        "boatsMarineMarinaBerth",
        "bookkeeping",
        "brokerage",
        "builder",
        "buildingAndConstruction",
        "bus",
        "butcher",
        "cafeCoffeeShop",
        "car",
        "carBusTruck",
        "carDealership",
        "carRental",
        "carSpace",
        "carWash",
        "caravanPark",
        "carpenter",
        "catering",
        "childCare",
        "civil",
        "cleaning",
        "cleaningAndMaintenance",
        "clinicalPractice",
        "clothingAccessories",
        "clothingFootwear",
        "communication",
        "communications",
        "computerIT",
        "computerAndInternet",
        "construction",
        "convenienceStore",
        "copyLaminate",
        "courier",
        "cropHarvesting",
        "customs",
        "dairyFarming",
        "deli",
        "dental",
        "detailing",
        "developmentLand",
        "developmentSite",
        "distributors",
        "drivingSchools",
        "duplex",
        "educationTraining",
        "educational",
        "electrical",
        "employmentRecruitment",
        "entertainment",
        "entertainmentTechnology",
        "export",
        "farm",
        "farming",
        "fertiliser",
        "finance",
        "financialServices",
        "fishingForestry",
        "floristNursery",
        "foodBeverage",
        "foodBeverageHospitality",
        "franchiseBusinessOpportunities",
        "freight",
        "fruitVegFreshProduce",
        "fruitPicking",
        "functionCentre",
        "furnitureTimber",
        "gambling",
        "gardenHousehold",
        "gardenNurseries",
        "gardening",
        "glassCeramic",
        "guestHouseBB",
        "hairdresser",
        "healthBeauty",
        "healthSpa",
        "hire",
        "homeGarden",
        "homeBased",
        "newHomeDesigns",
        "homewareHardware",
        "hospital",
        "hotel",
        "hotelLeisure",
        "house",
        "newHouseLand",
        "huntingTrap",
        "import",
        "importExportWholesale",
        "industrialManufacturing",
        "industrialWarehouse",
        "insemination",
        "insurance",
        "internet",
        "irrigationServices",
        "juiceBar",
        "landClearing",
        "newLand",
        "landscaping",
        "laundryDryCleaning",
        "legal",
        "leisureEntertainment",
        "limousineTaxi",
        "livestock",
        "internationalCommercial",
        "machinery",
        "machineryMetal",
        "managementRights",
        "manufacturers",
        "manufacturingEngineering",
        "marine",
        "massage",
        "mechanicalRepair",
        "media",
        "medical",
        "medicalConsulting",
        "medicalPractice",
        "miningEarthMoving",
        "mobileServices",
        "motel",
        "motorcycle",
        "musicRelated",
        "mustering",
        "nails",
        "naturalTherapies",
        "newApartments",
        "newsagency",
        "nursery",
        "nursingHome",
        "offices",
        "officeSupplies",
        "oilGas",
        "panelBeating",
        "paperPrinting",
        "parkingCarSpace",
        "penthouse",
        "pestRelated",
        "pharmacies",
        "plastic",
        "plumbing",
        "poolWater",
        "postOffices",
        "printPhoto",
        "professional",
        "propertyRealEstate",
        "rail",
        "recreationSport",
        "recruitment",
        "repair",
        "resort",
        "restaurant",
        "retail",
        "retailer",
        "retirement",
        "retirementVillage",
        "road",
        "rural",
        "ruralCommercialFarming",
        "scientific",
        "sea",
        "security",
        "semiDetached",
        "serviceStation",
        "services",
        "shearing",
        "showroomsBulkyGoods",
        "specialistFarm",
        "sportsComplexGym",
        "studio",
        "supermarket",
        "takeawayFood",
        "taxi",
        "terrace",
        "themePark",
        "tours",
        "townhouse",
        "training",
        "transportDistribution",
        "travel",
        "truck",
        "vacantLand",
        "vending",
        "villa",
        "water",
        "welding",
        "wholesale",
        "wholesalers",
        "woolClassing",
        "wreckers",
        "servicedOffices",
        "other",
        "alcoholGrocery",
        "cafeRestaurants",
        "discountStore",
        "ecoFriendly",
        "green",
        "grocery",
        "specialityRetail",
        "storage",
        "travelAgency",
        "varietyStore",
        "chickenShop",
        "seafoodShop",
        "deliCafe",
        "cropping",
        "viticulture",
        "mixedFarming",
        "grazing",
        "horticulture",
        "equine",
        "farmlet",
        "orchard",
        "ruralLifestyle",
        "onlineBusiness"
      ],
      "type": "string",
      "description": "The property type of the listing e.g. House"
    },
    "isNewDevelopment": {
      "type": "boolean",
      "description": "Whether to return the normal or new development rates"
    },
    "listingType": {
      "enum": [
        "sale",
        "rent"
      ],
      "type": "string",
      "description": "Type of the listing whether sale or rent"
    },
    "price": {
      "type": "number",
      "description": "The value of the listing",
      "format": "double"
    },
    "channel": {
      "enum": [
        "residential",
        "commercial",
        "business"
      ],
      "type": "string",
      "description": "The intended channel of the listing."
    },
    "bookingStartDate": {
      "type": [
        "string",
        "null"
      ],
      "description": "Date at which the booking will start. Defaults to today. Allows for returning future contracts/price changes.",
      "format": "date-time"
    }
  },
  "additionalProperties": false,
  "x-data-access-level-info": {
    "Basic": [
      "*"
    ],
    "Detailed": [
      "*"
    ],
    "Full": [
      "*"
    ]
  }
}