API JSON

API di normalizzazione

Integra RadarAddress direttamente nei tuoi applicativi. Risposta JSON strutturata, documentazione completa, due endpoint per ogni esigenza.

Le API di RadarAddress ti permettono di normalizzare indirizzi italiani in tempo reale, direttamente dai tuoi sistemi. Puoi verificare un singolo indirizzo o inviare fino a 500 record per chiamata con l'endpoint batch.

Autenticazione

L'accesso alle API avviene tramite token Bearer. Dopo la registrazione, genera il tuo token dall'area personale e includilo nell'header di ogni richiesta nel formato:

# Tutte le richieste richiedono l'header Authorization
Authorization: Bearer {il-tuo-token}

Il token non ha scadenza automatica. Puoi revocarlo o rigenerarlo in qualsiasi momento dalla tua area personale. Una richiesta senza token o con token non valido restituisce HTTP 401.

Endpoint singolo

POST /api/v1/normalizza

Accetta una richiesta POST con un oggetto JSON contenente i campi dell'indirizzo e restituisce l'indirizzo normalizzato, il codice di esito e il dettaglio delle modifiche applicate.

Campi accettati in input

CampoTipoObbligatorioDescrizione
indirizzostringaVia, Corso, Piazza + nome + numero civico
presso stringaNoDestinatario o c/o (es. studio, portineria)
edificiostringaNoScala, interno, piano
cap stringaNo5 cifre. Migliora la precisione
localitastringaNoComune o frazione
provinciastringaNoSigla a 2 lettere
postal_formbooleanoNoDefault false. Se true, i campi normalizzato seguono la forma postale completa: date in lettere (es. «Venticinque Aprile») e frazione senza CAP proprio ricondotta al comune in localita con la frazione in edificio (regola 11 Poste). La forma comunale resta sempre disponibile a parte in normalizzato_postale e viceversa.
preserva_originalebooleanoNoDefault false. Se true, mantiene il nome scritto da te quando il motore lo avrebbe sostituito con quello canonico: vie con denominazione storica/alternativa (es. «Via Gallina» → «Via Ennio Flaiano») e comuni in lingua locale (es. «Bozen» → «Bolzano»). Il nome canonico resta esposto in indirizzo_canonico / localita_canonica.
precisioneintero 1–5NoDefault 3. Livello di "elasticità" del match: 1 solo esatto, 2 simile, 3 parziale (consigliato), 45 molto largo (soundex, ricerca ampia). Oltre 3 il match è approssimato: l'affidabilità del risultato non sarà mai «alta». Alza il valore per recuperare più indirizzi storpiati, accettando un rischio maggiore di falsi positivi.

Esempio di richiesta

curl -X POST https://radaraddress.it/api/v1/normalizza \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "indirizzo": "via leopardi 4",
    "cap": "20100",
    "localita": "milano",
    "provincia": "mi"
  }'

Esempio di risposta

{
  "trovato": true,
  "esito": "MODIFICATO CAP LOCALITA_NORM PROVINCIA INDIRIZZO",
  "esito_label": {
    "kind": "modified",
    "title": "Indirizzo normalizzato",
    "message": "Abbiamo normalizzato l'indirizzo secondo gli standard di Poste Italiane."
  },
  // forma comunale (CRM): accenti UTF-8, frazione tenuta in località
  "normalizzato": {
    "indirizzo": "Via Giacomo Leopardi 4",
    "cap": "20123", "localita": "MILANO", "provincia": "MI",
    "presso": "", "edificio": ""
  },
  // forma postale (busta): apostrofo al posto dell'accento
  "normalizzato_postale": {
    "indirizzo": "Via Giacomo Leopardi 4",
    "cap": "20123", "localita": "MILANO", "provincia": "MI",
    "presso": "", "edificio": ""
  },
  "comune": "MILANO",
  "confidenza": "alta",
  "note": null,
  "indirizzo_canonico": null,
  "localita_canonica": null,
  "modifiche": [
    { "campo": "indirizzo", "prima": "via leopardi 4", "dopo": "Via Giacomo Leopardi 4" },
    { "campo": "cap", "prima": "20100", "dopo": "20123" }
  ],
  "civico": { "numero": "4", "esponente": null },
  "toponimo": { "dug": "Via", "duf": "Giacomo Leopardi" },
  "multicap": true,
  "zonato": true
}

Campi della risposta

