Bulk Property Search
bulk_property_infoWhat it returns
Paginated search across all US residential properties matching geo + price + bed/bath/sqft/year-built/DOM/lot filters. Each result row carries ROI-relevant fields (AVM bands, financing/holding/project-cost breakdowns, potential ROI) — designed to feed investor screening dashboards, not detail pages.
When to use it
Build investor screening with multi-criteria filters (e.g. "active listings under $300k in zip 65802 with potential_roi > 0.15").
Generate market reports: average AVM, average days on market, count of matches.
Seed a recommendation engine with filtered candidate pools.
Performance
This is a slow endpoint — use a 60-second client timeout and cache responses.
Pricing
1 credit per property in the response. A page with 50 properties costs 50 credits. Use page_size to cap cost — for screening UI, smaller pages with manual paginate-on-demand is the cost-effective pattern.
Errors
Status | Meaning |
400 | Invalid filter values (e.g. |
401 | Authentication failed. |
402 | No subscription or insufficient credits for the page size requested. |
503 / 504 | Backend datastore unavailable or query timed out. |
FAQ
What's the difference between property_status: "Active" and "Sold"?
Active queries residential_for_sale. Sold queries residential_sold (same backing as the dedicated sold-by-zip endpoint). Both share the same response shape.
Why is dom calculated rather than stored?
The MLS doesn't always carry days-on-market natively. When the field is absent, the endpoint computes it from list_date to sold_date (or to "now" for active listings).
Can I filter by neighborhood?
Not directly. Filter by city + state + zip; the response includes a neighborhood field for client-side post-filtering.
Is avm_confidence a percentage?
A 0.0–1.0 float. Higher = the AVM model is more confident in the band. Filter on avm_confidence > 0.7 for high-quality estimates only.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "bulk_property_info"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dom | No | Days-on-market ceiling: only listings listed within the last N days. Active listings only. | |
| zip | No | 5-digit US ZIP code to search within. **At least one** of `zip`, `city`, or `state` is required. | |
| city | No | City name to search within. **At least one** of `zip`, `city`, or `state` is required. | |
| page | No | 1-based page number. Defaults to 1. | |
| state | No | 2-letter US state code. **At least one** of `zip`, `city`, or `state` is required. | |
| dom_min | No | Days-on-market floor: only listings listed at least N days ago. Active listings only. | |
| beds_max | No | Maximum bedroom count. | |
| beds_min | No | Minimum bedroom count. | |
| sqft_max | No | Maximum living area in square feet. | |
| sqft_min | No | Minimum living area in square feet. | |
| baths_max | No | Maximum bathroom count. | |
| baths_min | No | Minimum bathroom count (halves allowed, e.g. `1.5`). | |
| page_size | No | Items per page. Defaults to 10, capped at 100. Caps your per-call credit cost — pass it explicitly so the cost of the call is known before it runs. | |
| lot_sqft_max | No | Maximum lot size in square feet. | |
| lot_sqft_min | No | Minimum lot size in square feet. | |
| property_type | No | Comma-delimited property types. One or more of: `detached,townhouse,condo/co-op/apartment,multi family,duplex,mobile,farm,land,other`. | |
| updated_since | No | Only properties whose record changed after this ISO-8601 timestamp (`YYYY-MM-DDTHH:MM:SSZ`). | |
| year_built_max | No | Latest year built. | |
| year_built_min | No | Earliest year built. | |
| price_range_max | No | Maximum list price in USD. | |
| price_range_min | No | Minimum list price in USD. | |
| property_status | No | Listing status: `Active` (the default) searches live for-sale listings; `Sold` searches closed sales. Both return the same row shape. | |
| property_condition | No | Pipe-delimited condition grades. One or more of: `excellent|good|outdated|poor|very poor|unlivable`. | |
| investment_potential | No | Comma-delimited investment-potential labels. One or more of: `excellent,high,good,n/p`. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||