Italy & Spain Fuel Prices Scraper — MIMIT / MITECO avatar

Italy & Spain Fuel Prices Scraper — MIMIT / MITECO

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Italy & Spain Fuel Prices Scraper — MIMIT / MITECO

Italy & Spain Fuel Prices Scraper — MIMIT / MITECO

Official station-level fuel prices, location and brand filters, radius search and persistent price-change monitoring for Italy and Spain.

Pricing

from $2.00 / 1,000 results

Rating

5.0

(1)

Developer

Lorenzo Talamucci

Lorenzo Talamucci

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Get official station-level fuel prices from Italy and Spain, with addresses, brands, coordinates, source dates and persistent price-change monitoring. Built for fleet fuel planning, price comparison apps, market research and recurring alerts.

One result is one station × fuel × service mode, not a complete station. Petrol, diesel, LPG, CNG, LNG and other fuels retain their original source labels; fuelCategory supplies a common category. No login is required at either source.

Quick start

{"countries":["IT","ES"],"maxResults":20}

The prefill is deliberately small. Countries run in stable ES → IT order, then station ID, fuel and service mode. A low limit can be filled entirely by Spain; choose countries: ["IT"] to obtain Italy.

Find Italian diesel around Milan:

{"countries":["IT"],"fuel":"diesel","latitude":45.4642,"longitude":9.1900,"radiusKm":15,"maxPrice":2,"maxResults":100}

Monitor a Spanish municipality daily:

{"countries":["ES"],"municipality":"Abengibre","maxResults":100,"soloNuove":true,"monitorNome":"abengibre-fuel-daily"}

Filters

InputMeaning
countriesIT, ES, or both. Default both.
regionRegion name, e.g. Toscana, Lombardia, Madrid.
provinceItalian code (MI, PO, etc.) or Spanish province name.
municipality, brandMunicipality or station brand.
fuelNative label or category: petrol, diesel, lpg, cng, lng, ethanol, hydrogen.
latitude, longitude, radiusKmAll three required for a radius search.
maxPriceMaximum price in the row's unit. Filter by fuel when comparing.
maxResults1–200,000 delivered observations; default 20.
soloNuoveEmit only unseen or price-changed observations. Default false.
monitorNomeNamed persistent Apify key-value store, 2–63 letters/digits/hyphens.

Text filters use accent/case-insensitive substring matching and combine with AND. Italian regions are derived from province codes; unknown codes yield null. Missing coordinates are excluded from radius searches. Prices are EUR/l for liquid fuels and EUR/kg for CNG, LNG and hydrogen. Original fuel labels distinguish premium variants. AdBlue and ammonia are excluded from the Spanish feed.

Monitoring semantics

The first run emits matching observations up to maxResults. Later runs compare numeric prices, currency and unit for each country/station/fuel/service combination. Timestamp-only and address-only changes do not trigger alerts. Unchanged observations do not consume maxResults, so later changes remain discoverable. When a first run is capped, later runs drain the unseen backlog. Increase the limit to cover the complete filtered population in one run.

The store is persistent and scoped by the full filter configuration, including maxResults. Changing filters or the limit starts a new baseline. State is saved only after a dataset batch has been delivered: a crash between delivery and persistence may replay a batch, but must not silently mark undelivered prices as seen. Do not run the same monitor/filter configuration concurrently. Separate schedules should have separate names. Removed prices do not generate deletion records; this is not a historical-price archive.

Output

country, stationId, stationName, brand, address, municipality, province, region, latitude, longitude, fuel, fuelCategory, price, currency, unit, selfService, communicatedAt, communicatedAtTimezone, sourceUpdatedAt, sourceTimestampKind, observedAt, monitorStatus, sourceUrl, license, licenseUrl, attribution.

communicatedAt preserves the Italian source's local DD/MM/YYYY HH:mm:ss string with Europe/Rome in its timezone field. Spain does not expose the per-price communication date in this endpoint; this field and selfService are null. Spain's sourceUpdatedAt is the feed's local timestamp, with Europe/Madrid identified by sourceTimestampKind. Italy's source update is a daily snapshot date. observedAt is the UTC retrieval/processing time. These timestamps are not interchangeable.

OUTPUT in the default key-value store contains errors, recovery hints, delivered counts, source counts and malformed-row counts. SUMMARY contains run statistics. Bad input, an unavailable source or the internal deadline produce a controlled completion with diagnostics and any available partial results. An external platform kill, startup failure or infrastructure outage cannot be guaranteed to end SUCCEEDED.

Sources and reuse

  • Italy: MIMIT official dataset (www.mimit.gov.it), daily current snapshot, published since March 2015. IODL 2.0 (www.dati.gov.it) permits commercial reuse with attribution. Preserve source, provider and license links.
  • Spain: MITECO official feed (sedeaplicaciones.minetur.gob.es), under the ministry's public-sector information reuse conditions (sede.serviciosmin.gob.es), with commercial reuse covered by its RISP plan (sede.serviciosmin.gob.es). This actor does not label these data CC-BY-4.0. Preserve source and update date, avoid distortion and do not imply official endorsement.

Data is joined/normalized by Promptica; no affiliation with either ministry. Operator (Gestore) information is not exported. MIMIT CSV can contain malformed rows: those rows are skipped and counted, never guessed or shifted into incorrect columns. Observations whose station cannot be joined are skipped and counted separately. Different snapshot dates cause the Italian source to stop cleanly. Source data can be stale or inaccurate; a download date is not a promise that every station updated its prices recently.

Pricing — pending configuration by the publisher

EventProposed price
Platform actor start, 1 GB default$0.05
result, one delivered price observation$0.002 (publisher decision pending)

The Store pricing shown at run time is authoritative. This repository does not activate prices. Only one result mechanism should be configured: custom result or the platform's default dataset-item event. The implementation prefers the default dataset event if both exist, avoiding double charges. Undefined events are tolerated; uncertain charge failures stop without retry. No premium event applies.

Runtime and local verification

Node 22, default memory 1 GB. Each source response is capped at 40 MiB. Requests retry at most four times with backoff, respecting only the platform deadline minus 30 seconds (default platform timeout: 3,600 seconds). Local runs without a platform deadline have no fixed extraction cap. Cloud requests use Apify proxy sessions; local tests use direct public HTTP requests. No CAPTCHA bypass.

npm ci
npm test
apify run --input-file test/prefill.json
apify run --input-file test/monitor.json
apify run --input-file test/monitor.json

Inspect OUTPUT.error, not just the exit code. Monitor state is stored in a named store; do not erase that store between the two runs. The cloud acceptance battery is test/collaudo.json; cloud runs/deploy/publication require the publisher's approval.

Italiano

Prezzi ufficiali per impianto di Italia e Spagna, con filtri geografici e monitor delle variazioni. Ogni riga rappresenta un carburante e una modalità di servizio. soloNuove conserva lo storico dei prezzi già consegnati in uno store nominato. Le righe italiane malformate vengono scartate e conteggiate nel riepilogo, come concordato il 28 settembre 2026. Conservare sempre attribuzione e licenza nei riusi.

Altri dati pubblici italiani / More Italian public data

Italy Public Data by Promptica — altri dataset / other datasets: