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>/ /api/schema/ lo schema OpenAPI, generato dal codice che serve i dati: YAML, o JSON con ?format=json

Richieste

Gli elenchi arrivano dentro una busta: 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 è nuda, senza busta.

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.

Se costruite qualcosa con questi dati 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 L'autore dell'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 busta 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, che per un anello di trenta chilometri direbbe tutt'altro.

La traccia non è dentro l'elenco: un percorso lungo sono decine di migliaia di punti, e spedirli dieci alla volta a chi sta cercando altro non ha senso. Ogni scheda porta invece in track_url i tre indirizzi da cui scaricarla nel formato che serve.

Le unità di misura stanno nel nome della chiave, perché un numero da solo non dice se sono metri o chilometri, minuti oppure ore. Le misure che si ricavano dalla traccia sono null finché non è stata calcolata.

/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 la regola d'esperienza del CAI. 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. []
author string Cognome e nome di chi ha inserito il percorso in MEMO. Mario Rossi