Loading documentation...
Search for states, counties, PLSS townships, PLSS sections, addresses, and parcels across the United States. Supports fuzzy matching, multi-type filtering, address geocoding, and parcel ID lookups with regional context.
https://api.landmapmagic.com/v1/data/search| Name | Type | Description |
|---|---|---|
| key* | string | Your API key for authentication. |
| q* | string | Search query string. Minimum 2 characters. Supports place names, addresses, parcel IDs, and fuzzy matching. |
| limit | number | Maximum number of results to return. Range: 1-50. Default: 10. |
| types | string | Comma-separated list of result types to filter by. Valid values: state, county, plss_township, plss_section, address, parcel. Omit to search all types. |
| region | string | State or region code (e.g. "IA", "Iowa") to narrow search scope. Required for parcel ID searches unless lat/lng, bbox, or center_lat/center_lng is provided. |
| lat | number | Latitude for geographic biasing. Used to boost results near this location and as fallback region context for parcel ID searches. |
| lng | number | Longitude for geographic biasing. Must be provided together with lat. |
| bbox | string | Bounding box to constrain results. Format: min_lon,min_lat,max_lon,max_lat. Can span up to 5 states for multi-state searches. |
| center_lat | number | Fallback center latitude for region inference when lat/lng and bbox are not provided. Used primarily for parcel ID lookups. |
| center_lng | number | Fallback center longitude for region inference. Must be provided together with center_lat. |
region parameter, (2) lat + lng coordinates, (3) bbox bounding box, or (4) center_lat + center_lng fallback coordinates.| Attribute | Type | Description |
|---|---|---|
| query | string | The original search query string. |
| results | array | Array of matching result objects. |
| Attribute | Type | Description |
|---|---|---|
| id | string | Unique identifier for the result (e.g. FIPS code, PLSS ID, parcel ID). |
| type | string | Entity type: state, county, plss_township, plss_section, address, or parcel. |
| name | string | Display name of the result (e.g. "Story County, Iowa"). |
| simpleName | string | Simplified short name without state qualifier (e.g. "Story County"). |
| state | string | Two-letter state abbreviation (e.g. "IA"). |
| centroid | [number, number] | Geographic center of the result as [longitude, latitude]. |
| bbox | [number, number, number, number] | Bounding box as [min_lon, min_lat, max_lon, max_lat]. |
| suggestedZoom | number | Recommended map zoom level for viewing this result. |
| score | number | Relevance score from 0 to 1, where 1 is an exact match. |
| county | object | County information (when applicable). Contains fips (string) and name (string). |
| parcel | object | Parcel details (only for type=parcel). Contains parcelId, owner, acreage, marketValue, and landUseClass. |
| region | string | Region or state context used for the search. |
| Attribute | Type | Description |
|---|---|---|
| fips | string | 5-digit FIPS code for the county. |
| name | string | County name. |
| Attribute | Type | Description |
|---|---|---|
| parcelId | string | The parcel identification number. |
| owner | string | Recorded owner name. |
| acreage | number | Total parcel acreage. |
| marketValue | number | Assessed market value in USD. |
| landUseClass | string | Land use classification (e.g. "Agricultural", "Residential"). |
curl "https://api.landmapmagic.com/v1/data/search?key=YOUR_API_KEY&q=iowa&limit=5"const response = await fetch(
"https://api.landmapmagic.com/v1/data/search?" +
new URLSearchParams({
key: "YOUR_API_KEY",
q: "iowa",
limit: "5",
})
);
const data = await response.json();
console.log(data.results);import requests
response = requests.get(
"https://api.landmapmagic.com/v1/data/search",
params={
"key": "YOUR_API_KEY",
"q": "iowa",
"limit": 5,
},
)
data = response.json()
print(data["results"])curl "https://api.landmapmagic.com/v1/data/search?key=YOUR_API_KEY&q=1600+Pennsylvania+Ave+Washington+DC&types=address&limit=1"const response = await fetch(
"https://api.landmapmagic.com/v1/data/search?" +
new URLSearchParams({
key: "YOUR_API_KEY",
q: "1600 Pennsylvania Ave Washington DC",
types: "address",
limit: "1",
})
);
const data = await response.json();
const { centroid, suggestedZoom } = data.results[0];
console.log("Center:", centroid, "Zoom:", suggestedZoom);import requests
response = requests.get(
"https://api.landmapmagic.com/v1/data/search",
params={
"key": "YOUR_API_KEY",
"q": "1600 Pennsylvania Ave Washington DC",
"types": "address",
"limit": 1,
},
)
data = response.json()
result = data["results"][0]
print(f"Center: {result['centroid']}, Zoom: {result['suggestedZoom']}")curl "https://api.landmapmagic.com/v1/data/search?key=YOUR_API_KEY&q=12-34-567-890&types=parcel®ion=IA"const response = await fetch(
"https://api.landmapmagic.com/v1/data/search?" +
new URLSearchParams({
key: "YOUR_API_KEY",
q: "12-34-567-890",
types: "parcel",
region: "IA",
})
);
const data = await response.json();
const parcel = data.results[0]?.parcel;
console.log("Owner:", parcel?.owner, "Acres:", parcel?.acreage);import requests
response = requests.get(
"https://api.landmapmagic.com/v1/data/search",
params={
"key": "YOUR_API_KEY",
"q": "12-34-567-890",
"types": "parcel",
"region": "IA",
},
)
data = response.json()
parcel = data["results"][0].get("parcel", {})
print(f"Owner: {parcel.get('owner')}, Acres: {parcel.get('acreage')}")curl "https://api.landmapmagic.com/v1/data/search?key=YOUR_API_KEY&q=12-34-567-890&types=parcel&lat=42.0308&lng=-93.4816"const response = await fetch(
"https://api.landmapmagic.com/v1/data/search?" +
new URLSearchParams({
key: "YOUR_API_KEY",
q: "12-34-567-890",
types: "parcel",
lat: "42.0308",
lng: "-93.4816",
})
);
const data = await response.json();
console.log(data.results);import requests
response = requests.get(
"https://api.landmapmagic.com/v1/data/search",
params={
"key": "YOUR_API_KEY",
"q": "12-34-567-890",
"types": "parcel",
"lat": 42.0308,
"lng": -93.4816,
},
)
data = response.json()
print(data["results"]){
"query": "iowa",
"results": [
{
"id": "19",
"type": "state",
"name": "Iowa",
"simpleName": "Iowa",
"state": "IA",
"centroid": [-93.4977, 42.0046],
"bbox": [-96.6397, 40.3755, -90.1401, 43.5012],
"suggestedZoom": 7,
"score": 1.0,
"county": null,
"parcel": null,
"region": "IA"
},
{
"id": "19169",
"type": "county",
"name": "Story County, Iowa",
"simpleName": "Story County",
"state": "IA",
"centroid": [-93.4816, 42.0308],
"bbox": [-93.6985, 41.8631, -93.2314, 42.2091],
"suggestedZoom": 10,
"score": 0.62,
"county": {
"fips": "19169",
"name": "Story County"
},
"parcel": null,
"region": "IA"
}
]
}{
"query": "12-34-567-890",
"results": [
{
"id": "parcel-19169-1234567890",
"type": "parcel",
"name": "Parcel 12-34-567-890, Story County, Iowa",
"simpleName": "12-34-567-890",
"state": "IA",
"centroid": [-93.4621, 42.0142],
"bbox": [-93.4688, 42.0098, -93.4554, 42.0186],
"suggestedZoom": 16,
"score": 0.98,
"county": {
"fips": "19169",
"name": "Story County"
},
"parcel": {
"parcelId": "12-34-567-890",
"owner": "SMITH JOHN A",
"acreage": 152.4,
"marketValue": 1280000,
"landUseClass": "Agricultural"
},
"region": "IA"
}
]
}