RentCast platform500 trial credits · No credit card required

RentCast Listing Search API

Find RentCast listings with a supported location selector. Inspect source completeness and pagination in the response. Get structured JSON through one RealtyCrawl API key.

Send location, transaction in a JSON body. Optional source selectors must be supported by the selected operation. This operation requests source data through its enabled adapter. Preserve observation times, source warnings and any idempotent-replay metadata. Check live capabilities for accepted inputs and availability before running your request.

RentCast API

What can you do with the Listing Search API?

Find RentCast listings by location and transaction type.

Example request

curl --request POST 'https://realtycrawl.dev/v1/rentcast/listings/search' \
  --header "x-api-key: $REALTYCRAWL_API_KEY" \
  --header 'X-Max-Credits: 50' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: YOUR_IDEMPOTENCY_KEY' \
  --data '{"location":{"kind":"text","query":"5500 Grand Lake Dr, San Antonio, TX 78244","country":"US"},"transaction":"sale"}'

Parameters

Parameters for RentCast Listing Search API
ParameterRequiredDescription
locationYesA location selector supported by this source: text, postal code, bounding box, radius, polygon, or source region. Check capabilities before choosing one.
transactionYesTransaction type: sale, rent, lease, or auction. Support varies by source.
property_typesNoAn array of property types to include, where supported by the source.
statusNoAn array of listing statuses to include, where supported.
priceNoMinimum and/or maximum price, with a currency. Include a period when filtering recurring prices.
bedroomsNoMinimum and/or maximum bedroom count.
bathroomsNoMinimum and/or maximum bathroom count.
areaNoArea bounds with a unit (sqm, sqft, acre, or hectare) and measurement basis.
listed_sinceNoReturn listings from this date and time, in ISO 8601 format, where supported.
sortNoSort by source_order, price_asc, price_desc, or newest, where supported.
includeNoOptional data groups such as media, history, agent, agency, units, open_houses, or source_fields.
source_filtersNoSource-specific filter fields for the selected platform. Accepted keys and values vary by source.
limitNoRequested result count, from 1 to 100. The default for source searches is 10; source limits may also apply.
cursorNoThe continuation cursor from a preceding response, for sources that support pagination.
allow_partialNoAllow a partial result when supported. Defaults to false; inspect meta for completeness and warnings.
group_by_propertyNoRequest property grouping metadata. Defaults to false.

Send location, transaction in a JSON body. Optional source selectors must be supported by the selected operation.

Example response

What does the RentCast Listing Search API return?

The response includes an array of listing observations in data, plus source outcomes and request metadata. Explore the structure below before making a call.

Illustrative response
{
  "data": [
    {
      "id": "lst_rentcast_4b825dc642cb6eb9a060e54bf8d69288",
      "native_id": "f0ee2f1d3e7c3b4f8a2c1d0e9f8a7b6c-0",
      "url": null,
      "source": {
        "platform": "rentcast",
        "provider": "rentcast",
        "country": "US",
        "native_id": "f0ee2f1d3e7c3b4f8a2c1d0e9f8a7b6c-0",
        "url": null,
        "observed_at": "2026-01-01T12:00:00Z",
        "access_class": "licensed_feed"
      },
      "transaction": "sale",
      "status": "active",
      "source_status": "Active",
      "title": null,
      "property": {
        "id": null,
        "address": {
          "country": "US",
          "formatted": "5500 Grand Lake Dr, San Antonio, TX 78244",
          "line1": "5500 Grand Lake Dr",
          "unit": null,
          "city": "San Antonio",
          "region": "TX",
          "postal_code": "78244"
        },
        "property_type": "single_family",
        "bedrooms": 3,
        "rooms": null,
        "bathrooms": 2,
        "geometry": {
          "latitude": 29.4482,
          "longitude": -98.3205,
          "precision": "unknown",
          "crs": "EPSG:4326"
        },
        "areas": [
          {
            "value": 1878,
            "unit": "sqft",
            "basis": "living"
          }
        ],
        "layout": null,
        "year_built": 1988
      },
      "price": {
        "amount": "249999",
        "currency": "USD",
        "kind": "asking",
        "period": "one_time",
        "min": null,
        "max": null,
        "unit_code": null,
        "display_text": null
      },
      "media": [],
      "observed_at": "2026-01-01T12:00:00Z",
      "extensions": {
        "listing_type": "standard",
        "listed_date": "2025-12-15",
        "days_on_market": 21,
        "mls_name": "SABOR",
        "mls_number": "1782341",
        "contacts_status": "provider agent/office contacts are collected but not returned in this binding",
        "media_status": "provider listing photos are not returned in this binding"
      }
    }
  ],
  "meta": {
    "request_id": "example_request",
    "schema_version": "1.0.0",
    "generated_at": "2026-01-01T12:00:00Z",
    "completeness": "unknown",
    "sources": [
      {
        "platform": "rentcast",
        "status": "success"
      }
    ]
  }
}

Schema example with placeholder values; not a live source result. Actual fields, values, and completeness vary by source and request.

API details

How does the RentCast Listing Search API work?

Send a POST request with your API key and accepted inputs. RealtyCrawl returns structured JSON and preserves the source context for your application.

Method

POST

Response

JSON · CSV · NDJSON

POST /v1/rentcast/listings/search
Why RealtyCrawl

Why use RealtyCrawl for RentCast Listing Search?

Keep source collection behind a shared interface so you can focus on the product you’re building.

Developer first

How do you bring real estate data into your app?

Use familiar HTTP requests, inspect a common schema, and connect the results to the tools your team already uses.

One key, many sources

Use the same credential across supported operations and check capabilities for each source.

Property data with context

Keep currencies, area units, source identifiers, and observation times with your results.

Your language, your workflow

Call the API with cURL, Python, TypeScript, or any backend that can send an HTTP request.

import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'zillow'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=zillow'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=zillow'
import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'redfin'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=redfin'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=redfin'
import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'realtor'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=realtor'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=realtor'
import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'rightmove'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=rightmove'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=rightmove'
import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'idealista'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=idealista'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=idealista'
Capability excerpt · illustrative
{
  "platform": "zillow",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "US"
  ],
  "execution": "sync"
}
{
  "platform": "redfin",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "US"
  ],
  "execution": "sync"
}
{
  "platform": "realtor",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "US"
  ],
  "execution": "sync"
}
{
  "platform": "rightmove",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "GB"
  ],
  "execution": "sync"
}
{
  "platform": "idealista",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "ES"
  ],
  "execution": "sync"
}
Browse the platform catalog
FAQ

Have a question?
We got answers

Find answers to common questions about RentCast requests, responses, and credits.

Contact us
How can I try the RentCast Listing Search API?

Create an account for 500 trial credits, check live capabilities for RentCast, and use the example request above with your API key. This operation lists 50 credits per successful call.

What does the Listing Search API return?

The JSON response contains an array of listing observations in data. The meta object carries request diagnostics and source outcomes. CSV/NDJSON exports contain data records with request and credit metadata in headers.

Where do I put the request parameters?

Send location, transaction in a JSON body. Optional source selectors must be supported by the selected operation.

Is this endpoint available for every market?

Availability is operation-specific. Check /v1/meta/capabilities for the platform’s live status, accepted selectors, and markets. Unavailable requests are not charged.

Is this an official RentCast endpoint?

RealtyCrawl is an independent real estate data API and is not affiliated with RentCast.

Ready to use RentCast Listing Search?

Get your API key and start building a source-linked property workflow.

Get an API key

50 credits per successful call · Failed calls are refunded