· 16 min read
Compass Real Estate Scraper: Up to 1,000 Free Results a Month (2026)
Each listingDetail record provides 117 fields, including the full description, price history, tax assessment, and listing agent contact details. This scraper targets homes for sale and rent across every US market Compass operates in, such as Austin, Miami, and New York. You can pull high-resolution photos and floor plans without requiring a login or paid proxy. The output is structured into three distinct modes to separate general search results from deep property analysis and agent performance tracking.
Try it: open Compass Real Estate Scraper on Apify, sign in on the free plan and run the prefilled example.
Can you try Compass Real Estate Scraper before paying?
Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.005 per result, that covers up to 1,000 results of Compass Real Estate Scraper a month, before run-start charges and platform usage.
Compass Real Estate Scraper was last updated on 2026-07-27. It is one of 1,724 Actors CrawlerBros publishes on Apify, which together have 734,650 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.
What does it cost to run Compass Real Estate Scraper?
Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.
| Apify plan | Per result | Per 1,000 results |
|---|---|---|
| FREE | $0.005 | $5.00 |
| BRONZE | $0.00433 | $4.33 |
| SILVER | $0.00367 | $3.67 |
| GOLD | $0.003 | $3.00 |
| PLATINUM | $0.003 | $3.00 |
| DIAMOND | $0.003 | $3.00 |
The maxItems control is the primary driver of your bill because charges are calculated per result written to the dataset. To minimize costs, verify your location string and filters like propertyType on a run limited to 10 results before removing the cap. Since there is a run-start fee for every attempt, avoid starting many small runs and instead group multiple listing URLs into a single batch.
How do you run Compass Real Estate Scraper from the API?
The schema marks 1 of its 24 controls as required: mode. Every value in the payload below comes from the published schema's own prefills, which means you can paste it, swap the token, and get a real result.
Call the synchronous endpoint to start a run and receive dataset items in one request:
curl -X POST "https://api.apify.com/v2/acts/crawlerbros~compass-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"search"}'
The same run from Python, using the official client:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "search"
}
run = client.actor("crawlerbros~compass-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
And from Node.js:
import { ApifyClient } from 'apify-client'
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
const input = {
"mode": "search"
}
const run = await client.actor('crawlerbros~compass-scraper').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)
That endpoint blocks until the run completes. Fine while you are testing a handful of records, risky once a run takes minutes: a dropped connection loses the response even though the run itself finished. Switch to an asynchronous start with polling or a webhook before you schedule anything.
Which Compass Real Estate Scraper inputs matter, and which can you skip?
The mode control is the only required input and determines whether you get high-level search cards or deep listing details. For targeted research, use the location field with a specific City, ST format to ensure the scraper maps to the correct market slug. Most users should leave the amenities array empty on their first run to avoid over-filtering the results before they understand the local inventory.
mode(string): Browse listings for a location, fetch full details for specific listing URLs, or fetch agent profiles (bio + active/sold listings). Default:"search".location(string): City, neighborhood, or ZIP to browse. Accepts a plain name likeAustin, TX/Miami Beach, FL, or a Compass URL slug likeaustin-tx/austin-tx-78734. A ZIP code alone (e.g.78734) is not enough - append it to a city slug (austin-tx-78734) or just useCity, ST. Default:"Austin, TX".listingCategory(string): Browse homes for sale, or homes for rent. Default:"forSale".propertyType(string): Restrict results to a property type. Default:"any".minBeds(string): Only show listings with at least this many bedrooms. Default:"any".minPrice(integer): Drop listings priced below this amount (sale price or monthly rent).maxPrice(integer): Drop listings priced above this amount (sale price or monthly rent).minBaths(number): Drop listings with fewer bathrooms than this (e.g. 1.5).minSqft(integer): Drop listings smaller than this many square feet.maxSqft(integer): Drop listings larger than this many square feet.openHouseOnly(boolean): Only show listings with a scheduled open house. Default:false.comingSoonOnly(boolean): Only show listings marked "Coming Soon" (not yet officially on market). Default:false.
The other 12 controls, with their defaults, are listed in the input schema on Compass Real Estate Scraper on Apify.
Fixed-choice controls: mode accepts search (Search listings by location), listingDetail (Get full details for listing URLs), agentProfile (Get agent profiles (bio, active & sold listings)); listingCategory accepts forSale (For sale), forRent (For rent); propertyType accepts any (Any type), singleFamily (Single-family homes), condos, townhomes, multiFamily (Multi-family), land, luxury, coop (Co-op); minBeds accepts any, 1 (1+), 2 (2+), 3 (3+), 4 (4+), 5 (5+), 6 (6+).
What does Compass Real Estate Scraper return?
The output provides comprehensive MLS metadata like taxRate, schoolDistricts, and associationFeeIncludes, which are essential for financial modeling. It conspicuously does not return internal agent notes or private seller contact information, as these are not part of the public listing sheets.
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
These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.
How do you build the workflow end to end?
Open Compass Real Estate Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.
- Set mode to search and enter a target market like Austin, TX into the location field to browse general listings.
- Review the search output to confirm core listingId and address fields are populated before running a large batch.
- Apply a maxPrice or minBeds filter to narrow the results if your target market is larger than the 1,200 item pagination limit.
- Extract listingUrls from your search results and switch the mode to listingDetail to fetch deep property data.
- Verify that the listingDetail records contain the expanded propertyCondition, taxAssessment, and priceHistory arrays you need.
- Switch the mode to agentProfile and paste URLs into the agentUrls array to collect agentName, bio, and closedDealsCount.
- Check the scrapedAt field to ensure the data reflects the most recent Compass search index for your chosen region.
How do you apply it? Three worked playbooks
These are Compass Real Estate Scraper's own documented use cases, each worked through as an operating pattern rather than a description.
Use case 1: Real estate market research
Outcome: Track pricing and inventory across cities/neighborhoods
Configure: Set mode to "search", listingCategory to "forSale", and location to a city name like "Miami Beach, FL".
Working method: Start by running in search mode with a specific location and listingCategory. Review the initial dataset to understand the market structure. Refine your query by adding propertyType or minBeds filters to segment the data. Combine results from narrower queries if a single one exceeds 1,200 listings to fully cover large markets.
Deliverable: A dataset of property listings with prices and core attributes, segmented by city or neighborhood, suitable for trend analysis.
Stop condition: The run terminates with zero new unique listing IDs despite the totalItems count indicating more results exist.
Use case 2: Lead generation
Outcome: Pull listing-agent contact details for outreach
Configure: Set mode to "listingDetail" and populate the listingUrls array with direct Compass property links.
Working method: Begin with a broad search to identify initial listings in your target areas, capturing each sourceUrl. Transition to listingDetail mode using these URLs to collect agentEmail and agentPhone for outreach. Prioritize newListingOnly or comingSoonOnly to target fresh opportunities for agents who need new clients.
Deliverable: A list of records containing agentName, agentEmail, agentPhone, and agentLicenseNumber for the specified properties.
Stop condition: The agentEmail field is null across more than fifty percent of the returned listingDetail records.
Use case 3: Investment analysis
Outcome: Filter by price/sqft/beds to find candidate properties, use priceHistory/taxAssessment for deeper diligence
Configure: Set mode to "search", soldOnly to true, and use minPrice to filter for relevant comparable sales.
Working method: First, identify a market location and set clear investment criteria using filters like minPrice/maxPrice and minSqft in search mode. Collect these initial candidate listings. For each promising candidate, fetch full details in listingDetail mode to examine priceHistory, taxAssessment, and nearbySchools for thorough due diligence. Prioritize properties with complete historical data to ensure robust analysis.
Deliverable: A spreadsheet of candidate properties including the yearBuilt, total annualTax, and a full chronological priceHistory array.
Stop condition: The priceHistory array is empty for properties that have clear evidence of prior sales on the primary market.
What breaks, and how do you design around it?
When a market contains more than 1,200 listings, use the minPrice and maxPrice controls to split your search into several smaller price bands. If you encounter a rental listing, remember that the soldOnly filter will not return data because Compass only exposes sold status for for-sale homes.
When should you not use Compass Real Estate Scraper?
Do not use this Actor if you require data from markets outside the United States where Compass has no brokerage presence. If your project demands exhaustive coverage of a specific local market not served by Compass, use the Century 21 Real Estate Scraper or the HomeFinder Real Estate Scraper instead. This tool is also inappropriate for tracking commercial property trends; for those datasets, the LoopNet.com Commercial Real Estate Scraper is the specialized alternative. If you need to bypass the 1,200 item limit without manual segmentation, you should look for an API-based service rather than a scraper that mimics the SEO pagination of the public site.
What should you check before trusting the output?
- Verify that pricePerSquareFoot is a non-zero number for all residential listings in listingDetail mode.
- Confirm that agentEmail contains a valid domain suffix when the field is present in the output.
- Check that the records in search mode contain at least one valid URL in the images array.
- Ensure that listingCourtesy is present for MLS-sourced listings and empty for Compass Platform Exclusives.
- Monitor that daysOnMarket is a non-negative integer for all active listings.
- Verify that floorPlans images are correctly isolated from the primary room gallery in the floorPlans array.
None of this proves a record is correct. It gives a scheduled Compass Real Estate Scraper run defined points where it should stop instead of quietly passing bad data downstream.
Frequently asked questions
What is the cost per 1,000 results?
On the free-plan price, you pay $5.00 per 1,000 results. This is calculated as $0.005 per result written to your dataset. Note that Apify also bills for platform usage during the run, and there is a run-start fee every time you begin a new extraction, regardless of the result count.
How many results can I get for free?
This allows you to test the search, listingDetail, and agentProfile modes extensively to see if the 117 detail fields meet your project requirements before committing to a paid plan.
How does the location input work?
The location field accepts plain text like Austin, TX or Miami Beach, FL. You can also paste a slug directly, such as austin-tx-78734, if you want to target a very specific ZIP code or neighborhood already known from their website.
Is the listing agent contact information always included?
The agentName, agentEmail, and agentPhone fields are extracted from listingDetail mode and agentProfile mode. These are only included if the listing broker has publicly disclosed them on the Compass platform. If the contact information is hidden behind a login or omitted by the broker, these fields will be empty in the output.
How many items can a single search return?
Compass stops serving new listings after roughly 1,200 results per query, which is about 20 pages. This is a limitation of the Compass search index itself. To get more results for a massive market, you should use filters like minBeds or maxPrice to create multiple narrower runs.
Where to go next
When you are ready to run it, open Compass Real Estate Scraper on Apify; the free plan covers up to 1,000 results a month.
Start with the Compass Real Estate Scraper Actor page for the current input schema, pricing tier, and run history.
Other Actors we maintain for related data:
- Estately Real Estate Scraper: Scrape Estately.com real-estate listings by city, ZIP code, or state - active for-sale or recently-sold homes with price, beds/baths, square footage, photos, and full property-detail lookups by URL.
- Century 21 Real Estate Scraper: Scrape homes for sale and rent from Century21.com.
- United Real Estate Homes for Sale Scraper: Search United Real Estate for homes for sale by city, state, ZIP code, or keyword.
- HomeFinder Real Estate Scraper: Scrape HomeFinder.com real estate listings - homes for sale, homes for rent, and search by city/state or ZIP code.
- Etuovi.com Real Estate Scraper: Scrape property listings from Etuovi.com, Finland's largest real estate portal.
- LoopNet.com Commercial Real Estate Scraper: Scrape commercial real estate listings, broker profiles, and businesses for sale from LoopNet.com.
- Immoweb Belgian Real Estate Scraper: Scrape property listings from Immoweb.be (houses, apartments, land for sale or rent in Belgium) with price, bedrooms, bathrooms, living area, postcode, locality, energy class, images and more.
- SeLoger French Real Estate Scraper: Scrape SeLoger.com property listings (apartments, houses, sale & rent) in France with title, price, surface, rooms, address, GPS, energy class, images, agency.
Related guides:
- United Real Estate Homes for Sale Scraper: 3 Practical Use Cases
- HomeFinder Real Estate Scraper: 3 Practical Use Cases
- Redfin Real Estate Scraper: Up to 2,500 Free Results a Month (2026)
- LuxuryEstate Real Estate Scraper: 90+ Countries Covered (2026)
Resources
Actor documentation, input schema, and pricing: verified against the published Actor on 2026-10-05.
Actor last updated by its maintainers on 2026-07-27.
Run outcome figures cover the 30 day public window ending 2026-10-05.
Featured actors
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.
Run on Apify ↗