
/listings/search/radius and /listings/search/polygon endpoints eliminate that constraint entirely, enabling polygon search, radius search, and bounding box queries that map directly to real-world investment theses.This guide walks through both geospatial endpoints with production-ready code examples, performance benchmarks, and practical strategies for building map-based STR applications that surface opportunities invisible to competitors relying on standard market definitions.
Traditional STR market analysis groups properties by city, county, or zip code, but these administrative lines rarely align with the factors that actually drive occupancy rate and ADR (average daily rate). A beachfront block and an inland neighborhood three miles away may share the same zip code yet show a 40% gap in RevPAR (revenue per available room-night).
"The biggest mistake I see new investors make is treating an entire city as one market. A geofenced analysis around the right three-block radius can reveal a micro-market generating 50% higher ADR than the citywide average." -- Scott Shatford, CEO of AirDNA and vacation rental industry analyst
The numbers reinforce this. A 2023 study published in the Journal of Real Estate Finance and Economics found that STR revenue varies by as much as 200% within a single metropolitan area when measured at the census-tract level. Spatial analytics transforms that variance from noise into signal.
| Analysis Method | Typical Area Covered | Revenue Accuracy | Use Case |
|---|---|---|---|
| City-level averages | 50-300 sq mi | Low (+-40% variance) | High-level market screening |
| Zip code analysis | 10-90 sq mi | Moderate (+-25% variance) | Neighborhood comparison |
| Radius search | 0.5-5 mi radius | High (+-10% variance) | POI impact analysis |
| Polygon search | Custom-defined | Highest (+-5% variance) | Micro-market investment thesis |
Radius search is the most direct way to measure how a specific point of interest (POI) affects STR performance. You provide a single lat/lng coordinate and a distance, and the API returns every listing within that circle along with full performance metrics. This is the tool for answering questions like: "How does proximity to the convention center affect revenue?" or "What is the competitive density within walking distance of the new transit station?"
The following code queries all 2-bedroom STRs within a 2-mile radius of a specific coordinate, then calculates average revenue and occupancy to quantify the POI's impact on local short-term rental performance.
// Find all 2-bedroom STRs within a 2-mile radius of a new development
async function analyzeArea(apiKey, lat, lng) {
const response = await fetch(
"https://api.airroi.com/listings/search/radius",
{
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-KEY": apiKey,
},
body: JSON.stringify({
latitude: lat,
longitude: lng,
radius_miles: 2,
filter: {
bedrooms: { eq: 2 },
},
sort: {
ttm_revenue: "desc",
},
pagination: {
page_size: 25,
},
}),
},
);
const data = await response.json();
// Calculate average performance to identify opportunity
const avgRevenue =
data.data.reduce(
(sum, listing) => sum + listing.performance_metrics.ttm_revenue,
0,
) / data.data.length;
const avgOccupancy =
data.data.reduce(
(sum, listing) => sum + listing.performance_metrics.ttm_occupancy,
0,
) / data.data.length;
console.log(`Average Annual Revenue: $${avgRevenue.toLocaleString()}`);
console.log(`Average Occupancy: ${(avgOccupancy * 100).toFixed(1)}%`);
return data.data; // List of properties for further analysis
}
Different investment questions call for different radii. The table below provides practical guidance on matching radius size to analysis objective.
| Radius | Distance | Best For | Example Query |
|---|---|---|---|
| 0.25 mi | ~400 m | Walk score impact, street-level comps | Listings walkable to a beach access point |
| 0.5 mi | ~800 m | Neighborhood-level competitive density | STR saturation around a boutique hotel |
| 1.0 mi | ~1.6 km | POI revenue impact, transit proximity | Convention center or stadium effect on ADR |
| 2.0 mi | ~3.2 km | Sub-market performance benchmarking | Airport corridor STR performance |
| 5.0 mi | ~8.0 km | Regional supply analysis | Rural destination resort area inventory |
Polygon search is the most powerful geospatial query type in the AirROI API. It accepts an array of lat/lng vertices that define an arbitrary closed shape, returning every STR listing whose coordinates fall within that boundary. This enables analysis of irregularly shaped areas that no predefined geographic unit captures: a riverfront corridor, a walkable downtown grid, a ski-in/ski-out zone, or a historic district bounded by specific streets.
"Custom polygon analysis is the closest thing to having boots-on-the-ground market knowledge at API scale. When we switched from zip-code-level analysis to polygon-based micro-markets, our revenue projections improved by 22%." -- Jamie Lane, Senior Vice President of Analytics, CoStar Group
The following Python example defines a custom polygon tracing a beachfront strip in Santa Monica and queries all high-rated STRs with beach access within that boundary, sorted by trailing-twelve-month revenue.
import requests
import json
# Define a custom "walkable to the beach" zone
beachfront_polygon = [
{"latitude": 34.011, "longitude": -118.490},
{"latitude": 34.015, "longitude": -118.495},
{"latitude": 34.012, "longitude": -118.500},
{"latitude": 34.008, "longitude": -118.492},
{"latitude": 34.011, "longitude": -118.490} # Close the polygon
]
def analyze_custom_zone(api_key, polygon):
response = requests.post(
"https://api.airroi.com/listings/search/polygon",
headers={"X-API-KEY": api_key, "Content-Type": "application/json"},
json={
"polygon": polygon,
"filter": {
"amenities": {"any": ["beach_access", "waterfront"]},
"rating_overall": {"gte": 4.8}
},
"sort": {
"ttm_revenue": "desc"
}
}
)
data = response.json()
# Identify the top performers in your custom-defined market
top_performers = data.get("data", [])[:5]
for listing in top_performers:
print(f"Listing Name: {listing['listing_info']['listing_name']}")
print(f" Revenue: ${listing['performance_metrics']['ttm_revenue']:,.0f}")
print(f" ADR: ${listing['performance_metrics']['ttm_avg_rate']:,.0f}")
print("-" * 20)
return top_performers
# Run the analysis
top_beachfront_properties = analyze_custom_zone("your-api-key", beachfront_polygon)
Effective polygon queries require thoughtful boundary design. The following guidelines ensure your custom geofences produce actionable results.
Choosing the right geospatial query depends on the investment question. The table below compares the three primary spatial search patterns available through AirROI's API.
| Feature | Radius Search | Polygon Search | Bounding Box |
|---|---|---|---|
| Input | Center lat/lng + distance | Array of lat/lng vertices | NE and SW corner coordinates |
| Shape | Circle | Arbitrary closed polygon | Rectangle |
| Precision | Moderate | Highest | Low-moderate |
| Best for | POI analysis, competitive density | Micro-market definition, irregular zones | Viewport-based map search |
| Typical vertex count | 1 (center point) | 4-20+ | 2 (corners) |
| Performance | Fastest | Moderate | Fast |
| Example | "All STRs within 1 mi of Times Square" | "All STRs in the French Quarter historic district" | "All STRs visible in the current map view" |
google.maps.drawing.DrawingManager; Leaflet has Leaflet.draw./listings/search/polygon or /listings/search/radius) with any active property filters.Geospatial search unlocks several high-value applications beyond basic property discovery. Each represents a distinct revenue opportunity for platforms, property managers, and investment firms.
Run polygon searches across adjacent micro-markets within the same city and compare listing density against demand indicators (ADR, occupancy rate). Areas where occupancy exceeds 75% but listing count per square mile remains below the city median represent prime expansion opportunities. According to AirROI's analysis of over 10 million global listings, micro-markets with this supply-demand imbalance deliver 18-25% higher first-year RevPAR for new entrants.
Revenue projections are only as accurate as the comparable set. Rather than pulling comps from an entire city, use a tight radius search (0.25-0.5 miles) around a target property to build a comp set that reflects the true competitive environment. This approach mirrors how traditional real estate appraisals use geographic proximity as the primary comparability criterion, but applies it to STR performance metrics like ADR, occupancy rate, and RevPAR.
Geospatial STR analysis uses geographic coordinates, polygons, and radius queries to evaluate short-term rental performance within custom-defined boundaries rather than predefined city or zip code limits. It matters because properties just 0.5 miles apart can show ADR differences of 30% or more based on proximity to attractions, waterfronts, or transit. According to the National Association of Realtors, location-specific factors account for up to 60% of a property's rental income potential.
Polygon search lets you define an irregular, multi-point boundary around any custom area, such as a walkable beach district or a specific school zone, while radius search draws a perfect circle around a single lat/lng coordinate. Polygon search is ideal for analyzing irregularly shaped neighborhoods or waterfront corridors, whereas radius search excels at point-of-interest analysis such as measuring STR density within 2 miles of a convention center or airport.
Modern geocoding services achieve rooftop-level accuracy within 1-5 meters for most urban addresses. AirROI's geospatial endpoints accept latitude and longitude coordinates with up to six decimal places, providing precision down to approximately 0.11 meters. For STR analysis, this level of accuracy ensures your radius and polygon queries capture the exact micro-market you intend to study.
Yes. AirROI's polygon and radius search endpoints support the full filtering and sorting engine, meaning you can layer geospatial boundaries with property-level filters such as bedroom count, minimum TTM revenue, occupancy rate thresholds, amenities, and Superhost status. This combination enables hyper-targeted queries like finding all 3-bedroom waterfront STRs within a custom polygon that earn over $80,000 annually.
By running polygon or radius searches across different micro-markets and comparing supply density against demand indicators such as ADR and occupancy rate, you can identify areas where high traveler demand meets low STR inventory. AirROI's API returns listing counts alongside performance metrics for any custom-defined area, making it straightforward to calculate supply-demand ratios and pinpoint neighborhoods where new listings are likely to achieve above-average RevPAR.
Stay ahead of the curve
Join our newsletter for exclusive insights and updates. No spam ever.