Salta al contenuto
NetCov

Sviluppatori

Prova prima, integra dopo

Inserisci la tua chiave nel playground, esegui gli endpoint e copia il comando curl pronto all’uso. Base URL: https://api.netcov.io · autenticazione: Authorization: Bearer gk_live_...

Endpoint

Autocomplete indirizzi italiani e normalizzazione ANNCSU

L’endpoint suggerisce comuni, strade e civici esistenti man mano che l’utente digita, normalizzando contro l’archivio ANNCSU (comune, odonimo, civico). Ogni suggerimento di tipo civico porta già il code stabile da inviare alla copertura.

Riepilogo per tecnologia e verifica da coordinate

Il campo summary (e summary.by_technology) raggruppa tecnologie, operatori e migliore offerta per civico. Chi ha già latitudine e longitudine (GPS, archivio proprio) può chiamare direttamente con lat + lon, senza passare dall’indirizzo.

Integrazione form verifica copertura per siti operatore: vedi la guida al flusso del form e le guide per framework. Specifica OpenAPI completa: openapi.yaml ↗ · JSON ↗

Quickstart

Prima chiamata in 3 linguaggi

Autenticazione ovunque: Authorization: Bearer LA_TUA_CHIAVE. In anteprima i pacchetti si installano dai repository GitHub (SSH); al lancio saranno su PyPI e npm. In sviluppo usa la base URL http://100.65.240.18:8788.

Raw HTTP

bash
curl "https://api.netcov.io/coverage/italy?address=via%20Toledo%2021,%20Napoli" \
  -H "Authorization: Bearer LA_TUA_CHIAVE"

# Prova subito senza chiave:
#   -H "Authorization: Bearer demo_gigabit"

Python (netcov-sdk)

python
# al lancio: pip install netcov-sdk
pip install "git+ssh://git@github.com/Non-Solus/netcov-sdk-python.git"

from netcov_sdk import NetCov

api = NetCov()  # NETCOV_API_KEY + NETCOV_BASE_URL
cov = api.coverage_italy(code="p4353350")
for g in cov.by_technology():   # raggruppato per tecnologia
    print(g.technology, g.max_downlink_mbps, g.operators)

Node / TypeScript (@netcov-io/client)

bash
npm install @netcov-io/client

import { NetCovClient } from "@netcov-io/client";

const api = new NetCovClient(); // NETCOV_API_KEY + NETCOV_BASE_URL
const cov = await api.coverageItaly({ code: "p4353350" });
console.log(cov.summary.technologies); // ['ftth', 'vdsl']

Flusso consigliato per il form: sotto. Esempi completi: README Python ↗ · README Node ↗

Guida

Il flusso del form di copertura

  1. 1 · Autocomplete: /autocomplete?city=...&address=via tol 2 → suggerimenti con code (mostra main_text + matches per evidenziare il testo digitato).
  2. 2 · L’utente sceglie un suggerimento (civico) → invii la chiamata con code preso dal suggerimento.
  3. 3 · Copertura: /coverage/italy?code=... summary per mostrare tecnologie/operatori/migliore offerta. Con fields=summary,cells scarichi solo quello che ti serve.
  4. 4 · Salva il lead con il code (dalla risposta o dal suggerimento): potrai ri-verificare in futuro con una sola chiamata. Attribuzione CC BY 4.0 obbligatoria in pagina (stringhe nel footer di questo sito).

Prova senza account

Chiavi demo deterministiche

Usa una chiave demo_* come Bearer token: qualunque indirizzo invii, la risposta è sempre lo scenario indicato. Perfette per costruire e testare ogni stato dell’interfaccia prima di registrarti.

Chiavi demo NetCov
ChiaveScenario
demo_gigabitFTTH gigabit (2,5 Gbps) + VDSL — come via Toledo 21, Napoli
demo_adslSolo ADSL 10 Mbps — come un’area rurale in rame
demo_noneNessuna tecnologia dichiarata
demo_404Sempre 404 address_not_found
demo_429Sempre 429 rate_limit_exceeded (con retry_after)

Esempio: curl "https://api.netcov.io/coverage/italy?address=qualunque" -H "Authorization: Bearer demo_gigabit"

Indirizzi di prova reali (con chiave normale)

Aggiungi strict=1 per vedere il comportamento esatto. Gli indirizzi FTTH/FWA/ADSL riflettono l’archivio AGCOM alla data di aggiornamento (vedi l’affidabilità dei dati).

Guide per framework

Il form completo, passo passo, nello stack che usi.

SDK e integrazioni

Errori e limiti
  • address_not_found — indirizzo non trovato (con strict=1 anche se il civico non esiste)
  • bad_request — parametri mancanti o non validi
  • missing_token — chiave assente; invalid_token — non valida o revocata
  • rate_limit_exceeded — frequenza superata (retry_after in secondi)
  • daily_quota_exceeded / monthly_quota_exceeded — limite del piano raggiunto
  • internal — errore del servizio

Formato: { error, code, retry_after }. Piano gratuito: ~30 req/min e 1.000/giorno. Con strict=1 la copertura richiede il civico esatto, altrimenti il campo notice spiega il livello di precisione.

Note rapide
  • Le chiavi vivono sul server: mai esporle in JavaScript lato browser.
  • Attribuzione obbligatoria CC BY 4.0 (BroadbandMap di Agcom + ANNCSU).
  • Le chiavi si gestiscono dal portale (revoca, consumi).
  • Chiavi in browser? Usa un proxy (vedi il plugin WordPress).

Non hai ancora una chiave?

Gratuita e permanente: entri con la tua email e la chiave è pronta.

Crea la tua chiave gratuita