New Feature
Property Search: created_on
We added a new field created_on to the GET /property/search endpoint so you know when the data was last updated. This field will be populated 2025-10-25.
Property Search: created_on
We added a new field created_on to the GET /property/search endpoint so you know when the data was last updated. This field will be populated 2025-10-25.
Query Builder: Rent Roll Columns
Added a new Rent Roll column category for Query Builder. New columns:
rent_roll_floorplan_namerent_roll_bedrent_roll_bathrent_roll_partial_bathrent_roll_asking_rentrent_roll_in_place_rentrent_roll_estimated_unitsrent_roll_in_place_rent maps to rent_roll.effective_price.
Query Validation: Rent Roll Compatibility Guardrails
Query Builder now rejects incompatible mixed selections with HTTP 422 across dataset validation endpoints.
Incompatible mix:
Rent Roll columnUnit, Price, or Leasing Activity (occupancy) columnThis rule applies to both selected scope columns and filter columns.
Query Builder: Rent Roll Aggregation Selectors
Added 3 mutually exclusive Rent Roll aggregation selector columns:
rent_roll_aggregation_bed_bathrent_roll_aggregation_bed_bath_sqftrent_roll_aggregation_floorplanOnly one selector can be used in a query.
Rent Roll metrics now require one selector:
rent_roll_asking_rentrent_roll_in_place_rentrent_roll_estimated_unitsIf Rent Roll metrics are used without one of the selectors, dataset endpoints return HTTP 422 with a validation message.
Property
use_tmlp can be passed in to adjust property prices to use the Total Monthly Leasing Price Rent value.Relative Date Filters in Query Builder
Date filters in the Query Builder now support relative time ranges (in addition to selecting specific calendar dates). This is especially useful for scheduled dataset exports, so each run automatically targets the most relevant time window.
Supported relative options include:
The backend resolves relative date selections into concrete dates at execution time, ensuring scheduled exports stay up-to-date.
Date Filtering for Property Details
We’ve added optional date filtering to the GET /property/{id} endpoint, allowing you to filter units, history, availability periods, and concessions based on a date range.
New Query Parameters:
from (optional): Filter results to include only data that overlaps with dates on or after this date (ISO 8601 format, e.g., “2024-01-01”)to (optional): Filter results to include only data that overlaps with dates on or before this date (ISO 8601 format, e.g., “2024-12-31”)What Gets Filtered:
enter_market and exit_market datesfrom_date and to_date of each history entryenter_market and exit_market datesfrom_date and to_date of each concessionUsage: You can provide either date, both dates, or neither. When dates are provided, only data that overlaps with the specified date range will be included in the response.
Example Requests:
This feature is particularly useful when you need to analyze property data for a specific time period or when generating reports for a particular date range.
Effective Rent Filtering in Unit Mix
We’ve added support for filtering by effective rent (after concessions) in addition to asking rent. You can now filter properties by effective rent and effective rent per square foot for all unit types.
New Filter Fields:
effective_rent: Filter by average effective rent (net rent after concessions)effective_rent_per_sqft: Filter by average effective rent per square footThese filters are available for:
Example Payloads:
You can combine effective rent filters with asking rent filters to compare properties:
Effective rent filters work the same way as asking rent filters, supporting minimum/maximum values and optional inclusion of properties with null values via the allow_null parameter.
Rate Limiter: Updated headers
We’ve updated our rate limit headers from IETF draft v7 to the latest v10 format. The headers now use structured header syntax with quoted policy names for better standardization and compatibility.
Header Format Changes:
"policy-name";q=quota;w=window"default";q=500;w=60 (500 requests per 60 seconds)"policy-name";r=remaining;t=reset"default";r=499;t=59 (499 requests remaining, 59 seconds until reset)The header values are now fully compliant with the latest IETF draft standard, making it easier for clients to parse and handle rate limit information programmatically.
Comparables: Student Assets & Distance to Universities
We added support to POST /property/comparables for more student housing scenarios. Use isStudent=true to indicate the subject is student housing and optionally pass maxMilesToUniversity (in miles) to prioritize proximity to universities when ranking comps. These query params are optional and fully backward compatible.
The algorithm now prioritizes comps with a similar distance to universities as the subject property.
Market: Shape Search endpoint
We added a GET /market/shape_search endpoint to search for markets by name, city, state, or tags. Provide the q query string to receive up to 7 matches, including market names and GeoJSON shapes of the market boundaries. This endpoint is free to use and can be enabled on demand.
Property
To support greater fee transparency and help clients make fair comparisons, our system will now always display the base rent. In addition, we’ve introduced a new building-level attribute, fees, which includes all required and non-refundable charges. This allows clients to compare both base rent and all-in rent across buildings more accurately.