Documentation de la version 1.3

Modifications importantes à l’interface API – Nouvelle version 1.3 remplaçant la version 1.2

Nous avons publié une nouvelle version de notre interface de programmation d’applications (API) avec données ouvertes. Avec la publication de cette nouvelle version, nous vous demandons de ne plus utiliser la version 1.2 de l’API pour vos nouveaux projets. Toutefois, vous pourrez utiliser la version 1.2 pour les projets en cours jusqu’à une date ultérieure de cette année. Même si nous vous aviserons de la dépréciation de la version 1.2, nous invitons tous les développeurs à passer à la nouvelle version 1.3 dès que possible. Renseignements complémentaires :

Pour commencer

Pour accéder au flux de données en temps réel d'arrivée du prochain autobus d'OC Transpo, vous aurez besoin d'une clé API. Inscrivez-vous et recevez une clé API immédiatement en utilisant le formulaire d'inscription API.

  • Suivez ce lien pour vous inscrireé: https://octranspo-new.3scale.net/signup
  • Une fois que vous aurez fourni vos nom et coordonnées, nous vous enverrons un courriel contenant un lien pour activer votre compte. Suivez les instructions pour activer votre compte, inscrivez-vous et générez une nouvelle ID d'application en cliquant sur la section des applications du Tableau de bord.
  • Aux fins de sécurité, on vous demandera votre ID d'application et votre clé API chaque fois que vous faites une demande.

Description des méthodes

  1. « GetRouteSummaryForStop » : Récupére les circuits pour un numéro d'arrêt donné.
  2. « GetNextTripsForStop » : Récupére les trois prochains trajets sur le circuit pour un numéro d'arrêt donné.
  3. « GetNextTripsForStopAllRoutes » : fournit les trois prochains trajets du circuit voulu pour un arrêt en particulier.
  4. General Transit Feed Specification (GTFS) : permet d’extraire les dossiers voulus de chacune des sections du GTFS.

1) GetRouteSummaryForStop

Récupére les renseignements des circuits pour un arrêt en particulier.

URL: https://api.octranspo1.com/v1.3/GetRouteSummaryForStop

Paramètres :

appID
Obligatoire. Généré dans le portail pour les développeurs après la création d’un compte.
apiKey
Obligatoire. Généré dans le portail pour les développeurs après la création d’un compte.
stopNo
Obligatoire. Numéro à quatre chiffres figurant sur un arrêt d’autobus. Vous pouvez télécharger ici la liste complète des arrêts : http://data.ottawa.ca/fr/dataset/oc-transpo-schedules
format
Optionnel. Format des données renvoyées (JSON OU XML). Format par défaut : XML.

Utilisation :

curl -d "appID={appID}&apiKey={apiKey}&stopNo=7659" https://api.octranspo1.com/v1.3/GetRouteSummaryForStop

HTTP POST

Ce qui suit est un exemple de demande et de réponse en protocole HTTP. Les paramétres fictifs indiqués doivent être remplacés par les vraies données.


POST /v1.3/GetRouteSummaryForStop HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
Content-Length: length


stopNo=string
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
 xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
	<soap:Body>
		<GetRouteSummaryForStopResponse xmlns="http://octranspo.com">
			<GetRouteSummaryForStopResult>
				<StopNo xmlns="http://tempuri.org/">string</StopNo>
				<StopDescription 
				 xmlns="http://tempuri.org/">string</StopDescription>
				<Error xmlns="http://tempuri.org/">string</Error>
				<Routes xmlns="http://tempuri.org/">
					<Route>
						<RouteNo>string</RouteNo>
						<DirectionID>int</DirectionID>
						<Direction>string</Direction>
						<RouteHeading>string</RouteHeading>
					</Route>
					<Route>
						<RouteNo>string</RouteNo>
						<DirectionID>int</DirectionID>
						<Direction>string</Direction>
						<RouteHeading>string</RouteHeading>
					</Route>
				</Routes>
			</GetRouteSummaryForStopResult>
		</GetRouteSummaryForStopResponse>
	</soap:Body>
</soap:Envelope>

Codes d'autobus

Voici les lettres et les chiffres qui servent à différencier les types d'autobus : 4, 6, 40, 60, DD, E, EA, A, L, B, DEH

