API Documentation
Build custom availability displays with real-time property and unit data.
Introduction
The Rent IQ Availability API provides real-time access to property and unit availability data. Use it to build custom availability displays, search interfaces, and integrations for rental apartment websites.
All endpoints return JSON responses with pre-formatted display values (like rent) and raw values (like rent_numeric) for filtering and sorting.
Base URL
https://api.rentiq.com/api/v1/Authentication
No authentication required. All availability endpoints are public.
The API uses CORS with origin reflection, meaning any website can make requests directly from the browser. No API keys needed.
Rate Limits & Caching
Rate Limits
| Limit | Value |
|---|---|
| Requests per IP | 500 per 15 minutes |
| Response | HTTP 429 with message when exceeded |
Caching
API responses are cached for 1 hour. When availability data is updated in Rent IQ, caches are automatically invalidated.
For real-time accuracy: Data reflects what's in the Rent IQ dashboard, updated within seconds of changes.
Filtering
Filter available units server-side using query parameters. All filters use AND logic—units must match all specified criteria.
Unit Filters
These parameters work on all endpoints that return available units.
bedroomsnumberExact bedroom count (e.g., 2)
min_bedroomsnumberMinimum number of bedrooms
max_bedroomsnumberMaximum number of bedrooms
min_rentnumberMinimum rent amount
max_rentnumberMaximum rent amount
available_beforestringUnits available by date (YYYY-MM-DD)
available_nowbooleanOnly units available immediately (true/false)
has_denbooleanFilter by den (true/false)
min_sqftnumberMinimum square footage
max_sqftnumberMaximum square footage
| Parameter | Type | Description |
|---|---|---|
bedrooms | number | Exact bedroom count (e.g., 2) |
min_bedrooms | number | Minimum number of bedrooms |
max_bedrooms | number | Maximum number of bedrooms |
min_rent | number | Minimum rent amount |
max_rent | number | Maximum rent amount |
available_before | string | Units available by date (YYYY-MM-DD) |
available_now | boolean | Only units available immediately (true/false) |
has_den | boolean | Filter by den (true/false) |
min_sqft | number | Minimum square footage |
max_sqft | number | Maximum square footage |
Geographic Filters
These parameters work on organization-level endpoints for map-based searches.
min_latnumberBounding box south latitude (-90 to 90)
max_latnumberBounding box north latitude (-90 to 90)
min_lngnumberBounding box west longitude (-180 to 180)
max_lngnumberBounding box east longitude (-180 to 180)
citystringFilter by city name (case-insensitive exact match)
| Parameter | Type | Description |
|---|---|---|
min_lat | number | Bounding box south latitude (-90 to 90) |
max_lat | number | Bounding box north latitude (-90 to 90) |
min_lng | number | Bounding box west longitude (-180 to 180) |
max_lng | number | Bounding box east longitude (-180 to 180) |
city | string | Filter by city name (case-insensitive exact match) |
Example: Filtered Request
GET https://api.rentiq.com/api/v1/properties/prop_RcXoDugMVpB9/units/available?bedrooms=2&max_rent=2500&available_now=true
Returns only 2-bedroom units under $2,500/month that are available immediately.
Map Integration
Build interactive map-based property searches using the geographic filtering parameters. The API returns latitude and longitude for each property, and accepts bounding box coordinates to filter results to a map viewport.
Bounding Box Filtering
When users pan or zoom a map, fetch only properties within the visible area:
// Update results when map viewport changesmap.on('moveend', async () => {const bounds = map.getBounds();const response = await fetch(`https://api.rentiq.com/api/v1/properties-by-organization/summit-properties/all-with-available-units?` +`min_lat=${bounds.getSouth()}&max_lat=${bounds.getNorth()}&` +`min_lng=${bounds.getWest()}&max_lng=${bounds.getEast()}`);const data = await response.json();// Clear existing markers and add new onesmarkers.forEach(m => m.remove());markers = data.properties.map(property => {return new mapboxgl.Marker().setLngLat([property.longitude, property.latitude]).setPopup(new mapboxgl.Popup().setHTML(`<h3>${property.name}</h3><p>${property.total_available_units} units available</p>`)).addTo(map);});});
Combining Filters with Map Search
Combine geographic and unit filters for powerful search experiences:
// Search for 2+ bedroom units under $2,500 in the current map viewasync function searchUnits(bounds, filters) {const params = new URLSearchParams({min_lat: bounds.getSouth(),max_lat: bounds.getNorth(),min_lng: bounds.getWest(),max_lng: bounds.getEast(),...filters});const response = await fetch(`https://api.rentiq.com/api/v1/properties-by-organization/summit-properties/units/available?${params}`);return response.json();}// Usageconst results = await searchUnits(map.getBounds(), {min_bedrooms: 2,max_rent: 2500});console.log(`Found ${results.units.length} matching units`);
Recommended Endpoints for Maps
- Property markers with unit counts: Use
/all-with-available-units - Flat unit list for search results: Use
/units/available
Property Endpoints
These endpoints return data for a single property.
Get Available Units
/properties/{public_id}/units/availableReturns all available units for a property with optional sorting.
Path Parameters
public_idstringProperty identifier (format: prop_XXXXXXXXXX)
| Parameter | Type | Description |
|---|---|---|
public_id | string | Property identifier (format: prop_XXXXXXXXXX) |
Query Parameters
sortstringdefault: unit_typeSort order: unit_type or suite_number
| Parameter | Type | Default | Description |
|---|---|---|---|
sort | string | unit_type | Sort order: unit_type or suite_number |
Example Request
GET https://api.rentiq.com/api/v1/properties/prop_RcXoDugMVpB9/units/available?sort=unit_type
Example Response
{"units": [{"id": "unt_q9zmVHPufZGr","suite_number": "110","indoor_square_feet": 700,"outdoor_square_feet": 50,"unit_size": "700 sf","floorplan_url": "https://cdn.rentiq.com/.../1br-fp-1.webp","unit_type": "1 Bedroom","bedrooms": 1,"bathrooms": 1,"has_den": false,"availability": "Available Nov 28, 2025","available_date": "2025-11-28","rent": "$2,100 / month","rent_numeric": 2100}]}
Response Fields
idstringUnit identifier
suite_numberstringUnit/suite number
indoor_square_feetnumberInterior square footage
outdoor_square_feetnumberBalcony/outdoor square footage (nullable)
unit_sizestringFormatted square footage (e.g., "700 sf")
floorplan_urlstringURL to floorplan image (nullable)
unit_typestringDisplay name (e.g., "1 Bedroom", "2 Bedroom + Den")
bedroomsnumberNumber of bedrooms
bathroomsnumberNumber of bathrooms
has_denbooleanWhether unit has a den
availabilitystringHuman-readable availability ("Available Now" or "Available [Date]")
available_datestringISO date (YYYY-MM-DD) for filtering/sorting
rentstringFormatted rent (e.g., "$2,100 / month")
rent_numericnumberNumeric rent value for filtering/sorting
| Field | Type | Description |
|---|---|---|
id | string | Unit identifier |
suite_number | string | Unit/suite number |
indoor_square_feet | number | Interior square footage |
outdoor_square_feet | number | Balcony/outdoor square footage (nullable) |
unit_size | string | Formatted square footage (e.g., "700 sf") |
floorplan_url | string | URL to floorplan image (nullable) |
unit_type | string | Display name (e.g., "1 Bedroom", "2 Bedroom + Den") |
bedrooms | number | Number of bedrooms |
bathrooms | number | Number of bathrooms |
has_den | boolean | Whether unit has a den |
availability | string | Human-readable availability ("Available Now" or "Available [Date]") |
available_date | string | ISO date (YYYY-MM-DD) for filtering/sorting |
rent | string | Formatted rent (e.g., "$2,100 / month") |
rent_numeric | number | Numeric rent value for filtering/sorting |
Get Unit Types
/properties/{public_id}/unit-typesReturns unit types with availability summary and starting rents.
Path Parameters
public_idstringProperty identifier (format: prop_XXXXXXXXXX)
| Parameter | Type | Description |
|---|---|---|
public_id | string | Property identifier (format: prop_XXXXXXXXXX) |
Example Request
GET https://api.rentiq.com/api/v1/properties/prop_RcXoDugMVpB9/unit-types
Example Response
{"unit_types": [{"unit_type": "0br","display_name": "Studio","unit_type_for_url": "studio","has_availability": false,"availability": "No availability"},{"unit_type": "1br","display_name": "1 Bedroom","unit_type_for_url": "1-bedroom","has_availability": true,"availability": "from $2,150"}]}
Response Fields
unit_typestringInternal unit type code
display_namestringHuman-readable name
unit_type_for_urlstringURL-safe slug for routing
has_availabilitybooleanWhether any units are available
availabilitystringStarting rent or "No availability"
| Field | Type | Description |
|---|---|---|
unit_type | string | Internal unit type code |
display_name | string | Human-readable name |
unit_type_for_url | string | URL-safe slug for routing |
has_availability | boolean | Whether any units are available |
availability | string | Starting rent or "No availability" |
Get Units by Floorplan
/properties/{public_id}/units/available-by-floorplanReturns available units grouped by floorplan.
Path Parameters
public_idstringProperty identifier
| Parameter | Type | Description |
|---|---|---|
public_id | string | Property identifier |
Query Parameters
sortstringdefault: square_feetSort order: square_feet or floorplan_name
| Parameter | Type | Default | Description |
|---|---|---|---|
sort | string | square_feet | Sort order: square_feet or floorplan_name |
Example Request
GET https://api.rentiq.com/api/v1/properties/prop_RcXoDugMVpB9/units/available-by-floorplan
Example Response
{"floorplans": [{"id": "flp_WdjdauSXUJCd","name": "1br-fp-1-jpg-1735483198492.webp","display_name": "1br-fp-1.jpg","floorplan_url": "https://cdn.rentiq.com/.../1br-fp-1.webp","square_feet": 700,"available_unit_count": 2,"units": [{"id": "unt_q9zmVHPufZGr","suite_number": "110","indoor_square_feet": 700,"unit_type": "1 Bedroom","rent": "$2,100 / month","rent_numeric": 2100}]}]}
Get Floorplan Starting Rents
/properties/{public_id}/floorplans/starting-rentsReturns floorplans with starting rent information.
Path Parameters
public_idstringProperty identifier
| Parameter | Type | Description |
|---|---|---|
public_id | string | Property identifier |
Example Request
GET https://api.rentiq.com/api/v1/properties/prop_RcXoDugMVpB9/floorplans/starting-rents
Example Response
{"floorplans": [{"id": "flp_WdjdauSXUJCd","name": "1br-fp-1-jpg-1735483198492.webp","display_name": "1br-fp-1.jpg","floorplan_url": "https://cdn.rentiq.com/.../1br-fp-1.webp","starting_rent": 2100,"starting_rent_formatted": "$2,100 / month","unit_count": 2,"unit_type": "1 Bedroom","square_feet": 700}]}
Organization Endpoints
These endpoints return data across all properties in an organization. Useful for portfolio websites, map views, and multi-property search.
All Properties with Available Units
/properties-by-organization/{organization_slug}/all-with-available-unitsReturns all properties in an organization with their available units. Includes latitude/longitude for map-based displays.
Path Parameters
organization_slugstringOrganization identifier (URL slug)
| Parameter | Type | Description |
|---|---|---|
organization_slug | string | Organization identifier (URL slug) |
Query Parameters
sortstringdefault: unit_typeSort order for units: unit_type or suite_number
| Parameter | Type | Default | Description |
|---|---|---|---|
sort | string | unit_type | Sort order for units: unit_type or suite_number |
Example Request
GET https://api.rentiq.com/api/v1/properties-by-organization/summit-properties/all-with-available-units
Example Response
{"properties": [{"id": "prop_RcXoDugMVpB9","slug": "riverview-residences","name": "Riverview Residences","address": "177 St. George Street, Toronto, ON","city": "Toronto","latitude": 43.6711115,"longitude": -79.4009454,"images": [{"url": "https://cdn.rentiq.com/.../photo1.webp","width": 1920,"height": 1080}],"total_available_units": 4,"available_units": [...]}]}
All Properties with Starting Rents
/properties-by-organization/{organization_slug}/all-with-starting-rentsReturns all properties with unit type pricing summary. Great for property listing pages.
Path Parameters
organization_slugstringOrganization identifier
| Parameter | Type | Description |
|---|---|---|
organization_slug | string | Organization identifier |
Example Request
GET https://api.rentiq.com/api/v1/properties-by-organization/summit-properties/all-with-starting-rents
Example Response
{"properties": [{"id": "prop_RcXoDugMVpB9","name": "Riverview Residences","address": "177 St. George Street Toronto, ON M5R 2M5","city": "Toronto","unit_types": [{"unit_type": "1br","display_name": "1 Bedroom","unit_type_for_url": "1-bedroom","has_availability": true,"available_count": 2,"starting_rent": 2100,"starting_rent_formatted": "from $2,100"}]}]}
All Properties (Minimal)
/properties-by-organization/{organization_slug}/allReturns basic property information with minimal payload. Optimized for dropdowns, navigation, and form autofill.
Path Parameters
organization_slugstringOrganization identifier
| Parameter | Type | Description |
|---|---|---|
organization_slug | string | Organization identifier |
Example Request
GET https://api.rentiq.com/api/v1/properties-by-organization/summit-properties/all
Example Response
{"properties": [{"id": "prop_RcXoDugMVpB9","slug": "riverview-residences","name": "Riverview Residences","address": "177 St. George Street, Toronto, ON","street_address": "177 St. George Street","city": "Toronto","province_state": "ON","postal_zip_code": "M5R 2M5"}]}
All Units (Flat List)
/properties-by-organization/{organization_slug}/units/availableReturns a flat list of all available units across all properties. Ideal for search interfaces and map-based displays where you need units with their property information attached.
Path Parameters
organization_slugstringOrganization identifier (URL slug)
| Parameter | Type | Description |
|---|---|---|
organization_slug | string | Organization identifier (URL slug) |
Query Parameters
sortstringdefault: unit_typeSort order: unit_type or suite_number
bedroomsnumberExact bedroom count
min_rentnumberMinimum rent
max_rentnumberMaximum rent
min_lat / max_lat / min_lng / max_lngnumberBounding box for map filtering
citystringFilter by city (case-insensitive)
| Parameter | Type | Default | Description |
|---|---|---|---|
sort | string | unit_type | Sort order: unit_type or suite_number |
bedrooms | number | — | Exact bedroom count |
min_rent | number | — | Minimum rent |
max_rent | number | — | Maximum rent |
min_lat / max_lat / min_lng / max_lng | number | — | Bounding box for map filtering |
city | string | — | Filter by city (case-insensitive) |
Example Request
GET https://api.rentiq.com/api/v1/properties-by-organization/summit-properties/units/available?bedrooms=2&max_rent=2500
Example Response
{"units": [{"id": "unt_q9zmVHPufZGr","suite_number": "110","property_id": "prop_RcXoDugMVpB9","property_name": "Riverview Residences","property_slug": "riverview-residences","property_address": "177 St. George Street, Toronto, ON","city": "Toronto","latitude": 43.6711115,"longitude": -79.4009454,"indoor_square_feet": 850,"unit_size": "850 sf","unit_type": "2 Bedroom","bedrooms": 2,"bathrooms": 1,"has_den": false,"availability": "Available Now","available_date": "2025-01-15","rent": "$2,300 / month","rent_numeric": 2300}]}
Response Fields
idstringUnit identifier
suite_numberstringUnit/suite number
property_idstringProperty identifier
property_namestringProperty name
property_slugstringProperty URL slug
property_addressstringFormatted property address
citystringProperty city
latitudenumberProperty latitude
longitudenumberProperty longitude
indoor_square_feetnumberInterior square footage
unit_sizestringFormatted square footage (e.g., "700 sf")
unit_typestringDisplay name (e.g., "1 Bedroom")
bedroomsnumberNumber of bedrooms
bathroomsnumberNumber of bathrooms
has_denbooleanWhether unit has a den
availabilitystringHuman-readable availability
available_datestringISO date (YYYY-MM-DD)
rentstringFormatted rent (e.g., "$2,100 / month")
rent_numericnumberNumeric rent value
| Field | Type | Description |
|---|---|---|
id | string | Unit identifier |
suite_number | string | Unit/suite number |
property_id | string | Property identifier |
property_name | string | Property name |
property_slug | string | Property URL slug |
property_address | string | Formatted property address |
city | string | Property city |
latitude | number | Property latitude |
longitude | number | Property longitude |
indoor_square_feet | number | Interior square footage |
unit_size | string | Formatted square footage (e.g., "700 sf") |
unit_type | string | Display name (e.g., "1 Bedroom") |
bedrooms | number | Number of bedrooms |
bathrooms | number | Number of bathrooms |
has_den | boolean | Whether unit has a den |
availability | string | Human-readable availability |
available_date | string | ISO date (YYYY-MM-DD) |
rent | string | Formatted rent (e.g., "$2,100 / month") |
rent_numeric | number | Numeric rent value |
Error Handling
HTTP Status Codes
| Code | Meaning |
|---|---|
200 | Success |
400 | Bad request (invalid parameters) |
404 | Property or organization not found |
429 | Rate limit exceeded |
500 | Server error |
Error Response Format
{"message": "Invalid property ID format"}
Common Errors
"Invalid property ID format"
Cause: Property ID doesn't match prop_XXXXXXXXXX pattern
Solution: Verify the property ID from your Rent IQ dashboard
"Property not found"
Cause: Property ID is valid format but doesn't exist
Solution: Check if property is active in Rent IQ
"Organization not found"
Cause: Organization slug doesn't exist
Solution: Verify the organization slug
"Invalid sort parameter"
Cause: Sort value not in allowed list
Solution: Use documented sort values
| Error | Cause | Solution |
|---|---|---|
| "Invalid property ID format" | Property ID doesn't match prop_XXXXXXXXXX pattern | Verify the property ID from your Rent IQ dashboard |
| "Property not found" | Property ID is valid format but doesn't exist | Check if property is active in Rent IQ |
| "Organization not found" | Organization slug doesn't exist | Verify the organization slug |
| "Invalid sort parameter" | Sort value not in allowed list | Use documented sort values |
Code Examples
Ready-to-use code examples for common platforms. All examples include error handling and use the data.units response format.
Note: These examples use demo identifiers (prop_RcXoDugMVpB9 and summit-properties). Replace these with your actual property ID and organization slug from your Rent IQ dashboard.
// Fetch available units for a propertyasync function getAvailableUnits(propertyId) {const response = await fetch(`https://api.rentiq.com/api/v1/properties/${propertyId}/units/available`);if (!response.ok) {throw new Error(`API error: ${response.status}`);}const data = await response.json();return data.units;}// Usageconst units = await getAvailableUnits('prop_RcXoDugMVpB9');console.log(`Found ${units.length} available units`);
Server-Side Filtering Example
Use query parameters for efficient server-side filtering:
// Search for units with server-side filteringasync function searchUnits(propertyId, filters) {const params = new URLSearchParams();if (filters.bedrooms) params.set('bedrooms', filters.bedrooms);if (filters.maxRent) params.set('max_rent', filters.maxRent);if (filters.availableNow) params.set('available_now', 'true');if (filters.hasDen) params.set('has_den', 'true');const response = await fetch(`https://api.rentiq.com/api/v1/properties/${propertyId}/units/available?${params}`);if (!response.ok) {throw new Error(`API error: ${response.status}`);}const data = await response.json();return data.units;}// Find 2-bedroom units under $2,500/month available nowconst results = await searchUnits('prop_RcXoDugMVpB9', {bedrooms: 2,maxRent: 2500,availableNow: true});console.log(`Found ${results.length} matching units`);
Getting Started
For Rent IQ Customers
Your property IDs and organization slug are available in your Rent IQ dashboard:
- 1. Log in to your Rent IQ dashboard
- 2. Navigate to Properties
- 3. Property ID is shown in the URL or property details
- 4. Organization slug is your account's URL identifier
For Agency Partners
Contact your Rent IQ account representative or the property manager to obtain:
- 1. Property IDs for properties you're building for
- 2. Organization slug for portfolio-wide integrations
Support
Technical questions: support@rentiq.com
Partnership inquiries: partners@rentiq.com
Need Help With Your Integration?
Our team can help you get started with custom implementations.
Contact Us