Skip to main content
POST
Enrich a parcel
Enrich requires a Mireye bearer token and follows standard account rate limits. Requests currently cost zero customer credits.
Use Enrich when you have a specific parcel to investigate. It resolves an address or coordinate, establishes whether exactly one stored parcel matches, then returns selected parcel attributes and calculations with field-level source metadata. To find candidate parcels first, use Search. Its optional enrich: true returns the same field catalog and provenance for every matched parcel, using Search’s original parcel and interior point without a second lookup. Point-based values can differ from a separate Enrich call, which uses the stored parcel centroid or input fallback; whole-parcel calculations use the same original boundary. The MCP tool mireye_enrich accepts the same Enrich request body inside req.

Quick request

For local testing, replace the host with your local API address. fields selects individual Enrich field IDs; preset selects one bundle. You may supply both to request their union, with duplicates returned once. For example:
The current presets are parcel, zoning, buildings, valuation, legal, power, access, water, terrain, environment, climate, hazards, market, and constraints. Returned fields stays one flat map, with related fields together in this preset order, preserving each preset’s field order. This order applies to all fields, a preset, and an explicit selection; request order does not change it. A field belonging to multiple presets appears once at its first preset. Fields outside every preset follow in catalog order. Omitting both selectors, or setting both to null, requests all 538 Enrich fields. An empty fields list and an unknown preset return 422; unknown field IDs return 400 fields_unknown. "fields": ["zoning"] requests one field, while "preset": "zoning" requests the whole bundle. Enrich has no 50-field cap. Choose a small set for an initial screen; requesting all fields can make a much larger response and invoke more producers. The Enrich field reference lists all individual IDs, their types, units and bundle memberships. Enrich presets are independent of Fetch presets.

Fields excluded from Enrich

The following eight fields are excluded from Enrich’s default selection and all Enrich presets. Explicitly requesting any of them also returns 400 fields_unknown; they are not optional Enrich add-ons. These fields remain available through Fetch, with its existing selectors and behavior. Enrich continues to support owner_assemblage and all wetland fields, including parcel wetland-overlap calculations.

Response examples

This matched response shows the identity, analysis point, and one field. The values below illustrate the shape; they are not a live result for the request above.
When matching fails, the response is still HTTP 200 and explains why. For example, parcel_match: {"status": "no_match", "parcel": null, "candidates": [], "reason": "No parcel matched the resolved point."} is paired with analysis_point: null, fields: {}, and partial_failures: [].

Read the response in order

  1. Check resolved_location. For an address, also inspect geocode and its parcel_grade, normalized_address, and precision_note before trusting a parcel-specific conclusion.
  2. Check parcel_match.status. Only matched runs enrichment. ambiguous returns parcel candidates for clarification; no_match means the completed lookup found none; unavailable means matching could not be established. All three return fields: {} and no analysis_point.
  3. For a match, inspect analysis_point and each requested fields[name].status. ok has a value, absent has a null value and an explanatory notes string, and failed has a null value plus error and retryable. Do not turn an absent or failed field into a zero or a negative finding.
The response also includes lat, lng, fetched_at, parcel_match, and partial_failures. A matched parcel’s parcel_match.parcel supplies its identity, APN, address, source, and matching evidence. analysis_point.method is stored_parcel_centroid when the stored pair exists or input_fallback otherwise. It records the point used for point-based calculations; it is not a claim that every point on the parcel has the same value. Each field contains value, unit, source, source_url, confidence, fetched_at, dataset_vintage, ttl_seconds, notes, status, and interpretation_hints. Failed fields also have error and retryable, and appear in partial_failures. The error and retryable keys are omitted when inapplicable; other legitimate nulls, including value, unit, and unknown timestamps or source metadata, remain present. Field confidence preserves the producer’s value, including medium for an absent NSRDB field. lifecycle stays in the catalog and field discovery; it is omitted from returned field objects. Read the field’s hints before using a value as a site-wide or legal conclusion. Field provenance can vary within one response because the selected facts come from different sources. Search with enrich: true uses this same field shape and ordering.

Agent workflow

If you start with a broad criterion, Search for a shortlist. With enrich: true, each result already contains the complete field map and provenance in enrichment; inspect its statuses and partial_failures. Search’s default is false. For a separate investigation, pick a result using APN, address, state and county as identity evidence. Enrich its address or analysis_point coordinate and confirm parcel_match.parcel is the parcel you intended. The Search point is an interior analysis point, but a fresh Enrich lookup may still be ambiguous or unavailable. Never silently substitute another candidate. Keep source URLs and per-field status with any answer you write. Retry a failed field only when its retryable flag is true; ask for clarification when the parcel match is ambiguous. An empty fields map after no_match or unavailable does not mean the requested facts were absent.

Access and errors

Authentication and coordinate/address validation follow the existing API conventions. Invalid request shapes return 422; unknown individual field IDs return 400 fields_unknown. A resolved coordinate outside the supported US envelope returns 400 coord_out_of_bounds. Address-resolution errors follow Geocode. Account rate limits and the shared Fetch worker-capacity limit can return 429 with Retry-After. See Errors for shared authentication responses.

Body

application/json

Address XOR lat/lng; select individual Enrich fields and/or one preset.

Omitted/null selectors retain the all-fields default. Preset expansion and field-ID validation happen before geocoding, parcel lookup or producers.

lat
number | null
lng
number | null
address
string | null
Required string length: 1 - 256
fields
string[] | null

Individual Enrich field IDs, for example elevation or owner. Combined with preset by union; duplicates are returned once. Omit or use null for both selectors to request all Enrich fields.

Minimum array length: 1
preset
enum<string> | null

One named Enrich bundle, expanded before any additional fields.

Available options:
parcel,
zoning,
buildings,
valuation,
legal,
power,
access,
water,
terrain,
environment,
climate,
hazards,
market,
constraints

Response

Successful Response

The response is of type object.