Documentazione API FS - roughconsensusandrunningcode/TrainMonitor GitHub Wiki
Documentazione API FS
le api qua documentate si riferiscono all'ENDPOINT http://www.viaggiatreno.it/infomobilita/resteasy/viaggiatreno
link alle sezioni:
-
Cerca Stazione
-
GET/autocompletaStazione/{string:nomeStazione}
Interroga l'EP dati almeno 3 caratteri riguardanti un nome di una stazione
oppure
GET
/autocompletaStazioneNTS/{string:nomeStazione}
ES
http://www.viaggiatreno.it/infomobilita/resteasy/viaggiatreno/autocompletaStazione/RHO
Risposta
Formato proprietario:
{NOME_STAZIONE}|{ID_STAZIONE} RHO|S01037 RHO FIERA MILANO|S01039
-
GET/cercaStazione/{string:nomeStazione}
In alternativa questa ricerca mostra informazioni più complete in json relative ad una stazione
ES
http://www.viaggiatreno.it/infomobilita/resteasy/viaggiatreno/cercaStazione/RHO
Risposta
Formato JSON:
[ { "nomeLungo": "RHO", "nomeBreve": "Rho", "label": null, "id": "S01037" }, { "nomeLungo": "RHO FIERA MILANO", "nomeBreve": "Rho Fiera", "label": null, "id": "S01039" } ]
-
GET/elencoStazioni/{int:idRegione}
O ancora, elenco stazioni per regione
ES
http://www.viaggiatreno.it/infomobilita/resteasy/viaggiatreno/elencoStazioni/1 (1 = piemonte)
Risposta
Formato JSON:
[ { "codReg": 1, "tipoStazione": 3, "dettZoomStaz": [], "pstaz": [], "mappaCitta": { "urlImagePinpoint": "", "urlImageBaloon": "" }, "codiceStazione": "S01427", "codStazione": "S01427", "lat": 46.16198, "lon": 9.651374, "latMappaCitta": 0.0, "lonMappaCitta": 0.0, "localita": { "nomeLungo": "ARDENNO MASINO", "nomeBreve": "Ardenno Masino", "label": "", "id": "S01427" }, "esterno": false, "offsetX": 0, "offsetY": 0, "nomeCitta": "A" }, ... ]
-
-
Dettagli stazioni
-
GET/regione/{string:idStazione}
Dato il codice di stazione trova la regione di appartenenza
Risposta
Formato INT: il numero della regione
-
GET/dettaglioStazione/{string:idStazione}/{int:idRegione}
Dettagli per una stazione
Risposta
Formato JSON: alcuni dati sulla stazione
-
GET/partenze/{string:idStazione}/{string:dateTime}
Ottiene i dati sul tabellone delle partenze di una stazione
NB: il campo
dateTime
accetta solo il seguente formato con i nomi dei giorni e mesi in inglese (formato datetime JavaScript)abbreviazione_nome_giorno abb_nome_mese dd yyyy hh:mm:ss GMT+0100 (...)
, quindi una data accettata sarebbeWed Jan 07 2015 18:58:25 GMT+0100 (ora solare Europa occidentale)
il formato data sopra citato si può ottenere nel linguaggio JavaScript e nel linguaggio PHP come sotto mostrato.
JS
let now = (new Date()).toString(); //Sun May 26 2024 16:31:33 GMT+0200 (Ora legale dell’Europa centrale)
PHP (la parte "appesa" alla stringa generata da date è invariabile tolto il caso di passaggio da orario legale ad orario solare)
$now = date('D M d Y H:i:s ') . " GMT+0200 (Ora legale dell’Europa centrale)"; //Sun May 26 2024 16:31:33 GMT+0200 (Ora legale dell’Europa centrale)
ES
Risposta
Formato JSON: molti dei campi utili sono null costringendo chi usa questo EP a dover fare ulteriori richieste ad altri ep: esempio lampante ne è il codice stazione arrivo null mentre compare solo il nome e viceversa per quanto riguarda la partenza
[ { "numeroTreno": 2105, "categoria": "REG", "categoriaDescrizione": "REG", "origine": null, "codOrigine": "S00219", "destinazione": "GENOVA BRIGNOLE", "codDestinazione": null, "origineEstera": null, "destinazioneEstera": null, "oraPartenzaEstera": null, "oraArrivoEstera": null, "tratta": 0, "regione": 0, "origineZero": null, "destinazioneZero": null, "orarioPartenzaZero": null, "orarioArrivoZero": null, "circolante": false, "codiceCliente": 2, "binarioEffettivoArrivoCodice": null, "binarioEffettivoArrivoDescrizione": null, "binarioEffettivoArrivoTipo": null, "binarioProgrammatoArrivoCodice": null, "binarioProgrammatoArrivoDescrizione": null, "binarioEffettivoPartenzaCodice": "159", "binarioEffettivoPartenzaDescrizione": "4", "binarioEffettivoPartenzaTipo": "0", "binarioProgrammatoPartenzaCodice": null, "binarioProgrammatoPartenzaDescrizione": null, "subTitle": null, "esisteCorsaZero": null, "orientamento": null, "inStazione": false, "haCambiNumero": false, "nonPartito": true, "provvedimento": 0, "riprogrammazione": "N", "orarioPartenza": 1716733800000, "orarioArrivo": null, "stazionePartenza": null, "stazioneArrivo": null, "statoTreno": null, "corrispondenze": null, "servizi": null, "ritardo": 0, "tipoProdotto": "0", "compOrarioPartenzaZeroEffettivo": "16:30", "compOrarioArrivoZeroEffettivo": null, "compOrarioPartenzaZero": "16:30", "compOrarioArrivoZero": null, "compOrarioArrivo": null, "compOrarioPartenza": "16:30", "compNumeroTreno": "REG 2105", "compOrientamento": [ "--", "--", "--", "--", "--", "--", "--", "--", "--" ], "compTipologiaTreno": "regionale", "compClassRitardoTxt": null, "compClassRitardoLine": null, "compImgRitardo2": "/vt_static/img/legenda/icone_legenda/nonpartito.png", "compImgRitardo": "/vt_static/img/legenda/icone_legenda/nonpartito.png", "compRitardo": [ "non partito", "not departed", "keine Partei", "pas encore partit", "no salió", "nu a plecat", "未発車", "未出发", "не отправленный" ], "compRitardoAndamento": [ "non partito", "not departed", "keine Partei", "pas encore partit", "no salió", "nu a plecat", "未発車", "未出发", "не отправленный" ], "compInStazionePartenza": [ "", "", "", "", "", "", "", "", "" ], "compInStazioneArrivo": [ "", "", "", "", "", "", "", "", "" ], "compOrarioEffettivoArrivo": null, "compDurata": "", "compImgCambiNumerazione": " ", "materiale_label": null, "dataPartenzaTreno": 1716674400000 }... ]
-
GET/arrivi/{string:idStazione}/{string:dateTime}
stesso discorso delle partenze
ES
Risposta
Formato JSON
[ { "numeroTreno": 2132, "categoria": "REG", "categoriaDescrizione": "REG", "origine": "GENOVA P.PRINCIPE", "codOrigine": "S04700", "destinazione": null, "codDestinazione": null, "origineEstera": null, "destinazioneEstera": null, "oraPartenzaEstera": null, "oraArrivoEstera": null, "tratta": 0, "regione": 0, "origineZero": null, "destinazioneZero": null, "orarioPartenzaZero": null, "orarioArrivoZero": null, "circolante": true, "codiceCliente": 2, "binarioEffettivoArrivoCodice": "162", "binarioEffettivoArrivoDescrizione": "7", "binarioEffettivoArrivoTipo": "0", "binarioProgrammatoArrivoCodice": null, "binarioProgrammatoArrivoDescrizione": "8", "binarioEffettivoPartenzaCodice": null, "binarioEffettivoPartenzaDescrizione": null, "binarioEffettivoPartenzaTipo": null, "binarioProgrammatoPartenzaCodice": null, "binarioProgrammatoPartenzaDescrizione": null, "subTitle": null, "esisteCorsaZero": null, "orientamento": null, "inStazione": true, "haCambiNumero": false, "nonPartito": false, "provvedimento": 0, "riprogrammazione": "N", "orarioPartenza": null, "orarioArrivo": 1716733800000, "stazionePartenza": null, "stazioneArrivo": null, "statoTreno": null, "corrispondenze": null, "servizi": null, "ritardo": 0, "tipoProdotto": "0", "compOrarioPartenzaZeroEffettivo": null, "compOrarioArrivoZeroEffettivo": null, "compOrarioPartenzaZero": null, "compOrarioArrivoZero": null, "compOrarioArrivo": "16:30", "compOrarioPartenza": null, "compNumeroTreno": "REG 2132", "compOrientamento": [ "--", "--", "--", "--", "--", "--", "--", "--", "--" ], "compTipologiaTreno": "regionale", "compClassRitardoTxt": "", "compClassRitardoLine": "regolare_line", "compImgRitardo2": "", "compImgRitardo": "/vt_static/img/legenda/icone_legenda/regolare.png", "compRitardo": [ "in orario", "on time", "pünktlich", "à l'heure", "en horario", "conform orarului", "定刻", "按时", "по расписанию" ], "compRitardoAndamento": [ "in orario", "on time", "pünktlich", "à l'heure", "en horario", "conform orarului", "定刻", "按时", "по расписанию" ], "compInStazionePartenza": [ "Partito", "Departed", "angefährt", "Partit", "Salido", "Plecat", "発車済", "已出发", "отправленный" ], "compInStazioneArrivo": [ "Arrivato", "Arrived", "angekommen", "Arrivé", "Llegado", "Sosit", "到着済", "已到达", "прибывший" ], "compOrarioEffettivoArrivo": "/vt_static/img/legenda/icone_legenda/regolare.png16:30", "compDurata": "", "compImgCambiNumerazione": " ", "materiale_label": null, "dataPartenzaTreno": 1716674400000 }... ]
-
-
Dettagli viaggio treno
-
GET/andamentoTreno/{string:idStazione}/{int:numeroTreno}/{int:UNIXTimestampMillisec}
Andamento treno: ottiene tutti i dati relativi ad un treno, è necessario fornire il codice della stazione da cui parte perchè i codici treno non sono univoci ma un treno è identificato dal suo codice e dalla stazione da cui parte
ES
Risposta
Formato JSON:
{ "tipoTreno": "PG", "orientamento": null, "codiceCliente": 4, "fermateSoppresse": null, "dataPartenza": null, "fermate": [ { "orientamento": null, "kcNumTreno": null, "stazione": "LECCE", "id": "S11145", "listaCorrispondenze": null, "programmata": 1716747900000, "programmataZero": null, "effettiva": null, "ritardo": 0, "partenzaTeoricaZero": null, "arrivoTeoricoZero": null, "partenza_teorica": 1716747900000, "arrivo_teorico": null, "isNextChanged": false, "partenzaReale": null, "arrivoReale": null, "ritardoPartenza": 0, "ritardoArrivo": 0, "progressivo": 1, "binarioEffettivoArrivoCodice": null, "binarioEffettivoArrivoTipo": null, "binarioEffettivoArrivoDescrizione": null, "binarioProgrammatoArrivoCodice": null, "binarioProgrammatoArrivoDescrizione": null, "binarioEffettivoPartenzaCodice": null, "binarioEffettivoPartenzaTipo": null, "binarioEffettivoPartenzaDescrizione": null, "binarioProgrammatoPartenzaCodice": null, "binarioProgrammatoPartenzaDescrizione": "3", "tipoFermata": "P", "visualizzaPrevista": true, "nextChanged": false, "nextTrattaType": 2, "actualFermataType": 0, "materiale_label": null }, { "orientamento": null, "kcNumTreno": null, "stazione": "BRINDISI", "id": "S11136", "listaCorrispondenze": null, "programmata": 1716749460000, "programmataZero": null, "effettiva": null, "ritardo": 0, "partenzaTeoricaZero": null, "arrivoTeoricoZero": null, "partenza_teorica": 1716749580000, "arrivo_teorico": 1716749460000, "isNextChanged": false, "partenzaReale": null, "arrivoReale": null, "ritardoPartenza": 0, "ritardoArrivo": 0, "progressivo": 6, "binarioEffettivoArrivoCodice": null, "binarioEffettivoArrivoTipo": null, "binarioEffettivoArrivoDescrizione": null, "binarioProgrammatoArrivoCodice": null, "binarioProgrammatoArrivoDescrizione": "3", "binarioEffettivoPartenzaCodice": null, "binarioEffettivoPartenzaTipo": null, "binarioEffettivoPartenzaDescrizione": null, "binarioProgrammatoPartenzaCodice": null, "binarioProgrammatoPartenzaDescrizione": "3", "tipoFermata": "F", "visualizzaPrevista": true, "nextChanged": false, "nextTrattaType": 2, "actualFermataType": 0, "materiale_label": null }, ... { "orientamento": null, "kcNumTreno": null, "stazione": "TORINO P.NUOVA", "id": "S00219", "listaCorrispondenze": null, "programmata": 1716794700000, "programmataZero": null, "effettiva": null, "ritardo": 0, "partenzaTeoricaZero": null, "arrivoTeoricoZero": null, "partenza_teorica": null, "arrivo_teorico": 1716794700000, "isNextChanged": false, "partenzaReale": null, "arrivoReale": null, "ritardoPartenza": 0, "ritardoArrivo": 0, "progressivo": 171, "binarioEffettivoArrivoCodice": null, "binarioEffettivoArrivoTipo": null, "binarioEffettivoArrivoDescrizione": null, "binarioProgrammatoArrivoCodice": null, "binarioProgrammatoArrivoDescrizione": "7", "binarioEffettivoPartenzaCodice": null, "binarioEffettivoPartenzaTipo": null, "binarioEffettivoPartenzaDescrizione": null, "binarioProgrammatoPartenzaCodice": null, "binarioProgrammatoPartenzaDescrizione": null, "tipoFermata": "A", "visualizzaPrevista": true, "nextChanged": false, "nextTrattaType": 2, "actualFermataType": 0, "materiale_label": null } ], "anormalita": null, "provvedimenti": null, "segnalazioni": null, "oraUltimoRilevamento": null, "stazioneUltimoRilevamento": "--", "idDestinazione": "S00219", "idOrigine": "S11145", "cambiNumero": [], "hasProvvedimenti": false, "descOrientamento": [ "--", "--", "--", "--", "--", "--", "--", "--", "--" ], "compOraUltimoRilevamento": "--", "motivoRitardoPrevalente": null, "descrizioneVCO": "", "materiale_label": null, "numeroTreno": 754, "categoria": "ICN", "categoriaDescrizione": null, "origine": "LECCE", "codOrigine": null, "destinazione": "TORINO P.NUOVA", "codDestinazione": null, "origineEstera": null, "destinazioneEstera": null, "oraPartenzaEstera": null, "oraArrivoEstera": null, "tratta": 0, "regione": 0, "origineZero": "LECCE", "destinazioneZero": "TORINO P.NUOVA", "orarioPartenzaZero": 1716747900000, "orarioArrivoZero": 1716794700000, "circolante": true, "binarioEffettivoArrivoCodice": null, "binarioEffettivoArrivoDescrizione": null, "binarioEffettivoArrivoTipo": null, "binarioProgrammatoArrivoCodice": null, "binarioProgrammatoArrivoDescrizione": null, "binarioEffettivoPartenzaCodice": null, "binarioEffettivoPartenzaDescrizione": null, "binarioEffettivoPartenzaTipo": null, "binarioProgrammatoPartenzaCodice": null, "binarioProgrammatoPartenzaDescrizione": null, "subTitle": "", "esisteCorsaZero": "0", "inStazione": false, "haCambiNumero": false, "nonPartito": true, "provvedimento": 0, "riprogrammazione": null, "orarioPartenza": 1716747900000, "orarioArrivo": 1716794700000, "stazionePartenza": null, "stazioneArrivo": null, "statoTreno": null, "corrispondenze": null, "servizi": [], "ritardo": 0, "tipoProdotto": "0", "compOrarioPartenzaZeroEffettivo": "20:25", "compOrarioArrivoZeroEffettivo": "09:25", "compOrarioPartenzaZero": "20:25", "compOrarioArrivoZero": "09:25", "compOrarioArrivo": "09:25", "compOrarioPartenza": "20:25", "compNumeroTreno": "ICN 754", "compOrientamento": [ "--", "--", "--", "--", "--", "--", "--", "--", "--" ], "compTipologiaTreno": "nazionale", "compClassRitardoTxt": null, "compClassRitardoLine": null, "compImgRitardo2": "/vt_static/img/legenda/icone_legenda/nonpartito.png", "compImgRitardo": "/vt_static/img/legenda/icone_legenda/nonpartito.png", "compRitardo": [ "non partito", "not departed", "keine Partei", "pas encore partit", "no salió", "nu a plecat", "未発車", "未出发", "не отправленный" ], "compRitardoAndamento": [ "non partito", "not departed", "keine Partei", "pas encore partit", "no salió", "nu a plecat", "未発車", "未出发", "не отправленный" ], "compInStazionePartenza": [ "", "", "", "", "", "", "", "", "" ], "compInStazioneArrivo": [ "", "", "", "", "", "", "", "", "" ], "compOrarioEffettivoArrivo": null, "compDurata": "13:0", "compImgCambiNumerazione": " ", "dataPartenzaTreno": 1716674400000 }
-
Descrizione campi
-
idOrigine
eidDestinazione
: codici delle stazioni di partenza e destinazione -
origine
edestinazione
: nomi delle stazioni di partenza e destinazione -
orarioPartenza
eorarioArrivo
: orari programmati di partenza da origine e arrivo a destinazione in timestamp -
compOrarioArrivo
ecompOrarioPartenza
: orari programmati di partenza da origine e arrivo a destinazione in formato HH:MM -
compRitardo
ecompRitardoAndamento
: descrizione testuale del ritardo in varie lingue -
oraUltimoRilevamento
estazioneUltimoRilevamento
: orario in timestamp e nome della stazione dell'ultimo rilevamento, valgono rispettivamente null e "--" se il treno non è ancora partito oppure è stato soppresso -
origineEstera
,destinazioneEstera
,oraPartenzaEstera
,oraArrivoEstera
: valorizzati solo per treni internazionali -
tipoTreno
eprovvedimento
codificano lo stato del treno:-
tipoTreno
vale 'PG' eprovvedimento
vale 0: treno regolare -
tipoTreno
vale 'ST' eprovvedimento
vale 1: treno soppresso (in questo caso l'array fermate ha lunghezza 0) -
tipoTreno
vale 'PP' oppure 'SI' oppure 'SF' eprovvedimento
vale 0 oppure 2: treno parzialmente soppresso (in questo caso uno o più elementi dell'array fermate hanno il campo actualFermataType uguale a 3) -
tipoTreno
vale 'DV' eprovvedimento
vale 3: treno deviato (da approfondire)
-
-
subTitle
se il treno è parzialmente soppresso (tipoTreno
in ('PP', 'SI', 'SF')) contiene una descrizione della tratta cancellata (ad esempio: Treno cancellato da NOVI LIGURE a ALESSANDRIA. Parte da ALESSANDRIA) -
fermate
:array
, un elemento per ogni fermata, con i seguenti campi principali:-
id
estazione
: codice e nome della stazione -
tipoFermata
: 'P' (stazione di origine), 'A' (stazione di destinazione), 'F' (fermata intermedia) -
ritardoArrivo
eritardoPartenza
: ritardo in minuti di arrivo e partenza alla stazione, in minuti interi -
ritardo
: ritardo in partenza (se tipoFermata=='P') e di arrivo altrimenti, in minuti interi -
arrivoReale
epartenzaReale
: orari effettivi di arrivo e partenza nella stazione, in timestamp -
partenza_teorica
earrivo_teorico
: orari teorici di partenza e arrivo nella stazione, in timestamp - sono presenti dal 12 marzo 2015 -
programmata
: orario programmato di partenza (se tipoFermata=='P') e di arrivo altrimenti, in timestamp -
programmataZero
: di solito vale null, è valorizzato in caso di orario riprogrammato -
actualFermataType
:-
1 fermata regolare
-
2 fermata non prevista
-
3 fermata soppressa (se
tipoTreno
in ('PP', 'SI', 'SF')) -
0 Dato non disponibile (
arrivoReale
e/opartenzaReale
valgono null, può essere perché il treno è ancora in viaggio e deve ancora arrivare nella fermata oppure perché il dato non è stato rilevato)
-
-
partenzaTeoricaZero
earrivoTeoricoZero
: da approfondire
-
-
-
-
GET/TratteCanvas/{string:idStazione}/{int:numeroTreno}/{int:UNIXTimestampMillisec}
Dati Fermate: ottiene solo i dati sulle fermate che il treno fa, uguali alla chiamata precedente
-
-
Calcoli percorso
-
GET/cercaNumeroTrenoTrenoAutocomplete/{int:idTreno}
Trova la stazione di partenza in base al codice del treno
ES
http://www.viaggiatreno.it/infomobilita/resteasy/viaggiatreno/cercaNumeroTrenoTrenoAutocomplete/754
Risposta
Formato proprietario: risponde con più righe da cui selezionare quella di interesse
{NUMERO_TRENO} - {STAZIONE_PARTENZA} - {DATA_PARTENZA}|{NUMERO_TRENO}-{ID_STAZIONE_PARTENZA}-{TIMESTAMP_MILLIS_PARTENZA} 754 - LECCE - 25/05/24|754-S11145-1716588000000 754 - LECCE - 26/05/24|754-S11145-1716674400000
-
GET/soluzioniViaggioNew/{int:idStazionePartenza}/{int:idStazioneArrivo}/{string:dateTime}
Ricerca delle soluzioni di viaggio tra due stazioni DISMESSO dal 01/01/2024, sostituito con quello presente su lefrecce.it
NB:
- il campo
idStazione
come avete notato è in formato int, cosa alquanto strana visto che di solito sono del tipoS00123
, ma in questo caso il carattere iniziale va tolto (S) come anche tutte le cifre nulle (0) prima della prima cifra non nulla (!= 0)S00123
->123
- il campo
dateTime
accetta solo il seguente formato (formato datetime JAVA)yyyy-mm-ddThh:mm:ss
, quindi una data accettata sarebbe2024-05-24T13:05:01
- il campo
ES
Risposta
Formato JSON:
{ "soluzioni": [ { "durata": "00:54", "vehicles": [ { "origine": "Torino P. Susa", "destinazione": "Bra", "orarioPartenza": "2024-05-07T15:35:00", "orarioArrivo": "2024-05-07T16:29:00", "categoria": "195", "categoriaDescrizione": "SFM", "numeroTreno": "26460" } ] }, { "durata": "00:54", "vehicles": [ { "origine": "Torino P. Susa", "destinazione": "Bra", "orarioPartenza": "2024-05-07T16:35:00", "orarioArrivo": "2024-05-07T17:29:00", "categoria": "195", "categoriaDescrizione": "SFM", "numeroTreno": "26466" } ] }, { "durata": "01:20", "vehicles": [ { "origine": "Torino P. Susa", "destinazione": "Cavallermaggiore", "orarioPartenza": "2024-05-07T17:05:00", "orarioArrivo": "2024-05-07T17:45:00", "categoria": "195", "categoriaDescrizione": "SFM", "numeroTreno": "26774" }, { "origine": "Cavallermaggiore", "destinazione": "Bra", "orarioPartenza": "2024-05-07T18:09:00", "orarioArrivo": "2024-05-07T18:25:00", "categoria": "193", "categoriaDescrizione": "Autobus", "numeroTreno": "TO350" } ] }... ] }
-