Italy Petrol Stations List — Gas Stations by Brand (MIMIT)
Pricing
from $33.50 / 1,000 fuel station records
Italy Petrol Stations List — Gas Stations by Brand (MIMIT)
Italy petrol stations list from the official MIMIT registry: Italy gas stations near a point or by province, town, brand and road or motorway type — name, address, coordinates, distance. Wrong source coordinates skipped. IODL 2.0. Part of NexGen Signal — official-source data products
Pricing
from $33.50 / 1,000 fuel station records
Rating
0.0
(0)
Developer
NexGen Signal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
An Italy petrol stations list from the official MIMIT registry. Every active Italy gas station (fuel station) — brand, type, name, address, town, province and coordinates — near any point or by province, town, brand and road or motorway type.
Italy's active fuel-station registry from MIMIT's Osservaprezzi Carburanti as clean, per-station records - id, brand, type, name, address, municipality, province and coordinates. The operator field (often a person) is dropped.
Who buys this and for what job
- Fleet, logistics and fuel-card teams building an Italy petrol stations list along routes or near depots, by brand and motorway or road type.
- Mapping and navigation products that need located Italy gas stations with brand and address from the official registry.
- Retail-fuel analysts counting stations by brand, province and town to size networks and white spots.
Buyers usually search for this as "Italy petrol stations" or "Italy gas stations".
What one record represents
The source is MIMIT (the Italian Ministry of Enterprises and Made in Italy), Osservaprezzi Carburanti,
published as a daily open-data CSV at www.mimit.gov.it. Each record is one active fuel station: the station id, brand (Bandiera), station type, station name, street address, municipality, province and decimal coordinates.
Sample output

