PriceWatch API
Access comparable communities, pricing data, and rent survey insights programmatically. Build custom dashboards, mobile apps, and integrations with PriceWatch data.
Endpoints
Portfolio Summary
Get all properties with optional pricing summaries and comp counts
GET /pricewatch/portfolioBatch Communities
Fetch multiple communities by ID in a single request (max 50)
GET /pricewatch/communitiesCommunity Detail
Get comprehensive details with comps and pricing summary
GET /pricewatch/communities/:idComparable Communities
Get all comps for a subject property with optional pricing
GET /pricewatch/communities/:id/compsPricing History
Get historical pricing data with flexible date ranges
GET /pricewatch/communities/:id/pricingFloor Plans
Get all floor plans with latest pricing data
GET /pricewatch/communities/:id/floor-plansCommunity Vacancy
Get 14-day vacancy rate for a community
GET /pricewatch/communities/:id/vacancyCompetitive Positioning Overview
Get PSI metrics and portfolio-level competitive analysis
GET /pricewatch/communities/:id/overviewVacancy Trends
Historic vacancy trends and forward projections (14d, 30d, 60d, 90d)
GET /pricewatch/communities/:id/vacancy-trendAdd Comparable
Manually add a comparable community (max 10 comps per property)
POST /pricewatch/communities/:id/compsUpdate Comp Relationship
Activate or deactivate a comparable for future surveys
PATCH /pricewatch/communities/:id/comps/:comp_id/pricewatch/portfolio
Get all user-managed communities with optional pricing summaries and comparable community counts. Perfect for portfolio dashboards and executive reports.
How to Use This Endpoint
Business Context: Build executive dashboards that display portfolio-wide rent positioning at a glance. Include pricing summaries to see average PSI (Price Sensitivity Index) across your entire portfolio, identifying under-priced or over-priced communities instantly.
Common Scenario: Your regional VP's mobile app calls this endpoint every morning to show a heatmap of all 50+ communities, color-coded by pricing health (green = competitive, yellow = at risk, red = overpriced). They can quickly identify which properties need pricing adjustments before the weekly revenue meeting.
Required Scope
pricewatch:readQuery Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| include_pricing | boolean | No | Include latest pricing summary (default: false) |
| include_comp_count | boolean | No | Include comparable community counts (default: true) |
Example Request
cURL
curl "https://api.aryna.ai/v1/pricewatch/portfolio?include_pricing=true" \ -H "Authorization: Bearer YOUR_API_KEY"
Example Response
JSON
{
"communities": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Sunset Apartments",
"address": "123 Main St, San Francisco, CA 94102",
"external_community_id": "PROP-001",
"comp_count": 5,
"latest_pricing_date": "2024-11-18",
"pricing_summary": {
"floor_plan_count": 8,
"avg_market_rent_cents": 185000,
"min_rent_cents": 125000,
"max_rent_cents": 325000
}
}
],
"total": 42
}Batch Communities
/pricewatch/communitiesFetch multiple communities by ID in a single request. Maximum 50 communities per request. Ideal for filtered reports and mobile app property lists.
How to Use This Endpoint
Business Context: Efficiently load pricing data for a subset of properties without fetching your entire portfolio. Perfect when you need to display a specific region, market, or filtered set of communities based on user selections.
Common Scenario: Your mobile app lets regional managers filter properties by state and ZIP code. When they select "California properties," your app sends a batch request with all California community IDs, loading detailed pricing for just those 15 properties instead of all 200 in the portfolio.
Query Parameters
idsComma-separated community UUIDs (max 50)
include_compsInclude comp counts for each community
Example Request
curl "https://api.aryna.ai/v1/pricewatch/communities?ids=uuid1,uuid2,uuid3" \ -H "Authorization: Bearer YOUR_API_KEY"
Example Response
{
"communities": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Sunset Apartments",
"address": "123 Main St, San Francisco, CA 94102",
"zipcode": "94102",
"external_community_id": "PROP-001",
"latitude": 37.7749,
"longitude": -122.4194,
"website_url": "https://sunset-apartments.com",
"comp_count": 5
}
],
"total": 3
}Community Detail
/pricewatch/communities/:idGet comprehensive details for a single community including comparable communities and pricing summary. Use for property detail pages and competitive analysis.
How to Use This Endpoint
Business Context: Load everything needed for a property detail page in one API call—community info, comparable properties, and pricing summaries. Reduces latency and provides a complete competitive picture instantly.
Common Scenario: A property manager opens the detail page for "Sunset Apartments" in your app. This endpoint returns the property's full details, its 10 comparable properties with their latest pricing, and a summary showing Sunset is priced 5% above market average—all displayed in under 500ms.
Query Parameters
include_compsInclude comparable communities list
include_pricing_summaryInclude pricing summary with floor plans
Example Request
curl "https://api.aryna.ai/v1/pricewatch/communities/550e8400-e29b-41d4-a716-446655440000" \ -H "Authorization: Bearer YOUR_API_KEY"
Example Response
{
"community": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Sunset Apartments",
"address": "123 Main St, San Francisco, CA 94102",
"zipcode": "94102",
"comp_count": 7,
"floor_plan_count": 10,
"pricing_summary": {
"latest_date": "2024-11-18",
"avg_market_rent_cents": 185000,
"floor_plans": [...]
}
},
"comps": [...]
}Comparable Communities
/pricewatch/communities/:id/compsGet all comparable communities for a subject property. Results sorted by distance. Perfect for competitive set analysis and market positioning.
How to Use This Endpoint
Business Context: Build HUD-compliant rent surveys by pulling all comparable properties for a subject community. Analyze your competitive set to determine if your rents are aligned with the local market or if adjustments are needed.
Common Scenario: Your compliance team needs to justify a rent increase to HUD. This endpoint returns all 10 comparable properties within 0.5 miles, showing that 8 of them have raised rents by 4-6% this quarter, supporting your proposed 5% increase for affordable housing units.
Query Parameters
include_inactiveInclude deactivated comparable communities
include_pricingInclude pricing summary for each comp
Example Request
curl "https://api.aryna.ai/v1/pricewatch/communities/550e8400-e29b-41d4-a716-446655440000/comps?include_pricing=true" \ -H "Authorization: Bearer YOUR_API_KEY"
Example Response
{
"subject_community": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Sunset Apartments"
},
"comps": [
{
"id": "770e8400-e29b-41d4-a716-446655440000",
"name": "Nearby Apartments",
"distance_miles": 0.5,
"pricing": {
"floor_plan_count": 8,
"avg_market_rent_cents": 180000
}
}
],
"total": 7
}Pricing History
/pricewatch/communities/:id/pricingGet historical pricing data with flexible date ranges. Default to last 30 days if no parameters specified. Essential for trend analysis and historical reports.
How to Use This Endpoint
Business Context: Chart rent trends over time to identify seasonal patterns, measure the impact of renovations, or track how quickly competitors adjust pricing. Essential for revenue management and forecasting.
Common Scenario: Your revenue analyst pulls 12 months of pricing history to prepare the annual budget. They see that 2-bedroom units spiked 8% in April-May (high season) but competitors held steady, suggesting an opportunity to capture more market share by being more aggressive with seasonal adjustments next year.
Query Parameters
start_dateStart of date range (e.g., "2024-01-01")
end_dateEnd of date range (e.g., "2024-03-31")
daysLast N days (if no date range)
floor_plan_idFilter to specific floor plan
latest_onlyReturn only most recent pricing
Example Request
curl "https://api.aryna.ai/v1/pricewatch/communities/550e8400-e29b-41d4-a716-446655440000/pricing?days=90" \ -H "Authorization: Bearer YOUR_API_KEY"
Example Response
{
"community": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Sunset Apartments"
},
"pricing": [
{
"floor_plan_id": "660e8400-e29b-41d4-a716-446655440000",
"floor_plan": {
"bedrooms": 2,
"bathrooms": 2,
"floor_plan_name": "2BR/2BA Premium",
"square_feet": 950
},
"as_of_date": "2024-11-18",
"market_rent_cents": 185000,
"net_effective_rent_cents": 180000,
"market_rent_per_sqft_cents": 195,
"net_effective_rent_per_sqft_cents": 189,
"units_available": 3,
"concessions": "1 month free"
}
],
"date_range": {
"start": "2024-08-20",
"end": "2024-11-18"
},
"total_records": 240
}Floor Plans
/pricewatch/communities/:id/floor-plansGet all floor plans for a community with latest pricing. Results sorted by bedrooms, then bathrooms. Ideal for unit mix analysis and availability reports.
How to Use This Endpoint
Business Context: Display all unit types and their current market rates on your property's leasing website or internal portal. Show prospects and property managers what each floor plan is renting for right now, including concessions.
Common Scenario: Your leasing agent portal calls this endpoint when a prospect inquires about availability. It returns all 12 floor plans (Studios through 3BR) with current asking rents, concessions (e.g., "1 month free"), and square footage—helping the agent quickly quote accurate pricing.
Example Request
curl "https://api.aryna.ai/v1/pricewatch/communities/550e8400-e29b-41d4-a716-446655440000/floor-plans" \ -H "Authorization: Bearer YOUR_API_KEY"
Example Response
{
"community": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Sunset Apartments"
},
"floor_plans": [
{
"id": "660e8400-e29b-41d4-a716-446655440000",
"floor_plan_name": "2BR/2BA Premium",
"bedrooms": 2,
"bathrooms": 2.0,
"square_feet": 950,
"unit_count": 12,
"latest_pricing": {
"as_of_date": "2024-11-18",
"market_rent_cents": 185000,
"net_effective_rent_cents": 180000,
"market_rent_per_sqft_cents": 195,
"net_effective_rent_per_sqft_cents": 189,
"units_available": 3,
"concessions": "1 month free"
}
}
],
"total": 10
}/pricewatch/communities/:id/vacancy
Get 14-day vacancy rate for a community based on units available in the next 14 days. Requires completed survey data. Returns vacancy percentage, available units count, and survey date.
Required Scope
pricewatch:readPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | UUID | ✓ | Community ID |
Example Request
cURL
curl "https://api.aryna.ai/v1/pricewatch/communities/550e8400-e29b-41d4-a716-446655440000/vacancy" \ -H "Authorization: Bearer YOUR_API_KEY"
Example Response
JSON
{
"community_id": "550e8400-e29b-41d4-a716-446655440000",
"community_name": "Sunset Towers",
"total_units": 120,
"vacancy_rate": 0.15,
"vacancy_rate_formatted": "15.0%",
"available_units_next_14_days": 18,
"available_units_formatted": "18 units",
"has_data": true,
"as_of_date": "2024-11-28"
}/pricewatch/communities/:id/overview
Get comprehensive competitive positioning analysis with PSI (Pricing Position Indicator) metrics for each floor plan and portfolio-level summary statistics. Includes Overall PSI, CRI (Competitiveness Range Index), and Market Concession Pressure metrics.
Required Scope
pricewatch:readPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | UUID | ✓ | Community ID |
Key Metrics
Formula: (Subject Rent / Avg Comp Rent) - 1. Positive values mean above market, negative means below market.
Weighted percentile rank (0-100). Interpretation: 0-30 = aggressively priced, 30-60 = market-aligned, 60-90 = premium, 90-100 = outlier.
Percentage of comps offering concessions and average concession value. Indicates competitive intensity in the market.
Example Request
cURL
curl https://api.aryna.ai/v1/pricewatch/communities/550e8400-e29b-41d4-a716-446655440000/overview \ -H "Authorization: Bearer YOUR_API_KEY"
Example Response
JSON
{
"community": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Sunset Towers",
"address": "123 Main St, Austin, TX 78701"
},
"floor_plans": [
{
"bedrooms": 2,
"bathrooms": 1,
"square_feet": 850,
"base_rent": {
"subject_rent": 150000,
"avg_comp_rent": 145000,
"psi": 0.0345,
"rent_variation": 5000,
"rent_per_sqft_variation": 0.059,
"percentile_rank": 70,
"market_low": 135000,
"market_high": 160000,
"comps_with_data": 8
},
"ner": {
"subject_rent": 145000,
"avg_comp_rent": 140000,
"psi": 0.0357,
"rent_variation": 5000,
"rent_per_sqft_variation": 0.059,
"percentile_rank": 72,
"market_low": 130000,
"market_high": 155000,
"comps_with_data": 8,
"comps_offering_concessions": 6,
"pct_comps_offering_concessions": 75
}
}
],
"overall_metrics": {
"overall_psi_base": 0.042,
"overall_psi_ner": 0.038,
"cri_base": 68,
"cri_ner": 65,
"market_concession_pressure": {
"pct_comps_offering": 75,
"avg_concession_value": 12000,
"total_comps": 10,
"comps_with_concessions": 7
}
}
}/pricewatch/communities/:id/vacancy-trend
Get historic vacancy trends (subject vs comp average over time) and forward projections (14d, 30d, 60d, 90d) based on available_from dates. Perfect for occupancy forecasting and portfolio vacancy analysis.
Required Scope
pricewatch:readExample Response
JSON
{
"community_id": "550e8400-e29b-41d4-a716-446655440000",
"community_name": "Sunset Apartments",
"trends": [
{
"date": "2024-09-01T10:00:00Z",
"survey_id": "660e8400-e29b-41d4-a716-446655440000",
"subject_vacancy": 12.5,
"avg_comp_vacancy": 15.2
},
{
"date": "2024-10-01T10:00:00Z",
"survey_id": "770e8400-e29b-41d4-a716-446655440000",
"subject_vacancy": 10.8,
"avg_comp_vacancy": 14.1
}
],
"projections": {
"14d": 9.5,
"30d": 8.2,
"60d": 7.1,
"90d": 6.5
},
"total_surveys": 12
}/pricewatch/communities/:id/comps
Manually add a comparable community for a subject property. Automatically triggers data collection (Agent 2 pricing and Agent 3 enrichment). Maximum 10 comparable communities per subject property.
Required Scope
pricewatch:writeRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | ✓ | Community name |
| address | string | ✓ | Full address |
| zipcode | string | ✓ | US zipcode (5 or 9 digit) |
| website_url | string | No | Community website (optional) |
Example Request
cURL
curl -X POST "https://api.aryna.ai/v1/pricewatch/communities/550e8400-e29b-41d4-a716-446655440000/comps" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Competitor Apartments",
"address": "456 Oak St, Austin, TX",
"zipcode": "78701",
"website_url": "https://competitor.com"
}'Example Response (201 Created)
JSON
{
"success": true,
"comp_id": "660e8400-e29b-41d4-a716-446655440000",
"message": "Comparable added successfully. Data collection in progress.",
"actions": [
"agent_3_enrichment_triggered",
"agent_2_pricing_triggered"
]
}/pricewatch/communities/:id/comps/:comp_id
Activate or deactivate a comparable community for future surveys. Useful for swapping comps when hitting the 10-comp limit. Deactivated comps are not included in new surveys but historical data is preserved.
Required Scope
pricewatch:writeRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
| is_included_in_surveys | boolean | ✓ | Include in future surveys (true = active, false = deactivated) |
Example Request
cURL
curl -X PATCH "https://api.aryna.ai/v1/pricewatch/communities/550e8400-e29b-41d4-a716-446655440000/comps/660e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"is_included_in_surveys": false
}'Example Response
JSON
{
"success": true,
"comp_id": "660e8400-e29b-41d4-a716-446655440000",
"is_included_in_surveys": false,
"message": "Comparable excluded from future surveys"
}Try it in the Interactive Docs
Test these endpoints directly in your browser with our interactive OpenAPI documentation.
Open Interactive API Docs