4 ou 40 = autobus de 40 pieds
6 ou 60 = autobus de 60 pieds
4 et 6 = trajets effectués par des autobus de 40 ou de 60 pieds
DD = autobus à deux étages
E, L, A, EA = autobus à plancher surbaiss?
B = support pour vélos
DEH = autobus hybrides alimentés au diesel
IN = INVIRO (type d'autobus)
ON = ORION (type d'autobus)

Temps depuis l'ajustement

Le temps depuis l'ajustement indique le temps (en minutes écoulées et en minutes divisées par l'écart) depuis que les données GPS disponibles pour l'autobus ont été utilisées pour d'terminer l'heure d'arrivée prévue ajustée. Plus le nombre est haut, moins l'heure d'arrivée prévue ajustée est fiable.

Si le nombre indiqué au temps depuis l'ajustement est négatif, cela signifie que l'heure d'arrivée prévue ajustée affiche le véritable temps d'arrivée prévu.

Codes d'erreur possibles pour : <Error>string</Error>

Error	Note
1	Invalid API key
2	Unable to query data source
10	Invalid stop number

Description en format XML

<!--Réponse de la méthode Web « Obtenir le sommaire du circuit pour un arrêt en particulier »-->
<RoutesForStopData>
	<!--Erreurs, s’il y en a, pour la demande soumise.-->
	<Error>string</Error>
	<RouteSummaryData>
	<!--Numéro de circuit-->
	<RouteNo>string</RouteNo>
	<Directions>
	  <!--Première direction-->
	  <DirectionData>
		<!--Identifiant de direction, p. ex. 0 = en direction est, 1 = en direction ouest-->
		<DirectionId>int</DirectionId>
		<!--En-tête du circuit et de la direction-->
		<RouteHeading>string</RouteHeading>
		<!--Description de la direction, p. ex. vers le centre-ville / vers l’extérieur de la ville-->
		<DirDescription>string</DirDescription>
	  </DirectionData>
	  <!--Deuxième direction-->
	  <DirectionData>
		<!--Identifiant de direction, p. ex. 0 = en direction est, 1 = en direction ouest-->
		<DirectionId>int</DirectionId>
		<!--En-tête du circuit et de la direction-->
		<RouteHeading>string</RouteHeading>
		<!--Description de la direction, p. ex. vers le centre-ville / vers l’extérieur de la ville-->
		<DirDescription>string</DirDescription>
	  </DirectionData>
	</Directions>
	</RouteSummaryData>
</RoutesForStopData>

Données-échantillons pour l'arrêt 3037.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<soap:Body>
		<GetRouteSummaryForStopResponse xmlns="http://octranspo.com">
			<GetRouteSummaryForStopResult>
			<StopNo xmlns="http://tempuri.org/">3017</StopNo>
			<StopDescription xmlns="http://tempuri.org/">GREENBORO STATION</StopDescription>
			<Error xmlns="http://tempuri.org/" />
			<Routes xmlns="http://tempuri.org/">
				<Route>
					<RouteNo>2</RouteNo>
					<DirectionId>0</DirectionId>
					<Direction>Northbound</Direction>
					<RouteHeading>Bayview</RouteHeading>
				</Route>
				<Route>
					<RouteNo>2</RouteNo>
					<DirectionId>1</DirectionId>
					<Direction>Southbound</Direction>
					<RouteHeading>Greenboro</RouteHeading>
				</Route>
				<Route>
					<RouteNo>R2</RouteNo>
					<DirectionId>0</DirectionId>
					<Direction>Northbound</Direction>
					<RouteHeading>Bayview</RouteHeading>
				</Route>
				<Route>
					<RouteNo>R2</RouteNo>
					<DirectionId>1</DirectionId>
					<Direction>Southbound</Direction>
					<RouteHeading>Greenboro</RouteHeading>
				</Route>
				<Route>
					<RouteNo>6</RouteNo>
					<DirectionId>0</DirectionId>
					<Direction>Southbound</Direction>
					<RouteHeading>Greenboro</RouteHeading>
				</Route>
				<Route>
					<RouteNo>6</RouteNo>
					<DirectionId>1</DirectionId>
					<Direction>Northbound</Direction>
					<RouteHeading>Rockcliffe</RouteHeading>
				</Route>
				<Route>
					<RouteNo>40</RouteNo>
					<DirectionId>0</DirectionId>
					<Direction>Northbound</Direction>
					<RouteHeading>St-Laurent</RouteHeading>
				</Route>
				<Route>
					<RouteNo>40</RouteNo>
					<DirectionId>1</DirectionId>
					<Direction>Southbound</Direction>
					<RouteHeading>Greenboro</RouteHeading>
				</Route>
				<Route>
					<RouteNo>87</RouteNo>
					<DirectionId>0</DirectionId>
					<Direction>Southbound</Direction>
					<RouteHeading>Greenboro</RouteHeading>
				</Route>
				<Route>
					<RouteNo>87</RouteNo>
					<DirectionId>1</DirectionId>
					<Direction>Northbound</Direction>
					<RouteHeading>Baseline</RouteHeading>
				</Route>
				<Route>
					<RouteNo>92</RouteNo>
					<DirectionId>0</DirectionId>
					<Direction>Southbound</Direction>
					<RouteHeading>Greenboro</RouteHeading>
				</Route>
				<Route>
					<RouteNo>92</RouteNo>
					<DirectionId>1</DirectionId>
					<Direction>Northbound</Direction>
					<RouteHeading>Hurdman</RouteHeading>
				</Route>
			</Routes>
			</GetRouteSummaryForStopResult>
		</GetRouteSummaryForStopResponse>
	</soap:Body>
</soap:Envelope>

2) GetNextTripsForStop

