APIs / Real estate / Rentals.ca
1 credit per call6 endpoints19 datapoints
Rentals.ca API
Rentals.ca API for Canadian rental search, listings, floor plans, property managers, cities and filter facets as JSON. 1 credit per successful call.
{
"success": true,
"data": {
"search_metadata": {
"status": "Success",
"total_floor_plans": 3952
},
"search_parameters": {
"place": "toronto, on, ca",
"sort": "cheapest",
"filters": {
"max_price": "3000",
"min_beds": "2"
}
},
"total": 2280,
"filtered_count": 18,
"page": 1,
"per_page": 20,
"has_next_page": true,
"next_page": 2,
"warning": "Some buildings were left out because none of their units fit the filters. A page can hold fewer than per_page listings.",
"listings": [
{
"id": "cmVudGFsbGlzdGluZzo5MTM4OTE=",
"path": "toronto/davisville-avenue-id913891",
"url": "https://rentals.ca/toronto/davisville-avenue-id913891",
"name": "Davisville Avenue",
"type": "shared_room",
"listing_type": "residential:room:shared-room",
"verified": true,
"beds": {
"min": 2,
"max": 2
},
"baths": {
"min": 1,
"max": 1
},
"rent": {
"min": 450,
"max": 450
},
"size": {},
"floor_plans": [
{
"beds": 2,
"baths": 1,
"rent": 450,
"available_now": false
}
],
"latitude": 43.70075,
"longitude": -79.39088,
"address": {
"street": "Uptown",
"postal_code": "M4S 1G7",
"city": "Toronto",
"city_path": "toronto",
"region": "ON",
"address_hidden": false
},
"thumbnail": {
"small": "https://images.rentals.ca/property-pictures/small/toronto-on/913891/shared-room-2237881593.jpg",
"medium": "https://images.rentals.ca/property-pictures/medium/toronto-on/913891/shared-room-2237881593.jpg",
"large": "https://images.rentals.ca/property-pictures/large/toronto-on/913891/shared-room-2237881593.jpg"
},
"images_count": 3,
"created": "2024-11-28T15:54:00.179086+00:00",
"modified": "2026-11-12T07:48:59.251178+00:00"
},
{
"id": "cmVudGFsbGlzdGluZzo5MTQ3MzU=",
"path": "toronto/niska-road",
"url": "https://rentals.ca/toronto/niska-road",
"name": "Niska Road",
"type": "room",
"listing_type": "residential:room:room",
"verified": true,
"beds": {
"min": 2,
"max": 2
},
"baths": {
"min": 1,
"max": 1
},
"rent": {
"min": 650,
"max": 650
},
"size": {},
"floor_plans": [
{
"beds": 2,
"baths": 1,
"rent": 650,
"available_now": false
}
],
"latitude": 43.7644,
"longitude": -79.5094,
"address": {
"street": "Niska Road",
"postal_code": "M3N 2S3",
"city": "Toronto",
"city_path": "toronto",
"region": "ON",
"address_hidden": false
},
"thumbnail": {
"small": "https://images.rentals.ca/property-pictures/small/toronto-on/914735/room-2237886161.jpg",
"medium": "https://images.rentals.ca/property-pictures/medium/toronto-on/914735/room-2237886161.jpg",
"large": "https://images.rentals.ca/property-pictures/large/toronto-on/914735/room-2237886161.jpg"
},
"images_count": 5,
"created": "2024-11-28T15:55:15.867977+00:00",
"modified": "2026-11-12T07:50:05.504158+00:00"
},
{
"id": "cmVudGFsbGlzdGluZzoxNjA1OTM2",
"path": "toronto/roomies-1605936",
"url": "https://rentals.ca/toronto/roomies-1605936",
"name": "Rose Avenue",
"type": "room",
"listing_type": "residential:room:room",
"verified": true,
"beds": {
"min": 2,
"max": 2
},
"baths": {
"min": 1,
"max": 1
},
"rent": {
"min": 790,
"max": 790
},
"size": {},
"floor_plans": [
{
"beds": 2,
"baths": 1,
"rent": 790,
"available_now": false
}
],
"latitude": 43.66937,
"longitude": -79.37045,
"address": {
"street": "Rose Avenue",
"postal_code": "M4X 1P1",
"city": "Toronto",
"city_path": "toronto",
"region": "ON",
"neighbourhood": "St. James Town",
"neighbourhood_path": "toronto/st-james-town",
"address_hidden": false
},
"thumbnail": {
"small": "https://cloudinary.roomies.pics/image/upload/c_scale,dpr_1.0,f_jpg,fl_lossy,q_auto:good,w_672/ednvdwgteyx1f6wfrixx",
"medium": "https://cloudinary.roomies.pics/image/upload/c_scale,dpr_1.0,f_jpg,fl_lossy,q_auto:good,w_672/ednvdwgteyx1f6wfrixx",
"large": "https://cloudinary.roomies.pics/image/upload/c_scale,dpr_1.0,f_jpg,fl_lossy,q_auto:good,w_672/ednvdwgteyx1f6wfrixx"
},
"images_count": 3,
"created": "2026-11-06T07:30:15.905608+00:00",
"modified": "2026-11-12T07:31:49.102006+00:00"
}
]
},
"meta": {
"endpoint_family": "search",
"request_id": "req_deb4fde8df4c4fd7b8f7af98d721aa65",
"credits_charged": 1,
"credits_remaining": 1814
}
}Sample data
What one call returns
A recorded run of search: the fields and shapes you will get, shortened to 3 items.
| # | idstring | pathstring | urlurl | namestring | typestring | listing_typestring | verifiedboolean | bedsobject | bathsobject | rentobject | sizeobject | floor_plansobject[] | latitudenumber | longitudenumber | addressobject | thumbnailobject | images_countinteger | createdstring | modifiedstring |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | cmVudGFsbGlzdGluZzo5MTM4OTE= | toronto/davisville-avenue-id913891 | https://rentals.ca/toronto/davisville-avenue-id913891 | Davisville Avenue | shared_room | residential:room:shared-room | true | {2 fields} | {2 fields} | {2 fields} | {0 fields} | [1 item] | 43.70075 | -79.39088 | {6 fields} | {3 fields} | 3 | 2024-11-28T15:54:00.179086+00:00 | 2026-11-12T07:48:59.251178+00:00 |
| 2 | cmVudGFsbGlzdGluZzo5MTQ3MzU= | toronto/niska-road | https://rentals.ca/toronto/niska-road | Niska Road | room | residential:room:room | true | {2 fields} | {2 fields} | {2 fields} | {0 fields} | [1 item] | 43.7644 | -79.5094 | {6 fields} | {3 fields} | 5 | 2024-11-28T15:55:15.867977+00:00 | 2026-11-12T07:50:05.504158+00:00 |
| 3 | cmVudGFsbGlzdGluZzoxNjA1OTM2 | toronto/roomies-1605936 | https://rentals.ca/toronto/roomies-1605936 | Rose Avenue | room | residential:room:room | true | {2 fields} | {2 fields} | {2 fields} | {0 fields} | [1 item] | 43.66937 | -79.37045 | {8 fields} | {3 fields} | 3 | 2026-11-06T07:30:15.905608+00:00 | 2026-11-12T07:31:49.102006+00:00 |
[
{
"id": "cmVudGFsbGlzdGluZzo5MTM4OTE=",
"path": "toronto/davisville-avenue-id913891",
"url": "https://rentals.ca/toronto/davisville-avenue-id913891",
"name": "Davisville Avenue",
"type": "shared_room",
"listing_type": "residential:room:shared-room",
"verified": true,
"beds": {
"min": 2,
"max": 2
},
"baths": {
"min": 1,
"max": 1
},
"rent": {
"min": 450,
"max": 450
},
"size": {},
"floor_plans": [
{
"beds": 2,
"baths": 1,
"rent": 450,
"available_now": false
}
],
"latitude": 43.70075,
"longitude": -79.39088,
"address": {
"street": "Uptown",
"postal_code": "M4S 1G7",
"city": "Toronto",
"city_path": "toronto",
"region": "ON",
"address_hidden": false
},
"thumbnail": {
"small": "https://images.rentals.ca/property-pictures/small/toronto-on/913891/shared-room-2237881593.jpg",
"medium": "https://images.rentals.ca/property-pictures/medium/toronto-on/913891/shared-room-2237881593.jpg",
"large": "https://images.rentals.ca/property-pictures/large/toronto-on/913891/shared-room-2237881593.jpg"
},
"images_count": 3,
"created": "2024-11-28T15:54:00.179086+00:00",
"modified": "2026-11-12T07:48:59.251178+00:00"
},
{
"id": "cmVudGFsbGlzdGluZzo5MTQ3MzU=",
"path": "toronto/niska-road",
"url": "https://rentals.ca/toronto/niska-road",
"name": "Niska Road",
"type": "room",
"listing_type": "residential:room:room",
"verified": true,
"beds": {
"min": 2,
"max": 2
},
"baths": {
"min": 1,
"max": 1
},
"rent": {
"min": 650,
"max": 650
},
"size": {},
"floor_plans": [
{
"beds": 2,
"baths": 1,
"rent": 650,
"available_now": false
}
],
"latitude": 43.7644,
"longitude": -79.5094,
"address": {
"street": "Niska Road",
"postal_code": "M3N 2S3",
"city": "Toronto",
"city_path": "toronto",
"region": "ON",
"address_hidden": false
},
"thumbnail": {
"small": "https://images.rentals.ca/property-pictures/small/toronto-on/914735/room-2237886161.jpg",
"medium": "https://images.rentals.ca/property-pictures/medium/toronto-on/914735/room-2237886161.jpg",
"large": "https://images.rentals.ca/property-pictures/large/toronto-on/914735/room-2237886161.jpg"
},
"images_count": 5,
"created": "2024-11-28T15:55:15.867977+00:00",
"modified": "2026-11-12T07:50:05.504158+00:00"
},
{
"id": "cmVudGFsbGlzdGluZzoxNjA1OTM2",
"path": "toronto/roomies-1605936",
"url": "https://rentals.ca/toronto/roomies-1605936",
"name": "Rose Avenue",
"type": "room",
"listing_type": "residential:room:room",
"verified": true,
"beds": {
"min": 2,
"max": 2
},
"baths": {
"min": 1,
"max": 1
},
"rent": {
"min": 790,
"max": 790
},
"size": {},
"floor_plans": [
{
"beds": 2,
"baths": 1,
"rent": 790,
"available_now": false
}
],
"latitude": 43.66937,
"longitude": -79.37045,
"address": {
"street": "Rose Avenue",
"postal_code": "M4X 1P1",
"city": "Toronto",
"city_path": "toronto",
"region": "ON",
"neighbourhood": "St. James Town",
"neighbourhood_path": "toronto/st-james-town",
"address_hidden": false
},
"thumbnail": {
"small": "https://cloudinary.roomies.pics/image/upload/c_scale,dpr_1.0,f_jpg,fl_lossy,q_auto:good,w_672/ednvdwgteyx1f6wfrixx",
"medium": "https://cloudinary.roomies.pics/image/upload/c_scale,dpr_1.0,f_jpg,fl_lossy,q_auto:good,w_672/ednvdwgteyx1f6wfrixx",
"large": "https://cloudinary.roomies.pics/image/upload/c_scale,dpr_1.0,f_jpg,fl_lossy,q_auto:good,w_672/ednvdwgteyx1f6wfrixx"
},
"images_count": 3,
"created": "2026-11-06T07:30:15.905608+00:00",
"modified": "2026-11-12T07:31:49.102006+00:00"
}
]id,path,url,name,type,listing_type,verified,beds,baths,rent,size,floor_plans,latitude,longitude,address,thumbnail,images_count,created,modified
cmVudGFsbGlzdGluZzo5MTM4OTE=,toronto/davisville-avenue-id913891,https://rentals.ca/toronto/davisville-avenue-id913891,Davisville Avenue,shared_room,residential:room:shared-room,true,"{""min"":2,""max"":2}","{""min"":1,""max"":1}","{""min"":450,""max"":450}",{},"[{""beds"":2,""baths"":1,""rent"":450,""available_now"":false}]",43.70075,-79.39088,"{""street"":""Uptown"",""postal_code"":""M4S 1G7"",""city"":""Toronto"",""city_path"":""toronto"",""region"":""ON"",""address_hidden"":false}","{""small"":""https://images.rentals.ca/property-pictures/small/toronto-on/913891/shared-room-2237881593.jpg"",""medium"":""https://images.rentals.ca/property-pictures/medium/toronto-on/913891/shared-room-2237881593.jpg"",""large"":""https://images.rentals.ca/property-pictures/large/toronto-on/913891/shared-room-2237881593.jpg""}",3,2024-11-28T15:54:00.179086+00:00,2026-11-12T07:48:59.251178+00:00
cmVudGFsbGlzdGluZzo5MTQ3MzU=,toronto/niska-road,https://rentals.ca/toronto/niska-road,Niska Road,room,residential:room:room,true,"{""min"":2,""max"":2}","{""min"":1,""max"":1}","{""min"":650,""max"":650}",{},"[{""beds"":2,""baths"":1,""rent"":650,""available_now"":false}]",43.7644,-79.5094,"{""street"":""Niska Road"",""postal_code"":""M3N 2S3"",""city"":""Toronto"",""city_path"":""toronto"",""region"":""ON"",""address_hidden"":false}","{""small"":""https://images.rentals.ca/property-pictures/small/toronto-on/914735/room-2237886161.jpg"",""medium"":""https://images.rentals.ca/property-pictures/medium/toronto-on/914735/room-2237886161.jpg"",""large"":""https://images.rentals.ca/property-pictures/large/toronto-on/914735/room-2237886161.jpg""}",5,2024-11-28T15:55:15.867977+00:00,2026-11-12T07:50:05.504158+00:00
cmVudGFsbGlzdGluZzoxNjA1OTM2,toronto/roomies-1605936,https://rentals.ca/toronto/roomies-1605936,Rose Avenue,room,residential:room:room,true,"{""min"":2,""max"":2}","{""min"":1,""max"":1}","{""min"":790,""max"":790}",{},"[{""beds"":2,""baths"":1,""rent"":790,""available_now"":false}]",43.66937,-79.37045,"{""street"":""Rose Avenue"",""postal_code"":""M4X 1P1"",""city"":""Toronto"",""city_path"":""toronto"",""region"":""ON"",""neighbourhood"":""St. James Town"",""neighbourhood_path"":""toronto/st-james-town"",""address_hidden"":false}","{""small"":""https://cloudinary.roomies.pics/image/upload/c_scale,dpr_1.0,f_jpg,fl_lossy,q_auto:good,w_672/ednvdwgteyx1f6wfrixx"",""medium"":""https://cloudinary.roomies.pics/image/upload/c_scale,dpr_1.0,f_jpg,fl_lossy,q_auto:good,w_672/ednvdwgteyx1f6wfrixx"",""large"":""https://cloudinary.roomies.pics/image/upload/c_scale,dpr_1.0,f_jpg,fl_lossy,q_auto:good,w_672/ednvdwgteyx1f6wfrixx""}",3,2026-11-06T07:30:15.905608+00:00,2026-11-12T07:31:49.102006+00:00Recorded from our API · 3 items shown · 19 datapoints per itemGET /v1/rentals-ca/search?city=Toronto®ion=ON&max_price=3000&min_beds=2&sort=cheapest
19 datapoints
Identity
- idstring
- namestring
- typestring
- listing_typestring
Contact
- urlurl
Location
- latitudenumber
- longitudenumber
- addressobject
Reputation
- verifiedboolean
- images_countinteger
Other
- pathstring
- bedsobject
- bathsobject
- rentobject
- sizeobject
- floor_plansobject[]
- thumbnailobject
- createdstring
- modifiedstring
Playground
Run this API
curl "https://api.perceptlayer.com/v1/rentals-ca/search?city=Toronto®ion=ON&max_price=3000&min_beds=2&sort=cheapest" \
-H "X-API-Key: $API_KEY"Rentals.ca · 6 endpoints
Endpoints
Every endpoint takes the same key. Open one for its parameters and an example request.
| Endpoint | Required parameters | Cost |
|---|---|---|
GET/v1/rentals-ca/agency | none+3 optional | 1 credit |
GET/v1/rentals-ca/autocomplete | query+1 optional | 1 credit |
GET/v1/rentals-ca/cities | none+3 optional | 1 credit |
GET/v1/rentals-ca/facets | none | 1 credit |
GET/v1/rentals-ca/listing | none+3 optional | 1 credit |
GET/v1/rentals-ca/search | none+23 optional | 1 credit |
Overview
About the Rentals.ca API
What you can get
The Rentals.ca API returns Rentals.ca rental data as JSON through 6 endpoints.
- Search:
searchtakes acity,regionorlocation, withmin_price,max_price,min_beds,max_beds,min_baths,max_baths,min_size,max_size,property_type[],categories[],lease_terms[],furnished[],parking_types[]andamenities[](all repeatable),pets(all or none),verified,has_images,sort(relevant, recent, cheapest, expensive, newest or ranked),pageandper_page. - Listings:
listingtakes apath,urlorid. - Agencies:
agencytakes apath,urlorid. - Places and filters:
citiestakes aregion(AB, BC, MB, NB, NL, NS, NT, NU, ON, PE, QC, SK or YT), withpageandper_page;autocompletetakes aquery, withlimit;facetstakes no parameters.
The recorded search for Toronto, ON with max_price=3000, min_beds=2 and sort=cheapest returns listings, each with id, path, url, name, type, listing_type, verified, beds, baths, rent, size, floor_plans, latitude, longitude, address, thumbnail, images_count, created and modified. It also returns total, filtered_count, page, per_page, has_next_page, next_page, a warning, and search_metadata with total_floor_plans.
How a call works
Search a city: GET /v1/rentals-ca/search?city=Toronto®ion=ON&max_price=3000&min_beds=2&sort=cheapest with your key in the X-API-Key header. Each listing's path (such as toronto/davisville-avenue-id913891) is what listing takes. Use next_page when has_next_page is true. Every successful call costs 1 credit; failed calls cost nothing.
More real estate APIs
Use cases
Track asking rents by bedroom count in a Canadian city
Use the Rentals.ca API to track asking rents by bedroom count in a Canadian cityCompare rent ranges across a building's `floor_plans`
Use the Rentals.ca API to compare rent ranges across a building's `floor_plans`Filter rentals by lease term, furnishing, parking and pets
Use the Rentals.ca API to filter rentals by lease term, furnishing, parking and petsList the cities with rentals in a province or territory with `cities`
Use the Rentals.ca API to list the cities with rentals in a province or territory with `cities`FAQ
Questions
Do I need a Rentals.ca account?
No. You call this Rentals.ca API with your Perceptlayer key in the `X-API-Key` header, with no Rentals.ca login.
How much does the Rentals.ca API cost?
Each successful call costs one credit. New accounts get free credits to start, and credit packs bring the price down as you scale.
What format are responses in?
Every endpoint returns JSON, with no HTML parsing on your side.
Why can a page hold fewer listings than `per_page`?
Buildings are left out when none of their units fit your filters, so a page can come back short. The response says so in `warning`.
Should I build a Rentals.ca scraper instead?
You can, but a Rentals.ca scraper is code you maintain: page changes break it, requests get blocked, and Rentals.ca's terms govern how you collect data. The Rentals.ca API gives you 6 endpoints of named JSON fields for 1 credit per successful call, and failed calls cost nothing. A scraper makes sense only for data these endpoints don't return, so check the response in the playground on this page first.
Try the Rentals.ca API with 100 free credits
No credit card. Failed calls are never billed.