vai al contenuto della pagina

API open data · v1

Open data

Memorie della Resistenza censite in Italia, percorsi, fotografie e trascrizioni delle epigrafi. JSON, sola lettura, nessuna autenticazione.

curl 'https://memo.anpi.it/api/opendata/v1/monument/?limit=1'
{
  "count": 6226,
  "next": "https://memo.anpi.it/api/opendata/v1/monument/?limit=1&offset=1",
  "previous": null,
  "results": [
    {
      "id": 1,
      "title": "Monumento de La Speranza",
      "longitude": 11.965897314155585,
      "latitude": 43.5506308687373,
      "type": "monumento",
      "municipality": "Arezzo",
      "municipality_id": 8105,
      "text_list": ["soffermati e onora o viandante\r\nla memoria dei patriotti"],
      "picture_list": [
        {
          "author": "Giovanni Baldini",
          "year": 2007,
          "url": "/media/fotografie/monumenti/875_monumento-de-la-speranza_1.jpg",
          "license": "Creative Commons - Attribuzione 4.0"
        }
      ],
      "memo_url": "/monumenti/1/monumento-de-la-speranza/"
    }
  ]
}
Campi omessi per brevità: l'elenco completo è più sotto. Gli a capo delle trascrizioni sono quelli dell'incisione, uno per uno.
/api/opendata/v1/monument/ le memorie — una scheda sola a /api/opendata/v1/monument/<id>/ /api/opendata/v1/pathway/ i percorsi — una scheda sola a /api/opendata/v1/pathway/<id>/ /opendata/memo_memorie.json l'archivio intero delle memorie in un solo file, rigenerato ogni notte — anche in .geojson e .csv; i percorsi a /opendata/memo_percorsi.json; di ogni file esiste la variante compressa aggiungendo .gz /opendata/catalog.ttl il catalogo DCAT-AP_IT: i metadati di questi dataset in Turtle, per i cataloghi di dati aperti che li raccolgono /api/schema/ lo schema OpenAPI, generato dal codice che serve i dati: YAML, o JSON con ?format=json /api/docs/ lo stesso schema da sfogliare: ogni rotta coi suoi parametri, gli esempi di risposta e un pulsante per provarla

Richieste

Gli elenchi arrivano dentro un involucro: le schede stanno in results, count è il totale del pubblicato e non della pagina, next e previous sono null agli estremi. Seguire next finché non è null scarica tutto. La scheda singola invece arriva da sola, senza involucro.

Parametri della query string
parametro di serie effetto
limit 10 Quante schede per pagina, fino a 50. Oltre il tetto non è un errore: ?limit=500 risponde 200 con 50 schede.
offset 0 Da quale scheda partire.
lat, lon Gradi decimali WGS84. Riordinano l'elenco dal più vicino al punto e riempiono distance_m. Vanno passati insieme. Sui percorsi la distanza è misurata dal tracciato, non dal punto di partenza.
/api/opendata/v1/monument/?lat=45.07&lon=7.68&limit=20
Le venti memorie più vicine a piazza Castello, a Torino.

Il limite di frequenza è di una richiesta al secondo per indirizzo IP, e vale per entrambe le rotte.

Errori

Codice HTTP appropriato e corpo JSON con la sola chiave detail.

Risposte diverse da 200
codice causa corpo
400 lat senza lon o viceversa; oppure valori fuori scala (lat da -90 a 90, lon da -180 a 180). {"detail": "lat e lon vanno passati insieme."}
404 Identificativo inesistente, o scheda non pubblica. {"detail": "No Monument matches the given query."}
429 Superata la richiesta al secondo. La risposta porta Retry-After con i secondi da aspettare. {"detail": "La richiesta è stata limitata (throttled)…"}

Licenze

I dati hanno doppia licenza, a scelta di chi li usa: CC BY 4.0 oppure ODbL 1.0.

Le fotografie no: ognuna porta la licenza scelta da chi l'ha scattata, nel campo license, e va rispettata una per una. Fra queste c'è Tutti i diritti riservati, che significa nessun riuso fuori da MEMO senza il consenso esplicito ricevuto da chi ha scattato la foto.

Se costruite qualcosa con questi dati ci fa piacere saperlo, scrivetecelo: memo@anpi.it

I campi di una memoria

/api/opendata/v1/monument/
chiave tipo descrizione esempio
id int Identificativo univoco. 73
title string Il nome della memoria. Monumento ai fratelli Rosselli
year int | null Alias di inauguration_year, se avvalorato. 2007
inauguration_year int | null L'anno di inaugurazione, se conosciuto. 2007
longitude float | null Longitudine, EPSG:4326 (WGS84). Nulla nelle rarissime memorie di cui non si conosce la posizione. 12.572634
latitude float | null Latitudine, EPSG:4326 (WGS84). Vale quanto detto per la longitudine. 41.870144
distance_m int | null Distanza in metri dal punto chiesto con lat e lon; null se la richiesta non li indica. 227
monument_author string Chi ha realizzato l'opera, se indicato. Giò Pomodoro
elevation int | null Altezza sul livello del mare, se conosciuta. 562
municipality string Nome del comune, vuoto se non disponibile. Anghiari
municipality_id int | null Identificativo univoco del comune, se in Italia. 8105
province string Nome della provincia (o istituzione di pari livello), vuoto se non disponibile. Torino
province_id int | null Identificativo univoco della provincia, se in Italia. 45
region string Nome della regione, vuoto se non disponibile. Veneto
region_id int | null Identificativo univoco della regione, se in Italia. 7
nation string Nome dello stato, vuoto se non disponibile. Italia
nation_id int | null Identificativo univoco dello stato. 110
type string Tipologia della memoria, in formato slug: lapide, cippo, monumento, sacrario, cimitero, croce, murale, albero, area, complesso, pietra_inciampo, incisioni_rupestri. Le parole sono unite dal trattino basso. lapide
memo_url string Indirizzo della scheda su MEMO, relativo alla radice del sito. /monumenti/2/cippo-a-brocherel/
text_list list(string) Le trascrizioni di ciò che è inciso, ciascuna come stringa con gli a capo indicati da \r\n. Lista vuota se non ce ne sono, e nessun metadato per ogni trascrizione. ["AI CADUTI\r\nPER LA LIBERTÀ"]
is_still_existing bool Se questa memoria esiste ancora. true
is_in_place bool Se questa memoria è nel luogo dove sono accaduti i fatti che ricorda. true
is_complex bool Se questa memoria è un complesso monumentale. false
in_complex int | null Se questa memoria è parte di un complesso monumentale, l'identificativo del complesso. 42
picture_list list(obj) Le fotografie, ognuna con i campi descritti più sotto. Lista vuota se non ce ne sono.
author string Cognome e nome di chi ha censito la memoria. Mario Rossi

