Ir al contenido

Gasolinera más barata cerca

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.

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.

  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.

    Ventana de terminal
    curl "https://api.preciosgasolina.es/v1/stations/cheapest?fuel=diesel&lat=40.4168&lng=-3.7038&radius_km=10&limit=5"
  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).

Ejemplo ilustrativo: los valores no son precios reales
{
"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é.

Ventana de terminal
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.

  • 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.

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.

Fuente de los datos: Ministerio para la Transición Ecológica y el Reto Demográfico (Geoportal de Gasolineras). Datos de la API y del servidor MCP con licencia CC BY 4.0: cita Gasolina hoy y la fuente.