Compass Real Estate Scraper
Pricing
from $3.00 / 1,000 results
Compass Real Estate Scraper
Scrape Compass.com real estate listings - homes for sale and for rent across US markets. Get price, beds/baths, square footage, lot size, photos, listing agent, and full property details by city or by listing URL.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape real estate listings from Compass.com — one of the largest residential brokerages in the US. Browse homes for sale or for rent by city, neighborhood, or ZIP code, filter by price / beds / baths / property type / sold status, pull the full detail record (description, listing agent, price history, nearby schools, tax assessment) for specific listing URLs, or fetch agent profiles (bio, active listings, sold comps). No login, no cookies, no paid proxy required.
What this actor does
- Three modes:
search(browse a location),listingDetail(full record for specific listing URLs),agentProfile(agent bio + active/sold listings) - For sale and for rent — covers both transaction types across every US market Compass operates in
- Rich filters: property type, minimum bedrooms, price range, minimum bathrooms, minimum square footage, open-house-only, coming-soon-only, sold-only (recently sold comps)
- Full listing detail: description, listing agent name/email/phone/photo/license, amenities, outdoor space, school district + nearby schools with ratings, HOA/condo fees, year built, lot size, MLS type, property condition, pool/spa features, levels, furnished status, MLS status, price/status history, tax assessment, open-house schedule, and rental-only details (pet policy, available date, lease term, security deposit)
- Agent profiles: bio, phone/email/photo, specialties, market served, active listings, and closed/sold deals (sales comps) for any Compass agent
- Photos: full-resolution image URLs for every listing, with floor-plan images kept in a separate
floorPlans[]field so they don't get mixed in with room photos - Empty fields are omitted — every field in the output is real, populated data
Output per listing
Search mode
listingId,sourceUrlprice,priceFormattedaddress,street,city,state,zipCode,latitude,longitudebedrooms,bathrooms,squareFeet,lotSize,lotAcrespropertyType,propertyTypes[](present only when the listing spans more than one type, e.g. a multi-family + land combo),status,badges[]listingCourtesy(MLS broker attribution line shown on the search card, e.g.Listing Courtesy of Corcoran Group; absent on Compass Platform Exclusive/own listings)images[],primaryImage,floorPlans[]listingCategory(forSale/forRent)recordType: "listing",scrapedAt
Listing-detail mode (adds)
descriptionmlsNumber(from the listing's own MLS # field, falling back to its key-details table when the primary field is absent),mlsStatus,parcelNumber,feedListingId(the listing ID as issued by the source MLS/data feed, distinct from Compass's ownlistingId),compassPropertyId(stable per-property identifier that persists across re-listings, distinct fromlistingId)neighborhood,county,schoolDistricts[],elementarySchool,middleSchool,highSchoolnearbySchools[]— name, level (Elementary/Middle/High), type, grades, GreatSchools rating, distance, URLpropertyTypes[](present only when the listing spans more than one type)fullBathrooms,halfBathrooms,stories,lotSizeSquareFeet(numeric lot size in square feet, alongside the human-readablelotSizestring),pricePerSquareFoot,parkingSpaces,garageSpaces,parkingFeatures[](e.g.Attached,Assigned,Driveway,Off Street)yearBuilt,amenities[],outdoorSpace[],waterfront,view,subdivisionNamedaysOnMarket,cumulativeDaysOnMarket(days on market across all re-listings of the same property, not just the current listing),taxes,hoaFees,condoFeesmlsType(e.g.Residential / Single Family Residence),propertyCondition(e.g.Updated Remodeled),levels(e.g.One,Two)lotSizeDimensions(e.g.60' x 115'),mainLevelBedrooms,primaryBedroomOnMainLevel(boolean)hasPool(boolean),poolFeatures,spaFeatures,hasSpa(boolean),isWaterfront(boolean — authoritative MLS waterfront flag, distinct from the free-textwaterfrontfield above)waterAccessDescription(e.g.Public),taxLot,taxBlockfurnished(e.g.Furnished,Partially Furnished,Unfurnished— mostly on rentals)petPolicy,petsAllowedDetails,availableDate,leaseTerm,leaseTermMinMonths,leaseTermMaxMonths,securityDeposit(for-rent listings only)tenantPays[](utilities the tenant is responsible for, e.g.Electricity,Internet),moveInCosts[](e.g.Application Fee,First Month Rent,Security Deposit),tenantPaysDetails(free-text cost breakdown with concrete dollar amounts, when disclosed — for-rent listings only)taxAssessment— taxYear, annualTax, monthlyTax, assessedValue, marketValuepriceHistory[]— chronological listing/pending/sold events with date, status, priceopenHouseSchedule[]— start/end times (andisVirtualflag) for scheduled open housesagentName,agentEmail,agentPhone,agentProfileUrl,agentCompany,agentPhotoUrl,agentLicenseNumbercoListingAgents[]— additional co-listing/team agents beyond the primary (name, email, phone, company, licenseNumber, role e.g.Alternative Listing Agent); common on team-listed luxury condos, absent on single-agent listingsbuyerAgentCompensation(e.g.3%— the commission offered to a cooperating buyer's agent; only present when the broker discloses it on the MLS record)isSeniorCommunity(boolean — age-restricted/55+ active-adult community flag)mlsSource(the MLS/data-feed the listing was sourced from, e.g.ACTRIS),listingCourtesy(MLS broker attribution line; absent on Compass Platform Exclusive listings),isOffMls(boolean)listedAt,updatedAt,lastSaleDate(the date this property last sold, from prior transaction history — distinct frompriceHistory)elementarySchoolDistrict,middleSchoolDistrict,highSchoolDistrict(district names, distinct from the school names above)interiorFeatures[],exteriorFeatures[],appliances[],flooring[],constructionMaterials[],communityFeatures[],lotFeatures[],securityFeatures[]— from the listing's full categorized MLS feature sheetroofType,fencing,basement,heatingType[],coolingType[],sewerType,utilities[]coveredParkingSpaces,hasGarage(boolean)associationName,associationFeeIncludes[],taxRate(e.g.2.1%)directions(driving directions text, when the MLS record includes one)virtualTourUrl— a real, verified third-party virtual-tour link (only emitted when the underlying field is an actual URL)buildingFeatures[],buildingAttendance[](e.g. doorman/lobby-attendant type — condo/co-op buildings)rentIncludes[],minLeaseMonths,depositAmount,leaseType(for-rent listings only)badges[](corner badges, e.g.Coming Soon,New,Listed By Compass)buildingName,buildingFloors,buildingUnits(condo/co-op buildings only — the building as a whole, distinct from the unit's ownstories)unitFloor(the unit's own floor number within the building),buildingPetPolicy,buildingAge(e.g.Pre-war,Post-war),buildingType(e.g.Lowrise,Midrise,Highrise)recordType: "listingDetail"(distinct from search mode's"listing", so you can tell the two record shapes apart when both are in the same dataset)
Agent-profile mode
agentName,title,phone,email,photoUrl,bio,specialties,market,isTeam(boolean — true when the profile represents a team page rather than a single agent)activeListingsCount,activeListings[](address, price, beds/baths/sqft, status, photo, URL)closedDealsCount,closedListings[](sold comps — same compact shape asactiveListings)sourceUrl,recordType: "agentProfile",scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | select | search | search (browse by location) / listingDetail (specific URLs) / agentProfile (agent bio + listings) |
location | string | Austin, TX | City/neighborhood/ZIP — accepts City, ST or a Compass slug like austin-tx |
listingCategory | select | forSale | forSale / forRent |
propertyType | select | any | any / singleFamily / condos / townhomes / multiFamily / land / luxury / coop |
minBeds | select | any | Minimum bedrooms: any, 1–6 |
minPrice | int | – | Minimum price (sale price or monthly rent). Listings with no numeric price ("Contact Agent") always pass through, since the filter can't be evaluated against a missing value |
maxPrice | int | – | Maximum price. Same "Contact Agent" pass-through caveat as minPrice |
minBaths | number | – | Minimum bathrooms (e.g. 1.5). Listings with no bathroom count on file always pass through, same pass-through caveat as minPrice |
minSqft | int | – | Minimum square footage. Listings with no square-footage figure on file always pass through, same pass-through caveat as minPrice |
maxSqft | int | – | Maximum square footage. Same pass-through caveat as minSqft |
openHouseOnly | bool | false | Only listings with a scheduled open house |
comingSoonOnly | bool | false | Only "Coming Soon" listings |
soldOnly | bool | false | Only recently sold/closed listings (comps) — forSale only, not supported for rentals |
pendingOnly | bool | false | Only listings under contract/pending (not yet closed) — supported for both forSale and forRent |
newConstructionOnly | bool | false | Only newly built/new-construction listings — supported for both forSale and forRent |
petFriendlyOnly | bool | false | Only rentals that allow pets — forRent only, not supported for home sales |
newListingOnly | bool | false | Only listings freshly marked "New" by Compass — supported for both forSale and forRent |
virtualTourOnly | bool | false | Only listings that have a virtual tour — supported for both forSale and forRent |
noFeeOnly | bool | false | Only rentals with no broker/landlord fee ("No Fee" badge, common in NYC) — forRent only, not supported for home sales |
amenities | array (select) | – | Only listings with ALL selected amenities: pool, garage, doorman, elevator, waterfront, washerDryer, privateOutdoorSpace, basement, airConditioning — supported for both forSale and forRent |
listingType | select | any | Restrict how the listing is being sold: any / platformExclusives (Compass-only, not on the MLS) / mlsListings / forSaleByOwner |
listingUrls | array | – | Compass listing detail URLs (mode=listingDetail) |
agentUrls | array | – | Compass agent profile URLs (mode=agentProfile), e.g. https://www.compass.com/agents/shannon-reeve/ |
maxItems | int | 60 | Hard cap on emitted records (1–5000) — see note below on search mode's real per-query ceiling |
Note (search mode): Compass's own SEO search-results pagination stops serving new listings past page 20 (20 × 60 = 1,200 listings per query), even when
totalItemsreports a much larger figure for the market. This is a real limit of Compass's site, not an actor bug — the actor detects the exhaustion (no new unique listing IDs across consecutive pages) and stops cleanly with zero duplicates. To cover a market with more than ~1,200 active listings, narrow the query withpropertyType,minBeds,minPrice/maxPrice, or a more specificlocation(neighborhood/ZIP instead of city) and run multiple queries.
Example: search a city for sale, 3+ beds, under $600k
{"mode": "search","location": "Austin, TX","listingCategory": "forSale","minBeds": "3","maxPrice": 600000,"maxItems": 100}
Example: rentals in a neighborhood
{"mode": "search","location": "Miami Beach, FL","listingCategory": "forRent","maxItems": 50}
Example: full detail for specific listings
{"mode": "listingDetail","listingUrls": ["https://www.compass.com/homedetails/14916-Copper-Ridge-Ln-Austin-TX-78734/1FAMQS_pid/"]}
Example: recently sold comps in a city
{"mode": "search","location": "Austin, TX","listingCategory": "forSale","soldOnly": true,"maxItems": 100}
Example: agent profile (bio + active/sold listings)
{"mode": "agentProfile","agentUrls": ["https://www.compass.com/agents/shannon-reeve/"]}
Use cases
- Real estate market research — track pricing and inventory across cities/neighborhoods
- Lead generation — pull listing-agent contact details for outreach
- Investment analysis — filter by price/sqft/beds to find candidate properties, use
priceHistory/taxAssessmentfor deeper diligence - Comps / appraisal support — pull recently sold listings (
soldOnly) or an agent's closed deals for comparable-sales analysis - Agent research / recruiting — pull an agent's bio, specialties, and sales track record
- Rental market comparisons — compare for-rent inventory across markets
- Property aggregators — enrich your own listings database with Compass data
- Academic / data-journalism — study housing-market trends by geography
FAQ
Which markets does this cover? Any US city/neighborhood/ZIP that Compass operates in — Compass is active across most major US metro areas (Austin, Miami, New York, Los Angeles, Chicago, and 90+ more).
Does it need login or a proxy? No. Compass serves full listing data on public pages; the actor needs no credentials and no paid proxy.
How does location matching work? Give a plain City, State string (e.g. Austin, TX or Austin, Texas) and the actor converts it to the matching Compass URL slug. You can also pass a slug directly (e.g. austin-tx-78734 for a specific ZIP) if you already know it from a compass.com URL.
Why do some listings have no bedrooms/bathrooms/squareFeet? Land, lot, and some new-construction listings genuinely don't have those attributes — the field is simply omitted rather than showing a 0 or placeholder.
What does minBeds mean exactly? "At least N bedrooms" (e.g. minBeds: "3" returns 3, 4, 5+ bedroom homes) — matching Compass's own bedroom filter.
Can I combine openHouseOnly and comingSoonOnly? Yes — both filters are enforced together (AND, not one overriding the other). Results will be rare (most open houses are on already-active listings, not coming-soon ones), but a coming-soon listing can carry a scheduled open house badge too, so a handful of matches is normal, not a bug. If you want every open house regardless of coming-soon status, only enable openHouseOnly.
Can I combine soldOnly with openHouseOnly/comingSoonOnly/newListingOnly/virtualTourOnly? No — a sold/closed listing's badge is always just "Closed <date>" (verified live), never "New", "Virtual Tour", an open-house badge, or "Coming Soon", so this combination can never match anything. The actor fails fast with a clear status message rather than silently sweeping the whole market for zero results if you enable soldOnly together with any of these four.
Does soldOnly work for rentals? No — Compass doesn't expose a reliable sold/closed filter for listingCategory: forRent (verified: the URL segment that filters sold sales listings is silently ignored for rentals), so soldOnly only applies to forSale. The actor fails fast with a clear status message if you combine the two.
Does pendingOnly work for rentals? Yes — unlike soldOnly, Compass exposes a real "Under Contract/Pending" filter for both sale and rental listings (the underlying URL segment name differs by category, handled automatically). pendingOnly and soldOnly are mutually exclusive (a listing can't be both); the actor fails fast with a clear status message if you enable both at once.
Does newConstructionOnly work for rentals? Yes — verified server-side for both forSale and forRent, and it composes freely with every other filter (minBeds, propertyType, soldOnly/pendingOnly/openHouseOnly/comingSoonOnly).
Does petFriendlyOnly work for home sales? No — Compass only exposes a pet-friendly filter for listingCategory: forRent (verified: the pet-friendly URL segment is a real server-side filter for rentals — e.g. it drops New York, NY from 2,915 to 220 total rentals — but no equivalent segment/link exists on homes-for-sale search pages). The actor fails fast with a clear status message if you enable it with listingCategory: forSale.
How do newListingOnly, virtualTourOnly, and noFeeOnly work? Compass tags individual listing cards with corner badges ("New", "Virtual Tour", "No Fee") but doesn't expose an authoritative server-side URL filter for any of them (verified live: no SEO segment or sidebar-filter flag changes the market's reported totalItems for these three axes). The actor post-filters using each listing's own badge, the same proven approach already used for openHouseOnly/comingSoonOnly. noFeeOnly is forRent-only — the "No Fee" badge (waived broker/landlord fee) never appears on home-sale listings; the actor fails fast if you enable it with listingCategory: forSale.
What's in priceHistory? Every MLS status-change event Compass has on file for the listing (list, pending, sold, and any prior listing cycles), each with a date, status label, and price where available — useful for tracking a property's sale/list history over time. It's omitted when Compass has no history on file (e.g. brand-new construction).
What's in nearbySchools vs elementarySchool/middleSchool/highSchool? The elementarySchool/middleSchool/highSchool fields are the single assigned-district school named in the listing's key details. nearbySchools is the fuller GreatSchools-sourced list of every nearby school (public, private, and charter) with its rating, distance, and grade range — useful when you want the full local-school picture, not just the zoned school.
How does agentProfile mode work? Give it one or more Compass agent profile URLs (https://www.compass.com/agents/{slug}/) and it returns that agent's bio, contact info, and a compact roster of their active listings and closed/sold deals (up to 25 of each, embedded directly in the agent's public profile page — no extra requests needed).
What's in floorPlans[]? Some Compass listings include one or two floor-plan diagram images alongside their room photos; the actor separates these into their own floorPlans[] field (both in search and listingDetail mode) so images[]/primaryImage stay a clean room-photo gallery. Omitted when the listing has no floor-plan image on file.
What does amenities filter on, and is it authoritative? Yes — each selected amenity maps to a real, server-side Compass filter (the same "Must Have..." checkboxes in Compass's own "Filters" sidebar), verified live to change the market's reported result count (e.g. pool cuts Austin, TX from 5,860 to 2,415 listings; garage to 4,500). Selecting multiple amenities requires ALL of them (AND, not OR). Works for both forSale and forRent.
What's the difference between propertyType: coop and the other property types? Every other propertyType value (singleFamily, condos, etc.) uses a Compass SEO URL segment (e.g. /condos/); coop has no such segment — Compass only exposes it through the sidebar filter panel, so the actor applies it via the same mechanism as amenities. Verified live on New York, NY (5,687 co-op results) — most US markets outside NYC/Chicago have few or zero co-ops on file, which is a real market characteristic, not an actor bug.
What does listingType filter on? Compass's own "Listing Type" sidebar section: mlsListings restricts to listings sourced from the regional MLS; platformExclusives restricts to Compass-only listings not published to the MLS (Compass's "Private Exclusives"/"Coming Soon" program); forSaleByOwner restricts to owner-listed properties. Verified live (each changes the market's reported result count). This is independent of comingSoonOnly/newConstructionOnly, which use their own dedicated, already-authoritative URL segments.
How fresh is the data? Listings are scraped live from Compass's server-rendered pages on every run — data reflects Compass's current MLS feed.
Is there a limit on how many listings I can get from one search? Compass's own search index stops returning new results after roughly page 20 (~1,200 listings) for a given location/filter combination, even if totalItems reports a much larger count and maxItems is set higher — this is an upstream limit on Compass's side, not a bug in the actor. The actor detects this cleanly (no duplicate or missing records) and stops rather than looping. To get more than ~1,200 listings for a large market, narrow the search with propertyType, minBeds, or a price range and run multiple queries, or scope to a smaller neighborhood/ZIP.