# Gasolineras por carretera

> Versión Markdown de https://docs.preciosgasolina.es/guias/gasolineras-de-una-carretera/ · Actualizado: 2026-10-07 · Índice para LLM: https://docs.preciosgasolina.es/llms.txt

Lista las gasolineras de una autovía, autopista o nacional (A-6, AP-7, N-340…) con su punto kilométrico y sentido, por precio o por posición, con la API.

Para ver las gasolineras de una carretera, usa **`GET /v1/roads/{slug}/stations`**: devuelve las de la A-6, la AP-7, la N-340… con su punto kilométrico y su sentido cuando se conocen, ordenadas por precio o por posición. La lista de carreteras disponibles está en **`GET /v1/roads`**.

## 1. Elige la carretera

```sh
curl "https://api.preciosgasolina.es/v1/roads"
```

Devuelve las autovías, autopistas y nacionales con al menos 8 gasolineras localizadas. Cada una trae `slug` (`a-3`), `code` (`A-3`), `name`, `group`, `from`, `to`, `length_km` (puede ser `null`), `stations_indexed` y `web_url`. Esta respuesta se cachea 6 horas.

Ejemplo ilustrativo

```json
{
  "data": {
    "roads": [
      {
        "slug": "a-3",
        "code": "A-3",
        "name": "Autovía del Este",
        "group": "radial",
        "from": "Madrid",
        "to": "Valencia",
        "length_km": 352,
        "stations_indexed": 31,
        "web_url": "https://preciosgasolina.es/gasolineras-carretera/a-3/"
      }
    ]
  },
  "meta": { "…": "…" }
}
```

## 2. Pide sus gasolineras

Parámetros: `fuel` (por defecto `gasoline_95`), `sort` (`price`, por defecto, o `position`) y `limit` (1–50, por defecto 10).

**curl**

```sh
# Las 10 gasolineras con el diésel más barato de la AP-7
curl "https://api.preciosgasolina.es/v1/roads/ap-7/stations?fuel=diesel&limit=10"

# Las de la A-3 en orden de recorrido
curl "https://api.preciosgasolina.es/v1/roads/a-3/stations?fuel=diesel&sort=position&limit=50"
```

**JavaScript**

```js
const res = await fetch("https://api.preciosgasolina.es/v1/roads/ap-7/stations?fuel=diesel&limit=10");
const body = await res.json();
if (!res.ok) throw new Error(`${body.code}: ${body.detail}`); // ROAD_NOT_FOUND si no hay datos
for (const s of body.data.stations) {
  const pk = s.road_km != null ? `PK ${s.road_km}` : "PK desconocido";
  console.log(`${s.price} €/L · ${s.name} · ${pk} · sentido ${s.side ?? "—"}${s.service_area ? " · área de servicio" : ""}`);
}
```

**Python**

```python
import requests

r = requests.get("https://api.preciosgasolina.es/v1/roads/ap-7/stations", params={"fuel": "diesel", "limit": 10}, timeout=10)
body = r.json()
if not r.ok:
    raise RuntimeError(f'{body["code"]}: {body["detail"]}')
for s in body["data"]["stations"]:
    print(s["price"], s["name"], "PK", s.get("road_km"), s.get("side"), "área de servicio" if s.get("service_area") else "")
```

Además de los campos normales de una gasolinera, cada una trae:

| Campo          | Significado                                                             |
| -------------- | ----------------------------------------------------------------------- |
| `road_km`      | Punto kilométrico aproximado, si se conoce.                             |
| `side`         | Lado de la carretera: `derecho`, `izquierdo` o `null` si no se sabe.    |
| `service_area` | `true` si está en un área de servicio.                                  |
| `position_km`  | Posición a lo largo de la carretera (para ordenar con `sort=position`). |

> **Nota**
>
> La asignación de cada gasolinera a una carretera se calcula a partir de sus coordenadas y se actualiza de vez en cuando: una gasolinera muy nueva puede no aparecer todavía. Si una carretera no tiene datos (o tiene menos de 8 gasolineras localizadas), la API responde `404` con el código `ROAD_NOT_FOUND`.

## Con el servidor MCP

`find_fuel_on_road` acepta el código o el slug de la carretera (`A-3`, `ap-7`), `fuel`, `sort` y `limit`. Ejemplo: «Gasolineras más baratas en la AP-7». Para un viaje que pasa por varias carreteras, usa [Dónde repostar en una ruta](https://docs.preciosgasolina.es/guias/repostar-en-una-ruta/).
