scnf-node
v0.0.2
Published
wrapper api for SNCF API
Downloads
2
Maintainers
Readme
SNCF Api Node.js Wrapper
Synopsis
This projects helps you to make HTTP requests to the SNCF API.
Installation
npm install sncf-node
var sncfclient = require('sncf-node');
// Public API
var client = new sncfclient();
SNCF API
The SNCF Api is the open API for building cool stuff with mobility data. It provides the following services
journeys computation line schedules next departures exploration of public transport data / search places and sexy things such as isochrones
sncf api datasets are accessible by developers through an HTTP REST API.
API Index
The API is available at https://api.sncf.com
Methods
- departures
- arrivals
- route_schedules
- traffic_reports
- lines
- places
- linesdetail
- journey
- vehicle_journeys
- disruptions
- disruptionstream
departures
Response
{
display_informations:
{ direction: 'Nantes (Nantes)',
code: '',
network: 'SNCF',
links: [],
color: '000000',
name: 'PAYS DE LOIRE',
physical_mode: 'Train grande vitesse',
headsign: '8879',
label: 'PAYS DE LOIRE',
equipments: [],
text_color: '',
commercial_mode: 'TGV',
description: '' },
stop_point:
{ commercial_modes: [Array],
name: 'Paris-Montparnasse 1-2',
links: [],
physical_modes: [Array],
coord: [Object],
label: 'Paris-Montparnasse 1-2 (Paris)',
equipments: [],
administrative_regions: [Array],
id: 'stop_point:OCE:SP:TGV-87391003',
stop_area: [Object] },
route:
{ direction: [Object],
name: 'Paris-Montparnasse 1-2 vers Nantes (TGV)',
links: [],
physical_modes: [Array],
is_frequence: 'False',
geojson: [Object],
direction_type: '',
line: [Object],
id: 'route:OCE:40-TGV-87391003-87481002'
}
}
Examples Request: /api/departures
param:
location: The id of location example Montparnasse -> OCE:SA:87391003
date :Date and time to go (iso-date-time) example:20180316T133748
client.departures(location,date,function (error, data) {
if(error) console.log("E!",error)
console.dir(data);
});
arrivals
Response
{
display_informations:
{ direction: 'Nantes (Nantes)',
code: '',
network: 'SNCF',
links: [],
color: '000000',
name: 'PAYS DE LOIRE',
physical_mode: 'Train grande vitesse',
headsign: '8879',
label: 'PAYS DE LOIRE',
equipments: [],
text_color: '',
commercial_mode: 'TGV',
description: '' },
stop_point:
{ commercial_modes: [Array],
name: 'Paris-Montparnasse 1-2',
links: [],
physical_modes: [Array],
coord: [Object],
label: 'Paris-Montparnasse 1-2 (Paris)',
equipments: [],
administrative_regions: [Array],
id: 'stop_point:OCE:SP:TGV-87391003',
stop_area: [Object] },
route:
{ direction: [Object],
name: 'Paris-Montparnasse 1-2 vers Nantes (TGV)',
links: [],
physical_modes: [Array],
is_frequence: 'False',
geojson: [Object],
direction_type: '',
line: [Object],
id: 'route:OCE:40-TGV-87391003-87481002'
}
}
Examples Request: /api/arrivals
param:
location: The id of location example Montparnasse -> OCE:SA:87391003
date :Date and time to go (iso-date-time) example:20180316T133748
client.arrivals(location,date,function (error, data) {
if(error) console.log("E!",error)
console.dir(data);
});
route_schedules
Response
[ { display_informations:
{ direction: 'Paris-Montparnasse 1-2 (Paris)',
code: '',
network: 'SNCF',
links: [],
color: '000000',
label: 'AQUITAINE',
commercial_mode: 'TGV',
text_color: '',
name: 'AQUITAINE' },
table: { headers: [Array], rows: [Array] },
additional_informations: null,
geojson: { type: 'MultiLineString', coordinates: [] },
links: [ [Object], [Object], [Object], [Object] ]
}
]
Examples
Request: /api/route_schedules
param:
location: The id of location example Montparnasse -> OCE:SA:87391003
date :Date and time to go (iso-date-time) example:20180316T133748
client.route_schedules(location,date,function (error, data) {
if(error) console.log("E!",error)
console.dir(data);
});
traffic_reports
Response
{ vehicle_journeys:
[
{ disruptions: [Array],
codes: [],
name: '852340',
id: 'vehicle_journey:OCE:SN852340F01002_dst_1'
}
]
}
Examples Request: /api/traffic_reports
param:
network: sncf
client.traffic_reports(from,to,lang,date,timesel,typeOfTransport,function (data) {
console.dir(data);
});
lines
Response
{ code: '',
network: { id: 'network:sncf', links: [], name: 'SNCF' },
links: [],
color: '000000',
routes:
[ [Object]
geojson: { type: 'MultiLineString', coordinates: [] },
text_color: '',
physical_modes: [ [Object] ],
codes: [],
closing_time: '200300',
opening_time: '055900',
commercial_mode: { id: 'commercial_mode:ter', name: 'TER' },
id: 'line:OCE:581',
name: '(Evx) / Lisieux / Caen / Cherbourg'
}
Examples
Request: /api/lines
client.lines(function (data) {
console.dir(data);
});
places
Response
{ embedded_type: 'administrative_region',
quality: 80,
administrative_region:
{ insee: '75056',
name: 'Paris',
level: 8,
coord: [Object],
label: 'Paris (75001-75116)',
id: 'admin:fr:75056',
zip_code: '75001;75116' },
name: 'Paris (75001-75116)',
id: 'admin:fr:75056'
}
Examples
Request: /api/places
params:
query:Information about places
client.places(query,function (data) {
console.dir(data);
});
linesdetail
Response
{
departures:
[ { display_informations: [Object],
stop_point: [Object],
route: [Object],
links: [Array],
stop_date_time: [Object]
}
]
}
Examples
Request: /api/linesdetail
params:
idline: The id of location example Montparnasse -> OCE:SA:87391003
type:route_schedules,stop_schedules,arrivals,,departures,places_nearby,calendars,traffic_report
client.linesdetail(idline,type,function (data) {
console.dir(data);
});
journeys
Response
[ { status: '',
distances: { car: 0, walking: 648, bike: 0, ridesharing: 0 },
links: [ [Object] ],
tags: [ 'walking', 'ecologic' ],
nb_transfers: 2,
durations: { car: 0, walking: 817, total: 4957, ridesharing: 0, bike: 0 },
arrival_date_time: '20180317T182433',
calendars: [ [Object] ],
departure_date_time: '20180317T170156',
requested_date_time: '20180317T164931',
fare: { found: false, total: [Object], links: [] },
co2_emission: { value: 275.1994, unit: 'gEC' },
type: 'best',
duration: 4957,
sections:
[ [Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object] ]
}
]
Examples
Request:
/api/journeys?from=2.3749036;48.8467927&to=2.2922926;48.8583736&datetime=20180317T164931
params:
from: The id of the departure of your journey. If none are provided an isochrone is computed
to:The id of the arrival of your journey. If none are provided an isochrone is computed
datetime:string (optional) Default: current date in Belgium Example: 300917 The date to query.
lang: string (optional) Avaible: en,fr,de,nl
client.journeys(from,to,datetime,function (data) {
console.dir(data);
});
vehicle_journeys
Response
[ { codes: [],
name: '852201',
journey_pattern: { id: 'journey_pattern:0', name: 'journey_pattern:0' },
disruptions: [ [Object] ],
calendars: [ [Object] ],
stop_times: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
validity_pattern:
{ beginning_date: '20180228',
days: '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111110111111011111101110' },
id: 'vehicle_journey:OCE:SN852201F01002_dst_1',
trip: { id: 'OCE:SN852201F01002', name: '852201' }
}
]
Examples
Request: /api/vehicle_journeys
params:
id: The id of vehicle Example: vehicle_journey:OCE:SN852213F01005_dst_1
client.vehicle_journeys(id,function (data) {
console.dir(data);
});
disruptions
Response
[ { status: 'past',
disruption_id: 'fdd1f5e6-2b0f-433a-9313-61b0da330b49',
severity:
{ color: '#000000',
priority: 42,
name: 'trip delayed',
effect: 'SIGNIFICANT_DELAYS' },
impact_id: 'fdd1f5e6-2b0f-433a-9313-61b0da330b49',
application_periods: [ [Object] ],
updated_at: '20180316T183716',
uri: 'fdd1f5e6-2b0f-433a-9313-61b0da330b49',
impacted_objects: [ [Object] ],
disruption_uri: 'fdd1f5e6-2b0f-433a-9313-61b0da330b49',
contributor: 'realtime.ire',
cause: '',
id: 'fdd1f5e6-2b0f-433a-9313-61b0da330b49'
}
]
Examples
Request: /api/disruptions
client.disruptions(function (data) {
console.dir(data);
});
disruptionstream
Response
[ { status: 'past',
disruption_id: 'fdd1f5e6-2b0f-433a-9313-61b0da330b49',
severity:
{ color: '#000000',
priority: 42,
name: 'trip delayed',
effect: 'SIGNIFICANT_DELAYS' },
impact_id: 'fdd1f5e6-2b0f-433a-9313-61b0da330b49',
application_periods: [ [Object] ],
updated_at: '20180316T183716',
uri: 'fdd1f5e6-2b0f-433a-9313-61b0da330b49',
impacted_objects: [ [Object] ],
disruption_uri: 'fdd1f5e6-2b0f-433a-9313-61b0da330b49',
contributor: 'realtime.ire',
cause: '',
id: 'fdd1f5e6-2b0f-433a-9313-61b0da330b49'
}
]
Examples
Request: /api/disruptionstream
params:
client.disruptionstream(function (data) {
console.dir(data);
});
API Reference
https://www.digital.sncf.com/startup/api
https://doc.navitia.io/
Contributors
Anis Haboubi
License
See LICENSE.txt for more info.