> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mireye.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /v1/enrich/fields

> List every Enrich field ID and preset, with types, units, hints and price.

## When to use this

Read `/v1/enrich/fields` before calling [Enrich](https://docs.mireye.ai/api-reference/enrich.md) to pick a
small `fields` or `preset` selection instead of requesting every field. It lists
each field ID Enrich accepts, the presets that bundle them, and the Enrich price.
Agents can use it to validate field names before sending a paid request. Fetch and
Search have their own lists: [`GET /v1/meta/fields`](https://docs.mireye.ai/api-reference/meta-fields) and
[`GET /v1/search/fields`](https://docs.mireye.ai/api-reference/get-search-fields).

No authentication is required and the call is free. The response carries an `ETag`
and `Cache-Control: public, max-age=3600`. Send `If-None-Match` with the last `ETag`
to receive `304 Not Modified` when nothing changed.

## Request shape

`GET` with no body and no query parameters.

```bash theme={null}
curl https://api.mireye.com/v1/enrich/fields
```

## Example response

An excerpt: one preset and one field are shown.

```json theme={null}
{
  "version": "0.18.0",
  "pricing": {
    "currency": "USD",
    "unit": "parcel",
    "price_usd": "0.02",
    "plan_prices_usd": {"build": "0.018", "free": "0.02", "growth": "0.015"},
    "charged_when": "Once per matched parcel, only when at least one requested field is returned. No-match, ambiguous, unavailable and empty results are free."
  },
  "presets": [
    {
      "name": "legal",
      "description": "Legal description, plat, book/page, block, lot, subdivision and PLSS location.",
      "fields": ["plss_township", "plss_section", "plss_range", "legaldesc", "plat", "book", "page", "block", "lot", "subdivision"]
    }
  ],
  "fields": [
    {
      "name": "slope_degrees",
      "type": "float",
      "unit": "degrees",
      "description": "Surface slope in degrees, computed from the USGS 3DEP DEM at the queried point. 0 = flat; 90 = vertical.",
      "interpretation_hints": "Slope >15° materially raises wildfire spread risk on forested land. Slope >25° complicates conventional construction. Combine with lcms_class and dist_to_wui_m for wildfire underwriting.",
      "null_meaning": null,
      "nullable": false,
      "source": "USGS_3DEP",
      "presets": ["terrain"]
    }
  ]
}
```

## Response shape

| Key | Meaning |
| - | - |
| `version` | Response envelope version. |
| `pricing` | Enrich price: `price_usd` on Free, `plan_prices_usd` per plan, and `charged_when`. |
| `presets` | Presets in response order, each with `name`, `description` and its exact `fields`. |
| `fields` | Every field ID, in catalog order. |

Each field has `name`, `type`, `unit` (null when unitless), `description`,
`interpretation_hints`, `null_meaning` (null when not documented), `nullable`,
`source` (the public source ID returned with values) and `presets`. Pass `name`
values in the Enrich `fields` list and preset names in `preset`.

## Errors

| Status | Code | Meaning |
| - | - | - |
| 400 | `query_parameter_unknown` | The request included a query parameter; this endpoint takes none. |


## OpenAPI

````yaml GET /v1/enrich/fields
openapi: 3.1.0
info:
  description: >-
    Provenance-tagged geospatial data for US coordinates. POST /v1/fetch for
    deterministic field values (POST /v1/fetch/batch for up to 25 locations at
    once); POST /v1/ask for natural-language Q&A; GET /v1/meta/fields for the
    catalog.
  title: Mireye Earth
  version: 0.18.0
servers:
  - description: Production
    url: https://api.mireye.com
security: []
paths:
  /v1/enrich/fields:
    get:
      summary: List Enrich fields and presets
      description: >-
        Every field ID and preset accepted by POST /v1/enrich, with type, unit,
        description, interpretation hints, null meaning, source and preset
        membership, plus the Enrich price. Use it to choose a small fields or
        preset selection before enriching a parcel. No authentication is
        required. The response carries an ETag and Cache-Control: public,
        max-age=3600; send If-None-Match to receive 304 when nothing changed.
      operationId: enrich_fields_catalog_v1_enrich_fields_get
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnrichFieldsResponse'
          description: Successful Response
        '304':
          description: Not modified; the cached copy matching If-None-Match is current.
        '400':
          content:
            application/json:
              example:
                detail:
                  error: query_parameter_unknown
                  message: 'Unknown query parameter(s): limit.'
                  retryable: false
          description: An unknown query parameter was supplied.
components:
  schemas:
    EnrichFieldsResponse:
      additionalProperties: false
      properties:
        fields:
          items:
            $ref: '#/components/schemas/EnrichDiscoveryField'
          title: Fields
          type: array
        presets:
          items:
            $ref: '#/components/schemas/EnrichDiscoveryPreset'
          title: Presets
          type: array
        pricing:
          $ref: '#/components/schemas/EndpointPricing'
        version:
          description: Response envelope version.
          title: Version
          type: string
      required:
        - version
        - pricing
        - presets
        - fields
      title: EnrichFieldsResponse
      type: object
    EnrichDiscoveryField:
      additionalProperties: false
      properties:
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        interpretation_hints:
          anyOf:
            - type: string
            - type: 'null'
          description: How to read the value.
          title: Interpretation Hints
        name:
          description: Field ID to use in requests.
          title: Name
          type: string
        null_meaning:
          anyOf:
            - type: string
            - type: 'null'
          description: What a null value means, when documented.
          title: Null Meaning
        nullable:
          description: Whether a valid response can carry null.
          title: Nullable
          type: boolean
        presets:
          description: Enrich presets that include this field.
          items:
            type: string
          title: Presets
          type: array
        source:
          anyOf:
            - type: string
            - type: 'null'
          description: Public source ID returned with values.
          title: Source
        type:
          description: 'Value type: string, int, float, bool, object or array.'
          title: Type
          type: string
        unit:
          anyOf:
            - type: string
            - type: 'null'
          description: Unit of the value, or null when unitless.
          title: Unit
      required:
        - name
        - type
        - unit
        - description
        - interpretation_hints
        - null_meaning
        - nullable
        - source
        - presets
      title: EnrichDiscoveryField
      type: object
    EnrichDiscoveryPreset:
      additionalProperties: false
      properties:
        description:
          title: Description
          type: string
        fields:
          description: Exact fields the preset requests, in response order.
          items:
            type: string
          title: Fields
          type: array
        name:
          title: Name
          type: string
      required:
        - name
        - description
        - fields
      title: EnrichDiscoveryPreset
      type: object
    EndpointPricing:
      additionalProperties: false
      properties:
        charged_when:
          description: When a request is charged.
          title: Charged When
          type: string
        currency:
          const: USD
          title: Currency
          type: string
        plan_prices_usd:
          additionalProperties:
            type: string
          description: Price per unit on each plan, keyed by plan ID.
          title: Plan Prices Usd
          type: object
        price_usd:
          description: Price per unit on the Free plan, as a decimal string.
          title: Price Usd
          type: string
        unit:
          description: What one charge covers.
          enum:
            - parcel
            - query
          title: Unit
          type: string
      required:
        - currency
        - unit
        - price_usd
        - plan_prices_usd
        - charged_when
      title: EndpointPricing
      type: object

````