Récupére les renseignements des trois prochains trajets d'un circuit pour un arrêt en particulier.

URL: https://api.octranspo1.com/v1.3/GetNextTripsForStop

Paramètres :

appID
Obligatoire. Généré dans le portail pour les développeurs après la création d’un compte.
apiKey
Obligatoire. Généré dans le portail pour les développeurs après la création d’un compte.
stopNo
Obligatoire. Numéro à quatre chiffres figurant sur un arrêt d’autobus. Vous pouvez télécharger ici la liste complète des arrêts : http://data.ottawa.ca/fr/dataset/oc-transpo-schedules
routeNo
Obligatoire. Numéro du circuit de l'autobus.
format
Optionnel. Format des données renvoyées (JSON OU XML). Format par défaut : XML.

Utilisation :

curl -d "appID={appID}&apiKey={apiKey}&routeNo=1&stopNo=7659" https://api.octranspo1.com/v1.3/GetNextTripsForStop
Requéte en format XML

HTTP POST

Ce qui suit est un exemple de demande et de réponse en protocole HTTP. Les paramétres fictifs indiqu?s doivent être remplacés par les vraies données.


HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
 xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
	<soap:Body>
		<GetRouteSummaryForStopResponse xmlns="http://octranspo.com">
			<GetRouteSummaryForStopResult>
				<StopNo xmlns="http://tempuri.org/">string</StopNo>
				<StopDescription 
				 xmlns="http://tempuri.org/">string</StopDescription>
				<Error xmlns="http://tempuri.org/">string</Error>
				<Routes xmlns="http://tempuri.org/">
					<Route>
						<RouteNo>string</RouteNo>
						<DirectionID>int</DirectionID>
						<Direction>string</Direction>
						<RouteHeading>string</RouteHeading>
					</Route>
					<Route>
						<RouteNo>string</RouteNo>
						<DirectionID>int</DirectionID>
						<Direction>string</Direction>
						<RouteHeading>string</RouteHeading>
					</Route>
				</Routes>
			</GetRouteSummaryForStopResult>
		</GetRouteSummaryForStopResponse>
	</soap:Body>
</soap:Envelope>

Codes d'erreur possibles pour : <Error>:

Error	Note
2	Unable to query data source

Description en format XML

<!--Récupérer les trois prochains trajets d’un circuit en particulier, dans une certaine direction, qui passent par l’arrêt. Ce qui suit est un exemple de demande et de réponse. Les paramètres fictifs indiqués doivent être remplacés par les vraies données.-->

<!--Réponse-->
<StopInfo>
	<!--Numéro d’arrêt à 4 chiffres-->
	<StopNo>int</StopNo>
	<!--Description de l’arrêt-->
	<StopLabel>string</StopLabel>
	<!--Erreurs, s’il y en a, en produisant les données de l’arrêt, c.-à-d. numéro d’arrêt non valide-->
	<Error>string</Error>
	<Routes>
		<Route>
			<!--Numéro de circuit-->
			<routeNo>string</routeNo>
			<!--Description du circuit-->
			<RouteLabel>string</RouteLabel>
			<!--Direction du trajet, c.-à-d. en direction nord / en direction sud-->
			<Direction>string</Direction>
			<!--Erreurs, s’il y en a, en produisant les données du circuit, c.-à-d. le circuit ne dessert pas l’arrêt donné-->
			<Error>string</Error>
			<!--Heure du traitement de la demande. On doit suivre le format « AAAAMMJJHHMISS » où HH = système de 24 heures-->
			<RequestProcessingTime>string</RequestProcessingTime> 
			<Trips>
				<!--Premier trajet-->
				<Trip>
					<!--Dernier arrêt du trajet --> 
					<TripDestination>string</TripDestination> 
					<!--Heure de début du trajet. Format HH:MI, où HH = système de 24 heures-->
					<TripStartTime>string</TripStartTime>		
					<!--Horaire ajusté en minutes-->
				<AdjustedScheduleTime>string</AdjustedScheduleTime> 
					<!--Heure depuis que l’horaire a été ajusté en minutes et en fractions de minutes.-->
					<AdjustmentAge>string</AdjustmentAge>
					<!--Dernier trajet qui dessert l’arrêt pour ce circuit dans cette direction-->
					<LastTripOfSchedule>boolean</LastTripOfSchedule> 
					<!--Type d’autobus : à plancher surbaissé, avec support à vélo, etc.-->
					<BusType>string</BusType> 	
