Century 21 Listings & Property Detail Finder avatar

Century 21 Listings & Property Detail Finder

Pricing

from $0.49 / 1,000 results

Go to Apify Store
Century 21 Listings & Property Detail Finder

Century 21 Listings & Property Detail Finder

Find Century 21 homes for sale or rent by city, county, neighborhood, or ZIP with price and size filters, or look up a property by address with photos, agent, schools, taxes, and HOA details.

Pricing

from $0.49 / 1,000 results

Rating

0.0

(0)

Developer

Dataspryva

Dataspryva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 minutes ago

Last modified

Features

Limited permissions

Share

Find homes on Century21.com by city, county, neighborhood, ZIP, state, or a pasted URL. The actor reads Century 21's own public listing API from a plain HTTP request — no login, cookie, proxy, or API key from you — and returns clean records for for-sale, for-rent, pending, coming-soon, sold, expired, inactive, withdrawn, rented, and canceled listings.

It covers the full listing lifecycle rather than only active inventory: price, beds/baths, living area, lot size, year built, photos, open houses, virtual tours, MLS number, listing office, agent contact details (when the MLS publishes them), taxes, HOA dues, schools, and optional room-by-room property details.

What this actor does

  • Four modes: search by place, byUrl from pasted Century 21 search/listing URLs, byAddress with exact-address matching, byListingId from an ID or listing URL
  • Every public status: active, pending, coming soon, sold, expired, inactive, withdrawn, rented, canceled
  • For sale or for rent with the site's own rental index
  • Filters: property type, status, price, min/max bedrooms, min bathrooms, days on market, sqft, lot size, year built, open houses, new construction, virtual tours, luxury, and sort order
  • Pagination: up to 300 listings per request, paged until your maxItems or the source runs out; results are deduplicated across pages
  • Full detail enrichment: description, taxes, HOA, schools, room descriptions, appliances, utilities, every photo, open-house windows, and agent email/phone/profile when available
  • Omit-empty output: a field appears only when Century 21 actually returned a real value

Output per listing

Identity and status

  • listingId, mlsNumber, listingUrl, mlsShortName, listingType (For Sale / For Rent), listingStatus, statusLabels[], isLuxuryListing, isInBrand, daysOnMarket, lastUpdated

Price and size

  • price, pricePerSquareFoot (details), bedrooms, bathrooms, fullBathrooms, halfBathrooms, partialBathrooms, roomsTotal (details), livingAreaSqFt, buildingAreaSqFt (details), livingAreaUnits, lotSize, lotSizeUnits, yearBuilt (details)

Location

  • address, city, state, stateCode, postalCode, neighborhood, subdivision, latitude, longitude, placeName, placeType, elementarySchool, middleSchool, highSchool

Media and events

  • photoUrl, photoUrls[], photosCount, virtualTourUrl, openHouses[] (startTime, endTime)

People and office

  • listingOfficeName, listingOfficeAttribution, agentName, agentEmail, agentPhone, agentProfileUrl, agentId, agentLicense, agentRating, agentOfficeName, officePhone

Property facts (details where marked)

  • description, taxAnnualAmount, taxYear, hoaDuesMonthly, numberOfUnitsInCommunity, heating, cooling, hasCentralAir, roof, flooring, foundationDetails, constructionMaterials, exteriorFeatures, levels, architectureStyle, basement, hasBasement, diningDescription, bathroomDescription, kitchenDescription, bedroomDescription, parkingTotal, garageSpaces, carportSpaces, otherParkingSpaces, hasGarage, appliances, amenities, lotFeatures, poolFeatures, laundryFeatures, isSmartHome, sewer, water, sourceUrl

Every record also carries recordType: "listing" and scrapedAt.

Input

FieldTypeDefaultDescription
modestringsearchsearch / byUrl / byAddress / byListingId
startUrlsarray[]Century 21 search or listing URLs (mode=byUrl); query filters in the URL are honoured
locationstring–City, county, neighborhood, ZIP, or state (mode=search); defaults to Austin, TX when omitted
addressesarray[]Exact street addresses (mode=byAddress); nearby non-matches are rejected
listingIdsarray[]Listing IDs or listing URLs (mode=byListingId)
listingTypestring–forSale / forRent; falls back to forSale in code
propertyTypesarray[]Single family, Multi-family, Co-op, Mobile/Manufactured, Lots/Land, Condominium, Townhouse, Farm; empty = all
statusesarray[]Active, Pending, Coming soon, Expired, Inactive, Withdrawn, Sold, Rented, Canceled; empty = Active + Pending + Coming soon
hasOpenHousesboolfalseOnly listings with an upcoming open house
isNewConstructionboolfalseOnly new-construction listings
isVirtualTourAvailableboolfalseOnly listings with a virtual tour
luxuryOnlyboolfalseOnly Century 21 Fine Homes & Estates luxury listings
minPrice / maxPriceinteger–Price range in USD
daysOnMarketstring–Listed within 1, 7, 14, 30, 60, or 90 days
minBedrooms / maxBedroomsstring–Studio–5+ bedrooms
minBathroomsstring–1+–5+ bathrooms
minSqft / maxSqftstring–Living-area range
minAcreage / maxAcreagestring–Lot-size range
minYearBuilt / maxYearBuiltstring–Year-built range
sortBystring–newest / priceHighToLow / priceLowToHigh; falls back to newest in code
includeFullDetailsboolfalseFetch full detail for every search result (one extra request per listing; search results already include the core fields)
maxItemsinteger30Hard cap (1–5000)

