Redfin has no public API — its internal endpoints are undocumented and using them violates Redfin's Terms of Service. The three legitimate alternatives are: (1) ATTOM Data Solutions REST API for property data with instant self-serve access, (2) Zillow via RapidAPI marketplace for listings and home estimates, and (3) Redfin's free downloadable market CSVs for aggregate market stats. ATTOM is the recommended default for Bubble projects: simple API key authentication, REST endpoints, and a developer portal with no approval wait.
| Fact | Value |
|---|---|
| Tool | Redfin |
| Category | Real Estate & Industry |
| Method | Bubble API Connector |
| Difficulty | Beginner |
| Time required | 1–3 hours |
| Last updated | July 2026 |
Building a Real Estate Data App in Bubble Without Redfin's (Non-Existent) API
Redfin is one of the most popular real estate websites in the United States — its clean design, agent commission model, and data tools have made it a go-to for residential property buyers and sellers. It is natural for Bubble developers to look for a 'Redfin API' to power their real estate applications. The honest answer: there is not one.
Redfin does not offer a public API for external developers. The company uses internal API endpoints that power its own website and mobile apps, but these are undocumented, subject to change without notice, and explicitly prohibited for external use by Redfin's Terms of Service. Attempting to access Redfin's internal endpoints — discoverable through browser DevTools — risks IP blocking, legal action from Redfin's legal team, and data that will break silently when Redfin updates its internal architecture. This is not a viable path for a production Bubble application.
The good news: what most Bubble developers actually want from 'Redfin data' is one of a few things — residential property details (address, beds, baths, square footage, year built), sale history and comparable transactions, estimated home values (AVM), or aggregate market statistics (median sale price by zip code, days on market, price trends). All of these are available through legitimate alternatives.
ATTOM Data Solutions (attomdata.com) is the recommended primary alternative for Bubble projects. It provides a REST API covering US residential and commercial property data — ownership records, AVM estimates, sale history, demographic data, school data, and hazard risk scores — with a self-serve developer portal, instant API key generation, and per-call or subscription pricing. Authentication is a single X-APIKey header marked Private in Bubble's API Connector.
Zillow via the RapidAPI marketplace is a second option that provides residential listing data and Zestimate values through a third-party RapidAPI provider. It requires two headers (X-RapidAPI-Key and X-RapidAPI-Host) and has more variable data freshness than ATTOM's licensed dataset.
For aggregate market statistics (median prices by zip, inventory counts, days on market trends), Redfin itself publishes free downloadable CSV files at redfin.com/news/data-center. These are not an API — they are manually exported data files updated on a schedule — but they can be imported into Bubble's database via an external PostgreSQL database for use in market trend charts and dashboards.
This guide builds the ATTOM Data integration as the primary path, with the RapidAPI Zillow configuration as an alternative, and notes on the CSV data path where relevant.
Integration method
ATTOM Data REST API (primary recommendation) or RapidAPI Zillow as alternatives to Redfin's absent public API; credentials in Private shared headers; results cached in Bubble DB with expires_at.
Prerequisites
- For ATTOM Data path: an ATTOM Data account from attomdata.com with API key (self-serve, instant access)
- For RapidAPI Zillow path: a RapidAPI account at rapidapi.com with subscription to a Realtor.com or Zillow API provider
- For CSV path: a spreadsheet tool to clean the Redfin CSV exports and an external PostgreSQL database (Supabase works) to host the data
- API Connector plugin installed in your Bubble app (Plugins → Add plugins → search 'API Connector' by Bubble)
Step-by-step guide
Understand Why Redfin Has No Public API and Choose Your Data Source
Before configuring anything in Bubble, it is worth being clear about the landscape so you make the right data source choice for your use case. Redfin's internal API endpoints (visible in browser DevTools when browsing redfin.com) are explicitly prohibited for external use by Redfin's Terms of Service, Section 4: 'You agree not to copy, scrape, crawl, or otherwise access data from the Redfin Services through automated means.' Bubble applications that attempt to use these internal endpoints risk IP blocking (your Bubble app's server IPs get banned, breaking the integration for all users) and potential legal action. The data shapes also change without notice — an internal endpoint that works today may return a different structure or 404 tomorrow. Choose your legitimate data path based on your use case: **ATTOM Data Solutions** (recommended for most Bubble projects): self-serve at attomdata.com. Covers property detail, ownership, sale history, AVM estimates, neighborhood stats, school data, hazard risk. Per-call or subscription pricing. REST API with X-APIKey header. Best for investment research apps, agent tools, and property detail lookups. **RapidAPI Zillow providers**: available at rapidapi.com — search 'Zillow'. Multiple third-party providers offer Zillow-style listing data and Zestimate values. Free tiers with low call limits; paid plans for production. Data freshness and accuracy vary by provider — less consistent than ATTOM's licensed dataset. Best for listing search and home value estimates. **Redfin CSV exports** (redfin.com/news/data-center): free downloadable aggregate market data updated regularly — median sale prices, inventory, days on market by geography. Not an API; requires an external database step. Best for market trend charts where weekly or monthly refresh is sufficient. For this guide, the primary path is ATTOM Data. RapidAPI Zillow configuration is covered as an alternative.
Pro tip: If your Bubble app needs both property detail (ATTOM) and active listing search (RapidAPI Zillow), configure both as separate named APIs in the API Connector. Name them 'Property Data - ATTOM' and 'Property Data - Zillow' and call the appropriate one from each workflow. This keeps the integrations independent and swappable.
Expected result: You have chosen your data source (ATTOM Data recommended), created an account, and have your API key ready. You understand the legitimate alternative paths and the reasons not to use Redfin's internal endpoints.
Configure the ATTOM Data API Connector
Sign up at attomdata.com to create a developer account. After email verification, navigate to the API Keys section of the ATTOM dashboard and generate an API key. The key is available immediately — no approval wait. In your Bubble editor, go to Plugins → API Connector → Add another API. Name it 'ATTOM Property Data'. Configure: - Set the base URL: https://api.gateway.attomdata.com/propertyapi/v1.0.0 - Add a shared header: Key = X-APIKey, Value = [your ATTOM API key], check the 'Private' checkbox - Add a second shared header: Key = Accept, Value = application/json (static, no Private needed) Add your first call: 'Property Address Search'. Method: GET. URL path: /property/address. Add query parameters: - address1: [dynamic] — the street address (e.g., '123 Main St') - address2: [dynamic] — city and state (e.g., 'San Francisco, CA') - postalcode: [dynamic] — zip code For the Initialize call, use a real US address that you know exists. ATTOM's property endpoint works best with specific, complete addresses. A fully-formed address like '100 First St, San Francisco, CA 94105' will return a clean response for field detection. Click Initialize call. Bubble will hit ATTOM's live API and detect the response field structure. ATTOM's response nests the property object: property → summary (proptype, yearbuilt), property → building (beds, baths, size.bldgsize), property → address (line1, city, state, postal1). Bubble detects the nested paths automatically during initialization.
1// ATTOM Data API Connector configuration2{3 "method": "GET",4 "url": "https://api.gateway.attomdata.com/propertyapi/v1.0.0/property/address",5 "headers": {6 "X-APIKey": "<your_attom_api_key_private>",7 "Accept": "application/json"8 },9 "params": {10 "address1": "<dynamic_street_address>",11 "address2": "<dynamic_city_state>",12 "postalcode": "<dynamic_zip_code>"13 }14}1516// Key ATTOM endpoints:17// Property detail: /property/detail?attomid=<id>18// Comparable sales: /sale/snapshot?postalcode=<zip>&radius=<miles>19// AVM (value): /attomavm/detail?address1=<addr>&address2=<city_state>Pro tip: ATTOM returns an 'attomid' (their internal property identifier) in the address search response. Store this in your PropertyCache data type — ATTOM's detail and AVM endpoints accept attomid for much faster lookups than re-running full address searches. It is also more stable than the address string if street names change.
Expected result: The ATTOM API Connector's Initialize call succeeds. Bubble detects nested response fields including property[0].summary.proptype, property[0].building.rooms.beds, property[0].building.size.bldgsize, and property[0].assessment.assessed.assdttlvalue.
Implement the PropertyCache Data Type with Expires_at
ATTOM Data charges per API call. Searching the same address repeatedly (which happens naturally in a property research tool as users look up common properties multiple times) incurs redundant charges without any data benefit — property details do not change between searches. A PropertyCache data type with an expiry timestamp prevents redundant calls. Create a Bubble data type called PropertyCache with these fields: - attom_id (text) — ATTOM's internal property ID, used as cache key - address_line1 (text) - address_city (text) - address_state (text) - address_zip (text) - property_type (text) - beds (number) - baths (number) - building_sqft (number) - year_built (number) - last_sale_date (date) - last_sale_price (number) - estimated_value (number) - cache_expires_at (date) - search_address_hash (text) — a normalized version of the searched address for cache lookup In your property search workflow, add a cache check as the first step: 1. Normalize the input address: strip extra spaces, lowercase. Store as a text expression in the workflow. 2. Do a search for PropertyCache where search_address_hash = [normalized address] AND cache_expires_at > Current date/time. 3. If count > 0: use the cached PropertyCache record — skip the ATTOM API call entirely. 4. If count = 0: call ATTOM's Property Address Search API, then create a new PropertyCache record from the response with cache_expires_at = Current date/time + 1 hour. For comparable sales (less frequently searched, more expensive per call): set cache_expires_at = Current date/time + 6 hours. Sale history changes slowly — new comparable transactions are not added minute-to-minute. For AVM estimates (home value estimates): set cache_expires_at = Current date/time + 24 hours. AVM values are recalculated by ATTOM daily at most.
1// PropertyCache data type structure2{3 "attom_id": "12345678",4 "address_line1": "123 main st",5 "address_city": "san francisco",6 "address_state": "ca",7 "address_zip": "94105",8 "property_type": "Single Family Residence",9 "beds": 3,10 "baths": 2,11 "building_sqft": 1850,12 "year_built": 1992,13 "last_sale_date": "2023-06-15",14 "last_sale_price": 1250000,15 "estimated_value": 1380000,16 "cache_expires_at": "2026-07-10T11:00:00Z",17 "search_address_hash": "123 main st san francisco ca 94105"18}1920// Cache check workflow logic:21// Step 1: Do a search for PropertyCache22// search_address_hash = [normalized_input]23// cache_expires_at > Current date/time24// :count > 0 → use cached record25// :count = 0 → call ATTOM APIPro tip: Create a normalize_address expression helper in Bubble by storing the address as 'lowercased + trimmed' text. Searching for 'Main St' vs ' main st ' should hit the same cache entry — normalize before generating the cache key to avoid false cache misses on the same physical property.
Expected result: The PropertyCache data type exists in Bubble's database with all required fields. The property search workflow checks cache first and only calls ATTOM's API when no fresh cached record exists for the searched address.
Build the Property Search Workflow and Results Display
With the API Connector and cache layer configured, build the user-facing property search experience. Add a page in your Bubble app with: - A text input for street address (placeholder: '123 Main St') - A text input for city and state (placeholder: 'San Francisco, CA') - A text input for zip code (placeholder: '94105') - A 'Search' button - A results section (conditionally visible when results exist) The Search button workflow: 1. Normalize the address (lowercase, trim whitespace) and store in a custom state (search_hash). 2. Do a search for PropertyCache where search_address_hash = search_hash AND cache_expires_at > Current date/time. 3. If result count > 0: set a custom state 'current_property' to the first PropertyCache result. Show the results section. 4. If result count = 0: call ATTOM 'Property Address Search' with the input values. On success: create PropertyCache record from response fields (map ATTOM response paths to PropertyCache fields). Set current_property state. Show results. 5. If ATTOM call returns error (no property found, invalid address): show an alert 'Property not found — try a more specific address'. The results section elements: - Property address display (combined address_line1 + city + state + zip) - Property specifications: beds, baths, building_sqft formatted as 'X,XXX sq ft', year_built - Last sale: last_sale_date formatted as 'Month Year', last_sale_price formatted as '$X,XXX,XXX' - Estimated value: estimated_value formatted as '$X,XXX,XXX' - A 'View Comparables' button that triggers the comparable sales lookup for the current property's zip code For the comparable sales display: a separate Repeating Group (hidden until 'View Comparables' is clicked) showing comparable recent sales from ATTOM's /sale/snapshot endpoint filtered by the current property's zip code. Display sale date, sale price, beds, baths, sqft, and calculated price-per-sqft.
1// ATTOM comparable sales call2{3 "method": "GET",4 "url": "https://api.gateway.attomdata.com/propertyapi/v1.0.0/sale/snapshot",5 "headers": {6 "X-APIKey": "<shared_private>",7 "Accept": "application/json"8 },9 "params": {10 "postalcode": "<dynamic_zip_code>",11 "startsalesearchdate": "<dynamic_start_date>",12 "endsalesearchdate": "<dynamic_end_date>",13 "propertytype": "SFR",14 "minsqft": "<dynamic_min_sqft>",15 "maxsqft": "<dynamic_max_sqft>"16 }17}Pro tip: Add a 'Refine comparables' section: a ± 20% size range filter automatically pre-populated based on the searched property's building_sqft. This gives users better-quality comparables immediately without manual adjustment — professional appraisers typically apply a 20% gross living area adjustment threshold for comparables.
Expected result: The property search form returns property details for any US address, showing specs, last sale, and estimated value. Cache hits return results instantly without ATTOM API calls. The comparables view loads matching recent sales in the same zip code sorted by recency.
Configure RapidAPI Zillow as an Alternative (Optional)
If your use case requires active listing search (properties currently for sale, with listing price, listing agent, days on market) rather than just property detail and sale history, RapidAPI's Zillow providers offer this data. ATTOM focuses on historical and assessment data; RapidAPI Zillow providers include active MLS-sourced listing data. Go to rapidapi.com and search for 'Zillow' in the marketplace. Several third-party providers offer Zillow-style listing data. The most common is named 'Zillow-com1' or similar. Subscribe to a plan — free tiers are available but typically limited to around 10 requests/month, which is only sufficient for testing. A paid plan (verify current pricing at rapidapi.com) is needed for any real user traffic. After subscribing, copy your X-RapidAPI-Key from the RapidAPI dashboard. In Bubble's API Connector, add another API named 'RapidAPI Zillow'. Configure shared headers: - Key: X-RapidAPI-Key, Value: [your RapidAPI key], check Private - Key: X-RapidAPI-Host, Value: zillow-com1.p.rapidapi.com (static — this must match the provider you subscribed to), no Private needed Base URL: https://zillow-com1.p.rapidapi.com Add a 'Property Search' call: GET /propertyExtendedSearch with parameters: - location: [dynamic] — city/state or zip code string - price_min: [dynamic] - price_max: [dynamic] - beds_min: [dynamic] - property_type: [dynamic] — SingleFamily, MultiFamily, Townhome, Condo Initialize with a real location string (e.g., 'Seattle, WA'). RapidAPI Zillow responses nest listings under the 'props' array — each item has zpid (Zillow's property ID), address, price, beds, baths, livingArea, and imgSrc (listing photo URL). Note: RapidAPI providers are third-party operators, not Zillow directly. Data freshness, accuracy, and API availability depend on the provider's maintenance. For investment-grade applications where data reliability matters, ATTOM's licensed dataset is more consistent than any RapidAPI provider.
1// RapidAPI Zillow connector configuration2{3 "method": "GET",4 "url": "https://zillow-com1.p.rapidapi.com/propertyExtendedSearch",5 "headers": {6 "X-RapidAPI-Key": "<your_rapidapi_key_private>",7 "X-RapidAPI-Host": "zillow-com1.p.rapidapi.com"8 },9 "params": {10 "location": "<dynamic_location>",11 "price_min": "<dynamic_min_price>",12 "price_max": "<dynamic_max_price>",13 "beds_min": "<dynamic_min_beds>",14 "property_type": "<dynamic_type>"15 }16}1718// RapidAPI Zillow property detail call19{20 "method": "GET",21 "url": "https://zillow-com1.p.rapidapi.com/property",22 "params": {23 "zpid": "<dynamic_zillow_property_id>"24 }25}Pro tip: Cache RapidAPI Zillow listing results in the same PropertyCache data type (add a source field: 'ATTOM' or 'Zillow' to track data provenance). The free RapidAPI tier (~10 requests/month) will exhaust in your first testing session — upgrade to a paid plan before inviting any users to test.
Expected result: A second API Connector named 'RapidAPI Zillow' is configured with Private X-RapidAPI-Key header and initialized successfully. A listing search call returns active property listings with price, beds, baths, and listing photo URLs.
Import Redfin Market CSV Data for Market Trend Charts (Optional)
For aggregate market statistics — median sale price by zip code, days on market trends, inventory counts, price-per-sqft over time — Redfin publishes free downloadable CSV files at redfin.com/news/data-center. These are not an API but they contain high-quality market trend data that Redfin itself uses for its Market Insights feature. Navigate to redfin.com/news/data-center. You will find downloadable CSV files for national, metro, county, zip code, and neighborhood level data. The zip code file contains columns: period_begin, period_end, region_type, region, zip_code, median_sale_price, homes_sold, pending_sales, new_listings, median_list_price, median_ppsf, months_of_supply, days_on_market. The workflow for using this data in Bubble: 1. Download the zip-code-level CSV from Redfin's data center. 2. Import it into an external PostgreSQL database (Supabase's free tier works perfectly for this). Create a table 'redfin_market_data' with columns matching the CSV headers. 3. Build a simple REST API endpoint on Supabase (or another backend) that accepts a zip_code parameter and returns filtered rows from the table. 4. In Bubble's API Connector, configure a new API pointing to your Supabase REST endpoint. 5. Build a market trends chart page in Bubble using Recharts or ApexCharts plugin, driven by the Supabase query results. Redfin updates these CSV files on a weekly or monthly basis. Set a reminder to re-download and re-import to your Supabase database on the same schedule — or set up a simple automation (n8n, Zapier, or a Supabase Edge Function) to fetch and import the updated CSV automatically. This data is freely available with no API key or rate limits — Redfin's terms of service for their public data exports are more permissive than for scraping their website, but verify current terms at redfin.com/about/legal.
1// Supabase REST query for Redfin market data2// After importing Redfin CSV to Supabase 'redfin_market_data' table:34// Bubble API Connector call:5{6 "method": "GET",7 "url": "https://[your-project].supabase.co/rest/v1/redfin_market_data",8 "headers": {9 "apikey": "<your_supabase_anon_key_private>",10 "Authorization": "Bearer <your_supabase_anon_key_private>"11 },12 "params": {13 "zip_code": "eq.<dynamic_zip>",14 "order": "period_begin.desc",15 "limit": "24"16 }17}Pro tip: When importing Redfin's CSV to Supabase, create an index on the zip_code and period_begin columns. With hundreds of thousands of rows in the national dataset, unindexed queries will be slow. A simple CREATE INDEX idx_zip_period ON redfin_market_data (zip_code, period_begin DESC) run once in Supabase's SQL editor will make zip-filtered queries near-instant.
Expected result: A market trends chart page in Bubble shows median sale price, days on market, and inventory trends for a searched zip code, sourced from Redfin's CSV data loaded into Supabase and queried via the API Connector.
Common use cases
Property Detail Lookup Tool
Build a property research tool where users enter a street address and receive full property details — beds, baths, square footage, year built, last sale price and date, estimated current value, and school district — pulled from ATTOM Data via Bubble's API Connector and cached in Bubble's database for subsequent searches of the same address.
Copy this prompt to try it in Bubble
Comparable Sales Research App
Create a comparables dashboard where real estate agents or investors enter a subject property and receive a list of comparable recent sales within a zip code or radius — transaction date, sale price, price per square foot, property type — pulled from ATTOM's sale snapshot endpoint and displayed in a sortable Repeating Group.
Copy this prompt to try it in Bubble
Market Trend Dashboard
Build a neighborhood market analytics dashboard using Redfin's free downloadable CSV data imported into Bubble's database — showing median sale price trends by zip code, days on market, inventory counts, and price-per-square-foot trends over rolling 12-month periods in a Recharts-powered visualization.
Copy this prompt to try it in Bubble
Troubleshooting
ATTOM API returns 'API key is invalid' or 401 Unauthorized
Cause: The X-APIKey header value is incorrect, or the API key has been revoked in the ATTOM developer portal. ATTOM's free trial keys have limited call quotas and expire.
Solution: Go to attomdata.com and log into your developer account. Navigate to the API Keys section and verify your key is active and within its call quota. Copy the key exactly (no leading/trailing spaces). In Bubble's API Connector, update the X-APIKey shared header value with the verified key. If your free trial has expired, upgrade to a paid ATTOM plan. Re-initialize the affected API Connector calls after updating the key.
ATTOM property address search returns an empty property array for real addresses
Cause: ATTOM's property dataset covers US properties but not all addresses. Rural properties, very new constructions, or addresses with non-standard formatting may not be found. The address2 field (city, state) must be formatted correctly.
Solution: Verify the address format: address1 should be the street number and name only ('123 Main St', not '123 Main Street Apt 4B'). address2 should be 'City, State' format ('Austin, TX'). Include postalcode as a third parameter — ATTOM uses it to disambiguate cities with identical names in multiple states. For apartment addresses, omit the unit number from address1. If the address still returns empty, the property may simply not be in ATTOM's database (common for very rural addresses).
RapidAPI Zillow calls stop working after a few test requests
Cause: The free RapidAPI tier for Zillow providers typically allows around 10 requests per month. Normal testing exhausts this within minutes.
Solution: Upgrade to a paid RapidAPI plan for the Zillow provider you subscribed to. Navigate to rapidapi.com → your subscriptions → select a paid tier for the Zillow API. Free tiers are suitable only for one-time API Connector initialization and a single UI prototype run — not for any real user testing.
'There was an issue setting up your call' when initializing ATTOM or RapidAPI calls
Cause: The Initialize call makes a live request to the API. It fails if credentials are missing/incorrect in the shared headers, if required parameters lack default test values, or if the API endpoint path is incorrect.
Solution: Before clicking Initialize: verify shared headers are configured with real credential values (not placeholder text). Add default values for all dynamic parameters — for ATTOM, use a real US address; for RapidAPI Zillow, use a real US city (e.g., 'Miami, FL'). Click Initialize with these real test values populated. If it still fails, check Bubble's Logs tab → API Logs for the raw response body — ATTOM and RapidAPI both return descriptive error messages in the response that pinpoint the issue.
PropertyCache entries accumulate and the database grows very large
Cause: PropertyCache records with expires_at in the past are not deleted — they accumulate indefinitely as users search different addresses.
Solution: Add a cleanup Backend Workflow that runs nightly: 'Delete a list of PropertyCache where cache_expires_at < Current date/time'. Schedule this as a recurring Backend Workflow (requires paid Bubble plan, Starter $32/month or above). Alternatively, set a reasonable database size monitoring alert in your Bubble plan settings and review cache TTLs — extending from 1 hour to 6 hours for property detail reduces write frequency without meaningfully degrading data freshness.
Best practices
- Never attempt to use Redfin's internal undocumented API endpoints — they violate Redfin's Terms of Service, may change without notice, and risk IP blocking of your Bubble app's server infrastructure. Use ATTOM Data (recommended), RapidAPI Zillow, or Redfin's official CSV downloads instead.
- Implement the PropertyCache data type with expires_at from day one, not as an afterthought. ATTOM charges per API call, and residential property search apps commonly receive repeated lookups for the same popular addresses. A 1-hour cache for property detail and 6-hour cache for comparables dramatically reduces API costs without degrading user experience.
- Mark all API credentials as Private in the Bubble API Connector: X-APIKey for ATTOM, X-RapidAPI-Key for RapidAPI Zillow. Bubble proxies all calls server-side, but Private prevents credentials from appearing in Bubble's editor logs and provides defense-in-depth.
- Use ATTOM's attomid (their stable internal property identifier) as your PropertyCache lookup key rather than the address string. The attomid is stable across address reformatting (St vs Street, variations in apartment notation) and is faster for detail endpoint lookups than full address re-searches.
- Add a visible data attribution note on any page displaying ATTOM or RapidAPI data: 'Property data provided by ATTOM Data Solutions' or 'Listing data via Zillow/RapidAPI'. This is typically required by data provider terms of service and sets appropriate user expectations about data source and freshness.
- For the RapidAPI Zillow path, test your integration against multiple provider options on RapidAPI marketplace rather than committing to the first one. Different providers have different data freshness, accuracy, and uptime records. Check provider ratings and reviews before building your Bubble integration around a specific RapidAPI Zillow provider.
- Configure a cleanup Backend Workflow to delete expired PropertyCache records nightly. Without cleanup, Bubble's database accumulates stale records indefinitely. The nightly delete should target all PropertyCache records where cache_expires_at < Current date/time — keeping the database lean reduces Bubble's database row costs on higher-tier plans.
Alternatives
CoStar provides commercial real estate market data (leases, comparables, analytics) requiring enterprise approval — the commercial counterpart to the residential property data covered by ATTOM and RapidAPI Zillow. If your Bubble app targets CRE brokers rather than residential buyers, CoStar is the appropriate enterprise data path.
Buildium is a property management operations platform (tenant tracking, rent collection, maintenance) not a property data provider. If you need to manage occupied properties and tenants rather than search for properties to buy or analyze market trends, Buildium is the right integration with self-serve API access.
Realtor.com via RapidAPI marketplace provides an alternative residential listing data source to Zillow — same configuration pattern (X-RapidAPI-Key + X-RapidAPI-Host headers) but different listing inventory. Some markets have better coverage on Realtor.com vs Zillow — worth comparing both providers for your target geography.
Frequently asked questions
Is there truly no Redfin API at all?
Correct — Redfin does not offer a public API for external developers as of 2026. Redfin's website uses internal API calls that are visible in browser DevTools but are explicitly prohibited for external use by their Terms of Service. The legitimate alternatives are ATTOM Data (licensed property data API, self-serve), RapidAPI Zillow providers (listing data via marketplace), and Redfin's own free market CSV downloads (aggregate stats only, no API).
How does ATTOM Data compare to Redfin's data in terms of coverage and accuracy?
ATTOM Data is a licensed data provider that aggregates property records from county assessor offices, deed records, and MLS data across the United States. Its property detail and sale history coverage is generally comprehensive for properties that have been sold or assessed — which covers the vast majority of US residential properties. ATTOM's active listing data is less comprehensive than Redfin or Zillow's MLS-sourced listing data. For historical research (sale history, AVM values, ownership), ATTOM is authoritative. For current active listings, RapidAPI Zillow providers are more complete.
Can I use this integration on Bubble's free plan?
The API Connector calls to ATTOM and RapidAPI work on Bubble's free plan. The only limitation is scheduled cache cleanup: a nightly Backend Workflow to delete expired PropertyCache records requires a paid Bubble plan (Starter $32/month or above). On the free plan, PropertyCache records accumulate indefinitely — you can manually delete them from the Data tab periodically, but automated cleanup requires a paid plan.
What about scraping Redfin's website instead of using their internal API?
Web scraping Redfin is prohibited by their Terms of Service and robots.txt directives. Beyond the legal risk, Redfin employs anti-scraping measures including rate limiting, CAPTCHA challenges, and JavaScript rendering requirements that make reliable scraping technically difficult. Most importantly, scraped data is inherently brittle — Redfin's UI changes break scrapers without notice. Use ATTOM Data or RapidAPI marketplace providers for reliable, legally sound property data in your Bubble app.
How fresh is the data from ATTOM? Will it show a house listed for sale yesterday?
ATTOM's strength is historical data (sale records, ownership, assessment data) — not active listing feeds. ATTOM does provide some listing data, but it typically has a lag of days to weeks versus real-time MLS feeds that power Redfin and Zillow. For a Bubble app that needs to show current for-sale listings with near-real-time accuracy, supplement ATTOM with a RapidAPI Zillow provider for listing data. Use ATTOM for property detail, sale history, and AVM values — use RapidAPI Zillow for active listing inventory.
Is Redfin's free CSV data legal to use in my Bubble app?
Redfin publishes aggregate market statistics at redfin.com/news/data-center as a public resource. These are downloadable CSV files, not scraped data. Review Redfin's current terms of service for data downloads to confirm permitted use cases — in general, internal business research and non-commercial applications are typically covered, while redistributing the data as part of a competing real estate data product is not. For any commercial application using Redfin CSV data, verify current terms with Redfin's legal team.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation