# Histórico de precios

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

Serie diaria de hasta 90 días por territorio o gasolinera, serie mensual de España desde 2005 e informes mensuales con la API de Gasolina hoy.

La API tiene tres tipos de histórico: la **serie diaria** de un territorio (`GET /v1/history`) o de una gasolinera (`GET /v1/stations/{id}/history`), de hasta 90 días; la **serie mensual de España desde 2005** (`GET /v1/history/monthly`); y los **informes de cada mes cerrado** (`GET /v1/reports`).

## Serie diaria de un territorio

Parámetros: `fuel` (por defecto `gasoline_95`), `days` (1–90, por defecto 30) y, opcionalmente, `level` + `code` (sin ellos, España).

**curl**

```sh
curl "https://api.preciosgasolina.es/v1/history?level=province&code=28&fuel=diesel&days=30"
```

**JavaScript**

```js
const res = await fetch("https://api.preciosgasolina.es/v1/history?" + new URLSearchParams({ level: "province", code: "28", fuel: "diesel", days: "30" }));
const { data } = await res.json();
console.log(`${data.area.name}: ${data.change.pct} % entre ${data.change.from} y ${data.change.to}`);
const serie = data.points.map((p) => [p.date, p.average]); // listo para una gráfica
```

**Python**

```python
import requests

data = requests.get(
    "https://api.preciosgasolina.es/v1/history",
    params={"level": "province", "code": "28", "fuel": "diesel", "days": 30},
    timeout=10,
).json()["data"]
print(data["area"]["name"], data["change"]["pct"], "%")
for p in data["points"]:
    print(p["date"], p["average"], p["minimum"], p["maximum"])
```

Ejemplo ilustrativo: los valores no son precios reales

```json
{
  "data": {
    "area": { "level": "province", "code": "28", "name": "Madrid", "web_url": "https://preciosgasolina.es/precios-gasolineras/comunidad-de-madrid/madrid/" },
    "fuel": "diesel",
    "unit": "L",
    "currency": "EUR",
    "resolution": "day",
    "days": 3,
    "change": { "from": "2026-10-05", "to": "2026-10-07", "first_average": 1.47, "last_average": 1.474, "difference": 0.004, "pct": 0.27 },
    "points": [
      { "date": "2026-10-05", "average": 1.47, "minimum": 1.349, "maximum": 1.659 },
      { "date": "2026-10-06", "average": 1.472, "minimum": 1.349, "maximum": 1.659 },
      { "date": "2026-10-07", "average": 1.474, "minimum": 1.359, "maximum": 1.669 }
    ]
  },
  "meta": { "…": "…" }
}
```

## Serie diaria de una gasolinera

`GET /v1/stations/{id}/history` devuelve el precio de cada día de los carburantes de una gasolinera (`id` del Ministerio o slug de su ficha). Con `fuel` te quedas con uno; `days` va de 1 a 90 (por defecto 30).

```sh
curl "https://api.preciosgasolina.es/v1/stations/12345/history?fuel=diesel&days=60"
```

La respuesta trae la ficha de la gasolinera en `station` y una serie por carburante en `series[]` (`fuel`, `unit` y `points[]` con `date` y `price`).

> **Consulta pesada**
>
> El histórico de una gasolinera cuenta como **consulta pesada**: 30 por minuto por IP. Para muchas gasolineras a la vez, descarga los [datos abiertos](https://preciosgasolina.es/datos/) en lugar de pedirlas una a una.

## Serie mensual de España desde 2005

`GET /v1/history/monthly` devuelve las medias mensuales de la gasolina 95 y el gasóleo en España, **con y sin impuestos**, desde 2005. La fuente es el Boletín Petrolero de la Unión Europea (Weekly Oil Bulletin, Comisión Europea), no el Ministerio: no son los mismos datos que las medias diarias.

Parámetros opcionales: `fuel` (`gasoline_95` o `diesel`), `from` y `to` en formato `AAAA-MM`.

```sh
curl "https://api.preciosgasolina.es/v1/history/monthly?fuel=diesel&from=2022-01&to=2022-12"
```

Ejemplo ilustrativo: los valores no son precios reales

```json
{
  "data": {
    "area": { "level": "spain", "code": "es", "name": "España" },
    "resolution": "month",
    "currency": "EUR",
    "unit": "L",
    "source": {
      "name": "Boletín Petrolero de la Unión Europea (Weekly Oil Bulletin), Comisión Europea, DG ENER",
      "url": "https://energy.ec.europa.eu/data-and-analysis/weekly-oil-bulletin_en",
      "licence": "CC BY 4.0 (Decisión 2011/833/UE de la Comisión)"
    },
    "note": "Medias mensuales del Boletín Petrolero de la UE (precio con impuestos y sin impuestos). No son los mismos datos que las medias diarias del Ministerio.",
    "series": [
      { "fuel": "diesel", "points": [{ "month": "2022-01", "price": 1.401, "price_without_taxes": 0.802 }] }
    ]
  },
  "meta": { "…": "…" }
}
```

## Informes mensuales

- `GET /v1/reports`: meses cerrados con informe y la media de España de cada mes.
- `GET /v1/reports/{month}` (`AAAA-MM`): medias del mes, días más baratos y más caros y provincias ordenadas por precio. Solo hay informes de meses cerrados: pedir el mes en curso devuelve `400`.

```sh
curl "https://api.preciosgasolina.es/v1/reports/2026-09"
```

## Con el servidor MCP

`get_price_history` cubre los tres casos: territorio (`level` + `code`), gasolinera (`station_id`) y serie mensual (`monthly=true`, con `from`). Ejemplo: «¿Cuánto ha subido el diésel este mes?». Los informes, con `get_monthly_report`: «¿Cómo fueron los precios en septiembre?».