Fields without a schema default show an example in the Console start form only. The actor falls back to the documented behaviour in code, so programmatic runs do not need to send every field.

Example: sold homes in Austin

{
"mode": "search",
"location": "Austin, TX",
"statuses": ["SOLD"],
"maxItems": 100
}

Example: open houses this weekend, under $600k

{
"mode": "search",
"location": "78704",
"hasOpenHouses": true,
"maxPrice": 600000,
"maxItems": 50
}

Example: rentals with full details

{
"mode": "search",
"location": "Miami, FL",
"listingType": "forRent",
"includeFullDetails": true,
"maxItems": 20
}

Example: paste a search URL and a listing URL

{
"mode": "byUrl",
"startUrls": [
{"url": "https://www.century21.com/homes/list/city/tx/austin?minPrice=500000&maxPrice=900000"},
{"url": "https://www.century21.com/homes/detail/tx/austin/803-herndon-ln/lid-P00800000HKJanssLAMoatfjovxY7QBWpsuLltxP"}
],
"maxItems": 50
}

Example: exact address lookup

{
"mode": "byAddress",
"addresses": ["803 Herndon Ln, Austin, TX 78704"]
}

Example: listing ID or listing URL

{
"mode": "byListingId",
"listingIds": [
"P00800000HKJanssLAMoatfjovxY7QBWpsuLltxP",
"https://www.century21.com/homes/detail/tx/austin/803-herndon-ln/lid-P00800000HKJanssLAMoatfjovxY7QBWpsuLltxP"
]
}

Use cases

  • Sold comparable research — pull sold listings by ZIP or neighborhood and compare last list prices, size, and year built
  • Open-house routing — find every upcoming open house in a target area and hand the schedule to buyers or agents
  • Agent lead lists — export listing agent names, phones, emails, and brokerage offices with the property context attached
  • Rental market monitoring — compare rents, deposits, and unit sizes across neighborhoods
  • Inventory and price tracking — re-run the same search daily and diff price, status, and new listings
  • Property underwriting — filter by lot size, year built, and square footage, then enrich the shortlist with taxes, HOA, and room details

FAQ

Does this need a proxy, login, or API key? No. Century21.com's own listing API is public and works from a plain HTTP request. The actor uses no proxy and never asks for cookies or credentials.

Can it scrape sold or off-market homes? Yes. Century 21's public index exposes sold, expired, inactive, withdrawn, rented, and canceled statuses alongside active inventory. Select the statuses you want. A property that is not in the public index at all cannot be returned.

How are open houses returned? When Century 21 publishes open-house windows, each record includes an openHouses[] array with ISO startTime and endTime. The hasOpenHouses filter limits results to listings with an upcoming open house.

What happens if I paste an address Century 21 does not list? The actor rejects it instead of returning a nearby look-alike. Century 21's address suggestions include nearby properties even when the exact house number is missing; this actor requires the house number and street name to match, so a no-match run is empty rather than wrong data.

Can I paste a Century 21 URL? Yes. Search URLs (/homes/list/...) honour their city/county/ZIP/state/neighborhood path and any filters in the query string. Listing URLs (.../lid-...) fetch the full detail record. Both can be mixed in one run.

How do I find a listing ID? Every record from any mode includes listingId. You can also paste the listing's full URL.

Why does a search result have fewer fields than a detail lookup? Century 21's search endpoint returns a lighter record. Set includeFullDetails: true to fetch the full detail (description, taxes, schools, room details, all photos) for every search result; this adds one request per listing. byAddress, byListingId, and listing URLs always return full details.

Why is an agent phone or email missing? Contact details are published only when the listing's MLS supplies them. Most listings include an agent name and office; email and phone are less common and are omitted rather than fabricated.

Are sold prices the final sale price? Century 21's public sold records show the MLS list/close price it publishes for the listing. It is not an independent deed or county-recorder sale price.

What area does this cover? Century21.com's US market. Coverage depends on the MLS/IDX feed for each area; Century 21's country-specific sites (Canada, Portugal, Spain, France, etc.) use different systems and are not part of this actor.

How fresh is the data? Records are pulled live from Century 21's current public feed on every run. There is no cache.

Limitations

  • US Century21.com only; other Century 21 country domains are not supported.
  • A listing must be present in Century 21's public index. Private/off-market listings are not reachable.
  • Status availability varies by MLS; some feeds omit expired, inactive, or sold records entirely.
  • Detail fields such as taxes, HOA, schools, room descriptions, agent email, and phone are conditional on what the listing MLS publishes. They are omitted when absent.
  • byAddress is intentionally strict: it requires an exact house-number and street match, so spelling variants that the suggestion service cannot normalise will return zero records.