Italy Fuel Prices – Real-time Petrol, Diesel, LPG & CNG (MIMIT) avatar

Italy Fuel Prices – Real-time Petrol, Diesel, LPG & CNG (MIMIT)

Pricing

from $2.00 / 1,000 price rows

Go to Apify Store
Italy Fuel Prices – Real-time Petrol, Diesel, LPG & CNG (MIMIT)

Italy Fuel Prices – Real-time Petrol, Diesel, LPG & CNG (MIMIT)

Live prices of 20,000+ Italian petrol stations from official MIMIT data. Search by region, town, GPS radius or station ID; rankings, averages, price monitoring. This is not personalized advice. Material created also with the use of AI tools.

Pricing

from $2.00 / 1,000 price rows

Rating

0.0

(0)

Developer

Mike

Mike

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Security

Limited permissions

Share

Italy Fuel Prices – Real-time Petrol, Diesel, LPG & CNG (MIMIT Osservaprezzi)

Get live fuel prices from 20,000+ Italian petrol stations straight from the official MIMIT "Osservaprezzi Carburanti" service (Ministero delle Imprese e del Made in Italy). Italian law obliges every station to report its prices, so this is the most complete public source of fuel prices in Italy.

Unlike tools based on the daily CSV export (which contains prices as of 8:00 of the previous day), this Actor reads the same live data shown on the official portal, so you get the price a station reported minutes or hours ago, with its exact update timestamp.

What you can do

  • 🔎 Search by area – region, province (code MI or name Milano) or town.
  • 📍 Search nearby – one or many GPS points with a 1–10 km radius (great for routes, depots, delivery zones).
  • 🏷️ Track specific stations by their ID.
  • ⛽ Filter fuels – petrol (benzina), diesel (gasolio), LPG (GPL), CNG (metano), L-GNC, LNG, premium products – and self-service vs attended prices.
  • 📊 Area statistics on every row – rank, min / average / median price of the search, difference vs. average, cheapest flag. A per-search summary is saved in the SUMMARY record of the key-value store.
  • 🔔 Price-change monitoring – give a monitorKey and every run is compared with the previous one: previousPrice, priceChange, changeStatus (NEW, UP, DOWN, SAME). With onlyChanges you get only what changed – ideal for scheduled runs, alerts, Slack/Make/Zapier integrations.
  • 🕒 Freshness – priceUpdatedAt, priceAgeHours, isStale (> 72 h) and an optional maxPriceAgeDays filter.
  • 🏪 Optional station details – address, services, opening hours, website.
  • 🛟 Automatic fallback to the official daily CSV – if the live service is down or changes its format, the Actor switches to MIMIT's open-data files (prezzo_alle_8.csv + anagrafica_impianti_attivi.csv) instead of failing. Every row tells you where it came from in the dataSource field (api-live or csv-daily).

Use cases

  • Fleet, logistics and delivery companies: find where to refuel, measure fuel cost per area, alert on price changes.
  • Petrol station owners: monitor competitors' prices within a few km every hour.
  • Apps, dashboards, journalists and analysts: build price maps, compare regions, track trends over time.
  • Travel/route planning: cheapest stations around several points along a route.

Input

FieldTypeDescription
modearea | nearby | stationsSearch type (required).
areasarray[{"region":"Lombardia"}], [{"province":"MI"}], [{"province":"MI","town":"Milano"}], optional label.
pointsarray[{"lat":45.4642,"lng":9.19,"label":"Milano Duomo"}]
radiusKminteger 1–10Radius around each point (default 5).
stationIdsarray of stringsMIMIT station IDs (field stationId of results).
fuelTypesarraybenzina, gasolio, gpl, metano, l-gnc, gnl, benzina-premium, gasolio-premium, altro, all. Default ["benzina","gasolio"].
serviceTypeany | self | servitoSelf-service or attended price.
maxPriceAgeDaysintegerDrop prices older than N days (0 = keep all).
includeStationDetailsbooleanOne extra request per station: address (needed in nearby mode), services, opening hours, website.
maxResultsintegerMax rows (station × fuel × service). 0 = unlimited. Default 1000.
monitorKeystringEnables price-change comparison with the previous run with the same key.
onlyChangesbooleanWith monitorKey, output only NEW / UP / DOWN rows.
dataSourceauto | api | csvauto (default): live API, automatic fallback to the official daily CSV if the API fails or its format changes. api: live only (the run fails if the API is down). csv: always use the daily CSV.

Example inputs

Cheapest self-service diesel and LPG within 2 km of two city centres:

{
"mode": "nearby",
"points": [
{ "lat": 45.4642, "lng": 9.19, "label": "Milano Duomo" },
{ "lat": 41.9028, "lng": 12.4964, "label": "Roma Centro" }
],
"radiusKm": 2,
"fuelTypes": ["gasolio", "gpl"],
"serviceType": "self"
}

Hourly competitor monitoring (schedule the Actor and keep the same monitorKey):