CampoDescrizione
trovatoBooleano: l'indirizzo è stato riconosciuto e normalizzato.
esitoCodice di esito (vedi tabella sotto) seguito dai campi modificati.
esito_labelVersione leggibile dell'esito: kind (ok/modified/warning/error), title, message.
normalizzatoForma comunale (CRM, anagrafiche): accenti UTF-8 leggibili, frazione tenuta in localita.
normalizzato_postaleForma postale (da stampare sulla busta): apostrofo al posto dell'accento (es. FORLI'), conforme al CAP Street File di Poste. Stessa informazione, rappresentazione operativa.
comuneComune principale di riferimento, sempre valorizzato quando risolto: utile quando la località è una frazione (es. località «Cassina Nuova» → comune «BOLLATE»).
confidenzaAffidabilità della normalizzazione: alta (via riconosciuta con match diretto), media (località corretta per disambiguazione, o match approssimato con precisione > 3), null sugli esiti di errore. Quando è media, note spiega il perché.
noteSpiegazione testuale di una correzione o di un dubbio (es. via rinominata, frazione ricondotta al comune, match approssimato). null se non applicabile.
indirizzo_canonico / localita_canonicaNome ufficiale quando hai usato un alias storico o la forma in lingua locale (vedi preserva_originale). null se non applicabile.
modificheElenco dei campi cambiati con valore prima e dopo.
civicoCivico scomposto: numero, esponente, colore (rosso/nero a Genova/Firenze), metrico (strade chilometriche).
toponimoVia scomposta: dug (Via/Corso/Piazza…) e duf (nome della via).
geoCoordinate WGS84 del civico (lat/lon) quando georeferenziato, altrimenti null.
multicap / zonatoBooleani: il comune ha più CAP / è una città a zone postali.

Endpoint batch

POST /api/v1/batch

Accetta un array JSON di oggetti indirizzo, fino a un massimo di 500 elementi per chiamata. La risposta è un array con lo stesso numero di elementi: ogni oggetto contiene l'indirizzo normalizzato e il relativo codice di esito, nell'ordine in cui sono stati inviati.

curl -X POST https://radaraddress.it/api/v1/batch \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "indirizzi": [
      { "id": "A1", "indirizzo": "via leopardi 4", "localita": "milano" },
      { "id": "A2", "indirizzo": "piazza navona",  "localita": "roma" }
    ]
  }'

Ogni elemento dell'array di risposta riporta lo stesso id opzionale ricevuto in input, così puoi correlare facilmente le righe.

Codici di esito

Ogni risposta include il campo esito con uno dei seguenti codici, che indicano il risultato della normalizzazione:

CodiceSignificato
OKNessuna modifica necessaria, indirizzo già conforme
MODIFICATOIndirizzo normalizzato con successo (segue indicazione dei campi cambiati)
CASELLA POSTALERecapito a casella postale riconosciuto (non una via): forma CASELLA POSTALE n
DUG-LOC NON STRADALEL'indirizzo è una frazione/località senza nome via; il recapito è comunque possibile
LOCALITA NON TROVATAComune non riconosciuto
LOCALITA NON UNIVOCANome di comune presente in più province
STRADA NON TROVATAVia non censita per questa località
STRADA NON UNIVOCANome di via presente in più zone del comune
DUG NON TROVATOTipo di via non riconoscibile (manca Via/Corso/Piazza…)
CIVICO NULLONumero civico assente o non valido
CIVICO NON CONFORMENumero civico in forma non riconosciuta
DATI INCOMPLETIInformazioni insufficienti per la normalizzazione
ESTEROIndirizzo non italiano, non normalizzabile

Limiti e quota

Ogni account ha una quota mensile di chiamate inclusa nel piano sottoscritto (vedi prezzi). L'endpoint singolo conta 1 chiamata per richiesta; l'endpoint batch conta tante chiamate quanti sono i record inviati. Se superi la quota, l'API restituisce HTTP 429 con il campo retry_after che indica quando la quota verrà rinnovata. Per aumentare i limiti contatta il supporto.

Rate limit

60 richieste al minuto sull'endpoint singolo, 10 al minuto sul batch.

SLA

99,5% di uptime mensile sui piani Growth e Volume.

Versionamento

Le versioni degli endpoint sono mantenute retrocompatibili per almeno 24 mesi.

Pronto a integrare?

Scegli un piano con accesso API, genera il tuo token e fai la prima chiamata in meno di un minuto.

Vedi piani con API