exprealty.com APIexprealty.com ↗
Access eXp Realty property listings, price history, agent contacts, and location slugs via 3 structured endpoints. Supports pagination and full property details.
curl -X GET 'https://api.parse.bot/scraper/7d9916c3-50d1-44fd-95ec-a35040ab22b8/search_listings?page=1&slug=austin-tx-real-estate&query=Austin%2C+TX' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for property listings by location query or slug. Supports pagination. Either query or slug must be provided. When query is used, it first resolves to a slug via discover_location internally.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| slug | string | Area slug for the location (e.g. 'austin-tx-real-estate'). Can be obtained from discover_location results' url_path field. |
| query | string | Location query (e.g. 'Austin, TX'). Used to auto-discover a slug if slug is not provided. |
{
"type": "object",
"fields": {
"slug": "string, the resolved area slug used for the search",
"listings": "array of property listing summaries with id, address, price, bedrooms, bathrooms, slug, neighbourhood, listing_url_absolute_path, etc.",
"pagination": "object with page, size, count (total listings), and total (total pages)"
},
"sample": {
"data": {
"slug": "austin-tx-real-estate",
"listings": [
{
"id": 84760006,
"mls": "8580815",
"slug": "2308-rain-water-dr-austin-tx",
"price": 525000,
"address": "2308 Rain Water Dr, Austin, TX, 78734-2921",
"bedrooms": 3,
"bathrooms": 3,
"status_id": "Available",
"listing_type": "buy",
"neighbourhood": "Apache Shores Sec 02",
"property_type": "Single Family Residence",
"listing_url_absolute_path": "/austin-tx-real-estate/apache-shores-sec-02/2308-rain-water-dr"
}
],
"pagination": {
"page": 0,
"size": 26,
"count": 6172,
"total": 200
}
},
"status": "success"
}
}About the exprealty.com API
The eXp Realty API exposes 3 endpoints for querying property listings on exprealty.com, resolving location slugs, and retrieving full property records. The search_listings endpoint returns paginated summaries including address, price, bedrooms, bathrooms, and listing URLs. The get_property_details endpoint goes deeper with price history, agent contacts, appraisal data, and image URLs for any individual property.
Endpoints and Data Coverage
The API consists of three endpoints. discover_location accepts a free-text query like 'Austin, TX' and returns an array of prediction objects, each carrying type, id, and attributes fields including description, group, label, and url_path. These url_path values feed directly into search_listings as the slug parameter.
Searching Listings
search_listings accepts either a slug (e.g. austin-tx-real-estate) or a plain-text query that resolves to a slug automatically. Results are paginated via the page parameter. Each listing summary in the listings array includes id, address, price, bedrooms, bathrooms, slug, neighbourhood, and listing_url_absolute_path. The pagination object exposes page, size, count (total listings), and total (total pages), which lets you iterate through the full result set for any area.
Property Details
get_property_details accepts either a listing_url taken from listing_url_absolute_path in search results, or a combination of city_slug and property_slug. The response breaks into four sections: listing (full record including price, status, address, bedrooms, bathrooms, imageUrls, agentsInfo, description, and brokerage), history (array of price events with price, addedAt, soldPrice, soldAt, and standardStatus), appraisal (with appraisalResult and sellingRange), and stats (municipality and neighbourhood statistics).
- Build a property search tool filtered by city or neighbourhood using search_listings pagination.
- Track price history for individual listings by pulling the history array from get_property_details.
- Display agent contact information sourced from the agentsInfo field for lead generation workflows.
- Populate a listing detail page with imageUrls, description, and brokerage data from get_property_details.
- Generate market reports using municipality and neighbourhood stats from the stats object.
- Resolve ambiguous city name inputs to canonical area slugs via discover_location before running a search.
- Compare appraisalResult and sellingRange against list price to surface pricing anomalies.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.