Italy Fuel Prices – Cheapest Petrol & Diesel Stations avatar

Italy Fuel Prices – Cheapest Petrol & Diesel Stations

Under maintenance

Pricing

$1.00 / 1,000 results

Go to Apify Store
Italy Fuel Prices – Cheapest Petrol & Diesel Stations

Italy Fuel Prices – Cheapest Petrol & Diesel Stations

Under maintenance

Daily petrol, diesel, LPG and CNG prices for 23,000+ Italian fuel stations from the MIMIT open data (IODL 2.0). Radius, region, province, town and brand search; sort by price or distance. One charge per station.

Pricing

$1.00 / 1,000 results

Rating

0.0

(0)

Developer

Federico Rossi

Federico Rossi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Daily petrol, diesel, LPG, CNG and LNG prices for 23,000+ Italian fuel stations from the open data of the Italian Ministry of Enterprises (MIMIT – Osservatorio prezzi carburanti). By law, stations must report their prices to this database. Search within a straight-line radius of a point or by region, province, town, brand or station type. Rank stations cheapest first on one explicit product, monitor a watchlist of stations, or get aggregates per province, region or brand.

No API key, no scraping: the Actor downloads MIMIT's two official daily files (licence IODL 2.0), validates them, and joins stations with prices.

Prezzi carburanti ufficiali MIMIT: trova il distributore più economico, il prezzo del gasolio oggi e i distributori economici vicino a te.

Use cases

  • Fleet & logistics managers: cheapest diesel around depots or cities. Distance is straight-line, not along roads.
  • Apps & websites: a "cheapest fuel near me" feature or a price widget via API.
  • Station watchlists: monitor the same competitor or depot stations every day with stationIds.
  • Market analysis & journalism: average/min/max per province, region or brand, self vs attended, standard vs premium.

Fair price comparisons

  • Each price row has fuelVariant: standard (Benzina, Gasolio, GPL, Metano, GNL), premium (Blue Diesel, Hi-Q, V-Power…) or hvo, plus its unit (EUR/L, or EUR/kg for CNG/LNG).
  • Cheapest first compares exactly one product: sortFuelCategory (e.g. gasolio) + sortServiceType (self / served / any), standard variant only unless comparisonVariant: "any". Stations without that product are excluded from the ranking (counted in the summary). Each result gets comparisonPrice, comparisonFuel, comparisonService and rank.
  • The columns benzinaSelf, benzinaServed, gasolioSelf, gasolioServed, gpl, metano and gnl show the standard product's lowest price. Their Italian names are stable; all prices, premium included, are in prices[].
  • includePremium: false drops premium/HVO rows, and maxPrice drops expensive ones.

Area filters and the radius combine with AND. If you set Lazio and Milan coordinates you get nothing; a warning is logged.

Example tasks

Cheapest self-service diesel in the province of Bologna (the prefilled demo):

{ "fuelCategories": ["gasolio"], "provinces": ["BO"], "sortBy": "price", "maxResults": 20 }

Cheapest diesel within 10 km of central Milan:

{ "fuelCategories": ["gasolio"], "latitude": 45.4642, "longitude": 9.19, "radiusKm": 10, "sortBy": "price", "sortServiceType": "self", "maxResults": 20 }

Lombardy comparison by province:

{ "regions": ["Lombardia"], "fuelCategories": ["benzina", "gasolio"], "outputMode": "aggregates", "aggregateBy": "province" }

Brand / station watchlist on a daily schedule:

{ "stationIds": ["62939"], "outputMode": "prices" }

Use it from code

curl (runs the Actor and returns the results in one call):

curl -X POST "https://api.apify.com/v2/acts/nobler_zirconia~italy-fuel-prices/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"fuelCategories": ["gasolio"], "provinces": ["BO"], "sortBy": "price", "maxResults": 20}'