Real rows from a live run of this actor (first 5 rows, selected columns).
One full record from the same run, exactly as delivered:
{"station_id": "59183","brand": "Agip Eni","station_type": "Stradale","station_name": "19829 AGRIGENTO","address": "SS.189 KM. 64+649 - C.DA SAN MICHELE S.N.C","municipality": "AGRIGENTO","province": "AG","latitude": 37.333935,"longitude": 13.595533,"record_id": "59183","source": "MIMIT - Ministero delle Imprese e del Made in Italy (Osservaprezzi Carburanti)","source_dataset": "anagrafica_impianti_attivi.csv","licence": "Italian Open Data Licence 2.0 (IODL 2.0): free to consult, extract, download, copy, distribute, transmit and adapt the data, including for commercial purposes, provided the source is acknowledged (MIMIT - Osservaprezzi Carburanti).","attribution": "MIMIT - Ministero delle Imprese e del Made in Italy (Osservaprezzi Carburanti)","caveat": "One record per active Italian fuel station from the MIMIT daily registry: station id, brand (Bandiera), station type, station name, address, municipality, province and coordinates. The operator field (Gestore) - which is often a natural person or sole trader - is structurally dropped and never emitted. Join station id to the fuel-price cell for prices.","observed_at": "2026-09-25T17:23:58Z"}
Coverage and volume
The registry holds about 23,976 active stations - measured at build time from the downloaded CSV.
Sol's Wave-4 index put this door at 23,975 EXACT; measured live at build time the registry holds 23,976 active stations - the live figure is what this listing quotes.
The Actor downloads the daily CSV, skips its one-line extraction preamble, reads the header row and delivers each data row, stopping as soon as your Maximum records cap is met.
Licence and attribution
The data is released under the Italian Open Data Licence 2.0 (IODL 2.0). The full notice travels on every record:
Italian Open Data Licence 2.0 (IODL 2.0): free to consult, extract, download, copy, distribute, transmit and adapt the data, including for commercial purposes, provided the source is acknowledged (MIMIT - Osservaprezzi Carburanti).
Person-data policy
The source carries an operator field (Gestore) that is often a natural person or sole trader. This Actor structurally drops Gestore - it is never read or emitted - and a per-record assertion rejects any operator/person field (verified with a planted-field test). The brand and station name are business attributes; the address locates the station, not a person.
Interpretation caveat
One record per active Italian fuel station from the MIMIT daily registry: station id, brand, station type, station name, address, municipality, province and coordinates. The operator field (Gestore) is dropped.
Values are reproduced verbatim from the CSV; the Actor never rewrites a field. The two MIMIT cells share the
station id (idImpianto), so you can join prices to stations and back.
Provenance and compliance
Every run reads the door host's robots.txt at runtime; the gate result (URL, status, byte length, SHA-256
of the policy) is written to the run's RUN_RECEIPT, and the data path is confirmed permitted before any
fetch. The endpoint is keyless. The Actor never bypasses a block or fetches through a mirror.
Data quality and freshness
Boolean columns are delivered as real booleans and numeric columns as real numbers. Delivery is keyed on a
stable composite id, so the dataset is safe to diff, deduplicate or upsert. Every run re-reads the live door,
so the data is as fresh as the source publishes, and each record's observed_at stamp dates the snapshot. The
run's RUN_RECEIPT records the source URL and how many records were delivered and charged, and confirms
charge_equals_delivered.
Billing and delivery
Pricing is per record: you are billed only for records the Actor actually delivers, at a flat rate, with the charge raised after each record is pushed (push-then-charge), so a failed or empty run costs nothing. There is no subscription and no minimum. The Maximum records cap bounds every run, so you control the spend precisely - set it low to sample the shape of the data cheaply, then raise it once you have confirmed the cell fits your use. Because delivery is incremental and keyed on a stable id, re-running against the same door and upserting on that id keeps a downstream table current without re-paying for rows you already hold; only the new and changed records add cost. Every run's receipt reconciles delivered against charged, so the billing is auditable against the data you received.
Inputs
Default changed on 30 Sep 2026: if you leave maxRecords out, a run now returns up to 10 records (it was 500). Set maxRecords yourself to get more — the maximum is unchanged.
Search options (all optional). Records are tested as the source file is read, and only matching records are delivered and billed. Several values in one field match any of them; different fields must all match. With no search option set, the actor returns exactly the same records in the same order as before. A chosen order reads the whole file and keeps the best maxRecords.
- Provinces (
provinces) — Two-letter codes, e.g.MI,RM,NA. - Municipalities (contains) (
municipalities) — e.g.MILANO,ROMA. - Brands (contains) (
brands) — e.g.Agip Eni,Q8,IP,Tamoil. - Station types (
stationTypes) —Stradale(road) orAutostradale(motorway). - Near a point (
latitude,longitude,radiusKm, default 25 km) — only records within the radius; addsdistance_km. A few stations in the MIMIT registry carry clearly wrong coordinates (checked 29 Sep 2026: about 60 of 23,882 — e.g. stations in Brescia, Lissone and Finale Emilia all registered at one point in central Milan, or a Veglie (Lecce) station placed in Milan). Point searches skip stations whose point is shared with stations in other municipalities or lies more than 150 km from the rest of their province; the count is inRUN_RECEIPT(suspect_coordinates_skipped). A genuine station at a shared point is skipped too, and coordinates are never corrected. The check is partial: wrong points that are near their own town are not caught (for example, a station registered in Magenta sits 1.1 km from central Milan in the source), so check the address before relying on a distance. - Order (
sortBy) —nearest(nearest first). Empty = the file's own order (nearest is used automatically with a point).
Example:
{"latitude": 45.4642, "longitude": 9.19, "radiusKm": 3, "maxRecords": 10}
- Maximum records (
maxRecords) - hard cap on records delivered and billed.
Output
Records land in the Actor's default dataset and export as JSON, CSV, Excel or via the Apify API. A tabular overview surfaces the leading fields.
Fields in detail
The record carries station_id, brand, station_type, station_name, address, municipality, province, latitude and longitude, keyed on the station id. The provenance block closes every record.
Typical uses
Station-roster and mapping teams use this cell as the located registry of Italian fuel stations - id, brand and coordinates - ready to map or to enrich a price feed. Because both MIMIT cells key on the station id, a single join gives you priced, located
stations; a scheduled daily run keeps the pair current, and each record's observed_at stamp dates the
snapshot.
The two-cell design
MIMIT publishes prices and the station roster as two separate daily extracts, and this fleet mirrors that: the price cell is a fast-moving observation feed (one row per station-fuel-time), and the station cell is a slow dimension table (one row per active station). Keeping them separate means the price feed stays lean and the station attributes are not repeated on every price row; the station id joins them whenever you need both. Run the price cell daily for the moving series and the station cell occasionally to refresh the roster.
Scaling and limits
Set Maximum records low to sample or high to pull the full extract. The Actor streams the CSV and delivers
incrementally, so memory stays flat and you are billed only for what is delivered. Both extracts refresh daily,
so a scheduled run keeps a downstream table current; each record's observed_at stamp dates the snapshot.
The dimension table
This cell is the slow-moving companion to the price feed: one row per active station rather than one row per price. That separation is deliberate. The station attributes - brand, type, name, address, municipality, province and coordinates - change rarely, so repeating them on every price observation would bloat the price feed for no gain. Keeping them here, keyed on the station id, means the price cell stays lean and this cell serves as the located roster you join to whenever you need a station's name, brand or position on a map.
Why Gestore is dropped
The source registry includes a Gestore (operator) column, which for the many independent and franchise
stations in Italy is frequently a natural person or a sole trader's name rather than a company. Because that is
personal data, this Actor never reads or emits it - it is not named in the field map, and a per-record
assertion rejects it if the source schema ever changed. Everything the cell does deliver is a business or
geographic attribute: the brand (Bandiera) is the fuel marque, the station name and address locate the site,
and the coordinates put it on a map. The result is a clean, redistributable roster with no operator identity.
Mapping and enrichment
Because latitude and longitude are real numbers, the roster drops straight into a GIS or a map without
geocoding, and the municipality/province fields let you aggregate to administrative areas. Joined to the
price feed on the station id, it turns a stream of bare price observations into located, branded price points -
the basis for a coverage map, a brand price comparison, or a catchment analysis. The registry refreshes daily,
so an occasional scheduled run keeps the roster current as stations open or close.
Sibling Actors
It sits beside the fuel-price observation cell (same MIMIT index, the price fact table); the two join on the station id. It shares its CSV engineering with the fleet's other records Actors.