Property Quickstart

Access real-time unit-level data

Welcome to the Parcl Labs Property-Level API Quickstart! This guide will help you access unit-level property data including physical characteristics, ownership insights, and event histories.

The Property API lets you pull everything from individual addresses to entire markets of homes, with real-time data on sales, listings, and rentals. For the full range of capabilities, check out our Property Overview.

Looking for market-level data instead? Review our API Quickstart.

Experienced developer? Jump straight to our API Reference.


Get Up and Running

In this guide, you'll learn how to:

  1. Create your Parcl Labs account and get an API key

  2. Use a two-step workflow to get property data:

    A. Use Property Search to find properties

    B. Access Property Events to get historical data for your identified properties

  3. Track your API usage

  4. Start building with real examples


1. Set Up Your API account

Create your Parcl Labs account to get started:

  1. Register for a free account here (or sign in if you have one)

  2. Navigate to the dashboard and copy your API key

  1. Store your key securely - you'll need it for all API requests

2. Access Property Data in Two Steps

You can access property data by searching individual addresses or finding all properties within a market that match your criteria. This Quickstart shows you how to do the latter: how to search for properties using filters like location, physical characteristics, and ownership status.


A. Make Your First Property Search Request

The Property Search endpoint returns a list of properties based on your search criteria. Here's how it works:

  • Provide a market's parcl_id (unique market identifier)
  • Specify property type (e.g., SINGLE_FAMILY, CONDO)
  • Add optional filters like square footage, year built, investor ownership, etc.

Each property in the response has a unique parcl_property_id, which you'll later use to access property event history.

Required Parameters

  • parcl_id: Specifies the market area you want to search (e.g., Brooklyn, NY). Learn how to find the parcl_id here.
  • property_type: Filter by SINGLE_FAMILY, CONDO, TOWNHOUSE, or OTHER

Optional Filters

Here are some examples of the many parameters you can use to tailor your search:

  • Physical characteristics:
    • Square footage range (square_footage_minsquare_footage_max)
    • Number of bedrooms (bedrooms_minbedrooms_max)
    • Year built (year_built_minyear_built_max)
  • Ownership status:
    • Current owner (current_entity_owner_name) - e.g., INVITATION_HOMES, TRICON
  • Event history of the property (in the form of flag to indicate if the property has history):
    • Sale history (event_history_sale_flag)
    • Rental history (event_history_rental_flag)
    • Listing history (event_history_listing_flag)

See the API documentation for the complete list of parameters to precisely target properties of interest.

Let's make your first property search! Here's a sample request that finds Chicago properties (parcl_id: 5387853) matching these criteria:

  • Single-family homes
  • Built in 2023 or later
  • At least 4 bedrooms
  • Between 5,500-6,000 square feet

This very focused request will cost a small amount of credits (6 as of January 2025).

📘

Before running the command:

Replace {API_KEY} with your actual API key.

Example cURL request:

curl -X GET \
  "https://api.parcllabs.com/v1/property/search?parcl_id=5387853&property_type=SINGLE_FAMILY&square_footage_min=5500&square_footage_max=6000&bedrooms_min=5&year_built_min=2023" \
  -H "Accept: application/json" \
  -H "Authorization: {API_KEY}"

What to Expect in the Response

When you run this command:

  1. It sends a GET request to the Property Search endpoint using Chicago's parcl_id (5387853)
  2. The API filters properties based on your criteria (single-family, built since 2023, 4+ bedrooms, 5,500-6,000 sq ft)
  3. You'll receive a JSON response containing matching properties with details like:
    • parcl_property_id (unique identifier)
    • Physical attributes (beds, baths, square footage)
    • Location (address, coordinates)
    • Event history flags
    • Current status

Here's a sample property from the response:


  {
    "parcl_property_id": 143181957,
    "address": "1216 W GEORGE ST",
    "unit": null,
    "city": "Chicago City",
    "zip_code": "60657",
    "state_abbreviation": "IL",
    "county": "Cook County",
    "cbsa": "Chicago-Naperville-Elgin, IL-IN-WI",
    "latitude": 41.934634,
    "longitude": -87.65958,
    "property_type": "SINGLE_FAMILY",
    "bedrooms": 6,
    "bathrooms": 5.5,
    "square_footage": 5600,
    "year_built": 2024,
    "cbsa_parcl_id": 2899845,
    "county_parcl_id": 5822729,
    "city_parcl_id": 5387853,
    "zip_parcl_id": 5506906,
    "event_count": 13,
    "event_history_sale_flag": 1,
    "event_history_rental_flag": 0,
    "event_history_listing_flag": 1,
    "current_new_construction_flag": 1,
    "current_owner_occupied_flag": 1,
    "current_investor_owned_flag": 0,
    "current_entity_owner_name": null
  }

B. Retrieve Property Event History

Once you've found properties of interest, use the Property Events endpoint to get detailed sales, rental, and listing events for each property. For example, after finding properties through a search, you might want to understand their complete history - like how many times they've been sold, their past rental rates, or listing patterns.

This POST endpoint lets you batch request history for up to 10,000 properties at once. The batch capability makes it efficient to analyze multiple properties in a single request.

This endpoint uses the following parameters:

Required

  • parcl_property_ids: Array of unique property identifiers (up to 10,000 per request)

Optional

  • event_type: Filter by specific events (SALE, RENTAL, or LISTING). Returns all types if not specified
  • start_date and end_date: Limit event range (YYYY-MM-DD format). Returns all available events if not specified
  • entity_owner_name: Filter by institutional owners like INVITATION_HOMES, TRICON, HOME_PARTNERS_OF_AMERICA

📘

Before running the command:

Replace {API_KEY} with your actual API key.

Let's run an example using cURL for the property returned in the previous section.

Example cURL Request:

curl -X POST "https://api.parcllabs.com/v1/property/event_history" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "Authorization: {API_KEY}" \
  -d '{
    "parcl_property_id": [
      "66431002"
    ]
  }'

What to Expect in the Response

When you run this command:

  1. The API retrieves event history for each property you specified with parcl_property_ids
  2. It applies any filters you included:
    • Event types (SALE, RENTAL, LISTING)
    • Date range
    • Institutional ownership

In our example, we'll request history for one property, but remember you can batch up to 10,000 properties in a single request.

Below, you can find the results of the request.

Example response:

