Documentation
Pour commencer
Afin d’accéder au flux de données en temps réel d’arrivée du prochain autobus d’OC Transpo, vous devez avoir une clé d’interface de programmation d’applications (API). Inscrivez-vous et vous recevrez instantanément une clé d’API en remplissant le formulaire d’inscription pour obtenir une clé d’API.
S’inscrire en tant que développeur pour recevoir une clé d’APIOuverture de session du développeur
Lorsque vous aurez fourni votre nom et vos coordonnées, nous vous enverrons un courriel comprenant un lien pour activer votre compte. Vous devez suivre les directives pour activer votre compte, ouvrir une session et générer un nouveau numéro d’identité d’application en cliquant sur la section des applications du tableau de bord.
Pour des raisons de sécurité, nous vous demandons de fournir votre numéro d’identité d’application et votre clé d’API dans chacune de vos demandes. Assurez-vous de faire vos requêtes en utilisant HTTPS.
Méthodes
- GetRouteSummaryForStop : Permet d’extraire les circuits pour un numéro d’arrêt donné.
- GetNextTripsForStop : Permet d’extraire les trois prochains trajets sur le circuit pour un numéro d’arrêt donné.
- GetNextTripsForStopAllRoutes : Permet d’extraire les trois prochains trajets sur tous les circuits pour un numéro d’arrêt donné.
- GTFS : Permet d’extraire les dossiers voulus de chacune des sections du GTFS.
Codes d’erreur
Code d’erreur | Erreur | Méthodes |
---|---|---|
1 |
Touche API invalide |
All |
2 |
Incapable d’interroger la source de données |
|
10 |
Numéro d’arrêt invalide |
GetRouteSummaryForStop GetNextTripsForStop GetNextTripsForStopAllRoutes |
11 |
Numéro de circuit invalide |
|
12 |
L’arrêt ne dessert pas ce circuit pour le moment |
GetNextTripsForStop GetNextTripsForStopAllRoutes |
13 | Aucun circuit à cet arrêt en tout temps |
Type de véhicules
Tous les autobus d’OC Transpo et l’O-Train sont entièrement accessibles.
Code | Description |
---|---|
4 ou 40 | Autobus de 40 pieds |
6 ou 60 | Autobus de 60 pieds |
4 et 6 | Les trajets peuvent se faire avec des autobus de 60 ou de 40 pieds |
DD | Autobus à deux étages |
B | Supports pour bicyclettes |
DEH | Hybride diésel et électrique |
IN | INVIRO (type d’autobus) |
ON | ORION (type d’autobus) |
Descriptions de méthode
1) GetRouteSummaryForStop
Permet d’extraire les circuits pour un numéro d’arrêt donné.
Base URL
https://api.octranspo1.com/v2.0/GetRouteSummaryForStop
Requête
https://api.octranspo1.com/v2.0/GetRouteSummaryForStop?appID={appID}&apiKey={apiKey}&stopNo={stopNo}&format={format}
Paramètres
-
Paramètre Requis Description appID Oui Généré dans le portail de développement après l’inscription. apiKey Oui Généré dans le portail de développement après l’inscription. stopNo Oui Numéro d’arrêt à 4 chiffres affiché dans les arrêts d’autobus. Télécharger une liste complète des arrêts ici. format Non Format des données retournées. JSON ou XML. Par défaut : JSON. Réponse
Descriptions des champs
Nom du champ Type de valeur Description StopNo chaîne Numéro d’arrêt d’autobus à 4 chiffres. StopDescription chaîne Description de l’arrêt. Error chaîne Codes d’erreur. Consulter la section des codes d’erreur pour des détails. Route - RouteNo chaîne Numéro alphanumérique du circuit. Route - DirectionID interger Identifiant de la direction du circuit. Route - Direction chaîne Description de la direction du circuit. Route - RouteHeading chaîne Direction du circuit. Format de réponse
XML
Chargement en cours...
JSON
{ GetRouteSummaryForStopResult: { StopNo: "chaîne", Error: "chaîne", StopDescription: "chaîne", Routes: { Route: [ { RouteNo: "chaîne", RouteHeading: "chaîne", Direction: "chaîne", DirectionID: interger }, { RouteNo: "chaîne", RouteHeading: "chaîne", Direction: "chaîne", DirectionID: chaîne } ] } } }
Exemple de réponse
XML
JSON
2) GetNextTripsForStop
Permet d’extraire les trois prochains trajets sur le circuit pour un numéro d’arrêt donné.
Base URL
https://api.octranspo1.com/v2.0/GetNextTripsForStop
Requête
https://api.octranspo1.com/v2.0/GetNextTripsForStop?appID={appID}&apiKey={apiKey}&stopNo={stopNo}&routeNo={routeNo}&format={format}
Paramètres
-
Paramètre Requis Description appID Oui Généré dans le portail de développement après l’inscription. apiKey Oui Généré dans le portail de développement après l’inscription. stopNo Oui Numéro d’arrêt à 4 chiffres affiché dans les arrêts d’autobus. Télécharger une liste complète des arrêts ici. routeNo Oui Numéro du circuit d’autobus. format Non Format des données retournées. JSON ou XML. Par défaut : JSON. Réponse
Descriptions des champs
Field Name Value Type Description StopNo chaîne Numéro d’arrêt d’autobus à 4 chiffres. StopLabel chaîne Description de l’arrêt. Error chaîne Codes d’erreur. Consulter la section des codes d’erreur pour des détails.
RouteDirection - RouteNo chaîne Numéro alphanumérique du circuit. RouteDirection - RouteLabel chaîne Direction du circuit. RouteDirection - Direction chaîne Description de la direction du circuit. RouteDirection - Error chaîne Codes d’erreur. Consulter la section des codes d’erreur pour des détails.
RouteDirection - RequestProcessingTime chaîne Temps de traitement de la requête de l’API. Trip - Longitude chaîne Longitude. Trip - Latitude chaîne Latitude. Trip - GPSSpeed chaîne Cette valeur a été enlevée de l’API; une chaîne vide sera retournée. Trip - TripDestination chaîne Direction du trajet. Trip - TripStartTime chaîne Heure prévue de départ du trajet. Trip - AdjustedScheduleTime chaîne Temps estimé avant l’arrivée du trajet à l’arrêt. Trip - AdjustmentAge chaîne Temps depuis le rajustement de l’heure d’arrivée et de départ prévue en minutes et en fractions de minutes. Plus le chiffre est élevé, moins la valeur AdjustedScheduleTime est fiable. Si cette valeur est négative, c’est que AdjustedScheduleTime contient l’heure prévue. Trip - LastTripOfSchedule booléen Dernier trajet de la journée. Trip - BusType chaîne Type de véhicule. Consulter la section du type d’autobus pour des détails. Format de réponse
XML
JSON
Exemple de réponse
XML
JSON
3) GetNextTripsForStopAllRoutes
Permet d’extraire les trois prochains trajets sur le circuit pour un numéro d’arrêt donné.
Base URL
https://api.octranspo1.com/v2.0/GetNextTripsForStopAllRoutes
Requête
https://api.octranspo1.com/v2.0/GetNextTripsForStopAllRoutes?appID={appID}&apiKey={apiKey}&stopNo={stopNo}&format={format}
Paramètres
-
Paramètre Requis Description appID Oui Généré dans le portail de développement après l’inscription. apiKey Oui Généré dans le portail de développement après l’inscription. stopNo Oui Numéro d’arrêt à 4 chiffres affiché dans les arrêts d’autobus. Télécharger une liste complète des arrêts ici. format Non Format of the returned data. JSON or XML. Default: JSON. Réponse
Field Descriptions
Field Name Value Type Description StopNo chaîne Numéro d’arrêt d’autobus à 4 chiffres. StopDescription chaîne Description de l’arrêt. Error chaîne Codes d’erreur. Consulter la section des codes d’erreur pour des détails. Route - RouteNo chaîne Numéro alphanumérique du circuit. Route - RouteHeading chaîne Direction du circuit. Route - DirectionID interger Identifiant de la direction du circuit. Route - Direction chaîne Description de la direction du circuit. Trip - Longitude chaîne Longitude. Trip - Latitude chaîne Latitude. Trip - GPSSpeed chaîne Cette valeur a été enlevée de l’API; une chaîne vide sera retournée. Trip - TripDestination chaîne Direction du trajet. Trip - TripStartTime chaîne Heure prévue de départ du trajet. Trip - AdjustedScheduleTime chaîne Temps estimé avant l’arrivée du trajet à l’arrêt. Trip - AdjustmentAge chaîne Temps depuis le rajustement de l’heure d’arrivée et de départ prévue en minutes et en fractions de minutes. Plus le chiffre est élevé, moins la valeur AdjustedScheduleTime est fiable. Si cette valeur est négative, c’est que AdjustedScheduleTime contient l’heure prévue. Trip - LastTripOfSchedule booléen Dernier trajet de la journée. Trip - BusType chaîne Type de véhicule. Consulter la section du type d’autobus pour des détails. Format de réponse
XML
JSON
Exemple de réponse
XML
JSON
4) GTFS
Permet d’extraire les dossiers voulus de chacune des sections du GTFS.
Base URL
https://api.octranspo1.com/v2.0/Gtfs
Requête
https://api.octranspo1.com/v2.0/Gtfs?appID={appID}&apiKey={apiKey}&table={table}&id={id}&column={column}&value={value}&order_by={order_by}&direction={direction}&limit={limit}&format={format}
Paramètres
-
Paramètre Requis Description appID Oui Généré dans le portail de développement après l’inscription. apiKey Oui Généré dans le portail de développement après l’inscription. table Oui Le tableau à interroger (liste de tableaux ci-dessous). id Non Une rangée particulière du tableau par la valeur id. column Non Une colonne particulière du tableau. L’utilisation d’une colonne exige l’utilisation du paramètre de valeur (liste de colonnes ci-dessous). value Non* Une valeur précise dans une colonne. *Requis si la colonne est précisée. order_by Non Préciser une colonne pour le tri. direction Non Préciser la direction du tri des résultats. Ascendant ou descendant. Ascendant par défaut. limit Non Préciser un nombre maximum de résultats.
Format.
format Non Format des données retournées. JSON ou XML. Par défaut : JSON. Requête du GTFS : Tableaux et colonnes
Tableau | Colonnes | JSON |
---|---|---|
agency |
|
{ "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 |
|
{ "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 |
|
{ "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 |
|
{ "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 |
|
{ "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 : Le tableau stops exige de préciser le stop_id, le stop_code ou les valeurs id. |
||
stop_times |
|
{ "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 : Le tableaustop_times exige de préciser le trip_id, le stop_id ou les valeurs id. |
||
trips |
|
{ "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 : Le tableau trips exige de préciser le route_id ou les valeurs id. |
Description en format XML
Chargement en cours...
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:
- 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.
- routeNo: Obligatoire. Numéro du circuit de l'autobus.
- 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 |
|
{ "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 |
|
{ "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 |
|
{ "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 |
|
{ "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 |
|
{ "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 |
|
{ "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 |
|
{ "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>