<!--Vitesse de l’autobus en km/h-->
					<GPSSpeed>int</GPSSpeed>
					<!--Latitude selon les dernières données GPS de l’autobus-->
					<Latitude></Latitude>
<!--Longitude selon les dernières données GPS de l’autobus-->
					<Longitude></Longitude>
				</Trip>
				<!--Deuxième trajet-->
				<Trip>
					<!--Dernier arrêt du trajet --> 
					<TripDestination>string</TripDestination> 
					<!--Heure de début du trajet-->
					<TripStartTime>string</TripStartTime>		
					<!--Horaire ajusté en minutes-->
				<AdjustedScheduleTime>string</AdjustedScheduleTime> 
					<!--Heure depuis que l’horaire a été ajusté en minutes et en fractions de minutes-->
					<AdjustmentAge>string</AdjustmentAge>
					<!--Dernier trajet qui dessert l’arrêt pour ce circuit dans cette direction-->
					<LastTripOfSchedule>boolean</LastTripOfSchedule> 
					<!--Type d’autobus : à plancher surbaissé, avec support à vélo, etc.-->
					<BusType>string</BusType> 	
 					<!--Vitesse de l’autobus en km/h-->
					<GPSSpeed>int</GPSSpeed>
					<!--Latitude selon les dernières données GPS de l’autobus-->
					<Latitude></Latitude>
<!--Longitude selon les dernières données GPS de l’autobus-->
					<Longitude></Longitude>
				</Trip>
<!--Troisième trajet-->
				<Trip>
					<!--Dernier arrêt du trajet --> 
					<TripDestination>string</TripDestination> 
					<!--Heure de début du trajet-->
					<TripStartTime>string</TripStartTime>		
					<!--Horaire ajusté en minutes-->
				<AdjustedScheduleTime>string</AdjustedScheduleTime> 
					<!--Heure depuis que l’horaire a été ajusté en minutes et en fractions de minutes.-->
					<AdjustmentAge>string</AdjustmentAge>
					<!--Dernier trajet qui dessert l’arrêt pour ce circuit dans cette direction-->
					<LastTripOfSchedule>boolean</LastTripOfSchedule> 
					<!--Type d’autobus : à plancher surbaissé, avec support à vélo, etc.-->
					<BusType>string</BusType> 	
 					<!--Vitesse de l’autobus en km/h-->
					< GPSSpeed >int</ GPSSpeed >
					<!--Latitude selon les dernières données GPS de l’autobus-->
					<Latitude></Latitude>
<!--Longitude selon les dernières données GPS de l’autobus-->
					<Longitude></Longitude>
				</Trip>

			</Trips>
		</Route>
	</Routes>
</StopInfo>

