Point Lookup

1 token per request

Query 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.

Layers

POST https://api.landmapmagic.com/v1/data/point?key=YOUR_API_KEYShow body ▾
{
  "lat": 42.0308,
  "lng": -93.4816,
  "layers": [
    "states",
    "counties",
    "townships",
    "sections",
    "clu",
    "ssurgo",
    "cdl:2025"
  ],
  "options": {
    "include_geometry": false,
    "include_metadata": false
  }
}
POSThttps://api.landmapmagic.com/v1/data/point
GEThttps://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...z9Qp

Request Body (POST)

Parameters

NameTypeDescription
lat*numberLatitude of the point to query. Range: -90 to 90.
lng*numberLongitude 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.
optionsobjectOptional configuration object for the query. See Options below.

Options

NameTypeDescription
include_geometrybooleanInclude full GeoJSON geometry for each matched feature. Default: false. Increases response size significantly.
include_metadatabooleanInclude layer metadata such as source, update date, and zoom information. Default: true.

Available Layers

Supported Layers

AttributeTypeDescription
statespolygonU.S. state boundaries with FIPS codes and names. Optimal at zoom 4.
countiespolygonU.S. county boundaries with FIPS codes, names, and state references. Optimal at zoom 6.
townshipspolygonPLSS township boundaries. Includes township, range, and principal meridian. Optimal at zoom 10.
sectionspolygonPLSS section boundaries (640-acre subdivisions within townships). Optimal at zoom 14.
clupolygonCommon Land Unit (CLU) field boundaries from the USDA FSA. Optimal at zoom 14.
ssurgopolygonSSURGO soil map units at the queried coordinate. Optimal at zoom 14.
cdl:YYYYraster_valueUSDA 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

AttributeTypeDescription
pointobjectThe queried coordinate as { lat, lng }.
layersobjectObject keyed by layer name, such as states, ssurgo, or cdl:2023.
summaryobjectOverall query summary with layers_queried, total_features_found, and processing_time_ms.
queryobjectEchoes lat, lng, requested_layers, normalized snake_case options, timestamp, and account_id.

Layer Object

AttributeTypeDescription
layers[layer].layerstringCanonical layer key for this result. For CDL this includes the year, such as cdl:2023.
layers[layer].typestringLayer result type. Vector layers return vector; CDL returns raster_value.
layers[layer].statusstringQuery status for this layer. ok means the layer was queried successfully.
layers[layer].feature_countnumberNumber of normalized features found at the queried point for this layer.
layers[layer].featuresarrayNormalized feature rows for the layer. Empty when no feature was found.
features[].idstringUnique identifier for the matched feature (e.g. FIPS code, CLU ID).
features[].namestringHuman-readable name for the matched feature.
features[].kindstringNormalized feature kind such as state, county, plss_section, field_boundary, soil_map_unit, or crop.
features[].propertiesobjectLayer-specific properties of the matched feature. Varies by layer type.
layers[layer].zoom.optimalnumberRecommended zoom level for viewing this layer's data.
layers[layer].metadataobjectLayer 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_..."
  }
}