Red Door Company APIreddoorcompany.com ↗
Search Triangle NC property listings via the Red Door Company API. Filter by city, ZIP, bedrooms, bathrooms, price, and pet policy. Returns full listing details.
What is the Red Door Company API?
The Red Door Company API exposes one endpoint — search_homes — that returns property listings for rent or sale across the Triangle region of North Carolina, including Durham, Raleigh, and Chapel Hill. A single call can return dozens of listing objects, each carrying address, price, bedroom and bathroom counts, lot size, pet policy, property subtype, and listing status. Location is required via city slug, postal code, or neighborhood.
curl -X GET 'https://api.parse.bot/scraper/d8f4db28-93b2-4329-87f6-812e797a7d09/search_homes?city=durham&bedrooms=3&bathrooms=2&price_max=3000&price_min=1500&sale_type=rent&pet_policy=negotiable&postal_code=27703&lot_size_max=5.0&lot_size_min=0.5&neighborhood=brightwood_trails&property_type=residential&listing_status=active&property_subtype=townhome' \ -H 'X-API-Key: $PARSE_API_KEY'
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 reddoorcompany-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.
"""Walkthrough: Red Door Company SDK — bounded, re-runnable; every call capped."""
from parse_apis.reddoorcompany_com_api import RedDoor, SaleType, PropertyType, InvalidInput
client = RedDoor()
# Search rental homes in Durham with 3+ bedrooms, price $1500-$3000
for listing in client.listings.search(
city="durham",
sale_type=SaleType.RENT,
property_type=PropertyType.RESIDENTIAL,
bedrooms="3",
price_min="1500",
price_max="3000",
limit=3,
):
print(listing.address, listing.price, listing.bedrooms, listing.pet_policy)
# Get a single result for drill-down
item = client.listings.search(
city="durham",
sale_type=SaleType.RENT,
bedrooms="2",
bathrooms="2",
limit=1,
).first()
if item:
print(item.address, item.price, item.lot_size_acres, item.property_subtype)
# Handle invalid input
try:
for listing in client.listings.search(city="durham", sale_type=SaleType.RENT, limit=1):
print(listing.address)
except InvalidInput as e:
print(f"Invalid input: {e}")
print("exercised: listings.search")
Search property listings by location with optional filters for bedrooms, bathrooms, price range, lot size, pet policy, property subtype, and listing status. Returns all matching listings from the server-filtered set. Price range, pet policy, and lot size filters are applied post-retrieval. Results include address, price, bedroom/bathroom counts, property details, coordinates, and photos.
| Param | Type | Description |
|---|---|---|
| city | string | City slug (e.g. 'durham', 'raleigh', 'chapel_hill'). At least one of city, postal_code, or neighborhood is required. |
| bedrooms | string | Minimum number of bedrooms (e.g. '3' for 3+). Values 0-6. |
| bathrooms | string | Minimum number of bathrooms (e.g. '2' for 2+). Values 0-6. |
| price_max | string | Maximum price filter (applied client-side). Integer dollar amount. |
| price_min | string | Minimum price filter (applied client-side). Integer dollar amount. |
| sale_type | string | Whether to search rentals or sales. |
| pet_policy | string | Pet policy filter (e.g. 'cats', 'dogs', 'negotiable', 'no pets'). Case-insensitive match against listing pet policy values. |
| postal_code | string | 5-digit ZIP/postal code (e.g. '27703'). At least one of city, postal_code, or neighborhood is required. |
| lot_size_max | string | Maximum lot size in acres (applied client-side). |
| lot_size_min | string | Minimum lot size in acres (applied client-side). |
| neighborhood | string | Neighborhood slug (e.g. 'brightwood_trails', 'andrews_chapel'). At least one of city, postal_code, or neighborhood is required. |
| property_type | string | Property type category. |
| listing_status | string | Listing status filter (e.g. 'active', 'coming_soon', 'pending', 'sold'). |
| property_subtype | string | Property subtype slug (e.g. 'house', 'townhome', 'condo'). |
{
"type": "object",
"fields": {
"total": "integer count of returned listings after all filters",
"listings": "array of property listing objects",
"total_server": "integer count from server before client-side filters"
},
"sample": {
"data": {
"total": 74,
"listings": [
{
"slug": "1124-bell-heather-road-durham-nc-27703",
"price": 2495,
"status": "active",
"address": "1124 Bell Heather Road",
"bedrooms": 3,
"bathrooms": 3,
"photo_url": "https://cdn.photos.sparkplatform.com/tri/20260413143952236125000000-o.jpg",
"sale_type": "rent",
"listing_id": "10159683",
"pet_policy": [
"Negotiable"
],
"coordinates": {
"latitude": 35.95455,
"longitude": -78.7868
},
"modified_date": "2026-07-27T13:57:15",
"property_type": "residential",
"lot_size_acres": 0.06,
"living_area_sqft": 0,
"property_subtype": [
"Townhome"
]
}
],
"total_server": 123
},
"status": "success"
}
}About the Red Door Company API
What search_homes Returns
The search_homes endpoint queries residential and commercial listings in the Triangle area of North Carolina. Each response includes a listings array of property objects alongside a total count of matched listings after all filters are applied and a total_server count reflecting the unfiltered server result. Individual listing objects carry the fields needed for property comparison: price, bedroom and bathroom counts, property subtype, lot size, pet policy, and listing status.
Location and Filter Parameters
Every request requires at least one location parameter: city (slug format, e.g. durham, raleigh, chapel_hill), postal_code (5-digit ZIP such as 27703), or neighborhood. Beyond location, you can narrow results with bedrooms and bathrooms (both accept values 0–6 representing minimums), sale_type to toggle between rentals and sales, and pet_policy to match listings by cat, dog, negotiable, or no-pets policies.
Client-Side vs. Server-Side Filtering
Not all filters are applied at the server level. price_min, price_max, pet_policy, and lot size filters are applied after the server returns its result set. This means total_server may be higher than total when those filters are active — the difference reflects listings that matched the location query but were excluded by post-processing. Plan your request logic around total for the actual usable count.
Coverage Scope
Coverage is specific to the Triangle region of North Carolina. The API does not expose listings from other Red Door Company markets or nationwide MLS data. Property types include both residential and commercial listings, and sale_type controls whether the search targets rentals or for-sale inventory.
The Red Door Company API is a managed, monitored endpoint for reddoorcompany.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when reddoorcompany.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 reddoorcompany.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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a rental availability dashboard filtered by city and pet policy for Triangle-area tenants
- Alert users when new listings matching a price range and minimum bedroom count appear in a specific ZIP code
- Compare median asking prices across Durham, Raleigh, and Chapel Hill neighborhoods using aggregated listing data
- Screen rental inventory for pet-friendly units by passing 'dogs' or 'cats' to the
pet_policyparameter - Feed listing data into a relocation tool that ranks neighborhoods by price-to-bedrooms ratio
- Monitor commercial property availability alongside residential listings using
sale_typeand subtype filters
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 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.
Does Red Door Company offer an official developer API?+
What does the `total` field represent versus `total_server`?+
total_server is the count of listings returned from the server before price, pet policy, and lot size filters are applied. total reflects the count after those client-side filters are applied. When you use price_min, price_max, or pet_policy, expect total to be less than or equal to total_server.Is individual property detail data — such as photos, full descriptions, or contact information — available?+
search_homes endpoint returns listing-level fields from search results: price, bedrooms, bathrooms, pet policy, property subtype, lot size, and status. Deeper per-listing detail pages are not covered by the current endpoint. You can fork this API on Parse and revise it to add a property detail endpoint that retrieves full descriptions, photo URLs, and agent contact information.Does the API cover properties outside the Triangle region of North Carolina?+
What happens if I omit all location parameters?+
city, postal_code, or neighborhood is required. Requests missing all three location parameters will not return valid listing results. Use a city slug like durham or a 5-digit ZIP such as 27703 to anchor every query.