# Ottawa Rental Property Data Extractor

**Use case:** 

Extract rental listings in Ottawa with property details like price, beds, baths, and MLS numbers. Get the latest data for Canadian real estate.

## Input

```json
{
  "cities": [
    "toronto",
    "vancouver",
    "calgary"
  ],
  "transactionType": "for-rent",
  "propertyTypeGroup": "residential",
  "priceMin": 0,
  "priceMax": 0,
  "bedroomsMin": 0,
  "bathroomsMin": 0,
  "newListingsOnlyDays": 0,
  "language": "both",
  "fetchDetails": false,
  "fetchAgentProfiles": false,
  "fetchOfficeProfiles": false,
  "maxItems": 50,
  "maxPages": 2,
  "advancedMode": "cities",
  "searchUrls": [
    "https://www.realtor.ca/on/ottawa/real-estate"
  ],
  "mapBoundingBox": {
    "latMin": 45.3,
    "latMax": 45.5,
    "lngMin": -75.85,
    "lngMax": -75.55
  },
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "CA"
  },
  "requestDelay": 1500,
  "maxConcurrency": 2,
  "maxRetries": 4,
  "applicationId": "",
  "debugMode": false
}
```

## Output

```json
{
  "recordType": {
    "label": "Record Type",
    "format": "text"
  },
  "mlsNumber": {
    "label": "MLS #",
    "format": "text"
  },
  "listingId": {
    "label": "Listing ID",
    "format": "text"
  },
  "listingUrl": {
    "label": "URL",
    "format": "link"
  },
  "transactionType": {
    "label": "Transaction",
    "format": "text"
  },
  "status": {
    "label": "Status",
    "format": "text"
  },
  "priceAmount": {
    "label": "Price (CAD)",
    "format": "number"
  },
  "priceCurrency": {
    "label": "Currency",
    "format": "text"
  },
  "priceFrequency": {
    "label": "Frequency",
    "format": "text"
  },
  "pricePerSqft": {
    "label": "$/sqft",
    "format": "number"
  },
  "propertyType": {
    "label": "Property Type",
    "format": "text"
  },
  "buildingType": {
    "label": "Building Type",
    "format": "text"
  },
  "ownershipType": {
    "label": "Ownership",
    "format": "text"
  },
  "bedroomsTotal": {
    "label": "Beds Total",
    "format": "number"
  },
  "bedroomsAbove": {
    "label": "Beds Above",
    "format": "number"
  },
  "bedroomsBelow": {
    "label": "Beds Below",
    "format": "number"
  },
  "bathroomsTotal": {
    "label": "Baths Total",
    "format": "number"
  },
  "bathroomsFull": {
    "label": "Baths Full",
    "format": "number"
  },
  "bathroomsHalf": {
    "label": "Baths Half",
    "format": "number"
  },
  "sizeInterior": {
    "label": "Interior sqft",
    "format": "number"
  },
  "lotSizeRaw": {
    "label": "Lot Size",
    "format": "text"
  },
  "yearBuilt": {
    "label": "Year Built",
    "format": "number"
  },
  "parkingType": {
    "label": "Parking Type",
    "format": "text"
  },
  "parkingSpaces": {
    "label": "Parking Spaces",
    "format": "number"
  },
  "basementType": {
    "label": "Basement",
    "format": "text"
  },
  "heatingFuel": {
    "label": "Heating Fuel",
    "format": "text"
  },
  "coolingType": {
    "label": "Cooling",
    "format": "text"
  },
  "addressLine": {
    "label": "Address",
    "format": "text"
  },
  "city": {
    "label": "City",
    "format": "text"
  },
  "province": {
    "label": "Province",
    "format": "text"
  },
  "postalCode": {
    "label": "Postal Code",
    "format": "text"
  },
  "latitude": {
    "label": "Latitude",
    "format": "number"
  },
  "longitude": {
    "label": "Longitude",
    "format": "number"
  },
  "communityName": {
    "label": "Community",
    "format": "text"
  },
  "taxAnnualAmount": {
    "label": "Annual Tax",
    "format": "number"
  },
  "taxYear": {
    "label": "Tax Year",
    "format": "number"
  },
  "condoFeeMonthly": {
    "label": "Condo Fee/mo",
    "format": "number"
  },
  "features": {
    "label": "Features",
    "format": "array"
  },
  "appliances": {
    "label": "Appliances",
    "format": "array"
  },
  "listingDate": {
    "label": "Listing Date",
    "format": "text"
  },
  "lastUpdated": {
    "label": "Last Updated",
    "format": "text"
  },
  "photoCount": {
    "label": "Photo Count",
    "format": "number"
  },
  "thumbnailUrl": {
    "label": "Thumbnail",
    "format": "image"
  },
  "virtualTourUrl": {
    "label": "Virtual Tour",
    "format": "link"
  },
  "publicRemarks": {
    "label": "Description",
    "format": "text"
  },
  "descriptionLang": {
    "label": "Lang",
    "format": "text"
  },
  "agentName": {
    "label": "Agent",
    "format": "text"
  },
  "agentId": {
    "label": "Agent ID",
    "format": "text"
  },
  "agentPhone": {
    "label": "Agent Phone",
    "format": "text"
  },
  "agentEmail": {
    "label": "Agent Email",
    "format": "text"
  },
  "agentDesignations": {
    "label": "Designations",
    "format": "array"
  },
  "officeName": {
    "label": "Brokerage",
    "format": "text"
  },
  "officeId": {
    "label": "Office ID",
    "format": "text"
  },
  "brokerageFranchise": {
    "label": "Franchise",
    "format": "text"
  },
  "officeAgentCount": {
    "label": "Office Agents",
    "format": "number"
  },
  "officeListingCount": {
    "label": "Office Listings",
    "format": "number"
  },
  "scrapedAt": {
    "label": "Scraped At",
    "format": "text"
  }
}
```

## About this Actor

This example demonstrates how to use [Realtor.ca Scraper](https://apify.com/haketa/realtor-ca-scraper) with a specific input configuration. Visit the [Actor detail page](https://apify.com/haketa/realtor-ca-scraper) to learn more, explore other use cases, and run it yourself.