List comparable land sales
const url = 'https://example.com/api/public/v1/comps/?acres_max=10&acres_min=1&age=180&dist=8047&fips=8023&page=1&page_size=25&point=-105.42&point=37.2&status=SOLD';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/comps/?acres_max=10&acres_min=1&age=180&dist=8047&fips=8023&page=1&page_size=25&point=-105.42&point=37.2&status=SOLD' \ --header 'Authorization: Bearer <token>'Returns comparable land sale records (‘comps’) near a county or point, paginated. At least one of fips or point is required.
Cost: 1 token per returned comp. Empty results cost 0 tokens.
Filter examples:
- By county:
?fips=06037 - By proximity:
?point=-118.25&point=34.05&dist=16093 - By status:
?status=SOLD - Recent sales:
?age=180(sold in the last 180 days)
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Maximum lot size in acres.
Examples
10 acres
10Minimum lot size in acres.
Examples
1 acre
1Recency filter: only return comps with sold_date within the last N days.
Examples
Last 6 months
180Last 12 months
365Search radius in meters, applied around point. Defaults to 1000 (1 km). Ignored if point is not supplied.
Examples
≈5 miles
8047≈10 miles
16093≈25 miles
402345-digit county FIPS code to restrict comps to. One of fips or point is required.
Examples
Costilla County, CO
8023Luna County, NM
35029Hudspeth County, TX
48229Park County, WY
56029Page number for pagination (1-indexed).
Results per page, max 500. Each returned comp counts as 1 billed token, so set this conservatively when exploring.
Examples
Conservative page
25Center point of a radius search, supplied as two repeated query parameters in the order longitude then latitude — e.g. ?point=-105.42&point=37.20. Combine with dist to set the radius. One of fips or point is required.
Examples
Costilla County, CO area
[ -105.42, 37.2]Filter by listing status. Repeat to OR multiple values: ?status=SOLD&status=PENDING.
Examples
Closed sales only
SOLDResponses
Section titled “ Responses ”object
object
Comp record identifier.
Origin of the comp record (e.g., ‘zillow’).
Listing status. ACTIVE = currently listed, PENDING = under contract, SOLD = closed.
ACTIVE- Currently listed for sale.PENDING- Under contract; not yet closed.SOLD- Closed sale.
Street address of the comp parcel.
Two-letter US state code.
5-digit ZIP code.
County name (raw string from source).
Assessor’s Parcel Number. May be blank for some sources.
Latitude in decimal degrees (WGS84). String-typed in the source data.
Longitude in decimal degrees (WGS84). String-typed in the source data.
Lot size in acres. May be null when the source omitted it.
Asking price for ACTIVE / PENDING listings, sale price for SOLD, in US dollars.
When the comp closed (ISO-8601). Null for non-SOLD comps.
Days between listing and most recent status transition.
Sale type label as reported by the source (e.g., ‘STANDARD’, ‘AUCTION’).
Public URL of the listing on the source site, when available.
List of photo URLs scraped from the source listing.
Examples
Single sold comp
{ "count": 123, "next": "http://api.example.org/accounts/?page=4", "previous": "http://api.example.org/accounts/?page=2", "results": [ { "id": "f9c3e4a2-1d2b-4c7e-9f1a-8b2c3d4e5f6a", "source": "zillow", "status": "SOLD", "address": "0 County Rd P", "city": "SAN LUIS", "state": "CO", "zip": "81152", "county": "Costilla", "apn": "07111-04-009", "latitude": "37.198", "longitude": "-105.419", "lot_size": 5.05, "price": 9800, "sold_date": "2026-02-14T00:00:00Z", "days_on_market": 142, "sale_type": "STANDARD", "url": "https://example.com/listing/abc123", "photos": [] } ]}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": {} }}