{ "mode": "nearby", "points": [{ "lat": 43.0966, "lng": 12.5406, "label": "My station" }],
"radiusKm": 5, "fuelTypes": ["benzina", "gasolio"], "monitorKey": "my-station-5km", "onlyChanges": true }

Whole town with station details:

{ "mode": "area", "areas": [{ "province": "PG", "town": "Assisi" }], "serviceType": "self", "includeStationDetails": true }

Output

One dataset item per station × fuel × service type. Real example (trimmed):

{
"stationId": 48812,
"stationName": "ENERGIA PETROLI 2000 SRL - PETRIGNANO",
"brand": "Esso",
"address": "VIA FR.PETRIGNANO-S.P.248 KM 0,900 - ... 06081 - ASSISI PG",
"postalCode": "06081",
"town": "ASSISI",
"province": "PG",
"latitude": 43.09637244484077,
"longitude": 12.540627588954942,
"distanceKm": null,
"fuelName": "Benzina",
"fuelGroup": "benzina",
"serviceType": "self",
"price": 1.99,
"currency": "EUR",
"unit": "litre",
"priceUpdatedAt": "2026-10-28T10:05:58+01:00",
"priceAgeHours": 5.7,
"isStale": false,
"searchLabel": "Assisi, PG, Umbria",
"dataSource": "api-live",
"csvExtractionDate": null,
"rankInSearch": 1,
"stationsInSearch": 9,
"searchMinPrice": 1.99,
"searchAvgPrice": 2.005,
"searchMedianPrice": 1.999,
"diffFromSearchAvg": -0.015,
"isCheapestInSearch": true,
"changeStatus": "DOWN",
"previousPrice": 2.04,
"priceChange": -0.05,
"mapsUrl": "https://www.google.com/maps/search/?api=1&query=43.0963,12.5406",
"stationDataUrl": "https://carburanti.mise.gov.it/ospzApi/registry/servicearea/48812",
"sourceName": "MIMIT – Osservaprezzi Carburanti",
"license": "IODL 2.0 – Source: Ministero delle Imprese e del Made in Italy (MIMIT)",
"scrapedAt": "2026-10-28T14:49:40.826Z"
}

stationType (Stradale / Autostradale) and csvExtractionDate are filled only for csv-daily rows. changeStatus / previousPrice / priceChange appear only when monitorKey is set; services, openingHours, website only with includeStationDetails. Download results as JSON, CSV, Excel or via API, or connect them to Google Sheets, Make, Zapier, n8n.

Data sources and fallback

api-live (default)csv-daily (fallback or dataSource: "csv")
SourceLive Osservaprezzi serviceOfficial open-data CSV published daily by MIMIT
FreshnessMinutes/hours (exact timestamp per price)Prices in force at 08:00 of the previous day (each price keeps its own priceUpdatedAt)
Area / nearby / stations✅ / ✅ (official radius search) / ✅✅ / ✅ (distance computed from coordinates) / ✅
Station details (services, hours, website)✅ with includeStationDetails❌ (ignored with a warning)
stationDataUrl✅null

With dataSource: "auto" the fallback is triggered when the API keeps failing after retries (timeouts, HTTP 5xx) or returns an unexpected format (non-JSON, missing results, station objects without fuels/price). Input mistakes (e.g. an unknown province) never trigger the fallback – you get a clear error instead. The reason of a fallback is saved in SUMMARY.fallbackReason. Region/province names are resolved with a built-in table of the 107 Italian provinces, so the fallback works even if the whole live service is offline. Monitoring (monitorKey) keeps working across sources (same key: station × fuel × service).

Limits and notes

  • Prices are declared by station operators to MIMIT; some stations update rarely – check priceAgeHours / isStale.
  • Nearby search radius is limited to 10 km by the official service; use several points for larger zones or area mode.
  • In nearby mode the address is not returned by the source: enable includeStationDetails if you need it.
  • In stations mode coordinates are not available from the detail endpoint.
  • Motorway (highway) search is not supported yet.
  • The Actor is deliberately polite (sequential requests, ~3 per second max, retries with back-off). A whole region (hundreds of stations) takes a few seconds; details add ~0.4 s per station.
  • The live data comes from the public, login-free service behind the official portal. If MIMIT changes it, the Actor automatically falls back to the daily CSV; please open an issue so we can update it.
  • Data: MIMIT – Osservaprezzi Carburanti, open data released under the Italian Open Data License v2.0 (IODL 2.0), which allows commercial reuse with attribution. Every row carries the source and license; keep the attribution when you republish the data.
  • No login, no paywall and no technical protection is bypassed.
  • Data minimisation (GDPR): the Actor does not output the operator ("Gestore") name, phone numbers or e-mail addresses available in the source (the Gestore column of the CSV is discarded while parsing). Note that some stations are publicly listed under the name of a sole trader; use the data for price information purposes only.
  • This Actor is not affiliated with or endorsed by MIMIT.

Support

Found a bug or need a field / a new feature (e.g. motorway stations, CSV history export)? Open an issue on the Actor's Issues tab.

Disclaimer

This is not personalized advice. Material created also with the use of AI tools.