v0.46.1 — Update certifi package
v0.46.1
Update certifi package
- Update the certifi package to 2026.10.19.
- This is a security update to fix a vulnerability in the certifi package.
Release notes for the Parcl Labs API. 68 entries.
v0.46.1
v0.46.0
GET /v2/price_feed/{parcl_id}/price_feed_smoothed returns the smoothed Parcl Labs Price Feed for a single parcl_id, mirroring GET /v1/price_feed/{parcl_id}/price_feed.property_type (ALL, SINGLE_FAMILY, or NEW_CONSTRUCTION, defaults to ALL), start_date, end_date, limit, and offset. Rows carry date and price_feed; the response echoes parcl_id and property_type at the top level.POST /v2/price_feed/price_feed_smoothed, which remains the endpoint for requesting many markets in one call.v0.45.2
POST /v2/price_feed/price_feed_smoothed description no longer lists internal numeric type ids, which were shown in the wrong order. Both v2 price feed endpoints take property_type as ALL, SINGLE_FAMILY, or NEW_CONSTRUCTION. The data served is unchanged.POST /v2/price_feed/price_feed accepts up to 10,000 parcl_ids per request, not 100.property_type and account fields that were already being returned.v0.45.0
POST /v2/price_feed/price_feed_smoothed returns the smoothed Parcl Labs Price Feed for the requested parcl_ids and property_type.POST /v2/price_feed/price_feed: a parcl_id list, property_type of ALL, SINGLE_FAMILY, or NEW_CONSTRUCTION, and optional start_date and end_date.v0.44.0
POST /v2/price_feed/price_feed returns the daily Parcl Labs Price Feed for up to 10,000 parcl_ids, filtered by a new property_type parameter.property_type accepts ALL, SINGLE_FAMILY, or NEW_CONSTRUCTION and defaults to ALL. The requested value is echoed as a top-level property_type field in the response.date, price_feed, parcl_id) match POST /v1/price_feed/price_feed, so existing v1 clients can switch by changing the path.start_date and end_date are optional and follow the v1 price feed rules, with data available from 2010-01-01.v0.43.0
CONDO and are now correctly labeled SINGLE_FAMILY. An address-unit heuristic was incorrectly treating properties without a unit number as condos.v0.41.6
/openapi.json to middleware excluded paths.v0.41.3
v0.41.2
v0.41.1
v0.41.0
has_pool Filter to Property Search Endpointshas_pool boolean filter to v1 property search (/v1/property/search) and v2 property search (/v2/property_search) endpoints, allowing users to filter properties by pool presence.has_pool field to v1 property search and address search response schemas.has_pool field to v2 property metadata response (parcl_id, parcl_property_id, and geocoordinate searches).has_pool documentation: 1 = has a pool, 0 = we do not have information about this home having a pool.v0.40.3
v2/property_search.v0.40.2
/v1/price_feed/latest (sales) and /v1/price_feed_rentals/latest (rental) endpoints. Both endpoints shared the same price_feed_cache and generated identical cache keys from the request body, causing rental responses to be served for sales requests (and vice versa). Cache keys are now namespaced with sales: and rental: prefixes to prevent cross-endpoint cache poisoning.v0.40.1
/v1/price_feed_rentals/latest endpoint to sign rental prices with the rental parcl_id (base + 2B offset) instead of the raw database parcl_id. This ensures the Ed25519 signature matches the on-chain rental price feed's parcl_id, preventing Ed25519MessageMismatch errors during oracle price updates.v0.40.0
date field (10 bytes, "YYYY-MM-DD" ASCII) to the signed 74-byte price message, matching the updated on-chain parcl-v3 oracle format (PARCL-001 security fix).require!(price > 0))MAX_EXPIRY_HORIZON_MS)ValueError handling in price feed router for validation failuresv0.39.2
v0.39.1
v0.39.0
POST /v1/price_feed/latest with {parcl_ids: [...]} - Latest prices for multiple marketsPOST /v1/price_feed_rentals/latest with {parcl_ids: [...]} - Latest rental pricesThe responses on these new routes contain an Ed25519 signature which provides a cryptographically verified price message. This will be used to verify price data in the pull oracle.
v0.38.6
Add cache to property_search_v2 endpoint.
Add cache layer to 'property_search_v2' endpoint to improve performance and reduce server loads.
v0.38.5
Improve timeliness of prices in price_feed endpoints. Prices will now update daily around approximately 7:30 AM EST. Affected endpoints:
/v1/price_feed/{parcl_id}/price_feed/v1/price_feed/price_feed/v1/price_feed/{parcl_id}/rental_price_feed/v1/price_feed/rental_price_feedDeprecate volatility endpoints.
/v1/price_feed/{parcl_id}/volatility/v1/price_feed/volatilityv0.38.4
v1/property/search_address endpointv0.38.3
v1/property/search_address endpointv0.38.2
v2/property_search endpointv0.38.1
v0.38.0
This release adds entity_seller_name as both a filter parameter and response field to the v2/property_search endpoint. This field tracks which named large-scale entities sold properties during sale events, providing direct visibility into disposition activities by major operators.
Parameter: entity_seller_name - filter parameter for querying by seller entity
The name of the entity that sold the property at the time of the sale event, if sold by a named large-scale operator.
Response: entity_seller_name - response field in event data
The name of the entity that sold the property at the time of the sale event, if sold by a named large-scale operator.
Error: entity_seller_name must be used with at least one SALE event. Using it with only non-sale events will return no results because seller is NULL on all non-sale events.
Review the v2/property_search endpoint and investor documentation for the complete list of available named entity operators.
owner_name was required when querying the v2/property_search endpoint. Updated so that one of owner_name, entity_seller_name, or current_entity_owner_name is required.v0.37.1
limit was providedparcl_property_ids limit set incorrectly. It is now set to 10,000 ids per requestv0.37.0
Important: SDK upgrade (v1.15.0) required to access new features.
This release introduces the enhanced /v2/property_search endpoint, which consolidates the v1 two-step workflow (find properties → get events) into a single configurable POST request. Users can now retrieve property metadata and housing-event history in one call with precise filtering.
The /v2/property_search endpoint replaces the previous two-step process with a single POST request that can return both property metadata and event history based on your configuration.
The endpoint supports three distinct search methods:
parcl_property_ids
Search specific properties by their unique identifiers. This search method supports up to 10,000 properties per request.
parcl_ids
Search entire markets (city, county, ZIP, metro) by market identifier.
geo_coordinates
Search within a custom radius around specified coordinates. Maximum radius of 10 miles.
Control what data is returned to customize and optimize response:
include_property_details
Set to 1 to return full property metadata including address, geocode, beds/baths, year built, ownership status, etc. Set to 0 for ID and event-only responses.
include_events
Set to 1 to include any events filtered by your event criteria. Set to 0 for metadata-only responses.
include_full_event_history
Set to 1 to return all recorded events for each property. Set to 0 to return only events matching your filters. include_events must be set to 1 as well in order to return the full event history.
Current-state filters
Filter properties by current characteristics using new filtering capabilities introduced in v0.38.0.
These filters capture properties that currently meet specific criteria, including beds, baths, square footage, year built, on-market status, current owner name, investor/owner-occupied flags, and new-construction status.
Historical filters
event_filters: Filter by event types, date ranges, and price rangesowner_filters: Filter properties by historical ownership or owner typeUse limit parameter to control response size, supporting up to 50,000 properties per request.
Migration note: v1 endpoints remain available, but v2 offers improved performance and flexibility. Migration to v2 is recommended.
For questions, contact team@parcllabs.com, post on the community forum, or check the full Property API v2 reference.
v0.36.1
Enhanced Documentation Updated response documentation for v2/property_search with improved field descriptions for better developer experience.
v0.36.0
Added two new iBuyer entities (Opendoor, Offerpad), a new rental market flag to identify single family homes currently listed for rent and 50,000 record request limit.
Added support for two new institutional entity_owner_name values:
OPENDOOROFFERPADSearch for these iBuyers in:
property/searchproperty/event_historyv2/property_searchLearn more about our true owner methodology here.
Added current_on_market_rental_flag to identify single family homes currently listed for rent.
current_on_market_rental_flag
Boolean flag indicating whether the property is a single family home currently listed on the market for rent.
0 signifies that the property is not currently listed on the market for rent
1 signifies that the property is currently listed on the market for rent
NULL signifies that either the current on-market status is unknown or the property is not a single family home
Use current_on_market_rental_flag to filter single family homes currently listed on the market for rent in:
property/searchv2/property_searchThis field adds to current_on_market_flag which identified properties currently listed on the market for sale.
Changed the limit of records that can be pulled in one request to 50,000 homes, down from 100,000.
v0.35.0
The Property Search V2 Endpoint now includes a real-time indicator of market status
current_on_market_flag
Boolean flag indicating if the property is currently listed on the market for sale.
0 signifies that the property is not currently listed on the market for sale
1 signifies that the property is currently listed on the market for sale
This enhancement allows users to easily identify properties actively available for purchase. The indicator is updated daily to ensure accurate, timely market availability data.
v0.34.1
Property Search V2 Endpoint Improvements.
v0.34.0
Stable release of the /v2/property_search endpoint.
/v2/property_search EndpointThe /v2/property_search endpoint is officially out of beta and now stable and ready for use in production environments. The endpoint is now available for all users.
v0.33.1
Shipped one new true owner entity name.
Added support for MY_COMMUNITY_HOMES as an institutional entity_owner_name .
Search for MY_COMMUNITY_HOMES in:
property/searchproperty/event_historyv2/property_searchLearn more about out our true owner methodology here.
v0.33.0
This release adds support for additional filtering and querying capabilities to the /v2/property_search endpoint.
parcl_property_idrecord_updated_date and record_added_date for property metadataparcl_property_idThe /v2/property_search endpoint now supports querying by parcl_property_id. This allows users to search for properties by their unique identifier.
parcl_property_id
A list of unique identifiers for properties.
The /v2/property_search endpoint now supports searching by geographic coordinates. This allows users to search for properties within a specific radius of a given latitude and longitude. Latitude and longitude are specified in decimal degrees and are restricted to the Continental United States, Alaska, and Hawaii.
geo_coordinates
A dictionary containing the following keys:
latitude: The latitude of the center of the search radius.longitude: The longitude of the center of the search radius.radius: The radius of the search in miles, maximum of 10 miles.record_updated_date and record_added_date for property metadataThe /v2/property_search endpoint now supports filtering by the date when a property or event was last updated or added to the database.
The following parameters are supported:
record_updated_date
min_record_updated_date: Specifies the beginning of the query period for when property event metadata was last modified in the property record tracking system, inclusive, in ISO 8601 format, i.e. YYYY-MM-DD. Events existing before tracking implementation are marked as 2024-12-13. Defaults to 2024-12-13.max_record_updated_date: Specifies the end of the query period for when property event metadata was last modified in the property record tracking system, inclusive, in ISO 8601 format, i.e. YYYY-MM-DD. Events existing before tracking implementation are marked as 2024-12-13. Defaults to NULL.record_added_date
min_record_added_date: Specifies the beginning of the query period for when properties were added to the property record tracking system, inclusive, in ISO 8601 format, i.e. YYYY-MM-DD. Properties existing before tracking implementation are marked as 2024-12-13. Defaults to 2024-12-13.max_record_added_date: Specifies the end of the query period for when properties were added to the property record tracking system, inclusive, in ISO 8601 format, i.e. YYYY-MM-DD. Properties existing before tracking implementation are marked as 2024-12-13. Defaults to NULL.v0.32.0
The Property API now includes a real-time indicator of market status through the /v1/property/search endpoint:
current_on_market_for_sale
Boolean flag indicating if the property is currently listed on the market for sale.
0 signifies that the property is not currently listed on the market for sale
1 signifies that the property is currently listed on the market for sale
This enhancement allows users to easily identify properties actively available for purchase. The indicator is updated daily to ensure accurate, timely market availability data.
v0.28.0
This release transforms address search from simple validation to rich property intelligence, introduces a powerful unified property and event query engine in beta, and enhances price reduction tracking capabilities.
What's New & Why It Matters:
🔍 Smarter Address Search: Complete property context with every address-level property search → available here: /v1/property/search_address
🎯 Unified Query Engine (Beta): Property and event analysis through a single, flexible endpoint → available here: /v2/property_search
📉 Enhanced Price Cut Metrics: New percentage-based tracking of inventory price reductions → available here: /v1/for_sale_market_metrics/{parcl_id}/for_sale_inventory_price_changes
Address Search now delivers comprehensive property intelligence through /v1/property/search_address. Our enhanced resolution engine transforms each address query into detailed property insights. Each search returns:
parcl_property_id for additional API queriessource_idExpanded response payload now includes comprehensive property details:
{
"items": [{
"parcl_property_id": 12345,
"address": "123 Main St",
"unit": "4B",
"city": "New York",
"zip_code": "10001",
"state_abbreviation": "NY",
"county": "New York County",
"cbsa": "New York-Newark-Jersey City",
"latitude": 40.7505,
"longitude": -73.9965,
"property_type": "CONDO",
"bedrooms": 2,
"bathrooms": 2.0,
"square_footage": 1200,
"year_built": 1930,
"cbsa_parcl_id": 2900187,
"county_parcl_id": 2899750,
"city_parcl_id": 2899625,
"zip_parcl_id": 2899500,
"event_count": 5,
"event_history_sale_flag": 1,
"event_history_rental_flag": 0,
"event_history_listing_flag": 1,
"current_new_construction_flag": 0,
"current_owner_occupied_flag": 1,
"current_investor_owned_flag": 0,
"current_entity_owner_name": null,
"source_id": "internal_id_123"
}],
"account": {
"est_credits_used": 1,
"est_remaining_credits": 9999
}
}
New /v2/query endpoint combines and enhances property search and event history capabilities:
/v1/property/search with limited filtering/v1/property/events for each propertyExample request:
{
"event_filters": {
"event_names": [
"SOLD",
"PENDING_SALE",
"LISTED_RENT"
],
"is_new_construction": false,
"max_event_date": "2024-12-31",
"max_price": 800000,
"min_event_date": "2023-01-01",
"min_price": 100000
},
"owner_filters": {
"is_investor_owned": true,
"is_owner_occupied": false,
"owner_name": [
"PROGRESS_RESIDENTIAL"
]
},
"parcl_ids": [
2899625,
2900187
],
"property_filters": {
"include_property_details": true,
"max_beds": 5,
"max_year_built": 2020,
"min_baths": 1,
"min_beds": 1,
"min_sqft": 1000,
"min_year_built": 2010,
"property_types": [
"SINGLE_FAMILY"
]
},
"query_type": "property_events"
}
Available to paid subscribers during beta period. We are actively seeking feedback on this new endpoint to guide future enhancements - please share your experience in our forum or email us directly at team@parcllabs.com.
New pct_inventory_price_drop field added to /v1/for_sale_market_metrics/{parcl_id}/for_sale_inventory_price_changes endpoint.
Example response now includes:
{
"date": "2025-02-14",
"count_price_change": 150,
"count_price_drop": 120,
"median_days_bt_change": 28,
"median_price_change": -15000,
"median_pct_price_change": -3.2,
"pct_inventory_price_change": 15.5,
"pct_inventory_price_drop": 12.4 // New field showing % of inventory with price cuts
}
The addition of pct_inventory_price_drop makes it easier to track market-level price reduction trends by isolating properties with price cuts from those with any price changes.
v0.26.0
This release introduces new capabilities for tracking data freshness and enabling efficient incremental updates across our property endpoints.
What's New & Why It Matters:
record_added_date filteringrecord_updated_date filteringrecord_added_date_start: Specifies the beginning of the query period for when properties were added to the property record tracking system, inclusive, in ISO 8601 format (YYYY-MM-DD). Properties existing before tracking implementation are marked as 2024-12-13. Defaults to 2024-12-13.record_added_date_end: Specifies the end of the query period for when properties were added to the property record tracking system, inclusive, in ISO 8601 format (YYYY-MM-DD). Properties existing before tracking implementation are marked as 2024-12-13. Defaults to NULL.record_added_date: Date when property (parcl_property_id) was added to the property record tracking system. Properties that existed before tracking implementation are marked as 2024-12-13. Properties added after this date (such as new construction) will show their actual date of addition to the index.{
"items": [
{
"parcl_property_id": 0,
"address": "string",
"unit": "string",
"city": "string",
"zip_code": "string",
"state_abbreviation": "string",
"county": "string",
"cbsa": "string",
"latitude": 0,
"longitude": 0,
"property_type": "string",
"bedrooms": 0,
"bathrooms": 0,
"square_footage": 0,
"year_built": 0,
"cbsa_parcl_id": 0,
"county_parcl_id": 0,
"city_parcl_id": 0,
"zip_parcl_id": 0,
"event_count": 0,
"event_history_sale_flag": 0,
"event_history_rental_flag": 0,
"event_history_listing_flag": 0,
"current_new_construction_flag": 0,
"current_owner_occupied_flag": 0,
"current_investor_owned_flag": 0,
"current_entity_owner_name": "string",
"record_added_date": "2025-01-24"
}
],
"account": {
"est_credits_used": 250,
"est_remaining_credits": 9750
}
}
record_updated_date_start: Specifies the beginning of the query period for when property event metadata was last modified in the property record tracking system, inclusive, in ISO 8601 format (YYYY-MM-DD). Events existing before tracking implementation are marked as 2024-12-13. Defaults to 2024-12-13.record_updated_date_end: Specifies the end of the query period for when property event metadata was last modified in the property record tracking system, inclusive, in ISO 8601 format (YYYY-MM-DD). Events existing before tracking implementation are marked as 2024-12-13. Defaults to NULL.record_updated_date: Date when property (parcl_property_id) event metadata was last modified in the property record tracking system. Events that existed before tracking implementation are marked as 2024-12-13. Events modified after this date (such as sale index updates or ownership changes) will show their actual date of modification in the index.{
"items": [
{
"parcl_property_id": 0,
"event_date": "2025-01-24",
"event_type": "string",
"event_name": "string",
"price": 0,
"owner_occupied_flag": 0,
"new_construction_flag": 0,
"investor_flag": 0,
"entity_owner_name": "string",
"current_owner_flag": 0,
"transfer_index": 0,
"true_sale_index": 0,
"record_updated_date": "2025-01-24"
}
],
"account": {
"est_credits_used": 250,
"est_remaining_credits": 9750
}
}
To identify any new properties added to the database (could include new construction, newly discovered properties, or data improvements):
# Get all properties added in the last week
new_properties = client.property.search.retrieve(
record_added_date_start='2025-01-17',
record_added_date_end='2025-01-24'
)
print(f"Found {len(new_properties)} new properties added to the database")
To track properties with new or updated sale events:
# Get all sale events that were recorded or updated in the last week
recent_sales = client.property.events.retrieve(
parcl_property_ids=[...],
event_type='SALE',
record_updated_date_start='2025-01-17',
record_updated_date_end='2025-01-24'
)
# These could include:
# - Newly recorded sales
# - Updated sale events (e.g., transfer index changes)
# - Backfilled historical sales
print(f"Found {len(recent_sales)} new or updated sale events")
Note: Property record tracking began on December 13, 2024. All properties and events that existed in our database before this date are marked with "2024-12-13" as their record_added_date or record_updated_date. This provides a clear demarcation between historical data and new/modified records.
v0.25.1
Fixed a bug in credit check that restricted users in the Basic tier from using the property search endpoints.
v0.25.0
v0.25.0 is our biggest API upgrade yet - a top-to-bottom refresh deeply informed by your feedback. We've focused on what matters most: more data, simpler experience, and easier access to tools to build with.
TL;DR - What's New:
🚀 New API dashboard with personalized resource hub
🚀 Basic tier: Now 1,000 free monthly credits + access to property data
🚀 Pro tier: Now 1M monthly credits (50x more!) + credit rollover + annual option
🚀 Streamlined credit management across all endpoints
⚠️ Note: Breaking changes in property endpoints - SDK update required.
Here’s what you need to know:
What's new:
What's new:
These plans offer the best value in housing data - upgrade here to get immediate access.
What's new:
"account": {
"est_credits_used": 1,
"est_remaining_credits": 999
}
Definitions:
est_credits_used: Estimated number of credits used for this requestest_remaining_credits: Estimated remaining credits after this requestWhat's new:
{
"items": [
{
"address": "123 Main St",
"unit": "string",
"city": "Los Angeles",
"state_abbreviation": "AK",
"zip_code": "90001",
"source_id": "123"
}
],
"account": {
"est_credits_used": 1,
"est_remaining_credits": 999
}
}
Pro tip: Use Address Search for address verification and database cleansing - our AI/ML matching system standardizes messy input data into clean property indexes and addresses. Learn more about Address Search here.
⚠️ Breaking Change: Property endpoint updates require SDK updates. Please upgrade your SDK to access these new features.
v0.24.0
Shipped three new owner entity names.
Added support for these institutional owners:
MAYMONT_HOMESSFR3VINEBROOK_HOMESUse these entities in:
property/searchproperty/event_historyLearn more about out our true owner methodology here.
v0.23.0
Docs Refactor: Refactor README docs to have 3 separate sections: Price Feed, Property, and Housing Metrics. Each section will encompass relevant endpoints.
General Performance Improvements: Internal improvements to the API infrastructure have been made to enhance performance and reliability. These changes are not expected to impact the functionality or behavior of the API endpoints.
0.22.0
We're introducing enhanced transaction classifications across our metrics endpoints, bringing the granular insights from our property-level data to our aggregated metrics. These changes bring powerful new capabilities to your market analysis:
SOLD_INTER_PORTFOLIO_TRANSFER and NON_ARMS_LENGTH_INTRA_PORTFOLIO_TRANSFEROur metrics now distinguish between different types of property transfers:
Sales (Arms-Length Transactions)
SOLD: Transactions conducted at fair market value between unrelated parties.SOLD_INTER_PORTFOLIO_TRANSFER: Transactions between two distinct entities.Transfers (Non Arms Length Transactions)
NON_ARMS_LENGTH_TRANSFER: Transfers where the buyer and seller have a pre-existing relationship (e.g., identical last names) or the transaction isn't at fair market value (price is $0 and not in a Non-Disclosure state).NON_ARMS_LENGTH_INTRA_PORTFOLIO_TRANSFER: Transfers within the same entity portfolio.All Cash /v1/market_metrics/{parcl_id}/all_cash
{
"date": "2024-01-01",
"count_sales": 800,
"pct_sales": 25.5,
"count_transfers": 1000,
"pct_transfers": 30.0
}
count_sales: Count of all cash arms-length sales (SOLD and SOLD_INTER_PORTFOLIO_TRANSFER)pct_sales: Percentage of arms-length sales (SOLD and SOLD_INTER_PORTFOLIO_TRANSFER) within the specified <parcl_id> completed as all cash transactionscount_transfers: Count of all cash transfers across all SALE types (arms-length and non-arms-length)pct_transfers: Percentage of transfers across all SALE types (arms-length and non-arms-length) within the specified <parcl_id> completed as all cash transactionsHousing Event Counts /v1/market_metrics/{parcl_id}/housing_event_counts
{
"date": "2024-01-01",
"sales": 500,
"new_listings_for_sale": 800,
"new_rental_listings": 400,
"transfers": 750
}
sales: Completed arms-length sales (SOLD and SOLD_INTER_PORTFOLIO_TRANSFER) for the specified <parcl_id> within the given monthnew_listings_for_sale: Properties newly listed for sale for the specified <parcl_id> within the given monthnew_rental_listings: Properties newly listed for rent for the specified <parcl_id> within the given monthtransfers: Completed transfers across all SALE types (arms-length and non-arms-length) for the specified <parcl_id> within the given monthHousing Event Counts /v1/investor_metrics/{parcl_id}/housing_event_counts
{
"date": "2024-01-01",
"acquisitions": 150,
"dispositions": 75,
"new_listings_for_sale": 200,
"new_rental_listings": 300,
"transfers": 250
}
acquisitions: Total number of investor arms-length acquisitions (SOLD and SOLD_INTER_PORTFOLIO_TRANSFER) for the specified <parcl_id> within the given monthdispositions: Total number of investor arms-length dispositions (SOLD and SOLD_INTER_PORTFOLIO_TRANSFER) for the specified <parcl_id> within the given monthnew_listings_for_sale: Total number of investor-owned properties newly listed for sale for the specified <parcl_id> within the given monthnew_rental_listings: Total number of investor-owned properties newly listed for rent for the specified <parcl_id> within the given monthtransfers: Total number of investor transfers across all SALE types (arms-length and non-arms-length) for the specified <parcl_id> within the given monthPurchase to Sale Ratio /v1/investor_metrics/{parcl_id}/purchase_to_sale_ratio
{
"date": "2024-01-01",
"purchase_to_sale_ratio": 1.5
}
purchase_to_sale_ratio: Investor purchase to sale ratio within a given month, calculated by dividing the number of investor purchases (acquisitions) by the number of investor sales (dispositions)SF Housing Event Counts /v1/portfolio_metrics/{parcl_id}/sf_housing_event_counts
{
"date": "2024-01-01",
"acquisitions": 150,
"dispositions": 75,
"new_listings_for_sale": 200,
"new_rental_listings": 300,
"transfers": 250
}
acquisitions: Total number of investor arms-length acquisitions (SOLD and SOLD_INTER_PORTFOLIO_TRANSFER) of single family properties, segmented by portfolio size, for the specified <parcl_id> within the given monthdispositions: Total number of investor arms-length dispositions (SOLD and SOLD_INTER_PORTFOLIO_TRANSFER) of single family properties, segmented by portfolio size, for the specified <parcl_id> within the given monthnew_listings_for_sale: Total number of investor-owned, newly listed for sale single family properties, segmented by portfolio size, for the specified <parcl_id> within the given monthnew_rental_listings: Total number of investor-owned, newly listed for rent single family properties, segmented by portfolio size, for the specified <parcl_id> within the given monthtransfers: Total number of investor transfers across all SALE types (arms-length and non-arms-length) of single family properties, segmented by portfolio size, for the specified <parcl_id> within the given monthHousing Event Counts /v1/new_construction_metrics/{parcl_id}/housing_event_counts
{
"date": "2024-01-01",
"sales": 100,
"new_listings_for_sale": 300,
"new_rental_listings": 150,
"transfers": 125
}
sales: Total number of arms-length sales (SOLD and SOLD_INTER_PORTFOLIO_TRANSFER) of new construction properties for the specified <parcl_id> within the given monthnew_listings_for_sale: Total number of new construction properties newly listed for sale for the specified <parcl_id> within the given monthnew_rental_listings: Total number of new construction properties newly listed for rent for the specified <parcl_id> within the given monthtransfers: Total number of transfers across all SALE types (arms-length and non-arms-length) of new construction properties for the specified <parcl_id> within the given monthsales, acquisitions, and dispositions fields specifically track arms-length transactions (SOLD and SOLD_INTER_PORTFOLIO_TRANSFER)transfers field captures all transaction types, providing a complete view of property movementsales/acquisitions/dispositions fieldstransfers fieldcount_sales/pct_sales) and total transaction (count_transfers/pct_transfers) viewsSOLD and SOLD_INTER_PORTFOLIO_TRANSFER). Data and JSON structure remain unchanged.We welcome your feedback on these enhancements and look forward to seeing how they improve your housing market analysis workflows.
0.21.0
We're excited to introduce a key addition to our API that enhances property-level data access:
/v1/property/search_address (POST)Search for a specific address and retrieve the corresponding
address, city, state_abbreviation, zip_codeunit, source_idparcl_property_id and source_id (if provided)parcl_property_id is the key to accessing detailed property data, especially in /v1/property/event_history. Use this endpoint to obtain parcl_property_id values for subsequent API calls/v1/property/search by allowing lookups of specific addressessource_id can be used to maintain mappings between your system's identifiers and our parcl_property_idWe welcome your feedback on this new capability and look forward to seeing how it streamlines your property data workflows.
v0.20.1
property/search endpoint: Fix a small bug in /property/search endpoint that was causing a validation error when searching for properties in the USA Parcl Id (5826765). The currenty_entity_owner_name field was not being properly validated and was causing the error. This has been fixed and the endpoint is now working as expected.v0.20.0
We’re excited to announce several major updates that enhance the functionality and performance of our API:
We've added new event types and fields to provide richer context around property transactions. These additions leverage our comprehensive data sources to create our own event indexing based on the actual transaction details, including deal value and involved parties. This approach eliminates single-source risk where transactions might be misreported.
Our intra and inter portfolio sale events are highly differentiated, specialized fields. Our true owner, portfolio-level indexing allows us to distinguish between units being transferred within portfolios (such as for tax purposes) and those changing hands to new entities (like in portfolio sales, mergers, or bulk purchases of BTR communities). This granular insight provides a more accurate picture of real estate market dynamics.
New Event Types
Sale Events:
SOLD: Transactions conducted at fair market value between unrelated parties.
Example: A individual purchases a home from a seller they have no prior relationship with for $350,000, which aligns with current market values in the area. This transaction represents a genuine market sale and can be used in analyses to determine true property values and market trends.
NON_ARMS_LENGTH_TRANSFER: Transfers where the buyer and seller have a pre-existing relationship (e.g., identical last names) or the transaction isn’t at fair market value (price is $0 and not in a Non-Disclosure state).
Example: A homeowner transfers their property to their child for $1. This transaction doesn't reflect market value and involves related parties, allowing analysts to exclude it from fair market value calculations and trend analyses.
SOLD_INTER_PORTFOLIO_TRANSFER: Transactions between two distinct entities.
Example: Invitation_Homes purchases a bulk set of properties from a large homebuilder. This represents a genuine transfer of assets between separate companies.
NON_ARMS_LENGTH_INTRA_PORTFOLIO_TRANSFER: Transfers within the same entity portfolio.
Example: Tricon updates its LLC associated with a property for a new tax year. This is not a true sale event / acquisition and can now be tracked/filtered as such.
New Fields for Sales History Context
current_owner_flag: Indicates if the listed owner is the current owner at the time of the event.
transfer_index: Counts the number of transfers (any SALE event) a property has undergone up to the event date.
true_sale_index: Counts genuine property sales resulting in ownership changes under fair market conditions (SOLD) up to the event date.
We believe these updates will significantly improve your experience and analytical capabilities with our property level data. Thank you for your continued support and feedback!
Improved Backend Performance: We’ve optimized the backend for the property/search and property/event_history endpoints. You can expect faster response times and more efficient data retrieval.
Streamlined Data: We have reformatted the ZIP code columns in our responses, removing the USPS fields and standardizing on Census-based ZIP codes. This change simplifies data structures, reduces clutter, and enhances data processing efficiency. This version of the ZIP code endpoint enables more robust historical comparisons, as Census-based ZIP codes provide greater stability over time compared to those from the USPS.
Breaking Change: Please note that this is a breaking change requiring an SDK update. Ensure you update your SDK to the latest version to accommodate these changes.
v0.19.0
v0.19.0 brings the deprecation of the property_search endpoint and performance improvements.
property/search_markets endpoint has been deprecated. Please use the property/search endpoint moving forward.property/search endpoint.v0.18.0
v0.18.0 brings 3 new entity names, performance improvements, and event history redesign.
Building on our true ownership work from v0.16.0, see changelog, we are introducing three additional owner names:
Sample Output:
{
"parcl_property_id": 12345,
"event_date": "2024-08-29",
"event_type": "string",
"event_name": "string",
"price": 0,
"owner_occupied_flag": 0,
"new_construction_flag": 0,
"sale_index": 0,
"investor_flag": 0,
"entity_owner_name": "string"
}
investor_flag field to not populate for properties that are not currently owned or have not been owned by a named entity.v0.17.0
v0.17.0 brings powerful new tools for bulk data retrieval, deeper insights into property ownership, and substantial performance improvements.
What’s new:
investor_flag and entity_owner_name fields to all property eventsRead on for full details:
We've added 12 new POST endpoints across Rental Market Metrics, Investor Metrics, and Portfolio Metrics categories. These endpoints allow you to retrieve data for up to 1000 parcl_ids in a single request, enabling efficient bulk data collection across multiple markets.
Rental Market Metrics (3 new endpoints):
Investor Metrics (5 new endpoints):
Portfolio Metrics (4 new endpoints):
We've added two new fields to property events, providing deeper insights into involved owners for every event across sales, listings, and rentals:
investor_flag: A boolean flag indicating if the property is owned by an investor at the time of the event.entity_owner_name: The name of the entity that owns the property at the time of the event, if owned by a named large-scale operator. Possible values: AMH, TRICON, INVITATION_HOMES, HOME_PARTNERS_OF_AMERICA, NULLWe have introduced major enhancements to our property search API:
/property/event_history endpoint:10,000 parcl_property_ids in one request. Previously it was limited to 1,000null events for a given query were incorrectly exposed in the endpointJanuary 01, 2019As always, we welcome your feedback. Happy building!
v0.16.2
v0.16.1
v0.16.0
Parcl Labs has launched a new, enhanced property search endpoint. We've also added new true entity mapping accessibility via both the new property search and events endpoints.
Parcl Labs introduces industry-leading True Entity Ownership tracking in real estate. Our technology maps corporate entities to their LLCs and individual properties, revealing true ownership structures. Additionally, we've implemented a broader investor identification system at the property-level that goes beyond just the tracked entities.
Initial entity launch includes:
New Investor Fields in Property Events:
investor_flag: Boolean flag indicating if the property is owned by any type of investor at the time of the event. This flag identifies all investor-owned properties, not just those owned by tracked entities. Please reference our investor methodology here: https://docs.parcllabs.com/reference/investor-metrics-1entity_owner_name: The name of the entity that owns the property at the time of the event, if owned by a named large-scale operator.While the investor_flag identifies all investor-owned properties, the entity_owner_name specifically identifies ownership by the tracked large-scale operators.
Impact:
Note: Entity coverage will expand over time. Other top institutional SFR operators are on the immediate roadmap.
After a month in beta, our property-level data API has evolved significantly based on valuable user feedback. We're excited to introduce a new, much more powerful property search endpoint that addresses key user needs and provides unprecedented flexibility and depth in property data retrieval.
v0.15.0
v0.15.0 continues major upgrades to developer experience through the addition of more POST endpoints.
What you need to know:
🙌 5 new POST endpoints across Price Feed and New Construction Metrics categories. These new endpoints allow users to pull market data for up to 1000 locations in one request.
Three new POST endpoints for Price Feed metrics:
Two new POST endpoints for New Construction Metrics:
These POST endpoints allow for data retrieval across up to 1000 parcl_ids in a single request, enabling efficient bulk data collection for multiple markets simultaneously.
v0.14.1
Fixed a bug in POST endpoints that restricted the maximum number of parcl_ids in a POST request to 100, instead of 1000. POST requests now can accommodate the full 1000 ids per request.
v0.14.0
v0.14.0 brings huge upgrades to developer experience based on our power user feedback.
What you need to know:
💪 Added new 8 POST endpoints (🤯) to pull market data for up to 1000 locations in one request, significantly improving data retrieval efficiency across both Market Metrics and For Sale Market Metrics categories. 🔎 Enhanced our property event tracking, providing cleaner and more accurate data on sales, listings, and rentals.
The Market Metrics category introduces five new POST endpoints:
The For Sale Market Metrics category adds three new POST endpoints:
These POST endpoints allow for data retrieval across up to 1000 parcl_ids in a single request, enabling efficient bulk data collection for multiple markets simultaneously.
We've also made significant improvements to our property events data:
These upgrades deliver a true, clean perspective of event history across homes, empowering users with more accurate and comprehensive property data
v0.13.0
3 Fields Added to Property Events Endpoint:
sale_index: Number of sales that have occurred over the lifetime of a property at the time of the event.owner_occupied_flag: Boolean flag indicating if the property is owner-occupied (i.e., not owned by an investor) at the time of the housing event.new_construction_flag: Boolean flag indicating if the property is new construction at the time of the housing event.Extended Historical Data for Property Events:
v0.12.0
v0.11.2
v0.11.1
v0.11.0
Property Market Search: Gets a list of unique identifiers (parcl_property_id) for units that correspond to specific markets or parameters defined by the user. The parcl_property_id is key to navigating the Parcl Labs API, serving as the core mechanism for retrieving unit-level information.
The beta version of this endpoint is limited to zip code level searches. The full version of this endpoint will enable:
parcl_id systemProperty Event History: Gets unit-level properties and their housing event history, including sales, listings, and rentals. The response includes detailed property information and historical event data for each specified property. A maximum of 1000 parcl_property_ids can be requested in a single POST request.
v0.10.0
🚀 Launched: New Construction API Category with two new endpoints:
🛠️ Refactored: New methodology for housing event price changes and timeframe updates for for sale and rental listings data points:
rental_market_metrics/{parcl_id}/new_listings_for_rent_rolling_countsfor_sale_market_metrics/{parcl_id}/new_listings_rolling_countsinvestor_metrics/{parcl_id}/new_listings_for_sale_rolling_countsv0.9.0
v0.8.0
Two new endpoint available in the Market Metrics and For Sale Metrics categories:
Market Metrics:
For Sale Market Metrics:
v0.7.0
One new endpoint available in the For Sale Market Metrics category:
For Sale Market Metrics:
v0.6.0
New endpoint available in the Price Feed category:
Price Feeds:
v0.5.0
Three new endpoints are available in the Market Metrics and new Price Feed categories:
Market Metrics:
Price Feeds:
v0.4.0
Three new endpoints are now available in the Investor Metrics and Portfolio Metrics categories:
Investor Metrics:
Portfolio Metrics:
The Parcl Labs API is now live 🚀. Data and endpoints available from day 1 of the new API (May 8, 2024) are detailed below. We'll be regularly shipping new features—please check back on the changelog to see what's new.
[block:parameters] { "data": { "h-0": "Category", "h-1": "Coverage", "0-0": "Property Types", "0-1": "🏘️ All Residential Assets: \n✅ Single Family \n✅ Townhouses \n✅ Condos \n✅ Other", "1-0": "Markets", "1-1": "🇺🇸 Complete National Coverage, 70k+ Unique Markets at Any Level of Granularity: \n✅ Regions \n✅ States \n✅ Metros \n✅ Cities \n✅ Counties \n✅ Towns \n✅ Zips \n✅ Census Places", "2-0": "Housing Events", "2-1": "🔄 The Full Property Lifecycle: \n✅ Sales \n✅ For Sale Listings \n✅ Rentals" }, "cols": 2, "rows": 3, "align": [ "left", "left" ] } [/block]
We’re launching with 14 insight-packed endpoints across six categories:
Search Category: Search markets by keywords, geographic identifiers, or boundary types to retrieve market IDs (parcl_id). Endpoints:
Market Metrics Category: Get overall housing stock information, and analyze supply and price trends across sales, listings, and rentals for markets (parcl_id). Endpoints:
Rental Market Metrics: Get rental market analytics for markets (parcl_id). Endpoints:
For Sale Market Metrics: Get for sale listing analytics for markets (parcl_id). Endpoints:
Investor Metrics: Get analytics on overall investor ownership and transaction activity for markets (parcl_id). Endpoints:
Portfolio Metrics: Get analytics on investor ownership and transaction activity for single family homes in markets (parcl_id), segmented by the unit size of the investor's portfolio. Endpoints:
v0.35.1
Fixed a bug to allow search of AMH props in the v2 endpoint and added Blackstone as a valid value in v1 in order to have parity with v2.