The Mireye connector lets your AI agent act in each user's Mireye account. Each user connects their own Mireye API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 21 tools.
- Tools
- 21
- What they doRead · write · destructive
- 10 · 11 · 010 read11 write0 destructive
- Users sign in with
- API key
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Mireye connection
In AgentKit > Connections, create a Mireye connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Console steps with screenshots
Mireye connections use a Mireye API key. Fetch, Geocode and field-request tools are free. Enrich, Search, Ask and drive-time tools spend your Mireye balance, and they need a key created after you accepted Mireye’s current terms.
-
Create a Mireye API key
Sign in to the Mireye dashboard and accept the current terms. The dashboard creates a default key; you can also create a named key for this app. Copy the key when it appears, because Mireye doesn’t show it again. Keys start with
mry_.A key created before you accepted Mireye’s current terms can call the free tools only. To use paid tools, create a new key after accepting.
-
Create the connection
In the Scalekit dashboard, go to AgentKit > Connections > Create Connection, find Mireye and click Create. The connection name is the
connection_nameyour code passes. -
Add a connected account
To test, open the connection, click the Connected Accounts tab > Add Account, enter the user’s identifier, such as
user_123, and paste the key into API Key.In production, each user opens the authorization link and enters their own key there.
Call paid tools safely
Paid tools, such as
mireye_parcel_enrich,mireye_parcels_search,mireye_location_askandmireye_proximity_distance, take two inputs that control spend:idempotency_key(required): a key you choose for this piece of work, 8 to 128 letters, digits, hyphens or underscores. Mireye keeps working if the call times out. Repeat the call with the same key and identical inputs to get the saved result without a second charge. Use a new key for new work; reusing a key with different inputs returns409 idempotency_conflict.max_cost_usd(optional): a spending ceiling for the call, as a decimal string such as"0.10". Mireye refuses the call with402if the price is above the ceiling or your available balance.
-
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'mireye'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Mireye:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'mireye_enrich_fields_list',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "mireye"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Mireye:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="mireye_enrich_fields_list",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their Mireye credentials there. If your app already has a user's credentials, add the account from your backend instead, as the console steps above show. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolmireye_address_geocodeResolve a US street address to a coordinate and report how precise that coordinate is.Read-onlyGeocode Address
Resolve a US street address to a coordinate and report how precise that coordinate is. Returns lat, lng, accuracy, accuracy_type (rooftop, or range_interpolation, which can be off by about 2.9 km in rural areas), match_type, normalized_address, provider, source, parcel_grade and precision_note. Use mireye_address_geocode to check or reuse a coordinate before calling other tools with lat and lng. mireye_location_fetch, mireye_location_ask and mireye_parcel_enrich also accept an address directly and return the same geocode block. Free.
Inputs
addressstringrequired- A full US street address to turn into a coordinate, 1 to 256 characters, with house number, street, city and state or ZIP. A bare street with no locality, or an address the geocoder can only place at a ZIP, city or county centroid, is rejected with 404 address_too_coarse. Example: 350 5th Ave, New York, NY 10118.
mireye_enrich_fields_listList every field ID and preset accepted by mireye_parcel_enrich.Read-onlyList Enrich Fields
List every field ID and preset accepted by mireye_parcel_enrich. Returns pricing (the Enrich price per plan and when it is charged), presets (name, description and fields) and fields (name, type, unit, description, interpretation_hints, null_meaning, source and presets). Use mireye_enrich_fields_list to pick a small fields or preset selection before enriching a parcel. Use mireye_fetch_fields_list for free Fetch fields and mireye_search_fields_list for Search filters. Free.
Inputs
This tool takes no inputs.
mireye_fetch_fields_listList every field and preset available to mireye_location_fetch and mireye_run_create.Read-onlyList Fetch Fields
List every field and preset available to mireye_location_fetch and mireye_run_create. Returns fields (name, type, unit, description, interpretation_hints, null_meaning, layer, source, source_url, presets and price, which is 0 for Fetch), presets (each preset's field names), us_envelope (the accepted coordinate range) and version. Use mireye_fetch_fields_list to choose valid field names or a preset before fetching. Use mireye_enrich_fields_list for mireye_parcel_enrich fields and mireye_search_fields_list for mireye_parcels_search names. The response is large (about 350 fields). Free.
Inputs
This tool takes no inputs.
mireye_field_request_getGet the current status of a field request filed with mireye_field_request_create.Read-onlyGet Field Request
Get the current status of a field request filed with mireye_field_request_create. Returns request_id, status (received, screening, matched, awaiting_confirm, rejected, queued, claimed, building, in_review, approved, publishing, live, blocked or expired), waiting_on, queue_position, estimated_ready_at, resolved_locations, disposition, resume (the fetch call that answers the original ask), context_blob, created_at and updated_at. Use mireye_field_request_get to poll a request; when status is live, run its resume call with mireye_location_fetch. Free. Requires a request_id from mireye_field_request_create.
Inputs
request_idstringrequired- The request_id returned by mireye_field_request_create. Requests are visible only to the credential that filed them; an unknown id, or another account's, returns 404 field_request_not_found. Example: fr_5d81c02e94aa4f31b7c6d2a90e8f1c3b.
mireye_location_fetchFetch free public data fields for one US coordinate or street address, such as elevation, flood zone, wetlands, terrain, land cover and distance to nearby infrastructure.Read-onlyFetch Location Data
Fetch free public data fields for one US coordinate or street address, such as elevation, flood zone, wetlands, terrain, land cover and distance to nearby infrastructure. Returns each field with its value, unit, source, source_url, confidence and status, plus partial_failures for fields that failed, resolved_location, and a geocode block when you sent an address. Use mireye_location_fetch when you know which fields you need. Use mireye_location_ask for a plain-language question, mireye_parcel_enrich for parcel data such as owner, zoning or boundaries, and mireye_run_create for up to 25 locations at once. Free on every plan and usually answers in seconds, but satellite-imagery fields can take up to 60 s and road or building fields up to 35 s; submit those through mireye_run_create. Pick field names or a preset from mireye_fetch_fields_list.
Inputs
addressstring- A full US street address to fetch data for (house number, street, city, state and ZIP), 1 to 256 characters. Mireye geocodes it first and returns a geocode block with the match quality. Use this instead of lat and lng; never send both. A bare street with no city or ZIP is rejected as too coarse. Example: 350 5th Ave, New York, NY 10118.
fieldsarray- Catalog field names to fetch at the location, from mireye_fetch_fields_list. Send fields, preset or both (the preset expands first and these are added to it). At most 50 fields outside the chosen preset. Parcel fields such as owner, zoning or boundaries are not free and are rejected here; use mireye_parcel_enrich for those. Example: ["elevation", "coast_distance_m"].
latnumber- Latitude of the US point to fetch data for, in decimal degrees (WGS84). Send lat and lng together, or send address instead; never both. Example: 40.7128.
lngnumber- Longitude of the US point to fetch data for, in decimal degrees (WGS84, negative in the western hemisphere). Send lat and lng together, or send address instead; never both. Example: -74.006.
presetstring- A named bundle of fields to fetch, for a common use case. For example flood_risk returns elevation, floodplain, wetland and surface-water fields, and terrain returns elevation, slope, aspect, coast distance, soil drainage and bedrock depth. mireye_fetch_fields_list lists each preset's fields. Send fields, preset or both. Example: flood_risk.one of
terrainflood_riskwildfire_underwriteland_coversite_selectionbuilding_lookuppoints_of_interestutilitiesboundariessolar_sitingwind_sitingstorage_sitingdata_center_sitinggrid_interconnectnatural_hazard
mireye_operation_getGet the saved result of a paid Mireye operation by its operation_id.Read-onlyGet Paid Operation
Get the saved result of a paid Mireye operation by its operation_id. Returns the operation's saved result with its billing receipt. Results are kept for 30 days. Returns 409 operation_in_progress with Retry-After while the work or its saving is still running, 410 operation_failed if it ended without a billed result, and 410 result_not_retained with a charge receipt if a charged result could not be saved. Use mireye_operation_get to recover a paid result when you have its operation_id. When you only have the idempotency key, repeat the original call with the same key and identical inputs instead. Free. Requires an operation_id from a paid call.
Inputs
operation_idstringrequired- The operation_id of a paid call, from the billing receipt (billing.operation_id) of mireye_parcels_search, mireye_parcel_enrich, mireye_location_ask, mireye_site_ask or a mireye_proximity_* tool, or from a paid error body. Example: op_4b1d9c2e41b84d0f.
mireye_plans_listList Mireye's current plans and dollar prices.Read-onlyList Plans and Prices
List Mireye's current plans and dollar prices. Returns the public rate card: each plan's monthly price and allowance, the unit prices for Enrich, Search, driving calculations and Ask, and request-rate limits. Use mireye_plans_list to check what a paid call will cost before making it. Free.
Inputs
This tool takes no inputs.
mireye_run_getGet the status, progress and result of a run submitted with mireye_run_create.Read-onlyGet Run
Get the status, progress and result of a run submitted with mireye_run_create. Returns run_id, kind, status (queued, running, done or failed), progress (done and total), created_at, updated_at, expires_at, the submitted request, and result once done: the same body mireye_location_fetch returns, for each location in input order, or an ok:false entry with its error. A failed run carries error with error, message and retryable. Use mireye_run_get to poll a run until status is done or failed. A run_interrupted failure is retryable: submit the same request again with mireye_run_create. Requires a run_id from mireye_run_create.
Inputs
run_idstringrequired- The run_id returned by mireye_run_create. A run is visible only to the account that submitted it and expires 30 days after submission; an unknown, expired or other account's id returns 404 run_not_found. Example: run_a1b2c3d4e5f6.
mireye_search_fields_listList every name accepted by mireye_parcels_search, in filters or in the fields to return.Read-onlyList Search Fields
List every name accepted by mireye_parcels_search, in filters or in the fields to return. Returns pricing (the Search price per plan and when it is charged) and fields, each with name, type, unit, description, interpretation_hints, null_meaning, source, filter_ops (the operators allowed in filters; empty means output-only) and returnable. Use mireye_search_fields_list to build and check a search before paying for it. Use mireye_enrich_fields_list for Enrich field IDs and presets. Free.
Inputs
This tool takes no inputs.
mireye_site_getGet the preparation status of a site created with mireye_site_create.Read-onlyGet Site
Get the preparation status of a site created with mireye_site_create. Returns site_id, status (for example building or ready), site_acres, site_extent (bounding box) and built_at. It does not return the site's data. Use mireye_site_get to poll until status is ready, then ask questions with mireye_site_ask. Prepared sites are snapshots kept for 30 days; re-create an expired or failed site with mireye_site_create. Free. Requires a site_id from mireye_site_create.
Inputs
site_idstringrequired- The site_id returned by mireye_site_create. A site belongs to the account that prepared it; another account's id returns 404 site_not_found. Example: site_8f3a2c1d9e4b.
mireye_field_request_createAsk Mireye for a US location data point that its catalog may not have yet, described in plain language with example locations.WriteRequest a New Field
Ask Mireye for a US location data point that its catalog may not have yet, described in plain language with example locations. Returns request_id, status (matched, awaiting_confirm, queued or rejected), and a disposition per sub-ask: an existing field with a sample value and the exact fetch call (resume) that answers it, a near-miss to confirm, a queued build with queue_position and estimated_ready_at, or a typed rejection with a routing hint. Use mireye_field_request_create when mireye_fetch_fields_list has no field for what you need. Then poll mireye_field_request_get; builds take hours. Free. Screening usually finishes within about 10 s; if not, Mireye returns status received and the outcome appears on the next poll.
Inputs
descriptionstringrequired- Describe the data point you need in plain language, 1 to 8,000 characters: what the data is, what decision it feeds, and what a good answer looks like. Example: FEMA flood zone designation for a parcel I am screening for a warehouse.
example_locationsarrayrequired- 1 to 10 US locations where you need the value. Each entry gives exactly one of: an address (a US street address), lat and lng, or polygon (a GeoJSON Polygon or MultiPolygon, for answers that depend on the parcel boundary rather than a point). Each entry may also carry claimed_value, what you believe the answer is there, and note, why the location matters. Unknown keys are rejected. Example: [{"address": "480 Berdoll Ln, Cedar Creek, TX 78612", "note": "Candidate site we are screening"}].
area_of_interestobject- Where you need coverage now: level is one of city, county, state, region or national, and names lists up to 50 places. Example: {"level": "county", "names": ["Bastrop County, TX"]}.
callbackobject- Optional notification targets: webhook_url (up to 2,000 characters) receives JSON events, and email (up to 320 characters) receives the same news. Polling with mireye_field_request_get is the primary channel. Example: {"email": "analyst@example.com"}.
constraintsobject- Lists of up to 20 strings each: must_not_be names data sources or fields you have already ruled out, so they are not offered back; already_have names fields you already have; acceptable_substitutes names alternatives that would also work. Example: {"must_not_be": ["within_floodplain_polygon"], "already_have": ["elevation"]}.
context_blobstring- An opaque string up to 8 KB (UTF-8 bytes), echoed back unchanged in every status response and callback. Put whatever a later agent needs to resume the task. Example: {"job":"site-screen-114"}.
deadlinestring- When the answer stops being useful, as an ISO 8601 date or date-time, up to 64 characters. Example: 2026-12-31.
decision_thresholdstring- The value at which your decision flips, up to 2,000 characters. If you only need to know which side of a line the answer falls on, say the line; Mireye can often answer the decision faster than the field. Example: Inside or outside the 1% annual chance floodplain.
expected_volumeobject- How much you will use the field: locations is how many locations you will query (a whole number), geography is where they cluster (up to 200 characters), and cadence is one_off or recurring. Example: {"locations": 500, "geography": "Central Texas", "cadence": "recurring"}.
freshnessobject- How fresh the data must be: max_staleness is the oldest data that still answers your question, as an ISO 8601 duration, and changes_how_often says how often the real value changes (up to 500 characters). If the useful life is under about a day, Mireye says at once that it cannot index it. Example: {"max_staleness": "P2Y", "changes_how_often": "When FEMA revises its maps"}.
idempotency_keystring- A key you choose for this request, up to 255 characters. Sending the same key again returns the existing request's state instead of filing a second build; reusing it with a different request returns 409 idempotency_key_reused. Strongly recommended for agents. Example: fr-flood-zone-bastrop-0001.
known_sourcesobject- Data sources you know about: suggested and excluded are lists of up to 10 sources, each with a name, url, note and why. They are hints, not commands; Mireye still verifies every source. Example: {"suggested": [{"name": "FEMA NFHL", "url": "https://hazards.fema.gov/femaportal/wps/portal/NFHLWMS"}]}.
output_preferenceobject- The answer shape you want: value_kind is one of boolean, category, number, distance or geometry; units is a unit name (up to 100 characters); buckets_ok says whether coarse ranges such as under 5k, 5k to 15k, over 15k are enough. Example: {"value_kind": "category", "buckets_ok": true}.
requested_fieldsarray- Optional split of a bundled request into up to 20 atomic asks, each in plain language (up to 1,000 characters) and never a Mireye field ID. Mireye splits bundles itself, so this is only a hint. Example: ["FEMA flood zone code", "Distance to the nearest wetland"].
use_casestring- What decision the value will feed, and what changes at different values, up to 4,000 characters. Example: Deciding whether to make an offer; anything in a 100-year floodplain is a no.
mireye_location_askAsk a plain-language question about one US coordinate or street address and get a cited answer.WriteAsk About a Location
Ask a plain-language question about one US coordinate or street address and get a cited answer. Returns answer (prose, with a precision caveat when an address was only estimated), confidence (high, medium or low), citations (source, source_url, fields and fetched_at per source), fields_used, data_gaps (requested fields with no value, and why), resolved_location and billing. Use mireye_location_ask when the question needs fields combined and interpreted. Use mireye_location_fetch for known fields (free) and mireye_site_ask for an area. Costs $0.10 per completed answer on every plan; incomplete answers are free. Mireye documents typical answers in 6 to 20 s and up to 110 s; a call that runs past the tool-call time limit fails here but keeps running at Mireye, so call again with the same idempotency_key and identical inputs to collect the saved result without a second charge.
- Idempotent
Inputs
idempotency_keystringrequired- A key you choose for this question, 8 to 128 letters, digits, hyphens or underscores. Mireye keeps working after the caller disconnects: if this call times out or the response is lost, call again with the same key and identical inputs to collect the saved result without a second charge. Use a new key for new work. Reusing a key with different inputs returns 409 idempotency_conflict. Example: ask-2026-10-22-a1b2c3d4.
questionstringrequired- A plain-language question about the location, 1 to 2,000 characters. Example: Is this location in a flood zone, and what is the wildfire risk?
addressstring- A full US street address to ask about (house number, street, city, state and ZIP), 1 to 256 characters. Mireye geocodes it first and returns a geocode block with the match quality. Use this instead of lat and lng; never send both. A bare street with no city or ZIP is rejected as too coarse. Example: 350 5th Ave, New York, NY 10118.
latnumber- Latitude of the US point to ask about, in decimal degrees (WGS84). Send lat and lng together, or send address instead; never both. Example: 40.7128.
lngnumber- Longitude of the US point to ask about, in decimal degrees (WGS84, negative in the western hemisphere). Send lat and lng together, or send address instead; never both. Example: -74.006.
max_cost_usdstring- Optional spending ceiling in US dollars for this answer, as a decimal string with up to 6 decimal places. Mireye reserves the price before it starts and refuses the request with 402 if the price exceeds this ceiling or the available balance; unused reservation is released. Example: "0.10".
mireye_parcel_enrichMatch one US address or coordinate to a parcel and return the parcel attributes and site data you choose, such as owner, zoning, assessed value, flood, wetlands, power and terrain.WriteEnrich Parcel
Match one US address or coordinate to a parcel and return the parcel attributes and site data you choose, such as owner, zoning, assessed value, flood, wetlands, power and terrain. Returns resolved_location, analysis_point, parcel_match (status matched, ambiguous, no_match or unavailable, with the parcel or candidates and a reason), fields (each with value, unit, source, confidence and interpretation_hints), a geocode block for addresses, and billing. Use mireye_parcel_enrich when you have one location and need parcel data with sources. Use mireye_parcels_search to find parcels by criteria and mireye_location_fetch for free public data. Check parcel_match.status first and never pick an ambiguous candidate yourself. An address selects a parcel only at rooftop precision. Costs $0.02 per enriched parcel on the Free plan ($0.018 Build, $0.015 Growth); no-match, ambiguous and empty results are free. Mireye documents no typical latency and advises allowing 210 s; a call that runs past the tool-call time limit fails here but keeps running at Mireye, so call again with the same idempotency_key and identical inputs to collect the saved result without a second charge. Pick field IDs or presets from mireye_enrich_fields_list.
- Idempotent
Inputs
idempotency_keystringrequired- A key you choose for this enrichment, 8 to 128 letters, digits, hyphens or underscores. Mireye keeps working after the caller disconnects: if this call times out or the response is lost, call again with the same key and identical inputs to collect the saved result without a second charge. Use a new key for new work. Reusing a key with different inputs returns 409 idempotency_conflict. Example: enrich-2026-10-22-a1b2c3d4.
addressstring- A full US street address to enrich (house number, street, city, state and ZIP), 1 to 256 characters. Mireye geocodes it first and returns a geocode block with the match quality. Use this instead of lat and lng; never send both. A bare street with no city or ZIP is rejected as too coarse. Example: 350 5th Ave, New York, NY 10118.
fieldsarray- Enrich field IDs to return for the matched parcel, from mireye_enrich_fields_list. Combined with preset; each field is returned once. If you send neither fields nor preset, all 525 fields are returned, which is slow and large, so start small. Example: ["owner", "zoning", "slope_degrees"].
latnumber- Latitude of the US point to enrich, in decimal degrees (WGS84). Send lat and lng together, or send address instead; never both. Example: 40.7128.
lngnumber- Longitude of the US point to enrich, in decimal degrees (WGS84, negative in the western hemisphere). Send lat and lng together, or send address instead; never both. Example: -74.006.
max_cost_usdstring- Optional spending ceiling in US dollars for this parcel, as a decimal string with up to 6 decimal places. Mireye reserves the price before it starts and refuses the request with 402 if the price exceeds this ceiling or the available balance; unused reservation is released. Example: "0.02".
presetarray- One or more Enrich presets (named field bundles) to return, always as a list, combined with fields. mireye_enrich_fields_list lists each preset's fields. Example: ["terrain", "zoning"].
mireye_parcels_searchFind US parcels that match all of your filters, such as state, county, acreage, zoning or a polygon, with the fields you choose for each match.WriteSearch Parcels
Find US parcels that match all of your filters, such as state, county, acreage, zoning or a polygon, with the fields you choose for each match. Returns matches (each with parcelnumb, address, state2, county, scity, pvd_gisacre, source, analysis_point and a fields map), next_cursor (null on the last page; a short or empty page can still have one), remarks, request_id and billing. Matches are the first found, not ranked. Use mireye_parcels_search when you have criteria and need parcels. Use mireye_parcel_enrich when you already have one address or coordinate. Costs $0.20 per query on the Free plan ($0.18 Build, $0.15 Growth), including zero-match queries; each page is a new query. Mireye documents a time limit of up to 180 s per page; a call that runs past the tool-call time limit fails here but keeps running at Mireye, so call again with the same idempotency_key and identical inputs to collect the saved result without a second charge. Check filter names and operators with mireye_search_fields_list.
- Idempotent
Inputs
filtersarrayrequired- Conditions every matching parcel must meet, each an object with field, op and value. Must include a state2 filter with op eq and a two-letter state code, or op in and a list of codes (50 states and DC). Operators: eq and ne take one value; in takes a non-empty list; lt, lte, gt and gte take one number or date; between takes [low, high]; intersects and within take a GeoJSON Polygon or MultiPolygon and apply only to the geometry field. Send numbers and booleans as JSON values, dates as YYYY-MM-DD, and never null. county takes a five-digit FIPS string such as "04013" or a county name; pvd_gisacre is parcel area in acres. mireye_search_fields_list lists every name and its operators. Example: [{"field": "state2", "op": "eq", "value": "AZ"}, {"field": "pvd_gisacre", "op": "between", "value": [100, 1000]}].
idempotency_keystringrequired- A key you choose for this search page, 8 to 128 letters, digits, hyphens or underscores. Mireye keeps working after the caller disconnects: if this call times out or the response is lost, call again with the same key and identical inputs to collect the saved result without a second charge. Use a new key for new work, including each new page. Reusing a key with different inputs returns 409 idempotency_conflict. Example: search-2026-10-22-page1.
cursorstring- The next_cursor from the previous page, to get the next page. Keep filters and fields unchanged, and use a new idempotency_key for each page. Cursors expire after one hour. Example: eyJ2IjoxLCJrIjoi.
fieldsarray- Names to return for every match: any Search name, any Enrich field ID, or the geometry outputs geometry, parcel_geometry_wkt and parcel_boundary_geojson. Values of your scalar filters are returned too. Every field is included in the query price. Example: ["owner", "zoning"].
limitinteger- Matches per page, 1 to 100. A larger value is rejected, not reduced. Defaults to 10. Example: 10.default
10 max_cost_usdstring- Optional spending ceiling in US dollars for this query, as a decimal string with up to 6 decimal places. Mireye reserves the price before it starts and refuses the request with 402 if the price exceeds this ceiling or the available balance; unused reservation is released. Example: "0.20".
mireye_proximity_distanceCompute driving or straight-line distance and duration for every origin and destination pair, in the US and Canada.WriteCompute Drive Distances
Compute driving or straight-line distance and duration for every origin and destination pair, in the US and Canada. Returns legs (origin_index, destination_index, distance_miles, distance_km, duration_seconds, duration_minutes, and flag unreachable_or_snapped when no real road route exists), resolved_origins, resolved_destinations, paid_driving_calcs, notes and billing. A destination that fails to resolve is left out of legs and named in notes, so read notes before summarizing. Use mireye_proximity_distance for a distance matrix. Use mireye_proximity_nearest for the closest airports, substations and similar, and mireye_proximity_screen to filter sites by drive time. Durations reflect typical traffic, not live conditions. Driving calculations cost $0.02 each on the Free plan ($0.018 Build, $0.015 Growth); straight-line distances are free. Mireye documents no typical latency for this synchronous call; a call that runs past the tool-call time limit fails here but keeps running at Mireye, so call again with the same idempotency_key and identical inputs to collect the saved result without a second charge.
- Idempotent
Inputs
destinationsarrayrequired- End points, 1 to 500; origins times destinations may not exceed 10,000. Each locator is a "lat,lng" string or a full US street address with city and state or ZIP, never a place or landmark name (a name such as JFK Airport does not resolve). Addresses below street precision are refused, and at most 25 addresses may appear in one request. Example: ["40.6413,-73.7781"].
idempotency_keystringrequired- A key you choose for this request, 8 to 128 letters, digits, hyphens or underscores. Mireye keeps working after the caller disconnects: if this call times out or the response is lost, call again with the same key and identical inputs to collect the saved result without a second charge. Use a new key for new work. Reusing a key with different inputs returns 409 idempotency_conflict. Example: dist-2026-10-22-a1b2c3d4.
originsarrayrequired- Starting points, 1 to 500. Each locator is a "lat,lng" string or a full US street address with city and state or ZIP, never a place or landmark name (a name such as JFK Airport does not resolve). Addresses below street precision are refused, and at most 25 addresses may appear in one request. Example: ["40.630973,-73.97228"].
max_cost_usdstring- Optional spending ceiling in US dollars for this request, as a decimal string with up to 6 decimal places. Mireye reserves the price before it starts and refuses the request with 402 if the price exceeds this ceiling or the available balance; unused reservation is released. Defaults to $10. Example: "2.00".
modestring- driving (default) returns road distance and typical-traffic duration, billed per route; straightline returns free great-circle distance with null durations. Example: driving.one of
drivingstraightlinedefaultdriving
mireye_proximity_labor_shedEstimate the civilian labor force and population that live within a drive time of one US site.WriteCompute Labor Shed
Estimate the civilian labor force and population that live within a drive time of one US site. Returns origin (as resolved), civilian_labor_force, population, tracts_counted, tracts_matrix_queried, tracts_unreachable, minutes, paid_driving_calcs, notes and billing. With estimate set to true it returns only the maximum price. Use mireye_proximity_labor_shed for the workforce reachable within a commute. Use mireye_location_fetch with tract_civilian_labor_force and tract_population for the site's own Census tract only (free). Only uncertain-band tracts are routed and billed ($0.02 per driving calculation on the Free plan, $0.018 Build, $0.015 Growth); call with estimate true first to see the maximum price. Mireye documents no typical latency for this synchronous call; a call that runs past the tool-call time limit fails here but keeps running at Mireye, so call again with the same idempotency_key and identical inputs to collect the saved result without a second charge.
- Idempotent
Inputs
idempotency_keystringrequired- A key you choose for this request, 8 to 128 letters, digits, hyphens or underscores. Mireye keeps working after the caller disconnects: if this call times out or the response is lost, call again with the same key and identical inputs to collect the saved result without a second charge. Use a new key for new work. Reusing a key with different inputs returns 409 idempotency_conflict. Example: shed-2026-10-22-a1b2c3d4.
minutesintegerrequired- Drive-time radius in minutes, 5 to 90. Example: 45.
originstringrequired- The site to measure from. Each locator is a "lat,lng" string or a full US street address with city and state or ZIP, never a place or landmark name (a name such as JFK Airport does not resolve). Addresses below street precision are refused, and at most 25 addresses may appear in one request. Example: 32.9,-96.9.
estimateboolean- If true, return only the maximum price of this labor shed (maximum_cost_usd_by_plan) without running it or charging. Defaults to false. Example: true.default
false max_cost_usdstring- Optional spending ceiling in US dollars for this request, as a decimal string with up to 6 decimal places. Mireye reserves the price before it starts and refuses the request with 402 if the price exceeds this ceiling or the available balance; unused reservation is released. Defaults to $10. Example: "2.00".
mireye_proximity_nearestFind the closest airports, substations, power plants, rail, ports or urban areas to one US or Canadian point, ranked by drive time.WriteFind Nearest Infrastructure
Find the closest airports, substations, power plants, rail, ports or urban areas to one US or Canadian point, ranked by drive time. Returns origin (as resolved), candidates (name, lat, lng, attributes, distance_miles, distance_km, duration_seconds, duration_minutes), applied_filters, paid_driving_calcs, notes and billing. candidates is empty when nothing qualifies within 160 km, and can hold fewer than n when a candidate has no road route. Use mireye_proximity_nearest to reach named infrastructure; never pass a place name to the other proximity tools. Use mireye_proximity_distance for your own destinations. Driving calculations cost $0.02 each on the Free plan ($0.018 Build, $0.015 Growth); straight-line distances are free. Mireye documents no typical latency for this synchronous call; a call that runs past the tool-call time limit fails here but keeps running at Mireye, so call again with the same idempotency_key and identical inputs to collect the saved result without a second charge.
- Idempotent
Inputs
idempotency_keystringrequired- A key you choose for this request, 8 to 128 letters, digits, hyphens or underscores. Mireye keeps working after the caller disconnects: if this call times out or the response is lost, call again with the same key and identical inputs to collect the saved result without a second charge. Use a new key for new work. Reusing a key with different inputs returns 409 idempotency_conflict. Example: nearest-2026-10-22-a1b2c3d4.
originstringrequired- The starting point. Each locator is a "lat,lng" string or a full US street address with city and state or ZIP, never a place or landmark name (a name such as JFK Airport does not resolve). Addresses below street precision are refused, and at most 25 addresses may appear in one request. Example: 40.630973,-73.97228.
setstringrequired- The curated destination set to rank: @airports (public-use airports), @substations (by default only those rated 115 kV or more), @power_plants, @rail, @ports or @urban_areas. Candidates are searched within a fixed 160 km radius. Example: @substations.one of
@airports@substations@power_plants@rail@ports@urban_areas filtersobject- Optional set-specific filter override. Only @substations takes one today: min_kv sets the minimum voltage in kV (the default floor is 115; 0 includes every rated substation). Example: {"min_kv": 230}.
max_cost_usdstring- Optional spending ceiling in US dollars for this request, as a decimal string with up to 6 decimal places. Mireye reserves the price before it starts and refuses the request with 402 if the price exceeds this ceiling or the available balance; unused reservation is released. Defaults to $10. Example: "0.50".
modestring- driving (default) ranks by typical-traffic drive time and is billed; straightline ranks by free great-circle distance. Example: driving.one of
drivingstraightlinedefaultdriving ninteger- How many of the nearest candidates to return, 1 to 25. Defaults to 3. Billing counts n times 5 driving calculations (at most 25), not the number returned. Example: 3.default
3
mireye_proximity_screenFilter candidate sites in the US and Canada by typical-traffic drive time to any of up to 10 anchor points.WriteScreen Sites by Drive Time
Filter candidate sites in the US and Canada by typical-traffic drive time to any of up to 10 anchor points. Returns survivors (origin_index, best_anchor_index, best_duration_seconds, best_duration_minutes), screened_out (each site's best duration, or null when no anchor is reachable), resolved_origins, resolved_anchors, paid_driving_calcs, notes and billing. Use mireye_proximity_screen to keep only sites within a drive-time band. Use mireye_proximity_distance for the full matrix. Every origin and anchor pair is billed as a driving calculation ($0.02 each on the Free plan, $0.018 Build, $0.015 Growth), however many survive. Mireye documents no typical latency for this synchronous call; a call that runs past the tool-call time limit fails here but keeps running at Mireye, so call again with the same idempotency_key and identical inputs to collect the saved result without a second charge.
- Idempotent
Inputs
anchorsarrayrequired- The points a site must be close to (any one of them counts), 1 to 10. Each locator is a "lat,lng" string or a full US street address with city and state or ZIP, never a place or landmark name (a name such as JFK Airport does not resolve). Addresses below street precision are refused, and at most 25 addresses may appear in one request. Example: ["40.6413,-73.7781"].
idempotency_keystringrequired- A key you choose for this request, 8 to 128 letters, digits, hyphens or underscores. Mireye keeps working after the caller disconnects: if this call times out or the response is lost, call again with the same key and identical inputs to collect the saved result without a second charge. Use a new key for new work. Reusing a key with different inputs returns 409 idempotency_conflict. Example: screen-2026-10-22-a1b2c3d4.
max_minutesintegerrequired- The longest acceptable drive time to the nearest anchor, in minutes, 1 to 300. Example: 30.
originsarrayrequired- The candidate sites to screen, 1 to 500; origins times anchors may not exceed 10,000. Each locator is a "lat,lng" string or a full US street address with city and state or ZIP, never a place or landmark name (a name such as JFK Airport does not resolve). Addresses below street precision are refused, and at most 25 addresses may appear in one request. Example: ["40.70,-73.95", "40.75,-73.80"].
max_cost_usdstring- Optional spending ceiling in US dollars for this request, as a decimal string with up to 6 decimal places. Mireye reserves the price before it starts and refuses the request with 402 if the price exceeds this ceiling or the available balance; unused reservation is released. Defaults to $10. Example: "1.00".
min_minutesinteger- Optional shortest acceptable drive time, in minutes, to exclude sites that are too close to every anchor. Example: 10.
mireye_run_createSubmit a free public-data fetch for 1 to 25 US locations as a background run, and get a run_id back at once.WriteSubmit Batch Fetch Run
Submit a free public-data fetch for 1 to 25 US locations as a background run, and get a run_id back at once. Returns run_id, status (queued), and the poll and events paths. Unknown fields, a missing field selection or more than 25 locations fail here, not later. Use mireye_run_create instead of mireye_location_fetch for several locations, or for slow imagery, road or building fields that may not finish within one call. Then poll mireye_run_get until status is done or failed. One field selection applies to every location. Pick field names or a preset from mireye_fetch_fields_list.
Inputs
locationsarrayrequired- The US locations to fetch, 1 to 25. Each entry is an object with either lat and lng (decimal degrees) or address (a full US street address, 1 to 256 characters), never both. Results come back in the same order. Example: [{"lat": 29.7604, "lng": -95.3698}, {"address": "350 5th Ave, New York, NY 10118"}].
fieldsarray- Catalog field names to fetch at every location, from mireye_fetch_fields_list. Send fields, preset or both. At most 50 fields outside the chosen preset; parcel fields are rejected. Example: ["elevation", "coast_distance_m"].
presetstring- A named bundle of fields to fetch at every location, such as flood_risk or terrain. mireye_fetch_fields_list lists each preset's fields. Send fields, preset or both. Example: terrain.one of
terrainflood_riskwildfire_underwriteland_coversite_selectionbuilding_lookuppoints_of_interestutilitiesboundariessolar_sitingwind_sitingstorage_sitingdata_center_sitinggrid_interconnectnatural_hazard
mireye_site_askAsk a plain-language question about an area prepared with mireye_site_create and get a cited answer.WriteAsk About a Site
Ask a plain-language question about an area prepared with mireye_site_create and get a cited answer. Returns the answer with citations and source evidence, uncertainty and data gaps, and billing. The evidence is a snapshot from the site's built_at time. A site that is still building returns 202 without charging. Use mireye_site_ask for questions about an area; use mireye_location_ask for a single point. Costs $0.10 per completed answer on every plan; incomplete or failed answers are free. Mireye documents no typical latency for this call; a call that runs past the tool-call time limit fails here but keeps running at Mireye, so call again with the same idempotency_key and identical inputs to collect the saved result without a second charge. Requires a ready site_id from mireye_site_create.
- Idempotent
Inputs
idempotency_keystringrequired- A key you choose for this question, 8 to 128 letters, digits, hyphens or underscores. Mireye keeps working after the caller disconnects: if this call times out or the response is lost, call again with the same key and identical inputs to collect the saved result without a second charge. Use a new key for new work. Reusing a key with different inputs returns 409 idempotency_conflict. Example: asksite-2026-10-22-a1b2c3d4.
questionstringrequired- A plain-language question about the prepared site, 1 to 2,000 characters. Example: How much area is affected by flood constraints?
site_idstringrequired- The site_id of a ready site from mireye_site_create (check with mireye_site_get), 4 to 64 characters. Example: site_8f3a2c1d9e4b.
max_cost_usdstring- Optional spending ceiling in US dollars for this answer, as a decimal string with up to 6 decimal places. Mireye reserves the price before it starts and refuses the request with 402 if the price exceeds this ceiling or the available balance; unused reservation is released. Example: "0.10".
mireye_site_createPrepare an area (a GeoJSON polygon) so you can ask cited questions about it, and get an account-owned site_id.WritePrepare Site
Prepare an area (a GeoJSON polygon) so you can ask cited questions about it, and get an account-owned site_id. Returns site_id and status: building while Mireye prepares the evidence in the background, or ready when a snapshot for the same geometry already exists. Use mireye_site_create before mireye_site_ask. Poll mireye_site_get until status is ready. Use mireye_location_ask for a question about a single point instead. Free; a full preparation queue returns a retryable 429.
- Idempotent
Inputs
siteobjectrequired- The area to prepare, as a WGS84 GeoJSON Polygon or MultiPolygon geometry with only type and coordinates (positions are [longitude, latitude], rings closed). Up to 200,000 acres and 20,000 vertices; larger or malformed shapes are rejected before work starts. Example: {"type": "Polygon", "coordinates": [[[-96.802, 32.774], [-96.792, 32.774], [-96.792, 32.78], [-96.802, 32.78], [-96.802, 32.774]]]}.
No tools match.