Passer directement au contenu

Documentation

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.

GetRouteSummaryForStop

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

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

Parameters:

  • 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.
  • 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://www.octranspo1.com/files/google_transit.zip

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

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


<!--Response to the web method GetRouteSummaryForStop-->
<RoutesForStopData>
	<!--Errors if any for the request made.-->
	<Error>string</Error>
	<RouteSummaryData>
	<!--Route number-->
	<RouteNo>string</RouteNo>
	<Directions>
	  <!--First direction-->
	  <DirectionData>
		<!--Direction identifier. e.g. 0 = Eastbound, 1 = WestBound-->
		<DirectionId>int</DirectionId>
		<!--The route & direction heading-->
		<RouteHeading>string</RouteHeading>
		<!--Direction description e.g. Inbound / Outbound-->
		<DirDescription>string</DirDescription>
	  </DirectionData>
	  <!--Second direction-->
	  <DirectionData>
		<!--Direction identifier. e.g. 0 = Eastbound, 1 = WestBound-->
		<DirectionId>int</DirectionId>
		<!--The route & direction heading-->
		<RouteHeading>string</RouteHeading>
		<!--Direction description e.g. Inbound / Outbound-->
		<DirDescription>string</DirDescription>
	  </DirectionData>
	</Directions>
	</RouteSummaryData>
</RoutesForStopData>

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

<?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>

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

Parameters:

  1. appID: Obligatoire. Généré dans le portail pour les développeurs après la création d’un compte.
  2. apiKey: Obligatoire. Généré dans le portail pour les développeurs après la création d’un compte.
  3. routeNo: Obligatoire. Numéro du circuit de l'autobus.
  4. 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

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

XML Format Description

<!--Retrieve the next 3 trips for a specific route in a specific direction to pass by the stop. 
	The following is a sample request and response. 
	The placeholders shown need to be replaced with actual values.-->


<!--Response-->
<StopInfo>
	<!--4 digit stop number-->
	<StopNo>string</StopNo>
	<!--Stop description-->
	<StopLabel>string</StopLabel>
	<!--Errors if any while generating data the stop. i.e. Invalid stop number-->
	<Error>string</Error>
	<Routes>
		<Route>
			<!--Route number-->
			<routeNo>string</routeNo>
			<!--Route description-->
			<RouteLabel>string</RouteLabel>
			<!--Trip direction i.e. NorthBound/SouthBound-->
			<Direction>string</Direction>
			<!--Errors if any while generating data the route. 
			 i.e. Route does not pass the stop specified-->
			<Error>string</Error>
			<!--Time the request was processed. This will be using the format 
			 'YYYYMMDDHHMISS' where HH = 24 hour format-->
			<RequestProcessingTime>string</RequestProcessingTime> 
			<Trips>
				<!--First Trip-->
				<Trip>
					<!--Final stop on the trip--> 
					<TripDestination>string</TripDestination> 
					<!--start time for the trip. Format HH:MI, 
					 where HH = 24 hour format-->
					<TripStartTime>string</TripStartTime>		
					<!--adjusted scheduled time in minutes-->
				<AdjustedScheduleTime>string</AdjustedScheduleTime> 
					<!--The time since the scheduled was adjusted 
					 in whole and fractional minutes. -->
					<AdjustmentAge>string</AdjustmentAge>
					<!--last trip to pass the stop for 
					 the route & direction-->
					<LastTripOfSchedule>boolean</LastTripOfSchedule> 
					<!--type of bus : low floor, bike rack etc.-->
					<BusType>string</BusType> 	
<!--speed of the bus in km/hr-- >
					<GPSSpeed>int</GPSSpeed>
					<!--Latitude of the last gps reading for the bus-->
					<Latitude></Latitude>
<!--Longitude of the last gps reading for the bus-->
					<Longitude></Longitude>
				</Trip>
				<!--Second Trip-->
				<Trip>
					<!--Final stop on the trip--> 
					<TripDestination>string</TripDestination> 
					<!--start time for the trip-->
					<TripStartTime>string</TripStartTime>		
					<!--adjusted scheduled time in minutes-->
				<AdjustedScheduleTime>string</AdjustedScheduleTime> 
					<!--The time since the scheduled was adjusted 
					 in whole and fractional minutes-->
					<AdjustmentAge>string</AdjustmentAge>
					<!--last trip to pass the stop 
					 for the route & direction-->
					<LastTripOfSchedule>boolean</LastTripOfSchedule> 
					<!--type of bus : low floor, bike rack etc.-->
					<BusType>string</BusType> 	
 					<!--speed of the bus in km/hr-- >
					<GPSSpeed>int</GPSSpeed>
					<!--Latitude of the last gps reading for the bus-->
					<Latitude></Latitude>
<!--Longitude of the last gps reading for the bus-->
					<Longitude></Longitude>
				</Trip>
<!--Third Trip-->
				<Trip>
					<!--Final stop on the trip--> 
					<TripDestination>string</TripDestination> 
					<!--start time for the trip-->
					<TripStartTime>string</TripStartTime>		
					<!--adjusted scheduled time in minutes-->
				<AdjustedScheduleTime>string</AdjustedScheduleTime> 
					<!--The time since the scheduled was adjusted 
					 in whole and fractional minutes-->
					<AdjustmentAge>string</AdjustmentAge>
					<!--last trip to pass the stop 
					 for the route & direction-->
					<LastTripOfSchedule>boolean</LastTripOfSchedule> 
					<!--type of bus : low floor, bike rack etc.-->
					<BusType>string</BusType> 	
 					<!--speed of the bus in km/hr-- >
					< GPSSpeed >int</ GPSSpeed >
					<!--Latitude of the last gps reading for the bus-->
					<Latitude></Latitude>
