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 (la stessa usata dal Playground): openapi.json ↗ · llms.txt e llms-full.txt per agenti AI.

Quickstart

Prima chiamata in 3 linguaggi

Autenticazione ovunque: Authorization: Bearer LA_TUA_CHIAVE. Pacchetti: TypeScript su npm (npm install @netcov-io/client); Python in arrivo su PyPI — per ora chiamate REST dirette. La base URL pubblica è https://api.netcov.io.

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) in arrivo

SDK Python in arrivo su PyPI.

Per ora: chiamate REST dirette (vedi sopra) o pacchetto Node. Quando esce su PyPI lo annunciamo nel changelog.

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: pacchetto @netcov-io/client su npm ↗ e le guide Next.js, Django e WordPress.

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

netcov-sdk

in arrivoPython 3.10+

Risposta tipizzata e controllo crediti integrato.

Guida Django →

@netcov/mcp-server

in arrivoModel Context Protocol

Espone geocode, copertura, autocomplete e attribuzione agli agenti.

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, request_id, doc_url, 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