# Gasolinera más barata cerca

> Versión Markdown de https://docs.preciosgasolina.es/guias/gasolinera-mas-barata-cerca/ · Actualizado: 2026-10-07 · Índice para LLM: https://docs.preciosgasolina.es/llms.txt

Encuentra con la API de Gasolina hoy las gasolineras más baratas o más cercanas a unas coordenadas, con filtros de 24 horas y marca. Con código.

Para encontrar dónde repostar más barato cerca de un punto, usa **`GET /v1/stations/cheapest`** con `lat`, `lng` y `radius_km`: devuelve las gasolineras del radio ordenadas por precio. Si prefieres ordenarlas por distancia, usa **`GET /v1/stations/nearby`** con `sort=distance`.

## Qué endpoint usar

| Necesitas                                        | Endpoint                                            | Orden                | Límite                       |
| ------------------------------------------------ | --------------------------------------------------- | -------------------- | ---------------------------- |
| Las más baratas a menos de X km                  | `GET /v1/stations/cheapest?lat=…&lng=…&radius_km=…` | precio               | normal (120/min)             |
| Las más cercanas (o por precio) con su distancia | `GET /v1/stations/nearby?lat=…&lng=…&sort=distance` | `price` o `distance` | **consulta pesada** (30/min) |

Los dos aceptan `fuel` (por defecto `gasoline_95`), `limit` (1–50, por defecto 10), `open_24h=true` y `brand=<slug>`. El radio va de más de 0 a 50 km y, si no lo indicas, es de 5 km. Las gasolineras de `nearby` (y las de `cheapest` por coordenadas) traen `distance_km`.

## Paso a paso

1. **Consigue las coordenadas.** Del navegador (`navigator.geolocation`), de tu propia base de datos o de la API: `GET /v1/territories?level=municipality&parent=<provincia>` devuelve `lat` y `lng` de cada municipio.

2. **Pide las más baratas del radio.**

   **curl**

   ```sh
   curl "https://api.preciosgasolina.es/v1/stations/cheapest?fuel=diesel&lat=40.4168&lng=-3.7038&radius_km=10&limit=5"
   ```

   **JavaScript**

   ```js
   async function masBaratasCerca({ lat, lng, fuel = "gasoline_95", radiusKm = 5, limit = 5, open24h = false }) {
     const url = new URL("https://api.preciosgasolina.es/v1/stations/cheapest");
     url.search = new URLSearchParams({ fuel, lat, lng, radius_km: radiusKm, limit, ...(open24h && { open_24h: "true" }) });
     const res = await fetch(url);
     if (!res.ok) {
       const err = await res.json(); // application/problem+json
       throw new Error(`${err.code}: ${err.detail}`);
     }
     return res.json(); // { data, meta }
   }

   const { data, meta } = await masBaratasCerca({ lat: 40.4168, lng: -3.7038, fuel: "diesel", radiusKm: 10 });
   for (const s of data.stations) console.log(s.price, s.name, s.distance_km + " km", s.web_url);
   ```

   **Python**

   ```python
   import requests

   def mas_baratas_cerca(lat, lng, fuel="gasoline_95", radius_km=5, limit=5, open_24h=False):
       params = {"fuel": fuel, "lat": lat, "lng": lng, "radius_km": radius_km, "limit": limit}
       if open_24h:
           params["open_24h"] = "true"
       r = requests.get("https://api.preciosgasolina.es/v1/stations/cheapest", params=params, timeout=10)
       if not r.ok:
           err = r.json()  # application/problem+json
           raise RuntimeError(f'{err["code"]}: {err["detail"]}')
       return r.json()

   body = mas_baratas_cerca(40.4168, -3.7038, fuel="diesel", radius_km=10)
   for s in body["data"]["stations"]:
       print(s["price"], s["name"], s.get("distance_km"), "km", s["web_url"])
   ```

3. **Muestra el resultado con su fecha y la fuente.** Cada gasolinera trae `price`, `price_updated_at`, `is_24h`, `hours`, su dirección y su `web_url`. Muestra `meta.attribution` y la fecha de `meta.last_updated` (ver [Atribución](https://docs.preciosgasolina.es/empezar/atribucion-y-licencia/)).

Ejemplo ilustrativo: los valores no son precios reales

```json
{
  "data": {
    "fuel": "diesel",
    "unit": "L",
    "currency": "EUR",
    "center": { "lat": 40.417, "lng": -3.704 },
    "radius_km": 10,
    "note": null,
    "stations": [
      {
        "id": 12345,
        "name": "Estación de ejemplo",
        "brand": { "slug": "marca-ejemplo", "name": "Marca Ejemplo" },
        "address": "Calle de Ejemplo, 1",
        "postal_code": "28001",
        "municipality": { "id": 4354, "name": "Madrid" },
        "province": { "code": "28", "name": "Madrid" },
        "community": { "code": "13", "name": "Comunidad de Madrid" },
        "lat": 40.39,
        "lng": -3.65,
        "is_24h": true,
        "hours": "L-D: 24H",
        "low_tax_area": false,
        "web_url": "https://preciosgasolina.es/gasolineras/estacion-de-ejemplo-12345/",
        "price": 1.459,
        "price_updated_at": "2026-10-07T06:12:00.000+00:00",
        "distance_km": 5.47
      }
    ]
  },
  "meta": { "last_updated": "2026-10-07T06:12:00.000Z", "attribution": "Fuente: Gasolina hoy (preciosgasolina.es), con datos del…", "web_url": "https://preciosgasolina.es/mapa-gasolineras/", "…": "…" }
}
```

Fíjate en que `center` sale redondeado a 3 decimales: la API redondea siempre las coordenadas (unos 100 m) para no identificar a nadie y compartir caché.

## Ordenar por distancia

```sh
curl "https://api.preciosgasolina.es/v1/stations/nearby?lat=40.4168&lng=-3.7038&radius_km=3&fuel=gasoline_95&sort=distance&limit=10"
```

`nearby` cuenta como **consulta pesada** (30 por minuto por IP): úsalo cuando el usuario lo pida, no en cada movimiento del mapa.

## Filtros útiles

- **Abiertas 24 horas:** `open_24h=true`.
- **Una marca:** `brand=repsol` (slug de la marca; lista en `GET /v1/brands`).
- **Más resultados:** `limit=50` como máximo. Para listados completos de una zona, descarga los [datos abiertos](https://preciosgasolina.es/datos/).

> **En una ciudad o provincia**
>
> Si en lugar de un punto tienes un municipio o una provincia, usa `level` + `code`: [Las más baratas de una provincia](https://docs.preciosgasolina.es/guias/mas-baratas-de-una-provincia/).

## Con el servidor MCP

Las herramientas equivalentes son `find_cheapest_fuel` (con `lat`, `lng` y `radius_km`) y `find_fuel_near` (con `sort`). Ejemplo de pregunta: «Gasolineras cerca de la estación de Atocha». Ver [Herramientas del MCP](https://docs.preciosgasolina.es/mcp/herramientas/).