<!--Longitude of the last gps reading for the bus-->
					<Longitude></Longitude>
				</Trip>

			</Trips>
		</Route>
	</Routes>
</StopInfo>
<?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>

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://ottawa.ca/online_services/opendata/info/transit_schedule_en.html

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>
                            <!--First Trip-->
                            <Trip>
                                <!--Final stop on the trip--> 
                                <TripDestination>string</TripDestination> 
                                <!--start time for the trip. Format HH:MI, 
                                 where HH = 24 hour format-->
                                <TripStartTime>string</TripStartTime>        
                                <!--adjusted scheduled time in minutes-->
                                <AdjustedScheduleTime>string</AdjustedScheduleTime>
                                <!--The time since the scheduled was adjusted 
                                 in whole and fractional minutes. -->
                                <AdjustmentAge>string</AdjustmentAge>
                                <!--last trip to pass the stop for 
                                 the route & direction-->
                                <LastTripOfSchedule>boolean</LastTripOfSchedule> 
                                <!--type of bus : low floor, bike rack etc.-->
                                <BusType>string</BusType>     
                                <!--speed of the bus in km/hr-- >
                                <GPSSpeed>int</GPSSpeed>
                                <!--Latitude of the last 
                                 gps reading for the bus-->
                                <Latitude></Latitude>
                                <!--Longitude of the last 
                                 gps reading for the bus-->
                                <Longitude></Longitude>
                            </Trip>
                            <!--Second Trip-->
                            <Trip>
                                <!--Final stop on the trip--> 
                                <TripDestination>string</TripDestination> 
                                <!--start time for the trip-->
                                <TripStartTime>string</TripStartTime>        
                                <!--adjusted scheduled time in minutes-->
                                <AdjustedScheduleTime>string</AdjustedScheduleTime>
                                <!--The time since the scheduled was adjusted 
                                 in whole and fractional minutes-->
                                <AdjustmentAge>string</AdjustmentAge>
                                <!--last trip to pass the stop 
                                 for the route & direction-->
                                <LastTripOfSchedule>boolean</LastTripOfSchedule> 
                                <!--type of bus : low floor, bike rack etc.-->
                                <BusType>string</BusType>     
                                 <!--speed of the bus in km/hr-- >
                                <SPEED>int</SPEED>
                                <!--Latitude of the last 
                                 gps reading for the bus-->
                                <Latitude></Latitude>
                                <!--Longitude of the last 
                                 gps reading for the bus-->
                                <Longitude></Longitude>
                            </Trip>
                        </Trips>
                    </Route>
                    <Route>
                        <RouteNo>string</RouteNo>
                        <DirectionID>int</DirectionID>
                        <Direction>string</Direction>
                        <RouteHeading>string</RouteHeading>
                        <Trips>
                            <!--First Trip-->
                            <Trip>
                                <!--Final stop on the trip--> 
                                <TripDestination>string</TripDestination> 
                                <!--start time for the trip. Format HH:MI, 
                                 where HH = 24 hour format-->
                                <TripStartTime>string</TripStartTime>        
                                <!--adjusted scheduled time in minutes-->
                                <AdjustedScheduleTime>string</AdjustedScheduleTime>
                                <!--The time since the scheduled was adjusted 
                                 in whole and fractional minutes. -->
                                <AdjustmentAge>string</AdjustmentAge>
                                <!--last trip to pass the stop for 
                                 the route & direction-->
                                <LastTripOfSchedule>boolean</LastTripOfSchedule> 
                                <!--type of bus : low floor, bike rack etc.-->
                                <BusType>string</BusType>     
                                <!--speed of the bus in km/hr-- >
                                <GPSSpeed>int</GPSSpeed>
                                <!--Latitude of the last 
                                 gps reading for the bus-->
                                <Latitude></Latitude>
                                <!--Longitude of the last 
                                 gps reading for the bus-->
                                <Longitude></Longitude>
                            </Trip>
                            <!--Second Trip-->
                            <Trip>
                                <!--Final stop on the trip--> 
                                <TripDestination>string</TripDestination> 
                                <!--start time for the trip-->
                                <TripStartTime>string</TripStartTime>        
                                <!--adjusted scheduled time in minutes-->
                                <AdjustedScheduleTime>string</AdjustedScheduleTime> 
                                <!--The time since the scheduled was adjusted 
                                 in whole and fractional minutes-->
                                <AdjustmentAge>string</AdjustmentAge>
                                <!--last trip to pass the stop 
                                 for the route & direction-->
                                <LastTripOfSchedule>boolean</LastTripOfSchedule> 
                                <!--type of bus : low floor, bike rack etc.-->
                                <BusType>string</BusType>     
                                 <!--speed of the bus in km/hr-- >
                                <SPEED>int</SPEED>
                                <!--Latitude of the last 
                                 gps reading for the bus-->
                                <Latitude></Latitude>
                                <!--Longitude of the last 
                                 gps reading for the bus-->
                                <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": ""
                        }
                    ]
                }
            ]
        }
    }
}

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 Columns 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": ""
        }
    ]
}
NOTE: stops table requires stop_id, stop_code or id values specified.
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"
        }
    ]
}
NOTE: stop_times table requires trip_id, stop_id or id values specified.
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"
        }
    ]
}
NOTE: trips table requires route_id or id values specified.

Description en format XML

<?xml version="1.0"?>
<Gtfs>
  <result id="[ID of record]">
    <[Column Name]>[Value]</[Column Name]>
    <[Column Name With Null Value] />
  </result>
</Gtfs>