---
title: "Nearby Stations Endpoint"
method: GET
path: "/api/stations/nearby"
tags: ["Stations and data"]
---

# Nearby Stations Endpoint

`GET /api/stations/nearby`

## Request

- Base URL: `https://epw.tools`
- URL: `https://epw.tools/api/stations/nearby`
- Auth: none declared

Return a single, deduplicated list of nearby weather stations.

Merges the Meteostat station index and the NOAA ISD-history inventory.
Stations within 0.5 km of each other are collapsed into one entry
(Meteostat record preferred when available, ISD fills any gaps).

The two source lookups (Meteostat DataFrame filter + ISD file scan) run
concurrently via a ThreadPoolExecutor so the combined latency ≈ max of
the two individual latencies rather than their sum.

This is the canonical endpoint for the map station layer — callers do
not need to know which underlying dataset a station comes from.

## Query parameters

- `lat` number, required: Latitude in decimal degrees
- `lon` number, required: Longitude in decimal degrees
- `year` integer: Optional year to flag active/inactive stations
- `radius_km` number
- `max_results` integer

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/epw/apis/epw-tools-api.md) · [All operations](https://skmtc.dev/epw/apis/epw-tools-api/llms.txt) · [OpenAPI document](https://skmtc.dev/epw/apis/epw-tools-api/revisions/e6b60fc7a6d7?raw)
