Partire dalle coordinate
Con lat e lon l'API trova la zona che contiene il punto, sui perimetri ufficiali delle zone OMI.
API Quotazioni Immobiliari OMI: dai le coordinate di un punto qualsiasi e ricevi la sua zona OMI con i prezzi di vendita e affitto, dal 2004 a oggi. Dati ufficiali dell'Agenzia delle Entrate.
Componi la richiesta come la faresti davvero, eseguila e guarda la risposta dell'API. È una simulazione con i dati OMI reali dell'ultimo anno, senza richieste vere e senza registrazione.
import os
import requests
URL = "https://3eurotools.it/api/v1/quotazioni"
CHIAVE = os.environ["OMI_API_KEY"]
risposta = requests.get(
URL,
params={"lat": 41.8902, "lon": 12.4922, "tipologia": "abitazioni_civili", "mq": 80},
headers={"X-API-Key": CHIAVE},
timeout=10,
)
In attesa: premi Esegui qui sopra per inviare la richiesta.
Passa lat e lon (WGS84, le stesse di Google Maps o di un GPS) e l'API trova la zona OMI che contiene il punto, usando i perimetri ufficiali delle zone pubblicati dall'Agenzia delle Entrate.
Non serve sapere in che comune o in che zona ti trovi: la risposta te lo dice nel blocco risolto, insieme alle quotazioni.
Da un indirizzo. Converti l'indirizzo in coordinate con un servizio di geocoding (Google Maps, OpenStreetMap Nominatim e simili) e passale all'API. Se il punto cade in mare o fuori da ogni zona ricevi 404 zona_not_found. Con /api/v1/zone?lat=…&lon=… ottieni solo la zona, senza prezzi.
La richiesta di esempio: abitazioni civili di 80 m² vicino al Colosseo.
curl -H "X-API-Key: $OMI_API_KEY" \
"https://3eurotools.it/api/v1/quotazioni?lat=41.8902&lon=12.4922&tipologia=abitazioni_civili&mq=80"
{
"anno": 2026,
"risolto": {
"metodo": "coordinate",
"comune": { "codice": "H501", "nome": "Roma", "provincia": "RM", "regione": "Lazio" },
"zona": { "codice": "B3", "descrizione": "Celio (Via Claudia)", "fascia": "B" }
},
"zone": {
"B3": {
"descrizione": "Celio (Via Claudia)",
"tipologie": {
"abitazioni_civili": {
"stato": "normale",
"semestri": 1,
"acquisto": { "min": 352000.0, "max": 512000.0, "medio": 432000.0 },
"affitto": { "min": 1280.0, "max": 1840.0, "medio": 1560.0 }
}
}
}
}
}
Con lat e lon l'API trova la zona che contiene il punto, sui perimetri ufficiali delle zone OMI.
q=Roma, San Lorenzo trova comune e zona da soli. Forlì, forli e FORLI` sono la stessa cosa.
/api/v1/zone restituisce le zone di un comune con descrizione, fascia e tipologia prevalente.
Con anno ricevi le quotazioni di ogni anno dal 2004: l'anno è la media dei semestri pubblicati.
/api/v1/me mostra il tuo piano, le richieste usate oggi e quelle rimaste.
Indirizzo base https://3eurotools.it/api/v1. Tutte le richieste sono GET e richiedono l'header X-API-Key (oppure Authorization: Bearer); la chiave nell'URL non viene accettata.
/quotazioni: prezzi di un punto, di una zona o di un intero comune| Parametro | Descrizione |
|---|---|
lat, lon | Coordinate di un punto (WGS84). Non si combinano con gli altri modi. |
q | Comune e zona insieme, separati da virgola o barra: Roma, San Lorenzo, H501/C5, Roma/C5. Solo il comune: tutte le sue zone. |
comune | In alternativa a q: codice catastale o nome del comune. |
zona | Codice o descrizione della zona OMI. Se manca, tutte le zone del comune. |
provincia | Sigla (es. LE), serve solo per i comuni con lo stesso nome, come Castro (BG) e Castro (LE). |
tipologia | Es. abitazioni_civili, ville_e_villini, negozi, box, oppure il codice numerico. |
anno | Dal 2004 a oggi. L'anno è la media dei semestri pubblicati. |
mq | Superficie: i prezzi vengono moltiplicati per questo valore. |
operazione | acquisto o affitto. |
Come leggere i prezzi. acquisto è il valore di compravendita, affitto il canone mensile, già moltiplicati per mq. Minimo e massimo non sono i prezzi più bassi e più alti registrati, ma il range in cui si colloca un immobile della zona: un attico ristrutturato sta in alto, un piano terra da sistemare in basso. stato indica lo stato di conservazione della quotazione, semestri quanti semestri compongono la media dell'anno.
/zone: le zone OMI di un punto o di un comuneStessi parametri di area di /quotazioni. Con le coordinate del Colosseo restituisce la zona B3 di Roma, "Celio (Via Claudia)".
curl -H "X-API-Key: $OMI_API_KEY" "https://3eurotools.it/api/v1/zone?lat=41.8902&lon=12.4922"
/me: piano e consumiRestituisce il piano, i limiti, le richieste usate oggi e le tue chiavi (solo il prefisso). Non consuma la quota giornaliera.
Appena creata, la chiave ha fino a 100 richieste al giorno. Dopo l'approvazione dell'account, che richiedi con un clic dalla dashboard, il piano free consente fino a 5.000 richieste al giorno e fino a 30 al minuto; il conteggio giornaliero si azzera a mezzanotte, ora italiana. Ogni risposta riporta lo stato dei limiti negli header. Superato un limite ricevi 429 con Retry-After, i secondi da attendere; le richieste respinte non consumano la quota. Per limiti più alti scrivi a d.sagona.20@gmail.com.
X-RateLimit-Limit-Minute: 30
X-RateLimit-Remaining-Minute: 27
X-RateLimit-Limit-Day: 5000
X-RateLimit-Remaining-Day: 4123
X-RateLimit-Reset-Day: 1794265200 # prossima mezzanotte, timestamp Unix
Gli errori hanno sempre la stessa forma, con un codice da usare nel programma e un messaggio leggibile.
{ "error": { "code": "ambiguous_comune",
"message": "Esistono 2 comuni chiamati 'Castro': indica la provincia.",
"candidates": [ { "codice": "C337", "nome": "Castro", "provincia": "BG" },
{ "codice": "M261", "nome": "Castro", "provincia": "LE" } ] } }
| Stato | Codice | Cosa fare |
|---|---|---|
| 401 | missing_api_key, invalid_api_key, api_key_revoked, api_key_expired | Controlla l'header X-API-Key o genera una nuova chiave. |
| 403 | account_suspended | Contatta il supporto. |
| 400 | invalid_parameters | Correggi i parametri indicati in details. |
| 404 | comune_not_found, zona_not_found, anno_not_available | Usa uno dei suggerimenti in candidates o un anno di anni_disponibili. |
| 409 | ambiguous_comune, ambiguous_zona | Scegli tra i candidates: aggiungi la provincia o usa il codice. |
| 429 | rate_limited | Attendi i secondi indicati in Retry-After. |
const params = new URLSearchParams({ lat: 41.8902, lon: 12.4922, tipologia: "abitazioni_civili", mq: 80 });
const risposta = await fetch("https://3eurotools.it/api/v1/quotazioni?" + params, {
headers: { "X-API-Key": process.env.OMI_API_KEY },
});
const dati = await risposta.json();
if (!risposta.ok) throw new Error(dati.error.message);
const zona = dati.risolto.zona.codice;
console.log(dati.zone[zona].tipologie.abitazioni_civili.acquisto.medio);
Chiama l'API dal tuo server, non dal browser dei visitatori: chiunque potrebbe leggere la chiave dal codice della pagina.
La vecchia API senza chiave smette di rispondere il 15 dicembre 2026. Le quotazioni sono le stesse: cambiano l'indirizzo, l'autenticazione e la forma della risposta.
Registrati gratuitamente e genera una API key. La vedi una sola volta: salvala in una variabile d'ambiente, mai nel codice pubblico.
Da /api-quotazioni-immobiliari-omi/ricerca a https://3eurotools.it/api/v1/quotazioni, rinominando i parametri come nella tabella.
Nell'header X-API-Key: la_tua_chiave (o Authorization: Bearer).
I prezzi stanno in zone → zona → tipologie → acquisto / affitto, con min, max e medio.
| Vecchia API | API v1 | Note |
|---|---|---|
codice_comune | comune o q | Accetta il codice (H501) o il nome (Roma). |
zona_omi | zona o q | Accetta il codice (C5) o la descrizione (San Lorenzo). |
tipo_immobile / cod_tip_filtro | tipologia | Stessi nomi (abitazioni_civili) oppure il codice numerico (20). |
metri_quadri | mq | Da 1 a 100.000.000. Default 1, cioè prezzo al metro quadro. |
operazione, anno | invariati | Stesso significato di prima. |
Sì. Con la API key gratuita hai subito fino a 100 richieste al giorno; dopo l'approvazione dell'account, richiesta con un clic dalla dashboard, il piano free consente fino a 5.000 richieste al giorno e fino a 30 al minuto, anche per uso commerciale.
Sì. Converti l'indirizzo in coordinate con un servizio di geocoding e passa lat e lon: l'API restituisce il comune, la zona OMI e le sue quotazioni.
Dal 2004 a oggi. Ogni anno è la media dei semestri pubblicati dall'Agenzia delle Entrate; senza il parametro anno ricevi i dati più recenti.
Sono i valori di riferimento dell'Osservatorio del Mercato Immobiliare dell'Agenzia delle Entrate: per ogni zona di ogni comune indicano un range di prezzi di vendita e di affitto al metro quadro, per tipologia di immobile, calcolato su compravendite e contratti di locazione e aggiornato ogni semestre. Approfondisci sul sito dell'Agenzia.
Verrà sospesa il 15 dicembre 2026: da quel giorno risponde con un errore 410. Fino ad allora funziona, ma ogni risposta contiene un avviso di migrazione e i limiti sono più bassi. La vecchia documentazione resta consultabile.
Sì: nei progetti pubblici inserisci un link a questa pagina. I dati sono dell'Agenzia delle Entrate.