[
  {
    "parcl_property_id": 66431002,
    "event_date": "2023-05-18",
    "event_type": "SALE",
    "event_name": "SOLD",
    "price": 2975000,
    "owner_occupied_flag": 1,
    "new_construction_flag": 1,
    "investor_flag": 0,
    "entity_owner_name": null,
    "current_owner_flag": 1,
    "transfer_index": 3,
    "true_sale_index": 2
  },
  {
    "parcl_property_id": 66431002,
    "event_date": "2023-05-11",
    "event_type": "LISTING",
    "event_name": "LISTED_SALE",
    "price": 2995000,
    "owner_occupied_flag": 0,
    "new_construction_flag": 1,
    "investor_flag": 1,
    "entity_owner_name": null,
    "current_owner_flag": 0,
    "transfer_index": 2,
    "true_sale_index": 1
  },
  {
    "parcl_property_id": 66431002,
    "event_date": "2023-04-12",
    "event_type": "LISTING",
    "event_name": "LISTING_REMOVED",
    "price": 3200000,
    "owner_occupied_flag": 0,
    "new_construction_flag": 1,
    "investor_flag": 1,
    "entity_owner_name": null,
    "current_owner_flag": 0,
    "transfer_index": 2,
    "true_sale_index": 1
  },
  {
    "parcl_property_id": 66431002,
    "event_date": "2023-03-16",
    "event_type": "LISTING",
    "event_name": "LISTED_SALE",
    "price": 3200000,
    "owner_occupied_flag": 0,
    "new_construction_flag": 1,
    "investor_flag": 1,
    "entity_owner_name": null,
    "current_owner_flag": 0,
    "transfer_index": 2,
    "true_sale_index": 1
  },
  {
    "parcl_property_id": 66431002,
    "event_date": "2023-01-22",
    "event_type": "LISTING",
    "event_name": "LISTING_REMOVED",
    "price": 3200000,
    "owner_occupied_flag": 0,
    "new_construction_flag": 1,
    "investor_flag": 1,
    "entity_owner_name": null,
    "current_owner_flag": 0,
    "transfer_index": 2,
    "true_sale_index": 1
  },
  {
    "parcl_property_id": 66431002,
    "event_date": "2022-11-15",
    "event_type": "LISTING",
    "event_name": "LISTING_REMOVED",
    "price": 3200000,
    "owner_occupied_flag": 0,
    "new_construction_flag": 1,
    "investor_flag": 1,
    "entity_owner_name": null,
    "current_owner_flag": 0,
    "transfer_index": 2,
    "true_sale_index": 1
  },
  {
    "parcl_property_id": 66431002,
    "event_date": "2022-09-19",
    "event_type": "LISTING",
    "event_name": "LISTED_SALE",
    "price": 3200000,
    "owner_occupied_flag": 0,
    "new_construction_flag": 1,
    "investor_flag": 1,
    "entity_owner_name": null,
    "current_owner_flag": 0,
    "transfer_index": 2,
    "true_sale_index": 1
  },
  {
    "parcl_property_id": 66431002,
    "event_date": "2021-10-06",
    "event_type": "SALE",
    "event_name": "SOLD",
    "price": 905000,
    "owner_occupied_flag": 0,
    "new_construction_flag": 1,
    "investor_flag": 1,
    "entity_owner_name": null,
    "current_owner_flag": 0,
    "transfer_index": 2,
    "true_sale_index": 1
  },
  {
    "parcl_property_id": 66431002,
    "event_date": "2016-12-28",
    "event_type": "SALE",
    "event_name": "NON_ARMS_LENGTH_TRANSFER",
    "price": 0,
    "owner_occupied_flag": 0,
    "new_construction_flag": 0,
    "investor_flag": 1,
    "entity_owner_name": null,
    "current_owner_flag": 0,
    "transfer_index": 1,
    "true_sale_index": 0
  }
]

The response includes complete property history - sales, rentals, and listings - along with ownership details like investor_flag and owner_occupied status. You can read full definitions of all available property event fields in the Property Events Reference.

Want to explore more property-level data capabilities? Our Property Data Downloader helps you make curated bulk property data pulls, while our Address Search Notebook shows you how to search for specific properties by address. Check out these resources to expand your property analysis.


3. Manage Your Property API Usage and Credits

Parcl Labs uses a simple credit-based consumption model for its API. For property data, 1 credit = 1 property returned. Here's how credits work for each property endpoint:

  • Property Search: Returns all matching properties in a market – the number of properties returned = credits used
  • Address Search: One credit per address searched and successfully matched
  • Property Event History: One credit per property's history requested

Learn more in our Credits Guide.


4. Start Building

Now that you have tried the property endpoint, you can also explore what else is possible:

  1. Check out the API Cookbook - You'll find code examples showing how to analyze properties and create visualizations. We also provide a data downloader tool that lets you export property data to CSV in bulk.
  2. Install the Parcl Labs Python SDK to efficiently pull property data at scale. The SDK simplifies the process of querying, retrieving, parsing, and formatting the data for you.
  3. Review the API Reference to explore all available endpoints in the Parcl Labs API.
  4. Get inspired by reviewing our research.
  5. Got questions or feedback? Head to our Developer Forum.

Stay Updated

The property-level API is continuously evolving. Keep an eye on the Parcl Labs changelog for updates, including new features and extended data coverage.

For any questions or feedback, please visit our forum or email us at [email protected].