To pull sold land comps for a county, run one search per county on Scavio's Realtor.com API with listing_status: "sold", property_types: ["land"], sold_within_days: 730 and a lot-size floor. Each call returns up to 200 sales with sold price, sold date, lot size, list price and the listing agent, for 1 credit. Page to max_page for the full county, then compare price per acre. On October 10, 2026, and again when we re-checked on October 11, one call per county returned 200 priced land sales in Maricopa County, Arizona, Polk County, Florida and Horry County, South Carolina. In Travis County, Texas it returned 200 sales with no prices, because Texas does not disclose them. This page shows the exact request, the numbers, and where the method stops working. We build Scavio, so weigh that as you read.
The question shows up in the same form again and again. From r/RealEstate: "I'm looking for a way to see plots of land within a certain area that were recently purchased... Even better if I could be notified when sales happen." The usual answers are the county recorder's site, one county at a time, or a paid land platform. An API lets you run the same filter across every county you buy in.
Step 1: one request per county
The search endpoint takes the filters land investors use: land only, sold in the last 24 months, at least one acre (43,560 square feet), newest sales first, 200 rows per call.
import statistics
import requests
API = "https://api.scavio.dev/api/v1/realtor/search"
HEADERS = {"Authorization": "Bearer YOUR_SCAVIO_KEY"}
def sold_land(county, page=1):
body = {
"location": county, # "Polk County, FL"
"listing_status": "sold",
"property_types": ["land"],
"sold_within_days": 730, # last 24 months
"lot_sqft_min": 43560, # 1 acre floor
"sort": "sold_newest",
"page_size": 200, # max rows per call
"page": page,
}
r = requests.post(API, headers=HEADERS, json=body, timeout=90)
r.raise_for_status()
return r.json()["data"]
def comps(county):
first = sold_land(county)
rows = first["listings"]
for page in range(2, first["max_page"] + 1):
rows += sold_land(county, page)["listings"]
return first["total"], rows
def summarize(total, rows):
priced = [x for x in rows if x["sold_price"] and x["lot_sqft"]]
per_acre = [x["sold_price"] / (x["lot_sqft"] / 43560) for x in priced]
print(f"{total} sold parcels, {len(rows)} fetched, {len(priced)} with a sold price")
if per_acre:
print(f"median ${statistics.median(per_acre):,.0f} per acre")The first page of Polk County, Florida, run on October 10, 2026 (the October 11 re-check returned the same figures):
607 sold parcels, 200 fetched, 200 with a sold price
median $25,000 per acre
Each row carries sold_price, sold_date, lot_sqft, list_price, the address with county and FIPS code, coordinates, and the listing agent and office. total and max_page tell you how many calls the full county needs before you make them.
Step 2: compare counties on price per acre
We ran the same request for four counties on October 10, 2026 and re-checked it on October 11. The parcel counts move daily as the 24-month window rolls, so the table shows the October 11 figures; every other number is from the first call for each county, the 200 newest sales, and matched on both days:
| County | Sold parcels, 1+ acre, 24 months | Rows with a sold price | Median price per acre | Median lot | Median sale-to-list |
|---|---|---|---|---|---|
| Maricopa County, AZ | 2,607 | 200 of 200 | $83,044 | 2.28 acres | 0.935 |
| Horry County, SC | 694 | 200 of 200 | $31,331 | 3.25 acres | 0.931 |
| Polk County, FL | 607 | 200 of 200 | $25,000 | 2.99 acres | 0.927 |
| Travis County, TX | 294 | 0 of 200 | not disclosed | 2.24 acres | n/a |
A median hides a wide spread in land. In Maricopa the middle half of sales ran from about $24,000 to $320,000 per acre, because a lot on the Phoenix edge and a parcel in the desert are both "land in Maricopa County". Narrow before you price: add a max_price band, a lot_sqft_max that brackets your subject parcel (1 to 2 acres for a 1-acre subject, 9 to 11 for 10 acres), or swap the county for a ZIP code, or for latitude, longitude and radius_miles around the parcel.
The sale-to-list ratio comes free with the same rows: land closed at a median of 93 to 94 percent of the last list price in all three disclosure counties.
Step 3: check the comps that matter
Once a sale looks like a real comparable, one property call returns its history, valuation and risk data. On the newest Maricopa sale, a 2.5-acre parcel, it showed:
- listed at $785,000 in February, cut three times to $650,000, then sold at $550,000 on October 9, 2026
- an automated valuation of $693,000 with a range of $561,300 to $824,700: the sale closed below the low end of the estimate, which is why land is priced on sold comps, not on AVMs
- a minimal flood factor (FEMA zone X, shaded) but a wildfire factor of 8, "Severe", which a buyer will discount
Texas and other non-disclosure states
In sold-price non-disclosure states, listing sites do not publish sale prices: Texas, Utah, Wyoming, Alaska, Idaho, Kansas, Louisiana, Mississippi, Montana, New Mexico, North Dakota and parts of Missouri. Our Travis County call returned 294 sold land parcels with sold dates and lot sizes (and the listing agent on 174 of the first 200), but 0 of 200 with a sold price. 183 of the 200 still showed the last list price, which tells you what the seller asked, not what the buyer paid. For true sale prices in those states you still need the local MLS or an appraiser.
What it costs and where it stops
Every call is 1 credit and returns up to 200 sales. On the Growth plan billed yearly, $2 per 1,000 credits, that is $0.01 per 1,000 comps:
- one county page of 200 sales: $0.002
- all 2,607 Maricopa land sales from the last 24 months: 14 calls, $0.028
- a first pull of 40 counties with a few hundred sales each: roughly 100 to 150 calls, $0.20 to $0.30; a monthly refresh with
sold_within_days: 30is about one call per county - pay-as-you-go: $0.01 per call
The limits, stated plainly: a single search reaches its first 10,000 results, so split very large counties by price band or lot size; sold prices are blank in non-disclosure states; coverage is whatever Realtor.com shows for that county, so check a few sales against county records before you rely on a thin market; and calls take 1.5 to 4.5 seconds, so run comps as batch jobs. The response fields are documented per endpoint.
To get notified when land sells, run the Step 1 request on a schedule with sold_within_days set to your interval and keep every property_id you have already seen.
Pulling one county once is the easy part. The ongoing work is re-running comps across every county you buy in, every month, flagging the new sales and keeping the pipeline working when filters or pages change. That is the part Scavio's Realtor.com API absorbs: one request per county, 200 sales back, 1 credit, and the same key also covers property detail, market stats and agents.
Get 50 free credits, no card, enough for up to 10,000 sold rows, or run the land search in the playground first.
Reference: Realtor.com API overview · search docs · property docs · market stats docs · 6 Realtor.com APIs compared
Frequently asked questions
How do I find sold land comps for a county?
Filter sold listings to land in the county, limit them to recent sales (12 to 24 months for rural land), set a lot-size floor near your subject parcel, then compare price per acre. With Scavio's Realtor.com API that is one search call per county returning up to 200 sales, each with sold price, sold date, lot size and list price.
Why do Texas land comps have no sold price?
Texas is a sold-price non-disclosure state, so listing sites do not publish sale prices there. In a test on October 10, 2026, 0 of 200 sold land rows in Travis County had a sold price, but every row had its sold date and 183 still showed the last list price. The same applies in Utah, Wyoming, Alaska, Idaho, Kansas, Louisiana, Mississippi, Montana, New Mexico, North Dakota and parts of Missouri.
How many land comps can one request return?
Up to 200 sales per call, and up to 10,000 results per search across pages. Maricopa County, Arizona had 2,607 sold land parcels of an acre or more in the last 24 months on October 11, 2026, which took 14 calls. Above 10,000, split the search by price band or lot size.
How much does it cost to pull land comps for a county?
Each Scavio Realtor.com call costs 1 credit and returns up to 200 sales. On the Growth plan billed yearly ($2 per 1,000 credits) all 2,607 Maricopa County land sales cost $0.028. New accounts get 50 free credits, enough for up to 10,000 rows.
Can I get notified when land sells in an area?
Run the same search on a schedule with sold_within_days set to your interval, for example 7, and sort by sold_newest. Any property_id you have not seen before is a new sale.