Exemple de données pour l’arrêt 3037 du circuit 97.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetNextTripsForStopResponse xmlns="http://octranspo.com">
<GetNextTripsForStopResult>
	<StopNo xmlns="http://tempuri.org/">3017</StopNo>
	<StopLabel xmlns="http://tempuri.org/">GREENBORO STATION</StopLabel>
	<Error xmlns="http://tempuri.org/" />
	<Route xmlns="http://tempuri.org/">
		<RouteDirection>
			<RouteNo>97</RouteNo>
			<RouteLabel>Airport / Aéroport</RouteLabel>
			<Direction>Eastbound</Direction>
			<Error />
			<RequestProcessingTime>20190128143405</RequestProcessingTime>
			<Trips>
				<Trip>
					<TripDestination>Airport / Aéroport</TripDestination>
					<TripStartTime>13:59</TripStartTime>
					<AdjustedScheduleTime>2</AdjustedScheduleTime>
					<AdjustmentAge>0.55</AdjustmentAge>
					<LastTripOfSchedule>false</LastTripOfSchedule>
					<BusType>4LA - DD</BusType>
					<Latitude>45.369028</Latitude>
					<Longitude>-75.667496</Longitude>
					<GPSSpeed>22.4</GPSSpeed>
				</Trip>
				<Trip>
					<TripDestination>South Keys</TripDestination>
					<TripStartTime>13:47</TripStartTime>
					<AdjustedScheduleTime>9</AdjustedScheduleTime>
					<AdjustmentAge>0.71</AdjustmentAge>
					<LastTripOfSchedule>false</LastTripOfSchedule>
					<BusType>6EB - 60</BusType>
					<Latitude>45.406349</Latitude>
					<Longitude>-75.664368</Longitude>
					<Speed>29.1</Speed>
				</Trip>
				<Trip>
					<TripDestination>Airport / Aéroport</TripDestination>
					<TripStartTime>14:14</TripStartTime>
					<AdjustedScheduleTime>20</AdjustedScheduleTime>
					<AdjustmentAge>0.40</AdjustmentAge>
					<LastTripOfSchedule>false</LastTripOfSchedule>
					<BusType>6LB - 60</BusType>
					<Latitude>45.424393</Latitude>
					<Longitude>-75.686963</Longitude>
					<GPSSpeed>28.0</GPSSpeed>
				</Trip>
			</Trips>
		</RouteDirection>
		<RouteDirection>
			<RouteNo>97</RouteNo>
			<RouteLabel>Bells Corners</RouteLabel>
			<Direction>Westbound</Direction>
			<Error />
			<RequestProcessingTime>20190128143405</RequestProcessingTime>
			<Trips>
				<Trip>
					<TripDestination>Bayshore</TripDestination>
					<TripStartTime>14:31</TripStartTime>
					<AdjustedScheduleTime>4</AdjustedScheduleTime>
					<AdjustmentAge>0.48</AdjustmentAge>
					<LastTripOfSchedule>false</LastTripOfSchedule>
					<BusType>6EB - 60</BusType>
					<Latitude>45.332706</Latitude>
					<Longitude>-75.651175</Longitude>
					<GPSSpeed>80.8</GPSSpeed>
				</Trip>
				<Trip>
					<TripDestination>Bells Corners</TripDestination>
					<TripStartTime>14:44</TripStartTime>
					<AdjustedScheduleTime>12</AdjustedScheduleTime>
					<AdjustmentAge>0.50</AdjustmentAge>
					<LastTripOfSchedule>false</LastTripOfSchedule>
					<BusType>6EB - 60</BusType>
					<Latitude>45.349821</Latitude>
					<Longitude>-75.652247</Longitude>
					<Speed>0.5</Speed>
				</Trip>
				<Trip>
					<TripDestination>Bayshore</TripDestination>
					<TripStartTime>14:50</TripStartTime>
					<AdjustedScheduleTime>23</AdjustedScheduleTime>
					<AdjustmentAge>-1</AdjustmentAge>
					<LastTripOfSchedule>false</LastTripOfSchedule>
					<BusType>4LA - DD</BusType>
					<Latitude></Latitude>
					<Longitude></Longitude>
					<GPSSpeed></GPSSpeed>
				</Trip>
			</Trips>
		</RouteDirection>
	</Route>
</GetNextTripsForStopResult>
</GetNextTripsForStopResponse>
</soap:Body>
</soap:Envelope>

3) « GetNextTripsForStopAllRoutes »

Fournit les trois prochains trajets du circuit voulu pour un arrêt en particulier.

URL : https://api.octranspo1.com/v1.3/GetNextTripsForStopAllRoutes

Paramètres :

appID
Obligatoire. Généré dans le portail pour les développeurs après la création d’un compte.
apiKey
Obligatoire. Généré dans le portail pour les développeurs après la création d’un compte.
stopNo
Obligatoire. Numéro à quatre chiffres figurant sur un arrêt d’autobus. Vous pouvez télécharger ici la liste complète des arrêts : http://data.ottawa.ca/fr/dataset/oc-transpo-schedules
format
Optionnel. Format des données renvoyées (JSON OU XML). Format par défaut : XML.

Utilisation

curl -d "appID={appID}&apiKey={apiKey}&stopNo=7659&format=json" https://api.octranspo1.com/v1.3/GetNextTripsForStopAllRoutes

