API Documentation

StableEstate wraps RentCast's MLS data behind x402 — 140M+ property records, rental and sale listings, automated valuations, and market statistics across all 50 US states. Every paid endpoint costs $0.01 USDC on Base mainnet.

Pricing

EndpointCost
Rental Listings Search$0.01
Sale Listings Search$0.01
Property Records Search$0.01
Random Properties$0.01
Property by ID$0.01
Value Estimate$0.01
Rent Estimate$0.01
Market Statistics$0.01

All endpoints cost $0.01 USDC on Base mainnet via x402. Free endpoints: /api/health, /openapi.json, /llms.txt.

POST/api/properties/random

Returns random property records from across the US. Accepts an optional limit parameter (1-500, default 5).

Example

curl -X POST https://stableestate.dev/api/properties/random \
  -H "Content-Type: application/json" \
  -d '{"limit": 3}'
GET/api/properties/{id}

Get a single property record by its ID. Property IDs are returned in search results.

Example

curl https://stableestate.dev/api/properties/5500-Grand-Lake-Dr,-San-Antonio,-TX-78244
POST/api/valuations/value

Automated property value estimate (AVM) with comparable sales. Provide an address or lat/lng coordinates. Optionally specify property attributes for a more accurate estimate.

Parameters

ParameterTypeDescription
addressstringFull property address
latitudenumberProperty latitude
longitudenumberProperty longitude
propertyTypestringProperty type
bedroomsnumberNumber of bedrooms
bathroomsnumberNumber of bathrooms
squareFootagenumberLiving area in sq ft
maxRadiusnumberMax distance for comparables (miles)
daysOldnumberMax days since comps were listed
compCountnumberNumber of comparables (5-25, default 15)

Example

curl -X POST https://stableestate.dev/api/valuations/value \
  -H "Content-Type: application/json" \
  -d '{"address": "5500 Grand Lake Dr, San Antonio, TX 78244"}'

Response

{
  "price": 245000,
  "priceRangeLow": 230000,
  "priceRangeHigh": 260000,
  "subjectProperty": {
    "formattedAddress": "5500 Grand Lake Dr, San Antonio, TX 78244",
    "propertyType": "Single Family",
    "bedrooms": 4,
    "bathrooms": 2,
    "squareFootage": 1800
  },
  "comparables": [
    {
      "formattedAddress": "5501 Grand Lake Dr, San Antonio, TX 78244",
      "price": 240000,
      "distance": 0.1,
      "correlation": 0.95
    }
  ]
}
POST/api/valuations/rent

Estimated monthly rent with comparable rentals. Same parameters as value estimate, except propertyType excludes Land.

Example

curl -X POST https://stableestate.dev/api/valuations/rent \
  -H "Content-Type: application/json" \
  -d '{"address": "5500 Grand Lake Dr, San Antonio, TX 78244"}'

Response

{
  "rent": 1850,
  "rentRangeLow": 1700,
  "rentRangeHigh": 2000,
  "subjectProperty": {
    "formattedAddress": "5500 Grand Lake Dr, San Antonio, TX 78244",
    "bedrooms": 4,
    "bathrooms": 2
  },
  "comparables": [
    {
      "formattedAddress": "5501 Grand Lake Dr, San Antonio, TX 78244",
      "price": 1900,
      "distance": 0.1,
      "correlation": 0.92
    }
  ]
}
POST/api/markets

Aggregate market statistics and listing trends for a US zip code.

Parameters

ParameterTypeDescription
zipCodestring5-digit US zip code (required)
dataTypestringAll (default), Sale, or Rental
historyRangenumberHistorical data range in months (default 12)

Example

curl -X POST https://stableestate.dev/api/markets \
  -H "Content-Type: application/json" \
  -d '{"zipCode": "78701", "dataType": "All"}'

Response

{
  "zipCode": "78701",
  "saleData": {
    "averagePrice": 450000,
    "medianPrice": 420000,
    "totalListings": 150,
    "averageDaysOnMarket": 32
  },
  "rentalData": {
    "averageRent": 2100,
    "medianRent": 1950,
    "totalListings": 300,
    "averageDaysOnMarket": 18
  }
}

GET Support

All search, valuation, and market endpoints also accept GET requests with query parameters instead of a JSON body.

GET /api/apartments/search?location=Austin&maxPrice=2000&minBedrooms=2
GET /api/valuations/value?address=5500+Grand+Lake+Dr,+San+Antonio,+TX+78244
GET /api/markets?zipCode=78701&dataType=Rental

Notes

  • All 50 US states covered, 140M+ property records
  • Responses are fast (~1-2 seconds)
  • Data sourced from MLS feeds via RentCast
  • NYC boroughs: use ZIP codes for best results (e.g. 11201 for Brooklyn Heights) — RentCast indexes boroughs inconsistently by city name
  • Rental search uses number type for bedrooms/bathrooms/sqft; property and sale search uses string to support RentCast range syntax (e.g. "2-4")
  • Value and rent estimate endpoints work best with a full street address. You can also pass bedrooms, bathrooms, squareFootage to improve accuracy