Discover/eXp Realty API
live

eXp Realty APIexprealty.com

Access eXp Realty property listings, price history, agent contacts, and location slugs via 3 structured endpoints. Supports pagination and full property details.

Endpoint health
verified 2d ago
search_listings
discover_location
get_property_details
3/3 passing latest checkself-healing
Endpoints
3
Updated
26d ago

What is the eXp Realty 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.

Try it
Page number for pagination.
Area slug for the location (e.g. 'austin-tx-real-estate'). Can be obtained from discover_location results' url_path field.
Location query (e.g. 'Austin, TX'). Used to auto-discover a slug if slug is not provided.
api.parse.bot/scraper/7d9916c3-50d1-44fd-95ec-a35040ab22b8/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
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'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace exprealty-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

from parse_apis.exp_realty_api import ExpRealty, Location, Listing, PropertyDetail, PropertyListing, Agent, PriceHistory

realty = ExpRealty()

# Discover locations matching a query
for location in realty.locations.search(query="Austin, TX"):
    print(location.id, location.type, location.url_path)

# Search property listings by slug
for listing in realty.listings.search(slug="austin-tx-real-estate", limit=5):
    print(listing.address, listing.price, listing.bedrooms, listing.bathrooms)

    # Get full property details for each listing
    detail = listing.details.get()
    prop = detail.listing
    print(prop.price, prop.status, prop.brokerage)

    for agent in prop.agents_info:
        print(agent.name, agent.phone)

    for entry in detail.history:
        print(entry.added_at, entry.price, entry.sold_price)
All endpoints · 3 totalmissing one? ·

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. Returns listing summaries with address, price, bedrooms, bathrooms, and navigation paths for detail lookups.

Input
ParamTypeDescription
pageintegerPage number for pagination.
slugstringArea slug for the location (e.g. 'austin-tx-real-estate'). Can be obtained from discover_location results' url_path field.
querystringLocation query (e.g. 'Austin, TX'). Used to auto-discover a slug if slug is not provided.
Response
{
  "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",
    "pagination": "object with page, size, count (total listings), and total (total pages)"
  },
  "sample": {
    "data": {
      "slug": "austin-tx-real-estate",
      "listings": [
        {
          "id": 82137070,
          "slug": "1700-buffalo-gap-rd-austin-tx",
          "price": 2700000,
          "address": "1700 Buffalo Gap Rd, Austin, TX, 78734-3520",
          "bedrooms": 3,
          "bathrooms": 3,
          "neighbourhood": "N/A",
          "listing_url_absolute_path": "/austin-tx-real-estate/na/1700-buffalo-gap-rd"
        }
      ],
      "pagination": {
        "page": 0,
        "size": 26,
        "count": 6404,
        "total": 200
      }
    },
    "status": "success"
  }
}

About the eXp Realty API

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).

Reliability & maintenanceVerified

The eXp Realty API is a managed, monitored endpoint for exprealty.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when exprealty.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official exprealty.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • 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.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does eXp Realty have an official public developer API?+
eXp Realty does not publish a public developer API or developer portal for external integrations. This Parse API provides structured access to the listing and location data available on exprealty.com.
What does the history array in get_property_details contain?+
Each entry in the history array includes price, addedAt (the date the listing was added at that price), soldPrice, soldAt, and standardStatus. This gives you a chronological record of price changes and sale events for a specific property.
Can I search listings by property type, price range, or number of bedrooms?+
The search_listings endpoint filters by location slug or query and supports pagination, but does not currently accept parameters for property type, price range, bedrooms, or other listing attributes. You can fork this API on Parse and revise it to add those filter parameters.
Is rental listing data available through this API?+
The API covers for-sale property listings on exprealty.com. Rental-specific listings are not currently exposed. You can fork the API on Parse and revise it to add an endpoint targeting rental inventory if that data is available on the site.
How does pagination work in search_listings?+
Pass the page integer parameter to step through results. The pagination object in the response returns the current page, the page size, the total count of listings for the area, and total pages, so you can calculate how many requests are needed to retrieve all results for a given location slug.
Page content last updated . Spec covers 3 endpoints from exprealty.com.
Related APIs in Real EstateSee all →
realtor.com API
Search millions of real estate listings on Realtor.com, view detailed property information, find qualified agents in your area, and access market analytics to understand pricing trends. Get location suggestions and property insights all in one place to help you make informed decisions about buying, selling, or investing in real estate.
propiedades.com API
Search and browse real estate listings from Mexico's Propiedades.com, view detailed property information including images and descriptions, and use location autocomplete to find homes in your desired area. Access comprehensive listing data to compare properties and make informed real estate decisions.
realtor.ca API
Search Canadian real estate listings and retrieve detailed property information including photos, prices, descriptions, and agent details from REALTOR.ca. Browse available properties with comprehensive listing data across Canada.
dotproperty.com.ph API
Search for residential properties for rent or sale on Dot Property Philippines and retrieve detailed information like pricing, specifications, and agent details from individual listings. Access comprehensive property data to compare options and make informed real estate decisions.
rew.ca API
Search rental and for-sale properties across Canada, get detailed listing information, explore neighbourhoods, and find real estate agents in your area. Access property details, agent profiles, and neighbourhood data all in one place.
privateproperty.co.za API
Search and browse property listings for sale and rent across South Africa by location, price, features, and size, then view detailed information about specific properties. Get location suggestions to help narrow down your search area.
realestate.com.au API
Search and retrieve property listing data from realestate.com.au, including listings for sale and rent, detailed property information, and nearby schools for any location across Australia.
housing.com API
Search and retrieve real estate listings on Housing.com. Browse properties for sale, rent, plots, and commercial spaces across major Indian cities with filtering by locality and property type.