Get market statistics for a county
const url = 'https://example.com/api/public/v1/markets-stats/8023/stats/';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/public/v1/markets-stats/8023/stats/ \ --header 'Authorization: Bearer <token>'Returns aggregated market statistics for a county identified by its 5-digit FIPS code. Includes median sale price, days on market, price per acre, and listing volume by acreage bucket.
Cost: 10 tokens per call. Returns 404 (0 tokens) when the FIPS code is not recognized.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”5-digit county FIPS code (2-digit state FIPS + 3-digit county FIPS).
Examples
Costilla County, CO
8023Luna County, NM
35029Hudspeth County, TX
48229Park County, WY
56029Responses
Section titled “ Responses ”Market statistics for a region (county / ZIP).
object
Internal region identifier.
Region type — ‘county’ for full-county stats, ‘zip’ for a single ZIP.
county- Whole county.zip- Single ZIP code.
County name (when type=‘county’) or ZIP code (when type=‘zip’).
Two-letter US state code (e.g., ‘CA’).
Primary county name. For ZIP regions, the county the ZIP falls into.
5-digit county FIPS code.
List of statistic buckets, one per acreage range. May be empty for regions where no stats have been computed yet.
object
Acreage bucket label. The list contains overlapping ranges (e.g. both 5 acre-10 acre and 5 acre-100 acre) because the pipeline emits multiple useful slices; pick the bucket closest to the acreage you’re analysing.
Aggregated metrics for parcels in this acreage bucket. Field names mirror the internal pipeline labels — abbreviations: STR = sell-through rate, DOM = days on market, PPA = price per acre, Gini = Gini coefficient of PPA dispersion (0–100, lower = tighter).
object
Number of currently-active listings in this bucket.
Number of pending (under-contract) listings.
Closed sales in the trailing 1 month.
Closed sales in the trailing 3 months.
Closed sales in the trailing 6 months.
Closed sales in the trailing 12 months.
Pending sell-through rate (%): pending listings as a fraction of active inventory.
1-month sell-through rate (%): trailing-month sales as a fraction of active inventory.
3-month sell-through rate (%).
6-month sell-through rate (%).
12-month sell-through rate (%).
Average days-on-market for sales closed in the trailing month.
Average days-on-market over the trailing 3 months.
Average days-on-market over the trailing 6 months.
Average days-on-market over the trailing 12 months.
Median closed sale price (USD) in the trailing month.
Median closed sale price (USD) over the trailing 3 months.
Median closed sale price (USD) over the trailing 6 months.
Median closed sale price (USD) over the trailing 12 months.
Median asking price (USD) across pending listings.
Median asking price (USD) across active listings.
Median acreage across active listings.
Median acreage across pending listings.
Median acreage across closed sales (trailing 12 months).
Median price per acre (USD) across pending listings.
Median price per acre (USD) across active listings.
Median price per acre (USD) across closed sales in the trailing 12 months.
Minimum price per acre observed across active listings.
Maximum price per acre observed across active listings.
Minimum price per acre observed across pending listings.
Maximum price per acre observed across pending listings.
Minimum price per acre in sales closed during the trailing month.
Maximum price per acre in sales closed during the trailing month.
Minimum price per acre in sales closed during the trailing 3 months.
Maximum price per acre in sales closed during the trailing 3 months.
Minimum price per acre in sales closed during the trailing 6 months.
Maximum price per acre in sales closed during the trailing 6 months.
Minimum price per acre in sales closed during the trailing 12 months.
Maximum price per acre in sales closed during the trailing 12 months.
Gini coefficient (0–100) of price-per-acre in trailing-month sales. Lower = tighter clustering.
Gini coefficient (0–100) over the trailing 3 months.
Gini coefficient (0–100) over the trailing 6 months.
Gini coefficient (0–100) over the trailing 12 months.
Examples
Costilla County, CO — county statistics
{ "id": "5f3c8e7a-9b1d-4e2c-8f3a-1d2e3f4a5b6c", "type": "county", "name": "Costilla", "state": "CO", "county_name": "Costilla", "fips": 8023, "stats": [ { "type": "2 acre-5 acre", "data": { "Active": 86, "Pending": 3, "Sold: 1mo": 1, "Sold: 3mo": 6, "Sold: 6mo": 18, "Sold: 1yr": 36, "1yr STR": 41.86, "Avg DOM 1yr": 223, "Median Active Price": 9200, "Median Active PPA": 3046.84, "Median Sold PPA": 2876.64, "Median Active Acreage": 2.95, "Gini 1yr": 63.12 } }, { "type": "5 acre-10 acre", "data": { "Active": 209, "Pending": 29, "Sold: 1yr": 121, "1yr STR": 57.89, "Avg DOM 1yr": 168, "Median Active Price": 11999, "Median Active PPA": 2100, "Median Sold PPA": 2031.25, "Median Active Acreage": 5.2, "Gini 1yr": 38.54 } } ]}Validation error.
object
object
Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, validation_error, not_found, method_not_allowed, rate_limited, internal_error.
Human-readable description of the error.
Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.
Present on validation errors only: maps each rejected field to its list of messages.
object
Example generated
{ "error": { "code": "example", "message": "example", "request_id": "example", "details": {} }}Missing or invalid credentials.
object
object
Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, validation_error, not_found, method_not_allowed, rate_limited, internal_error.
Human-readable description of the error.
Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.
Present on validation errors only: maps each rejected field to its list of messages.
object
Example generated
{ "error": { "code": "example", "message": "example", "request_id": "example", "details": {} }}A Pro subscription or higher API tier is required.
object
object
Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, validation_error, not_found, method_not_allowed, rate_limited, internal_error.
Human-readable description of the error.
Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.
Present on validation errors only: maps each rejected field to its list of messages.
object
Example generated
{ "error": { "code": "example", "message": "example", "request_id": "example", "details": {} }}Authenticated but not permitted.
object
object
Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, validation_error, not_found, method_not_allowed, rate_limited, internal_error.
Human-readable description of the error.
Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.
Present on validation errors only: maps each rejected field to its list of messages.
object
Example generated
{ "error": { "code": "example", "message": "example", "request_id": "example", "details": {} }}Resource not found.
object
object
Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, validation_error, not_found, method_not_allowed, rate_limited, internal_error.
Human-readable description of the error.
Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.
Present on validation errors only: maps each rejected field to its list of messages.
object
Example generated
{ "error": { "code": "example", "message": "example", "request_id": "example", "details": {} }}Rate limit exceeded.
object
object
Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, validation_error, not_found, method_not_allowed, rate_limited, internal_error.
Human-readable description of the error.
Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.
Present on validation errors only: maps each rejected field to its list of messages.
object
Example generated
{ "error": { "code": "example", "message": "example", "request_id": "example", "details": {} }}Internal error.
object
object
Stable machine-readable error code. One of: unauthorized, forbidden, subscription_required, tier_upgrade_required, usage_limit_exceeded, validation_error, not_found, method_not_allowed, rate_limited, internal_error.
Human-readable description of the error.
Echoes the request’s X-Request-Id (or a server-issued id). Quote it in support requests.
Present on validation errors only: maps each rejected field to its list of messages.
object
Example generated
{ "error": { "code": "example", "message": "example", "request_id": "example", "details": {} }}