GET /api/v1/properties
Look up a street address or coordinates, or search cached records by zip, city, state, or street.
Developer docs
One header, JSON responses. Look up any US address. Cached hits are $0.005; live AI pulls are $0.02.
Copy a request
Pick a call, switch language, copy. Swap in a key from the dashboard.
GET/api/v1/properties
Full street address in q. Cached records younger than a year return immediately.
curl -G "https://earthydata.com/api/v1/properties" \ --data-urlencode "q=1847 Maplewood Drive, Austin, TX 78703" \ -H "Authorization: Bearer ed_live_YOUR_KEY"
Send the secret on every request. Prefixes are safe to display; the full key is shown once in the dashboard.
Authorization: Bearer ed_live_YOUR_KEY
GET /api/v1/properties
Look up a street address or coordinates, or search cached records by zip, city, state, or street.
GET /api/v1/properties/fresh
Same lookup as /properties, always live. Requires q or lat+lng.
GET /api/v1/properties/:id
Fetch one property by id.
GET /api/v1/coverage
US county registry. Pass state to list counties and whether a parcel layer is wired.
Address or coordinates trigger a lookup. zip, city, state, and street filter records already in cache. Flags accept 1 / true / yes / on, or 0 / false / no / off.
| Param | Type | Notes |
|---|---|---|
qstring | string | Street address, or lat,lng. A street number plus another token (or coordinates) starts a lookup. |
latnumber | number | Latitude. Use with lng. Range −90 to 90. |
lngnumber | number | Longitude. Use with lat. Range −180 to 180. |
freshflag | flag | Skip cache and pull live facts. 1, true, yes, on, or empty. Alias: refresh. |
waitflag | flag | Default true. 0, false, no, off, or async returns immediately while status is enriching. |
| Param | Type | Notes |
|---|---|---|
zipstring | string | Exact ZIP on cached records. |
citystring | string | City name, case-insensitive. |
statestring | string | State abbreviation, case-insensitive. |
streetstring | string | Street name contains match. |
limitnumber | number | Search page size, 1–50. Default 10. Ignored on lookups. |
Coverage takes state (e.g. WA). Without it, the response lists wired counties only.
Lookups return data as an array of one record, plus status, cached, and durationMs. Null fields are omitted. If facts are still loading, status is enriching and the response includes Retry-After.
| Field | Notes |
|---|---|
| id | Property id. Use with /properties/:id. |
| status | ready, enriching, partial, failed, or not_found. |
| address | Formatted street address. |
| city, state, zip, county | Parsed location. |
| lat, lng | Coordinates. |
| type | Property type, e.g. SINGLE_FAMILY. |
| beds, baths, sqft, lotSqft | Living area and lot when published. |
| yearBuilt, stories, floor, garage | Stories is the building floor count. floor is the unit floor for condos/apartments. |
| parcelId, assessedValue | Assessor fields when the county publishes them. |
| value | Estimated value. |
| lastSalePrice, lastSaleDate | Last sale, date as YYYY-MM-DD. |
| schoolDistrict, floodZone, hoa | Public extras when found. |
| notes | Public notes array, omitted when empty. |
{
"data": [{
"id": "cmlx7k2ab0001",
"status": "ready",
"address": "1847 Maplewood Drive, Austin, TX 78703",
"city": "Austin",
"state": "TX",
"zip": "78703",
"county": "Travis",
"lat": 30.2805,
"lng": -97.7642,
"type": "SINGLE_FAMILY",
"beds": 3,
"baths": 2,
"sqft": 1842,
"lotSqft": 6534,
"yearBuilt": 1998,
"stories": 2,
"garage": 2,
"parcelId": "0102030405",
"assessedValue": 812000,
"value": 875000,
"lastSalePrice": 640000,
"lastSaleDate": "2019-06-14",
"schoolDistrict": "Austin ISD",
"floodZone": "X"
}],
"status": "ready",
"cached": true,
"durationMs": 42
}{
"data": [{
"id": "cmlx7k2ab0001",
"status": "enriching",
"address": "1847 Maplewood Drive, Austin, TX 78703"
}],
"status": "enriching",
"cached": false,
"durationMs": 2100,
"retryAfterSeconds": 12
}Headers
X-Credits-Balance remaining USDX-Credits-Charged this requestX-Credits-Kind cached or liveRetry-After seconds, when status is enrichingPay as you go — no subscription. Top up from the dashboard when the balance runs out. Estimate volume.
Cached
$0.005
per lookup
Live
$0.02
per lookup
| Status | Error | When |
|---|---|---|
| 401 | unauthorized | Missing or revoked API key. |
| 402 | payment_required | Not enough credits. Top up from the dashboard. |
| 400 | missing_query | /properties/fresh without q or lat+lng. |
| 404 | not_found | Unknown property id. |
| 502 | lookup_failed | Live lookup could not resolve the address. |
| 500 | query_failed | Search or fetch failed. |