# RentCast

> **You are on:** `https://beta-api.paywithlocus.com/api` | [llms.txt](https://beta.paywithlocus.com/llms.txt)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API |
> |---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com |
> | Beta | beta.paywithlocus.com | beta-api.paywithlocus.com |
> | Stage | stage.paywithlocus.com | stage-api.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> US real estate intelligence — property records, AVM valuations, rent estimates, sale/rental listings, and market statistics.

**Category:** Data / Intelligence | **Website:** [rentcast.io](https://rentcast.io) | **Docs:** [developers.rentcast.io/reference/introduction](https://developers.rentcast.io/reference/introduction)

## Access Methods

| Method | Base URL | Auth |
|--------|----------|------|
| **MPP (Tempo)** | `https://rentcast.mpp.paywithlocus.com/rentcast/` | HTTP 402 auto-payment |
| **Wrapped API** | `https://beta-api.paywithlocus.com/api/wrapped/rentcast/` | `Authorization: Bearer <LOCUS_API_KEY>` |

**OpenAPI discovery:** `GET https://rentcast.mpp.paywithlocus.com/openapi.json`

## Endpoints

### Property Records

Search property records by location. Returns ownership, tax history, features, and transaction history for 140M+ US properties.

**Estimated cost:** $0.033

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `address` | string | No | Full address (Street, City, State, Zip) |
| `city` | string | No | City name (case-sensitive) |
| `state` | string | No | 2-character state abbreviation |
| `zipCode` | string | No | 5-digit US zip code |
| `latitude` | number | No | Latitude for circular search |
| `longitude` | number | No | Longitude for circular search |
| `radius` | number | No | Search radius in miles (max 100) |
| `propertyType` | string | No | Single Family, Condo, Townhouse, Manufactured, Multi-Family, Apartment, Land (pipe-separated for multiple) |
| `bedrooms` | string | No | Number of bedrooms. Supports ranges (1:3) and multiples (1|3) |
| `bathrooms` | string | No | Number of bathrooms. Supports ranges and multiples |
| `squareFootage` | string | No | Living area in sq ft. Supports ranges/multiples |
| `lotSize` | string | No | Lot size in sq ft. Supports ranges/multiples |
| `yearBuilt` | string | No | Year built. Supports ranges/multiples |
| `saleDateRange` | string | No | Days since last sale (min 1). Supports ranges |
| `limit` | number | No | Max records to return (1-500, default 50) |
| `offset` | number | No | Pagination offset (default 0) |
| `includeTotalCount` | boolean | No | Include total count in X-Total-Count response header |

```bash
curl -X POST https://rentcast.mpp.paywithlocus.com/rentcast/properties \
  -H "Content-Type: application/json" \
  -d '{"address":"<string>","city":"<string>","state":"<string>","zipCode":"<string>","latitude":"<number>","longitude":"<number>","radius":"<number>","propertyType":"<string>","bedrooms":"<string>","bathrooms":"<string>","squareFootage":"<string>","lotSize":"<string>","yearBuilt":"<string>","saleDateRange":"<string>","limit":"<number>","offset":"<number>","includeTotalCount":"<boolean>"}'
```

### Property by ID

Retrieve a single property record by its RentCast ID.

**Estimated cost:** $0.033

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | Yes | RentCast property ID (e.g., "5500-Grand-Lake-Dr,-San-Antonio,-TX-78244") |

```bash
curl -X POST https://rentcast.mpp.paywithlocus.com/rentcast/property-by-id \
  -H "Content-Type: application/json" \
  -d '{"id":"<string>"}'
```

### Random Properties

Get randomly selected property records. Useful for testing and sampling.

**Estimated cost:** $0.033

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | number | No | Number of records (1-500, default 5) |

```bash
curl -X POST https://rentcast.mpp.paywithlocus.com/rentcast/random-properties \
  -H "Content-Type: application/json" \
  -d '{"limit":"<number>"}'
```

### Value Estimate (AVM)

Get an automated property valuation with comparable sale listings. Returns price estimate, confidence range, and comparable properties.

**Estimated cost:** $0.033

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `address` | string | No | Full property address |
| `latitude` | number | No | Property latitude |
| `longitude` | number | No | Property longitude |
| `propertyType` | string | No | Single Family, Condo, Townhouse, Manufactured, Multi-Family, Apartment, Land |
| `bedrooms` | number | No | Number of bedrooms (0 = studio) |
| `bathrooms` | number | No | Number of bathrooms |
| `squareFootage` | number | No | Living area in sq ft |
| `maxRadius` | number | No | Max distance to comparable properties in miles |
| `daysOld` | number | No | Max age of comparable listings in days |
| `compCount` | number | No | Number of comparables to return (5-25, default 15) |

```bash
curl -X POST https://rentcast.mpp.paywithlocus.com/rentcast/value-estimate \
  -H "Content-Type: application/json" \
  -d '{"address":"<string>","latitude":"<number>","longitude":"<number>","propertyType":"<string>","bedrooms":"<number>","bathrooms":"<number>","squareFootage":"<number>","maxRadius":"<number>","daysOld":"<number>","compCount":"<number>"}'
```

### Rent Estimate

Get a long-term rental estimate with comparable rental listings. Returns monthly rent estimate, range, and comparables.

**Estimated cost:** $0.033

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `address` | string | No | Full property address |
| `latitude` | number | No | Property latitude |
| `longitude` | number | No | Property longitude |
| `propertyType` | string | No | Single Family, Condo, Townhouse, Manufactured, Multi-Family, Apartment, Land |
| `bedrooms` | number | No | Number of bedrooms (0 = studio) |
| `bathrooms` | number | No | Number of bathrooms |
| `squareFootage` | number | No | Living area in sq ft |
| `maxRadius` | number | No | Max distance to comparable properties in miles |
| `daysOld` | number | No | Max age of comparable listings in days |
| `compCount` | number | No | Number of comparables to return (5-25, default 15) |

```bash
curl -X POST https://rentcast.mpp.paywithlocus.com/rentcast/rent-estimate \
  -H "Content-Type: application/json" \
  -d '{"address":"<string>","latitude":"<number>","longitude":"<number>","propertyType":"<string>","bedrooms":"<number>","bathrooms":"<number>","squareFootage":"<number>","maxRadius":"<number>","daysOld":"<number>","compCount":"<number>"}'
```

### Sale Listings

Search for-sale property listings by location. Returns MLS data, agent info, pricing, and listing history.

**Estimated cost:** $0.033

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `address` | string | No | Full address (Street, City, State, Zip) |
| `city` | string | No | City name (case-sensitive) |
| `state` | string | No | 2-character state abbreviation |
| `zipCode` | string | No | 5-digit US zip code |
| `latitude` | number | No | Latitude for circular search |
| `longitude` | number | No | Longitude for circular search |
| `radius` | number | No | Search radius in miles (max 100) |
| `propertyType` | string | No | Single Family, Condo, Townhouse, Manufactured, Multi-Family, Apartment, Land (pipe-separated for multiple) |
| `bedrooms` | string | No | Number of bedrooms. Supports ranges (1:3) and multiples (1|3) |
| `bathrooms` | string | No | Number of bathrooms. Supports ranges and multiples |
| `squareFootage` | string | No | Living area in sq ft. Supports ranges/multiples |
| `lotSize` | string | No | Lot size in sq ft. Supports ranges/multiples |
| `yearBuilt` | string | No | Year built. Supports ranges/multiples |
| `status` | string | No | Active or Inactive (default: Active) |
| `price` | string | No | Listed price filter. Supports ranges/multiples |
| `daysOld` | string | No | Days on market (min 1). Supports ranges |
| `limit` | number | No | Max records to return (1-500, default 50) |
| `offset` | number | No | Pagination offset (default 0) |
| `includeTotalCount` | boolean | No | Include total count in X-Total-Count response header |

```bash
curl -X POST https://rentcast.mpp.paywithlocus.com/rentcast/sale-listings \
  -H "Content-Type: application/json" \
  -d '{"address":"<string>","city":"<string>","state":"<string>","zipCode":"<string>","latitude":"<number>","longitude":"<number>","radius":"<number>","propertyType":"<string>","bedrooms":"<string>","bathrooms":"<string>","squareFootage":"<string>","lotSize":"<string>","yearBuilt":"<string>","status":"<string>","price":"<string>","daysOld":"<string>","limit":"<number>","offset":"<number>","includeTotalCount":"<boolean>"}'
```

### Sale Listing by ID

Retrieve a single for-sale listing by its ID.

**Estimated cost:** $0.033

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | Yes | Sale listing ID |

```bash
curl -X POST https://rentcast.mpp.paywithlocus.com/rentcast/sale-listing-by-id \
  -H "Content-Type: application/json" \
  -d '{"id":"<string>"}'
```

### Rental Listings

Search long-term rental listings by location. Returns MLS data, agent info, pricing, and listing history.

**Estimated cost:** $0.033

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `address` | string | No | Full address (Street, City, State, Zip) |
| `city` | string | No | City name (case-sensitive) |
| `state` | string | No | 2-character state abbreviation |
| `zipCode` | string | No | 5-digit US zip code |
| `latitude` | number | No | Latitude for circular search |
| `longitude` | number | No | Longitude for circular search |
| `radius` | number | No | Search radius in miles (max 100) |
| `propertyType` | string | No | Single Family, Condo, Townhouse, Manufactured, Multi-Family, Apartment, Land (pipe-separated for multiple) |
| `bedrooms` | string | No | Number of bedrooms. Supports ranges (1:3) and multiples (1|3) |
| `bathrooms` | string | No | Number of bathrooms. Supports ranges and multiples |
| `squareFootage` | string | No | Living area in sq ft. Supports ranges/multiples |
| `lotSize` | string | No | Lot size in sq ft. Supports ranges/multiples |
| `yearBuilt` | string | No | Year built. Supports ranges/multiples |
| `status` | string | No | Active or Inactive (default: Active) |
| `price` | string | No | Rental price filter. Supports ranges/multiples |
| `daysOld` | string | No | Days on market (min 1). Supports ranges |
| `limit` | number | No | Max records to return (1-500, default 50) |
| `offset` | number | No | Pagination offset (default 0) |
| `includeTotalCount` | boolean | No | Include total count in X-Total-Count response header |

```bash
curl -X POST https://rentcast.mpp.paywithlocus.com/rentcast/rental-listings \
  -H "Content-Type: application/json" \
  -d '{"address":"<string>","city":"<string>","state":"<string>","zipCode":"<string>","latitude":"<number>","longitude":"<number>","radius":"<number>","propertyType":"<string>","bedrooms":"<string>","bathrooms":"<string>","squareFootage":"<string>","lotSize":"<string>","yearBuilt":"<string>","status":"<string>","price":"<string>","daysOld":"<string>","limit":"<number>","offset":"<number>","includeTotalCount":"<boolean>"}'
```

### Rental Listing by ID

Retrieve a single long-term rental listing by its ID.

**Estimated cost:** $0.033

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | Yes | Rental listing ID |

```bash
curl -X POST https://rentcast.mpp.paywithlocus.com/rentcast/rental-listing-by-id \
  -H "Content-Type: application/json" \
  -d '{"id":"<string>"}'
```

### Market Statistics

Aggregate sale and rental market data for a US zip code — median prices, days on market, inventory, and monthly history across 38K+ zip codes.

**Estimated cost:** $0.033

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `zipCode` | string | Yes | 5-digit US zip code |
| `dataType` | string | No | "Sale", "Rental", or "All" (default: All) |
| `historyRange` | number | No | Months of historical data to return (default: 12) |

```bash
curl -X POST https://rentcast.mpp.paywithlocus.com/rentcast/markets \
  -H "Content-Type: application/json" \
  -d '{"zipCode":"<string>","dataType":"<string>","historyRange":"<number>"}'
```