Description en format XML

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
 xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <GetRouteSummaryForStopResponse xmlns="http://octranspo.com">
            <GetRouteSummaryForStopResult>
                <StopNo xmlns="http://tempuri.org/">string</StopNo>
                <StopDescription 
                 xmlns="http://tempuri.org/">string</StopDescription>
                <Error xmlns="http://tempuri.org/">string</Error>
                <Routes xmlns="http://tempuri.org/">
                    <Route>
                        <RouteNo>string</RouteNo>
                        <DirectionID>int</DirectionID>
                        <Direction>string</Direction>
                        <RouteHeading>string</RouteHeading>
                        <Trips>
                            <!--Premier trajet-->
                            <Trip>
                                <!--Dernier arrêt du trajet--> 
                                <TripDestination>string</TripDestination> 
                                <!--Heure de début du trajet. Format HH:MI, où HH = système de 24 heures-->
                                <TripStartTime>string</TripStartTime>        
                                <!--Horaire ajusté en minutes-->
                                <AdjustedScheduleTime>string</AdjustedScheduleTime> 
                                <!--THeure depuis que l’horaire a été ajusté en minutes et en fractions de minutes.-->
                                <AdjustmentAge>string</AdjustmentAge>
                                <!--Dernier trajet qui dessert l’arrêt pour ce circuit dans cette direction-->
                                <LastTripOfSchedule>boolean</LastTripOfSchedule> 
                                <!--Type d’autobus : à plancher surbaissé, avec support à vélo, etc.-->
                                <BusType>string</BusType>     
                                <!--Vitesse de l’autobus en km/h-->
                                <GPSSpeed>int</GPSSpeed>
                                <!--Latitude selon les dernières données GPS de l’autobus-->
                                <Latitude></Latitude>
                                <!--Longitude selon les dernières données GPS de l’autobus-->
                                <Longitude></Longitude>
                            </Trip>
                            <!--Deuxième trajet-->
                            <Trip>
                                <!--Dernier arrêt du trajet--> 
                                <TripDestination>string</TripDestination> 
                                <!--Heure de début du trajet-->
                                <TripStartTime>string</TripStartTime>        
                                <!--Horaire ajusté en minutes-->
                                <AdjustedScheduleTime>string</AdjustedScheduleTime> 
                                <!--Heure depuis que l’horaire a été ajusté en minutes et en fractions de minutes.-->
                                <AdjustmentAge>string</AdjustmentAge>
                                <!--Dernier trajet qui dessert l’arrêt pour ce circuit dans cette direction-->
                                <LastTripOfSchedule>boolean</LastTripOfSchedule> 
                                <!--Type d’autobus : à plancher surbaissé, avec support à vélo, etc.-->
                                <BusType>string</BusType>     
                                 <!--Vitesse de l’autobus en km/h-->
                                <SPEED>int</SPEED>
                                <!--Latitude selon les dernières données GPS de l’autobus-->
                                <Latitude></Latitude>
                                <!--Longitude selon les dernières données GPS de l’autobus-->
                                <Longitude></Longitude>
                            </Trip>
                        </Trips>
                    </Route>
                    <Route>
                        <RouteNo>string</RouteNo>
                        <DirectionID>int</DirectionID>
                        <Direction>string</Direction>
                        <RouteHeading>string</RouteHeading>
                        <Trips>
                            <!--Premier trajet-->
                            <Trip>
                                <!--Dernier arrêt du trajet--> 
                                <TripDestination>string</TripDestination> 
                                <!--Heure de début du trajet. Format HH:MI, où HH = système de 24 heures-->
                                <TripStartTime>string</TripStartTime>        
                                <!--Horaire ajusté en minutes-->
                                <AdjustedScheduleTime>string</AdjustedScheduleTime> 
                                <!--Heure depuis que l’horaire a été ajusté en minutes et en fractions de minutes.-->
                                <AdjustmentAge>string</AdjustmentAge>
                                <!--Dernier trajet qui dessert l’arrêt pour ce circuit dans cette direction-->
                                <LastTripOfSchedule>boolean</LastTripOfSchedule> 
                                <!--Type d’autobus : à plancher surbaissé, avec support à vélo, etc.-->
                                <BusType>string</BusType>     
                                <!--Vitesse de l’autobus en km/h-->
                                <GPSSpeed>int</GPSSpeed>
                                <!--Latitude selon les dernières données GPS de l’autobus-->
                                <Latitude></Latitude>
                                <!--Longitude selon les dernières données GPS de l’autobus-->
                                <Longitude></Longitude>
                            </Trip>
                            <!--Deuxième trajet-->
                            <Trip>
                                <!--Dernier arrêt du trajet--> 
                                <TripDestination>string</TripDestination> 
                                <!--Heure de début du trajet-->
                                <TripStartTime>string</TripStartTime>        
                                <!--Horaire ajusté en minutes-->
                                <AdjustedScheduleTime>string</AdjustedScheduleTime> 
                                <!--Heure depuis que l’horaire a été ajusté en minutes et en fractions de minutes.-->
                                <AdjustmentAge>string</AdjustmentAge>
                                <!--Dernier trajet qui dessert l’arrêt pour ce circuit dans cette direction-->
                                <LastTripOfSchedule>boolean</LastTripOfSchedule> 
                                <!--Type d’autobus : à plancher surbaissé, avec support à vélo, etc.-->
                                <BusType>string</BusType>     
                                 <!--Vitesse de l’autobus en km/h-->
                                <Speed>int</Speed>
                                <!--Latitude selon les dernières données GPS de l’autobus-->
                                <Latitude></Latitude>
                                <!--Longitude selon les dernières données GPS de l’autobus-->
                                <Longitude></Longitude>
                            </Trip>
                        </Trips>

                    </Route>
                </Routes>
            </GetRouteSummaryForStopResult>
        </GetRouteSummaryForStopResponse>
    </soap:Body>
</soap:Envelope>

