Changelog
Customer-facing changes to the Land Map Magic API. Newest entries first.
Compatibility
The public API is served under /v1. We prefer additive changes on v1: new endpoints, optional fields, and new optional parameters. Breaking changes are documented here and will either ship behind dual support or as a future /v2 with a deprecation window.
Breaking means removed or renamed fields, type changes, stricter validation, changed defaults, auth changes, or response/error shape changes that can break existing clients.
Releases
Public agent skills
- AddedAgents can discover and install the public
landmap-apiskill fromGET /.well-known/agent-skills/index.json(draft Agent Skills discovery) or refresh a local copy fromGET /v1/skillsandGET /v1/skills/landmap-api. No API key is required. Compare the integerversionto your local skill and replace files when ours is newer. Tile, style, AOI, point, and search routes are unchanged.
Parcels on the Data API
- Added
parcelsis now a supported layer on/v1/data/pointand/v1/data/aoi. Point lookups return the parcel at the coordinate; AOI queries return every parcel intersecting the polygon (capped at 1,000 parcels per query) with intersection acreage and percent coverage. Parcel features use the providerrobust_idas a stable id, include ownership/assessment attributes where available, and return full parcel geometry whenoptions.include_geometryis true. Billed as normal point/AOI requests — no separate parcel pricing on the Data API. - AddedBoth layer listing endpoints (
GET /v1/data/point/layers,GET /v1/data/aoi/layers) now list parcels. - FixedThe dedicated parcel search endpoints
/v1/parcels/boundsand/v1/parcels/query(point and owner searches) were returning provider errors due to an upstream API contract change. They now return parcel FeatureCollections with GeoJSON geometry again.
Data API: whole-feature geometry, corrected acreage, stable feature ids
- Fixed
/v1/data/aoinow honors the documentedoptions.include_geometry(snake_case) option. Previously only the camelCase spelling was recognized, so geometry silently came back null. Both spellings are accepted. - FixedPoint and AOI queries return complete feature geometry. Features that internally span multiple map tiles (e.g. larger CLU fields) are now dissolved server-side into one whole Polygon/MultiPolygon instead of a tile-clipped fragment.
- FixedAOI results return one row per real-world feature with correct acreage. Fields crossing tile boundaries previously appeared as multiple rows with overlapping-buffer acreage overstated by up to ~40%; CLU
feature_acresnow comes from the authoritative source acreage (calcacres) and intersection statistics are computed against the dissolved feature. - ChangedFeature ids for vector features are now the stable per-dataset feature id shared across tiles (the same id from point and AOI queries), replacing the internal tile-addressed fallback ids (z/x/y/index) that changed per tile. Ids remain stable until the underlying dataset is rebuilt; rebuilds will be announced here.
- ChangedUnsupported layer names are no longer silently ignored on
/v1/data/point. If no requested layer is supported the API returns 400 with aninvalid_layerslist; mixed requests succeed for valid layers and include top-levelwarningsandinvalid_layersfields. - Added
geometry_completeboolean on every feature returned with geometry: true when the geometry represents the entire real-world feature, false in the rare case a feature could not be fully reconstructed.
Changelog published
- AddedPublic API changelog at
/docs/changelog. Future customer-facing API changes will be recorded here.