---
title: "Fetch fields for up to 25 locations in one request"
method: POST
path: "/v1/fetch/batch"
---

# Fetch fields for up to 25 locations in one request

`POST /v1/fetch/batch`

## Request

- Base URL: `https://api.mireye.com`
- URL: `https://api.mireye.com/v1/fetch/batch`
- Auth: none declared
- TypeScript: <https://skmtc.dev/mireye/apis/mireye-earth/docs/v1/fetch/batch/post.ts> (a function with typed inputs; its response is checked against the schema)

The batch form of /v1/fetch: one field selection applied to a list of locations (each lat+lng or address). Results are index-aligned with the request and each is the same shape as a /v1/fetch response body; a location that fails resolves to an ok:false entry with the same error object the single endpoint would have returned, never failing the batch. Public Fetch is free. Send an optional Idempotency-Key header (8-128 chars of [A-Za-z0-9_-]) to make retries safe: if the response is lost in transit (a gateway 502, a client read timeout), retrying with the SAME key and body within 24h returns the already-computed result at zero additional source run, marked replayed:true (replays do count against your per-minute rate limit). Reusing a key with a different body is a 409 idempotency_key_reused; a retry racing the original computation is a 409 batch_in_progress with Retry-After. For long-running batches prefer POST /v1/runs (kind fetch_batch), which survives disconnects by design.

## Headers

- `Idempotency-Key` string, nullable

## Request body

- BatchFetchRequest: N locations, one field selection. The field selection is deliberately batch-wide, not per-location: the batch exists for "the same screen over a list of candidate properties", and per-location field lists would make the response shape unpredictable for exactly the clients (agents, spreadsheets) the batch serves.
  - `fields` string[], nullable
  - `locations` BatchFetchLocation[], required
    - `address` string, nullable
    - `lat` number, nullable
    - `lng` number, nullable
  - `preset` 'terrain' | 'flood_risk' | 'wildfire_underwrite' | 'land_cover' | 'site_selection' | 'building_lookup' | 'points_of_interest' | 'utilities' | 'boundaries' | 'solar_siting' | 'wind_siting' | 'storage_siting' | 'data_center_siting' | 'grid_interconnect' | 'natural_hazard', nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/mireye/apis/mireye-earth.md) - [All operations](https://skmtc.dev/mireye/apis/mireye-earth/llms.txt) - [OpenAPI document](https://skmtc.dev/mireye/apis/mireye-earth/revisions/d8410ba83654?raw)
