---
title: "Recorded-sale comparable-sales brief"
method: POST
path: "/api/locus-comps-brief"
tags: ["data", "search", "real-estate", "property", "property-research", "due-diligence", "public-records", "x402", "comps", "comparable-sales", "sales", "parcels", "valuation-context", "category:economics"]
---

# Recorded-sale comparable-sales brief

`POST /api/locus-comps-brief`

## Request

- Base URL: `https://api.locus.report`
- URL: `https://api.locus.report/api/locus-comps-brief`
- Auth: one of:
  - API key in header `PAYMENT-SIGNATURE`
  - API key in header `Authorization`

County assessor and parcel sales within 1500m over 24 months for one US address or point. Rows include parcel, site address, date, price, and land-area price where published; returns median, range, and coarse trend. Arithmetic, not a valuation; thin areas are charge-free. npx @velinussage/locus-agent-skill add.

## Request body

- union: US street address or latitude+longitude (optionally with state+county to gate the geography). The comps lane runs a spatial query around the point over official assessor/parcel recorded-sale sources.
  - object
    - `state` string: Optional two-letter US state code, e.g. NC, FL, TX; provide with county to geography-gate the comps lane (address/point still required to run the spatial query).
    - `county` string: Optional county name, e.g. Wake; provide with state to geography-gate the comps lane.
    - `address` string, required: US street address; used to derive the search point and county.
    - `latitude` number: Optional decimal latitude; provide with longitude for point mode.
    - `longitude` number: Optional decimal longitude; provide with latitude for point mode.
    - `radiusMeters` number: Optional search radius in meters; default 1500, max 1500.
    - `monthsBack` integer: Optional lookback window in months; default 24, max 24.
  - object
    - `state` string: Optional two-letter US state code, e.g. NC, FL, TX; provide with county to geography-gate the comps lane (address/point still required to run the spatial query).
    - `county` string: Optional county name, e.g. Wake; provide with state to geography-gate the comps lane.
    - `address` string: US street address; used to derive the search point and county.
    - `latitude` number, required: Optional decimal latitude; provide with longitude for point mode.
    - `longitude` number, required: Optional decimal longitude; provide with latitude for point mode.
    - `radiusMeters` number: Optional search radius in meters; default 1500, max 1500.
    - `monthsBack` integer: Optional lookback window in months; default 24, max 24.

## Response `200`

Successful paid artifact, or a free pre-charge diagnostic when the request is outside current coverage.

- object: A cited comps-brief artifact: recorded-sale comp rows (parcel, site address, date, price, and price per LAND square foot where lot acreage is published) within 1500m / 24 months, plus median sale price, min/max range, median price per land square foot, and a coarse up/flat/down trend; provenance, per-source status, and Register-of-Deeds verify links. Arithmetic over public records - never a valuation, appraisal, AVM, or price prediction. A miss returns charged:false.
  - `kind` 'comps_brief', required
  - `generatedAt` string, required
  - `query` object, required
    - `mode` 'county' | 'address' | 'point', required
    - `radiusMeters` number, required
    - `monthsBack` number, required
  - `point` object
    - `latitude` number, required
    - `longitude` number, required
  - `state` string
  - `county` string
  - `comps` object[], required
  - `sampleSize` number, required
  - `medianPrice` number
  - `priceRange` object
    - `min` number, required
    - `max` number, required
  - `medianPricePerLandSqft` number
  - `trendDirection` 'up' | 'flat' | 'down' | 'insufficient_data', required
  - `componentStatus` object[], required
    - `component` string, required
    - `status` string, required
  - `provenance` object, required
  - `caveats` string[], required
  - `verifyNext` object[], required
    - `step` string, required
    - `url` string, required
  - `charged` boolean

## Other responses

- `400`: Invalid request body.
- `402`: Payment Required. For x402 v2, repeat the identical request with a valid PAYMENT-SIGNATURE header (legacy X-PAYMENT is accepted for compatibility), or use Authorization: Payment for MPP Tempo when advertised in x-payment-info.offers.

---

[API](https://skmtc.dev/locus/apis/locus-api.md) · [All operations](https://skmtc.dev/locus/apis/locus-api/llms.txt) · [OpenAPI document](https://skmtc.dev/locus/apis/locus-api/revisions/ba7786b74adb?raw)
