This tool provides real estate property data through the RentCast API, enabling agents to retrieve comprehensive property information, valuation estimates, and rental projections. It's designed to support real estate investment analysis with reliable market data.
The tool supports three main functions:
- Property Lookup: Get detailed property information, value estimates, or rent estimates
- Market Data Lookup: Retrieve market statistics for specific zip codes
- Investment Analysis: Calculate ROI, cash flow, and mortgage scenarios for investment properties
Warning
Be aware of additional costs associated with RentCast API. Developer plan gives you 50 free API requests a month.
- Get your RentCast API key by registering.
Deploy property_data_stack.yaml
| Region | property_data_stack.yaml |
|---|---|
| us-east-1 | ![]() |
| us-west-2 | ![]() |
Retrieves detailed property information, value estimates, or rent estimates for a given address.
Key Parameters:
address: The property address in the format "Street, City, State, Zip"data_type: Type of data to retrieve ("property_data", "value_estimate", or "rent_estimate")propertyType: Required for value/rent estimates (e.g., "Single Family", "Condo", etc.)bedrooms: Required for value/rent estimates (number of bedrooms)squareFootage: Required for value/rent estimates (living area in square feet)
Usage Pattern:
- Call with
data_type=property_datato get basic property details with justaddressprovided. - Call with
data_type=value_estimateordata_type=rent_estimate, providing the property attributespropertyType,bedrooms,squareFootageto get a more accurate value/rent estimate with comparable properties.
Retrieves aggregate market statistics for a specific zip code.
Key Parameters:
zip_code: The 5-digit zip code to look updata_type: Type of market data to retrieve ("Sale", "Rental", or "All")history_range: Number of months of historical data to retrieve (default: 1)
Performs comprehensive investment calculations for a property.
Key Parameters:
investment_data: JSON string containing investment parameters:purchase_pricedown_payment_percentageinterest_rateterm_yearsrental_incomeproperty_taxesinsurancemaintenance
analysis_type: Type of analysis to perform ("mortgage_calc", "cash_flow", "roi", or "all")
from src.utils.bedrock_agent import (
Agent,
region,
account_id,
)
import uuid
property_data_agent = Agent.create(
name="property_data_agent",
role="Real Estate Data Specialist",
goal="Provide accurate property information and valuation data.",
instructions="Specialist in real estate data analysis.",
tool_code=f"arn:aws:lambda:{region}:{account_id}:function:property_data",
tool_defs=[
{
"name": "property_lookup",
"description": "Retrieves property information, valuation, or rent estimates",
"parameters": {
"address": {
"description": "The property address to look up",
"type": "string",
"required": True
},
"data_type": {
"description": "Type of data to retrieve (property_data, value_estimate, rent_estimate)",
"type": "string",
"required": True
},
"propertyType": {
"description": "Needed for value/rent estimates. Property type from property_data",
"type": "string",
"required": False
},
"bedrooms": {
"description": "Needed for value/rent estimates. Bedrooms from property_data",
"type": "string",
"required": False
},
"squareFootage": {
"description": "Needed for value/rent estimates. Square footage from property_data",
"type": "string",
"required": False
}
}
}
],
)
# Get basic property information
response = property_data_agent.invoke(
input_text="Get property data for 123 Main St, Austin, TX 78701",
session_id=str(uuid.uuid4()),
)
print(response)
# Get property valuation
response = property_data_agent.invoke(
input_text="Get value estimate for 123 Main St, Austin, TX 78701. It's a Single Family home with 3 bedrooms and 2000 square feet.",
session_id=str(uuid.uuid4()),
)
print(response)from src.utils.bedrock_agent import (
Agent,
region,
account_id,
)
import uuid
market_analyst = Agent.create(
name="market_analyst",
role="Real Estate Market Analyst",
goal="Analyze market conditions and investment opportunities.",
instructions="Expert in real estate market trends and investment calculations.",
tool_code=f"arn:aws:lambda:{region}:{account_id}:function:property_data",
tool_defs=[
{
"name": "market_data_lookup",
"description": "Retrieves market statistics for a specific area",
"parameters": {
"zip_code": {
"description": "The 5-digit zip code to look up",
"type": "string",
"required": True
},
"data_type": {
"description": "Type of data to retrieve (Sale, Rental, All)",
"type": "string",
"required": False
},
"history_range": {
"description": "Number of months of historical data to retrieve",
"type": "string",
"required": False
}
}
},
{
"name": "investment_analysis",
"description": "Performs real estate investment calculations",
"parameters": {
"investment_data": {
"description": "JSON string with investment parameters",
"type": "string",
"required": True
},
"analysis_type": {
"description": "Type of analysis to perform",
"type": "string",
"required": False
}
}
}
],
)
# Get market data for zip code
response = market_analyst.invoke(
input_text="What's the market data for zip code 78701?",
session_id=str(uuid.uuid4()),
)
print(response)
# Calculate investment metrics
response = market_analyst.invoke(
input_text="""Analyze this investment opportunity:
- Purchase price: $350,000
- Down payment: 20%
- Interest rate: 4.5%
- Expected rental income: $2,000/month
- Property taxes: $5,000/year
- Insurance: $1,200/year
""",
session_id=str(uuid.uuid4()),
)
print(response)For property value or rent estimates, follow this sequence:
- First call
property_lookupwithdata_type=property_datato get basic property info - Extract key attributes:
propertyType,bedrooms, andsquareFootage - Then call
property_lookupagain withdata_type=value_estimateordata_type=rent_estimate, providing those attributes as parameters
This pattern ensures you get accurate valuation and rental estimates based on the property's actual attributes.
- Open the CloudFormation console.
- Select the stack
PropertyDatayou created, then click Delete. Wait for the stack to be deleted. - Make sure to manually delete
RENTCAST_API_KEY-*secret key.
See CONTRIBUTING for more information.
This project is licensed under the Apache-2.0 License.