JavaScript (npm i apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('nobler_zirconia/italy-fuel-prices').call({"fuelCategories": ["gasolio"], "provinces": ["BO"], "sortBy": "price", "maxResults": 20});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("nobler_zirconia/italy-fuel-prices").call(run_input={"fuelCategories": ["gasolio"], "provinces": ["BO"], "sortBy": "price", "maxResults": 20})
items = client.dataset(run["defaultDatasetId"]).list_items().items

You can also use it from Make, Zapier, n8n, schedules, webhooks or the Apify MCP server for AI agents.

Output (station mode)

{
"resultType": "STATION",
"stationId": "62939",
"name": "ENI 05522",
"brand": "Agip Eni",
"stationType": "Stradale",
"address": "Piazza Manfredi Azzarita 9/A 40122",
"street": "Piazza Manfredi Azzarita 9/A",
"postalCode": "40122",
"comune": "BOLOGNA",
"province": "BO",
"latitude": 44.499364,
"longitude": 11.332766,
"region": "Emilia-Romagna",
"distanceKm": 0.925,
"distanceType": "straight-line",
"benzinaSelf": null,
"benzinaServed": null,
"gasolioSelf": 2.19,
"gasolioServed": null,
"gpl": null,
"metano": null,
"gnl": null,
"lastPriceUpdate": "2026-10-12T07:41:07",
"prices": [
{
"fuel": "Gasolio",
"fuelCategory": "gasolio",
"fuelVariant": "standard",
"price": 2.19,
"unit": "EUR/L",
"selfService": true,
"updatedAt": "2026-10-12T07:41:07"
},
{
"fuel": "Blue Diesel",
"fuelCategory": "gasolio",
"fuelVariant": "premium",
"price": 2.29,
"unit": "EUR/L",
"selfService": true,
"updatedAt": "2026-10-12T07:41:07"
}
],
"mapsUrl": "https://www.google.com/maps/search/?api=1&query=44.499364,11.332766",
"stationDataDate": "2026-10-14",
"priceDataDate": "2026-10-14",
"dataFreshness": "CURRENT",
"comparisonPrice": 2.19,
"comparisonFuel": "Gasolio",
"comparisonService": "self",
"comparisonUnit": "EUR/L",
"rank": 1,
"source": "MIMIT – Osservatorio prezzi carburanti (prezzi praticati e anagrafica impianti)",
"sourceUrl": "https://www.mimit.gov.it/it/open-data/elenco-dataset/carburanti-prezzi-praticati-e-anagrafica-degli-impianti",
"license": "IODL 2.0",
"licenseUrl": "https://www.dati.gov.it/iodl/2.0/",
"attribution": "Fonte: Ministero delle Imprese e del Made in Italy (IODL 2.0). Not endorsed by MIMIT or the Italian government.",
"retrievedAt": "2026-10-15T09:28:17.121Z"
}
FieldDescription
resultTypeSTATION, PRICE (prices mode), AGGREGATE or LOOKUP_STATUS (free watchlist status rows: FOUND, FOUND_NO_MATCHING_PRICE, NOT_FOUND)
stationId, name, brand, stationTypeStation identity (type: Stradale road / Autostradale motorway)
address, street, postalCode, comune, province, region, latitude, longitude, mapsUrlLocation. postalCode is filled only when the address ends with a 5-digit CAP.
distanceKm, distanceTypeStraight-line distance from your point (radius search only)
rank, comparisonPrice, comparisonFuel, comparisonService, comparisonUnitPresent when sorted by price
benzinaSelf … gnlLowest standard-product price per type
prices[]fuel, fuelCategory, fuelVariant, price, unit, selfService, updatedAt (Italian local time)
lastPriceUpdateMost recent price communication of the station
stationDataDate, priceDataDateExtraction dates of the two MIMIT files
dataFreshnessCURRENT, or STALE_FALLBACK (see below)
source, sourceUrl, license, licenseUrl, attribution, retrievedAtProvenance on every item: data source, licence (IODL 2.0), required attribution, and the UTC time the data was retrieved

The SUMMARY record has complete, truncatedReason, matchingStations, excludedNoComparablePrice, billableUnits (separate from datasetItemsWritten), both data dates, dataFreshness and sourceRoute (how MIMIT was reached).

Data freshness and reliability

MIMIT publishes the files every morning with the prices in force at 8:00 of the previous day. Every run downloads both files, with retries and backoff, and validates them: each file must have an extraction date at most 7 days old, at least 15,000 stations, price coverage of at least 60% of stations, consistent IDs between the two files, and few malformed rows. If validation or the download fails, the run fails. It never quietly returns old or partial data.

Reachability: MIMIT's servers sometimes accept connections only from Italian IP addresses. The Actor connects directly first; if that fails it automatically retries once through an Italian Apify Proxy exit when your Apify plan includes one (or through the proxy you set in proxyConfiguration). The whole download phase is capped at 2.5 minutes, so if MIMIT cannot be reached the run fails quickly with a clear message and nothing is charged.

Optional allowStaleFallback (off by default): your own earlier runs with this option save the last validated snapshot. If the fresh download then fails, that snapshot (at most maxFallbackAgeHours old) is used, and every item is flagged dataFreshness: "STALE_FALLBACK" with a warning.

Price history: schedule the Actor and send the results to a named dataset (unnamed run datasets expire under Apify's data retention). History does not build up automatically.

Pricing

$0.001 per returned station ($1 per 1,000, pay per event result), plus Apify's tiny start event. Station mode returns one row per station. Prices mode returns one row per fuel product, and both modes bill one event per station. Aggregates mode bills one event per aggregate row. The 20 cheapest stations cost $0.02. The default cap is 200 stations per run. Watchlist status rows are free. The Actor writes rows first and then charges for them, so you never pay for rows you don't get.

Data source, licence and privacy

  • Source: MIMIT – Carburanti: prezzi praticati e anagrafica degli impianti, licence IODL 2.0 (commercial reuse with attribution). Attribution: "Fonte: Ministero delle Imprese e del Made in Italy – Osservatorio prezzi carburanti".
  • The station operator ("gestore") can be a private person (sole trader), so the name is excluded by default (includeOperatorName). Station names are public signage and may contain names.
  • Prices are those reported by stations to the Ministry. Prices at the pump can differ.

Disclaimer

This Actor is an independent tool. It is not affiliated with, endorsed by or sponsored by MIMIT or any Italian government body. The data is reproduced from official open data under its licence. It is provided "as is", may contain errors or delays from the source, and is not legal or fiscal advice.