Point Lookup
1 token per requestQuery multiple data layers at a single geographic coordinate. Returns feature information, metadata, and optional geometry for each matched layer at the given point.
Try point lookup
Live demo against the production API. Defaults to Ames, Iowa — adjust latitude, longitude, and layers, then look up.
POST https://api.landmapmagic.com/v1/data/point?key=YOUR_API_KEYShow body ▾Hide body ▴
{
"lat": 42.0308,
"lng": -93.4816,
"layers": [
"states",
"counties",
"townships",
"sections",
"clu",
"ssurgo",
"cdl:2025"
],
"options": {
"include_geometry": false,
"include_metadata": false
}
}POST
https://api.landmapmagic.com/v1/data/pointGET
https://api.landmapmagic.com/v1/data/point?lat={lat}&lng={lng}&layers={layers}A GET convenience endpoint is also available for simple lookups. Pass
lat, lng, and layers (comma-separated) as query parameters. Example: GET /v1/data/point?lat=42.03&lng=-93.48&layers=states,counties&key=lmm_live_4f7k...z9QpRequest Body (POST)
Parameters
| Name | Type | Description |
|---|---|---|
| lat* | number | Latitude of the point to query. Range: -90 to 90. |
| lng* | number | Longitude of the point to query. Range: -180 to 180. |
| layers* | string[] | Array of layer names to query at the given point. See Available Layers below. |
| options | object | Optional configuration object for the query. See Options below. |
Options
| Name | Type | Description |
|---|---|---|
| include_geometry | boolean | Include full GeoJSON geometry for each matched feature. Default: false. Increases response size significantly. |
| include_metadata | boolean | Include layer metadata such as source, update date, and zoom information. Default: true. |
Available Layers
Supported Layers
| Attribute | Type | Description |
|---|---|---|
| states | polygon | U.S. state boundaries with FIPS codes and names. Optimal at zoom 4. |
| counties | polygon | U.S. county boundaries with FIPS codes, names, and state references. Optimal at zoom 6. |
| townships | polygon | PLSS township boundaries. Includes township, range, and principal meridian. Optimal at zoom 10. |
| sections | polygon | PLSS section boundaries (640-acre subdivisions within townships). Optimal at zoom 14. |
| clu | polygon | Common Land Unit (CLU) field boundaries from the USDA FSA. Optimal at zoom 14. |
| ssurgo | polygon | SSURGO soil map units at the queried coordinate. Optimal at zoom 14. |
| cdl:YYYY | raster_value | USDA Cropland Data Layer for a specific year (e.g. cdl:2023). Returns the crop code at the queried point. Optimal at zoom 12. |
Pricing is 1 token per request regardless of how many layers you query. Query multiple layers in a single request to minimize costs.
Response Fields
Top-Level Fields
| Attribute | Type | Description |
|---|---|---|
| point | object | The queried coordinate as { lat, lng }. |
| layers | object | Object keyed by layer name, such as states, ssurgo, or cdl:2023. |
| summary | object | Overall query summary with layers_queried, total_features_found, and processing_time_ms. |
| query | object | Echoes lat, lng, requested_layers, normalized snake_case options, timestamp, and account_id. |
Layer Object
| Attribute | Type | Description |
|---|---|---|
| layers[layer].layer | string | Canonical layer key for this result. For CDL this includes the year, such as cdl:2023. |
| layers[layer].type | string | Layer result type. Vector layers return vector; CDL returns raster_value. |
| layers[layer].status | string | Query status for this layer. ok means the layer was queried successfully. |
| layers[layer].feature_count | number | Number of normalized features found at the queried point for this layer. |
| layers[layer].features | array | Normalized feature rows for the layer. Empty when no feature was found. |
| features[].id | string | Unique identifier for the matched feature (e.g. FIPS code, CLU ID). |
| features[].name | string | Human-readable name for the matched feature. |
| features[].kind | string | Normalized feature kind such as state, county, plss_section, field_boundary, soil_map_unit, or crop. |
| features[].properties | object | Layer-specific properties of the matched feature. Varies by layer type. |
| layers[layer].zoom.optimal | number | Recommended zoom level for viewing this layer's data. |
| layers[layer].metadata | object | Layer metadata including source, last updated timestamp, and attribution. Only present when include_metadata is true. |
Code Examples
Basic Point Lookup
cURL
curl -X POST "https://api.landmapmagic.com/v1/data/point?key=lmm_live_4f7k...z9Qp" \
-H "Content-Type: application/json" \
-d '{
"lat": 42.0308,
"lng": -93.4816,
"layers": ["states", "counties", "townships"]
}'JavaScript
const response = await fetch(
"https://api.landmapmagic.com/v1/data/point?key=lmm_live_4f7k...z9Qp",
{
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
lat: 42.0308,
lng: -93.4816,
layers: ["states", "counties", "townships"],
}),
}
);
const data = await response.json();
Object.entries(data.layers).forEach(([layer, result]) => {
const feature = result.features[0];
console.log(`${layer}: ${feature ? feature.name : "not found"}`);
});Python
import requests
response = requests.post(
"https://api.landmapmagic.com/v1/data/point?key=lmm_live_4f7k...z9Qp",
json={
"lat": 42.0308,
"lng": -93.4816,
"layers": ["states", "counties", "townships"],
},
)
data = response.json()
for layer, result in data["layers"].items():
feature = result["features"][0] if result["features"] else None
name = feature["name"] if feature else "not found"
print(f"{layer}: {name}")With Geometry and CDL
cURL
curl -X POST "https://api.landmapmagic.com/v1/data/point?key=lmm_live_4f7k...z9Qp" \
-H "Content-Type: application/json" \
-d '{
"lat": 41.8781,
"lng": -93.0977,
"layers": ["counties", "ssurgo", "clu", "cdl:2023"],
"options": {
"include_geometry": true,
"include_metadata": true
}
}'JavaScript
const response = await fetch(
"https://api.landmapmagic.com/v1/data/point?key=lmm_live_4f7k...z9Qp",
{
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
lat: 41.8781,
lng: -93.0977,
layers: ["counties", "ssurgo", "clu", "cdl:2023"],
options: {
include_geometry: true,
include_metadata: true,
},
}),
}
);
const data = await response.json();
console.log(data.layers);Python
import requests
response = requests.post(
"https://api.landmapmagic.com/v1/data/point?key=lmm_live_4f7k...z9Qp",
json={
"lat": 41.8781,
"lng": -93.0977,
"layers": ["counties", "ssurgo", "clu", "cdl:2023"],
"options": {
"include_geometry": True,
"include_metadata": True,
},
},
)
data = response.json()
print(data["layers"])Response Example
States + Counties + Townships Query
{
"point": {
"lat": 42.0308,
"lng": -93.4816
},
"layers": {
"states": {
"layer": "states",
"type": "vector",
"status": "ok",
"feature_count": 1,
"features": [{
"id": "19",
"name": "Iowa",
"kind": "state",
"properties": {
"fips": "19",
"abbreviation": "IA",
"area_sq_mi": 56272.81
},
"geometry": null
}],
"zoom": {
"optimal": 4,
"min": 0,
"max": 6
},
"metadata": {
"name": "US States",
"description": "U.S. state boundaries",
"category": "administrative"
}
},
"counties": {
"layer": "counties",
"type": "vector",
"status": "ok",
"feature_count": 1,
"features": [{
"id": "19169",
"name": "Story County",
"kind": "county",
"properties": {
"fips": "19169",
"state_fips": "19",
"state_name": "Iowa",
"area_sq_mi": 573.21,
"population": 98537
},
"geometry": null
}],
"zoom": {
"optimal": 6,
"min": 0,
"max": 8
},
"metadata": {
"name": "US Counties",
"description": "U.S. county boundaries",
"category": "administrative"
}
},
"townships": {
"layer": "townships",
"type": "vector",
"status": "ok",
"feature_count": 1,
"features": [{
"id": "IA050830N0220W0",
"name": "T83N R22W",
"kind": "plss_township",
"properties": {
"township": "83N",
"range": "22W",
"principal_meridian": "5th Principal Meridian",
"state": "IA",
"area_acres": 23040
},
"geometry": null
}],
"zoom": {
"optimal": 10,
"min": 8,
"max": 12
},
"metadata": {
"name": "PLSS Townships",
"description": "PLSS township boundaries",
"category": "land"
}
}
},
"summary": {
"layers_queried": ["states", "counties", "townships"],
"total_features_found": 3,
"processing_time_ms": 86
},
"query": {
"lat": 42.0308,
"lng": -93.4816,
"requested_layers": ["states", "counties", "townships"],
"options": {
"include_geometry": false,
"include_metadata": true
},
"timestamp": "2026-05-03T23:22:00.000Z",
"account_id": "acct_..."
}
}