Documentazione API

API JSON autenticata con chiave. Base URL: https://apiterzosettore.it/v1

01 · Accesso e chiave

L'API richiede una chiave personale, gratuita per usi non commerciali, di ricerca e giornalistici. Per ottenerla compila il modulo di richiesta indicando nome, organizzazione e caso d'uso.

Tratta la chiave come una password: non pubblicarla in repository o codice client-side.


02 · Autenticazione

Passa la chiave nell'header X-API-Key a ogni richiesta.

curl https://apiterzosettore.it/v1/5x1000 \
  -H "X-API-Key: LA_TUA_CHIAVE"

Le richieste senza chiave valida ricevono 401 Unauthorized.


03 · Endpoint

Tutti gli endpoint accettano richieste GET e restituiscono JSON.

MetodoEndpointDescrizione
GET/entiDataset unificato: un ente = anagrafica + 5x1000 + bilanci + digitale + territorio + fondi
GET/enti/{cf}Profilo completo di un ente, con serie storica 5x1000
GET/5x1000Erogazioni e scelte del 5x1000 (ultimo anno)
GET/5x1000/{cf}Serie storica 5x1000 di un ente (2006→oggi)
GET/runtsAnagrafica degli enti iscritti al RUNTS
GET/finanziamenti-partitiErogazioni ai partiti: donatore, partito, importo, anno (2019-2026)
GET/statsStatistiche di copertura del dataset (senza chiave)

04 · Parametri

Parametri comuni, passati in query string.

ParametroTipoDescrizione
annointFiltra per anno di riferimento
regionestringFiltra per regione
comunestringFiltra per comune
qstringRicerca testuale sulla denominazione
importo_minfloatImporto minimo
pageintNumero di pagina (default 1)
per_pageintElementi per pagina (default 50, max 500)
formatstringjson (default) o csv

Esempio con più filtri:

curl -G https://apiterzosettore.it/v1/5x1000 \
  -H "X-API-Key: LA_TUA_CHIAVE" \
  -d "anno=2023" \
  -d "regione=Lombardia" \
  -d "importo_min=10000" \
  -d "per_page=100"

05 · Formato risposta

Le risposte JSON hanno una struttura uniforme con metadati di paginazione.

{
  "count": 4821,
  "page": 1,
  "per_page": 50,
  "total_pages": 97,
  "results": [
    {
      "cf": "97XXXXXXXXX",
      "denominazione": "Associazione Esempio APS",
      "importo": 128450.12,
      "scelte": 3120,
      "anno": 2023,
      "regione": "Lombardia",
      "comune": "Milano"
    }
  ]
}

06 · Errori

L'API usa i codici di stato HTTP standard e un corpo JSON con dettaglio.

CodiceSignificato
200OK
400Parametro non valido
401Chiave mancante o non valida
404Risorsa non trovata
429Troppe richieste (rate limit)
500Errore del server
{
  "error": {
    "status": 401,
    "message": "Chiave API mancante o non valida."
  }
}

07 · Limiti e licenza

Rate limit: le richieste sono limitate per chiave. Al superamento della soglia l'API risponde con 429 e l'header Retry-After.

Licenza: i dati sono rilasciati con licenza CC-BY 4.0, salvo diversa indicazione della fonte. Cita sempre la fonte originale e API Terzo Settore.