JSON – Exemple de réponse

{
    "GetRouteSummaryForStopResult": {
        "StopNo": "7659",
        "StopDescription": "BANK / FIFTH",
        "Error": "",
        "Routes": {
            "Route": [
                {
                    "RouteNo": "6",
                    "DirectionID": 1,
                    "Direction": "Northbound",
                    "RouteHeading": "Rockcliffe",
                    "Trips": [
                        {
                            "TripDestination": "Rockcliffe",
                            "TripStartTime": "13:37",
                            "AdjustedScheduleTime": "2",
                            "AdjustmentAge": "0.27",
                            "LastTripOfSchedule": false,
                            "BusType": "6EB - 60",
                            "Latitude": "45.396047",
                            "Longitude": "-75.684445",
                            "GPSSpeed": "38.9"
                        },
                        {
                            "TripDestination": "Rockcliffe",
                            "TripStartTime": "13:52",
                            "AdjustedScheduleTime": "14",
                            "AdjustmentAge": "0.32",
                            "LastTripOfSchedule": false,
                            "BusType": "6EB - 60",
                            "Latitude": "45.378260",
                            "Longitude": "-75.667399",
                            "GPSSpeed": "0.5"
                        },
                        {
                            "TripDestination": "Rockcliffe",
                            "TripStartTime": "14:07",
                            "AdjustedScheduleTime": "24",
                            "AdjustmentAge": "0.65",
                            "LastTripOfSchedule": false,
                            "BusType": "6EB - 60",
                            "Latitude": "45.351760",
                            "Longitude": "-75.654081",
                            "GPSSpeed": "53.4"
                        }
                    ]
                },
                {
                    "RouteNo": "7",
                    "DirectionID": 1,
                    "Direction": "Eastbound",
                    "RouteHeading": "St-Laurent",
                    "Trips": [
                        {
                            "TripDestination": "St-Laurent",
                            "TripStartTime": "14:03",
                            "AdjustedScheduleTime": "5",
                            "AdjustmentAge": "0.45",
                            "LastTripOfSchedule": false,
                            "BusType": "4E - DEH",
                            "Latitude": "45.391233",
                            "Longitude": "-75.690734",
                            "GPSSpeed": "35.7"
                        },
                        {
                            "TripDestination": "St-Laurent",
                            "TripStartTime": "14:18",
                            "AdjustedScheduleTime": "17",
                            "AdjustmentAge": "-1",
                            "LastTripOfSchedule": false,
                            "BusType": "4LA - DEH",
                            "Latitude": "",
                            "Longitude": "",
                            "GPSSpeed": ""
                        },
                        {
                            "TripDestination": "Brittany",
                            "TripStartTime": "14:30",
                            "AdjustedScheduleTime": "22",
                            "AdjustmentAge": "-1",
                            "LastTripOfSchedule": false,
                            "BusType": "4L - DEH",
                            "Latitude": "",
                            "Longitude": "",
                            "GPSSpeed": ""
                        }
                    ]
                }
            ]
        }
    }
}

4) General Transit Feed Specification (GTFS)

Permet d’extraire les dossiers voulus de chacune de sections du GTFS.

URL : https://api.octranspo1.com/v1.3/Gtfs

Paramètres :

appID
Obligatoire. Généré dans le portail pour les développeurs après la création d’un compte.
apiKey
Obligatoire. Généré dans le portail pour les développeurs après la création d’un compte.
table
Obligatoire. Tableau dans lequel se fera la recherche. (Voir la liste des tableaux ci-dessous.)
id
Optionnel. Rangée donnée d’un tableau selon la valeur de « id ».
column
Optionnel. Colonne spécifique d’un tableau. Si vous précisez la colonne, vous devrez également remplir le champ « value ». (Voir la liste des colonnes ci-dessous.)
value
Optionnel*. Valeur spécifique dans une colonne. *Vous devez remplir ce champ si vous avez précisé la colonne.
order_by
Optionnel. Précisez la colonne dont vous souhaitez trier les données.
direction
Optionnel. Précisez l’ordre de classement des dossiers (ascendant ou descendant). Ordre par défaut : ascendant.
limit
Optionnel. Indiquez le nombre maximal de dossiers renvoyés.
format
Optionnel. Format des données renvoyées (JSON OU XML). Format par défaut : XML.

Utilisation

curl -d "appID={appID}&apiKey={apiKey}&table=stops&column=stop_id&value=AA010&order_by=stop_code&direction=desc&limit=10&format=json" https://api.octranspo1.com/v1.3/Gtfs

Recherche dans GTFS : Tableaux et colonnes

