Property Analysis Tool / Herramienta de Análisis

Search Comps Buscar Comparables

Enter any property address to get instant market analysis, comparable sales, rental estimates, and investment metrics. Ingresa cualquier dirección para obtener análisis de mercado instantáneo.

Try:
API Connected / API Conectada

Real property data powered by RentCast, ATTOM & RealtyMole APIs. Datos reales de propiedades usando APIs de bienes raíces.

Developer Documentation

Backend Integration Guide

Deploy your serverless backend to enable real property data

api/analyze.js
Vercel Function
// Vercel Serverless Function
// File: api/analyze.js

const RENTCAST_KEY = process.env.RENTCAST_API_KEY;
const REALTYMOLE_KEY = process.env.REALTYMOLE_API_KEY;

export default async function handler(req, res) {
  // CORS headers
  res.setHeader('Access-Control-Allow-Origin', '*');
  res.setHeader('Access-Control-Allow-Methods', 'GET');
  
  const { address } = req.query;
  
  if (!address) {
    return res.status(400).json({ 
      error: 'Address is required' 
    });
  }

  try {
    // Fetch property data from RealtyMole
    const propertyRes = await fetch(
      `https://realty-mole-property-api.p.rapidapi.com/properties?address=${encodeURIComponent(address)}`,
      {
        headers: {
          'X-RapidAPI-Key': REALTYMOLE_KEY,
          'X-RapidAPI-Host': 'realty-mole-property-api.p.rapidapi.com'
        }
      }
    );
    const propertyData = await propertyRes.json();
    
    // Fetch sales comps
    const compsRes = await fetch(
      `https://realty-mole-property-api.p.rapidapi.com/saleListings?address=${encodeURIComponent(address)}&radius=0.5&limit=5`,
      {
        headers: {
          'X-RapidAPI-Key': REALTYMOLE_KEY,
          'X-RapidAPI-Host': 'realty-mole-property-api.p.rapidapi.com'
        }
      }
    );
    const salesComps = await compsRes.json();

    // Fetch rent estimate from RentCast
    const rentRes = await fetch(
      `https://api.rentcast.io/v1/avm/rent/long-term?address=${encodeURIComponent(address)}`,
      {
        headers: { 'X-Api-Key': RENTCAST_KEY }
      }
    );
    const rentData = await rentRes.json();

    // Format response
    return res.status(200).json({
      subject: {
        address: address,
        estimatedValue: propertyData[0]?.price || 0,
        squareFootage: propertyData[0]?.squareFootage || 0,
        bedrooms: propertyData[0]?.bedrooms || 0,
        bathrooms: propertyData[0]?.bathrooms || 0,
        yearBuilt: propertyData[0]?.yearBuilt || 0
      },
      sales_comps: salesComps || [],
      rent_comps: rentData?.comparables || [],
      proforma: calculateProforma(
        propertyData[0]?.price,
        rentData?.rent
      ),
      market: { /* market data */ }
    });
  } catch (error) {
    return res.status(500).json({ 
      error: error.message 
    });
  }
}
Response Schema
JSON
{
  "subject": {
    "address": "1208 Eva St, Durham, NC",
    "estimatedValue": 245000,
    "squareFootage": 1456,
    "bedrooms": 3,
    "bathrooms": 2,
    "yearBuilt": 1985,
    "pricePerSqFt": 168
  },
  "sales_comps": [
    {
      "address": "1215 Eva St",
      "price": 242000,
      "squareFootage": 1420,
      "bedrooms": 3,
      "bathrooms": 2,
      "saleDate": "2025-12-15",
      "distance": "0.1"
    }
  ],
  "rent_comps": [
    {
      "address": "1210 Eva St",
      "rent": 1650,
      "squareFootage": 1400,
      "bedrooms": 3,
      "bathrooms": 2,
      "status": "Active",
      "distance": "0.05"
    }
  ],
  "proforma": {
    "noi": 11365,
    "capRate": 4.6,
    "cashflow": 947,
    "roi": 22.8
  },
  "market": {
    "medianPrice": 268500,
    "daysOnMarket": 21,
    "homesSold": 156,
    "inventory": 42
  }
}

Quick Setup Steps

1

Get API Keys

Sign up for RentCast + RealtyMole

2

Create Vercel Project

npx create-next-app my-api

3

Add Environment Vars

Store API keys in Vercel dashboard

4

Deploy & Connect

Paste URL in API endpoint field