I campi di una fotografia

Sono gli oggetti dentro picture_list, uguali per le memorie e per i percorsi.

picture_list[]
chiave tipo descrizione esempio
author string Cognome e nome di chi ha scattato la foto. Vuoto se ha chiesto di restare anonimo. Mario Rossi
year int | null Anno dello scatto, se conosciuto. 2022
url string Indirizzo dell'immagine, relativo alla radice del sito. /media/fotografie/monumenti/000_monumento.jpg
license string La licenza della fotografia, per esteso e in italiano — cosa diversa dalla licenza dei dati. Oggi si sceglie fra Creative Commons - Attribuzione 4.0, Pubblico dominio e Tutti i diritti riservati; su materiale più vecchio si incontrano altre licenze Creative Commons che allora si potevano scegliere. Creative Commons - Attribuzione 4.0

I campi di un percorso

Gli itinerari della memoria, con la stessa licenza, la stessa struttura di risposta, la stessa paginazione e lo stesso limite di una richiesta al secondo. Vale anche qui ?lat= e ?lon=, ma la distanza in distance_m è misurata dal tracciato, cioè dal punto in cui il percorso passa più vicino a voi — non da dove comincia.

/api/opendata/v1/pathway/
chiave tipo descrizione esempio
id int Identificativo univoco, lo stesso che compare nell'indirizzo della pagina. 1
title string Nome del percorso. L'anello dei partigiani di Ca' Malanca
description string Descrizione del percorso. I luoghi che ospitarono la battaglia di Purocielo.
distance_m int | null Distanza in metri dal punto chiesto con lat e lon, misurata dal tracciato; null se la richiesta non li conteneva. 2462
length_m int | null Lunghezza del percorso, in metri. 9072
uphill_m int | null Dislivello complessivo in salita, in metri. 702
downhill_m int | null Dislivello complessivo in discesa, in metri. 702
min_elevation_m int | null Quota minima toccata, in metri sul livello del mare. 334
max_elevation_m int | null Quota massima toccata, in metri sul livello del mare. 1036
journey_time_min int | null Tempo di percorrenza stimato in minuti, con l'algoritmo dei Sentieri Svizzeri. Sono tempi di marcia: le soste sono escluse. 187
reversed_journey_time_min int | null Lo stesso tempo percorrendo l'itinerario nel verso opposto: dove si sale molto più di quanto si scende, i due numeri sono diversi. 151
difficulty string Difficoltà nella scala CAI: T, E, EE o EEA. Stringa vuota se non è stata indicata, ed è il caso di circa un percorso su sette. E
difficulty_label string La stessa difficoltà per esteso, da mostrare a chi legge. Vuota quando lo è difficulty. Escursionistico
travel_modes list(string) Come il percorso è pensato per essere percorso: hiking, cycling, mountain_biking, horse_riding, car, boat, wheelchair, pets. ["hiking"]
has_trail_signage bool | null Se sul terreno c'è segnaletica. null vuol dire che non lo sappiamo, ed è diverso da false. true
has_information_boards bool | null Se lungo il percorso ci sono cartelli informativi. Vale la stessa distinzione fra null e false. true
starting_point_name string Luogo di partenza, quando è stato censito. Chiesa di Santa Maria in Purocielo
ending_point_name string Luogo di arrivo, quando è stato censito. Ca' Malanca
stage_count int Numero di tappe. Zero vuol dire percorso di una tappa sola: chi è diviso in tappe ne ha almeno due. 0
municipality_list list(obj) I comuni attraversati, ciascuno con id e name. [{"id": 3801, "name": "Brisighella"}]
province_list list(obj) Le province attraversate: come i comuni, più abbreviation con la sigla. [{"id": 146, "name": "Ravenna", "abbreviation": "RA"}]
region_list list(obj) Le regioni attraversate, con id e name. [{"id": 8, "name": "Emilia-Romagna"}]
nation_list list(obj) Gli stati attraversati, con id e name. [{"id": 110, "name": "Italia"}]
year int | null Anno a cui risalgono le informazioni sul percorso. 2021
warnings string Avvertenze per chi lo percorre. Alcuni tratti sono esposti.
url string Sito ufficiale del percorso, se ne ha uno. https://www.camalanca.it/sentiero-dei-partigiani/
memo_url string Indirizzo della pagina su MEMO, relativo alla radice del sito. /percorsi/1/lanello-dei-partigiani-di-ca-malanca/
track_url obj Gli indirizzi da cui scaricare la traccia, con le chiavi gpx, kml e geojson. {"gpx": "/percorsi/gpx/1/…", …}
picture_list list(obj) Le fotografie, con gli stessi campi di quelle delle memorie. []