Table Colonnes JSON
agency
  • id
  • agency_name
  • agency_url
  • agency_timezone
  • agency_lang
{
    "Query": {
        "table": "agency",
        "direction": "ASC",
        "column": "id",
        "value": "1",
        "format": "json"
    },
    "Gtfs": [
        {
            "id": "1",
            "agency_name": "OC Transpo-a",
            "agency_url": "http:\/\/www.octranspo.com",
            "agency_timezone": "America\/Montreal",
            "agency_lang": "en"
        }
    ]
}
calendar
  • id
  • service_id
  • monday
  • tuesday
  • wednesday
  • thursday
  • friday
  • saturday
  • sunday
  • start_date
  • end_date
{
    "Query": {
        "table": "calendar",
        "direction": "ASC",
        "column": "id",
        "value": "1",
        "format": "json"
    },
    "Gtfs": [
        {
            "id": "1",
            "service_id": "JUN26-JUNDA13-Weekday-01",
            "monday": "1",
            "tuesday": "1",
            "wednesday": "1",
            "thursday": "1",
            "friday": "1",
            "saturday": "0",
            "sunday": "0",
            "start_date": "20130626",
            "end_date": "20130627"
        }
    ]
}
calendar_dates
  • id
  • service_id
  • date
  • exception_type
{
    "Query": {
        "table": "calendar_dates",
        "direction": "ASC",
        "column": "id",
        "value": "1",
        "format": "json"
    },
    "Gtfs": [
        {
            "id": "1",
            "service_id": "JUN13-JUNDA13-Weekday-99",
            "date": "20130701",
            "exception_type": "2"
        }
    ]
}
routes
  • id
  • route_id
  • route_short_name
  • route_long_name
  • route_desc
  • route_type
{
    "Query": {
        "table": "routes",
        "direction": "ASC",
        "column": "id",
        "value": "1",
        "format": "json"
    },
    "Gtfs": [
        {
            "id": "1",
            "route_id": "1-146",
            "route_short_name": "1",
            "route_long_name": "",
            "route_desc": "",
            "route_type": "3"
        }
    ]
}
stops
  • id
  • stop_id
  • stop_code
  • stop_name
  • stop_desc
  • stop_lat
  • stop_lon
  • stop_street
  • stop_city
  • stop_region
  • stop_postcode
  • stop_country
  • zone_id
{
    "Query": {
        "table": "stops",
        "direction": "ASC",
        "column": "stop_id",
        "value": "AA010",
        "format": "json"
    },
    "Gtfs": [
        {
            "id": "1",
            "stop_id": "AA010",
            "stop_code": "8767",
            "stop_name": "SUSSEX \/ CHUTE RIDEAU FALLS",
            "stop_desc": "",
            "stop_lat": "45.4399",
            "stop_lon": "-75.6958",
            "stop_street": "",
            "stop_city": "",
            "stop_region": "",
            "stop_postcode": "",
            "stop_country": "",
            "zone_id": ""
        }
    ]
}
REMARQUE : pour le tableau des arrêts, il faut indiquer le stop_id ou stop_code ou des valeurs d’identification.
stop_times
  • id
  • trip_id
  • arrival_time
  • departure_time
  • stop_id
  • stop_sequence
  • pickup_type
{
    "Query": {
        "table": "stop_times",
        "direction": "ASC",
        "column": "stop_id",
        "value": "AA010",
        "format": "json"
    },
    "Gtfs": [
        {
            "id": "133436",
            "trip_id": "27212870-CADA13-CADA13-Sunday-71",
            "arrival_time": "08:29:00",
            "departure_time": "08:29:00",
            "stop_id": "AA010",
            "stop_sequence": "20",
            "pickup_type": "0",
            "drop_off_type": "0"
        }
    ]
}
REMARQUE : pour le tableau stop_times, il faut indiquer le trip_id ou stop_id ou des valeurs d’identification.
trips
  • id
  • route_id
  • service_id
  • trip_id
  • trip_headsign
  • block_id
{
    "Query": {
        "table": "trips",
        "direction": "ASC",
        "column": "route_id",
        "value": "135-147",
        "format": "json"
    },
    "Gtfs": [
        {
            "id": "1",
            "route_id": "135-147",
            "service_id": "CADA13-CADA13-Sunday-71",
            "trip_id": "27210104-CADA13-CADA13-Sunday-71",
            "trip_headsign": "Esprit",
            "block_id": "3406628"
        }
    ]
}
REMARQUE : pour le tableau des trajets, il faut indiquer le route_id ou des valeurs d’identification.

Description en format XML

<?xml version="1.0"?>
<Gtfs>
  <result id="[Identifiant du dossier]">
    <[Nom de la colonne]>[Valeur]</[Nom de la colonne]>
    <[Nom de la colonne avec valeur « Null »] />
  </result>
</Gtfs>

Envoyer cette page

PRESTO