Passer directement au contenu

Ancienne API 2.0 d’OC Transpo

Modifications des données en format GTFS

Notre flux de données actuel, API 2.0, demeurera accessible et nous continuerons de le maintenir, mais il sera éventuellement remplacé par le nouveau flux de données ouvert d’OC Transpo, GTFS Realtime.

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

  1. GetRouteSummaryForStop : Permet d’extraire les circuits pour un numéro d’arrêt donné.
  2. GetNextTripsForStop : Permet d’extraire les trois prochains trajets sur le circuit pour un numéro d’arrêt donné.
  3. GetNextTripsForStopAllRoutes : Permet d’extraire les trois prochains trajets sur tous les circuits pour un numéro d’arrêt donné.
  4. 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
Chargement en cours...

JSON
{
    GetRouteSummaryForStopResult: {
        StopNo: "3009",
        Error: "",
        StopDescription: "RIDEAU",
        Routes: {
            Route: [
                {
                    RouteNo: "1",
                    RouteHeading: "Blair",
                    Direction: "",
                    DirectionID: 0
                },
                {
                    RouteNo: "1",
                    RouteHeading: "Tunney's Pasture",
                    Direction: "",
                    DirectionID: 1
                },
                {
                    RouteNo: "9",
                    RouteHeading: "Hurdman",
                    Direction: "",
                    DirectionID: 1
                }
            ]
        }
    }
}

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
Chargement en cours...

JSON
{
    GetNextTripsForStopResult: {
        StopNo: "chaîne",
        StopLabel: "chaîne",
        Error: "chaîne",
        Route: {
            RouteDirection: [
                {
                    RouteNo: "chaîne",
                    RouteLabel: "chaîne",
                    Direction: "chaîne",
                    Error: "chaîne",
                    RequestProcessingTime: "chaîne",
                    Trips: {
                        Trip: [
                            {
                                Longitude: "chaîne",
                                Latitude: "chaîne",
                                GPSSpeed: "chaîne vide",
                                TripDestination: "chaîne",
                                TripStartTime: "chaîne",
                                AdjustedScheduleTime: "chaîne",
                                AdjustmentAge: "chaîne",
                                LastTripOfSchedule: booléen,
                                BusType: "chaîne"
                            },
                            {
                                Longitude: "chaîne",
                                Latitude: "chaîne",
                                GPSSpeed: "chaîne vide",
                                TripDestination: "chaîne",
                                TripStartTime: "chaîne",
                                AdjustedScheduleTime: "chaîne",
                                AdjustmentAge: "chaîne",
                                LastTripOfSchedule: booléen,
                                BusType: "chaîne"
                            },
                            {
                                Longitude: "chaîne",
                                Latitude: "chaîne",
                                GPSSpeed: "chaîne vide",
                                TripDestination: "chaîne",
                                TripStartTime: "chaîne",
                                AdjustedScheduleTime: "chaîne",
                                AdjustmentAge: "chaîne",
                                LastTripOfSchedule: booléen,
                                BusType: "chaîne"
                            }
                        ]
                    }
                },
                {
                    RouteNo: "chaîne",
                    RouteLabel: "chaîne",
                    ...
                }
            ]
        }
    }
}

Exemple de réponse
XML
Chargement en cours...

JSON
{
    GetNextTripsForStopResult: {
        StopNo: "3034",
        StopLabel: "BILLINGS BRIDGE",
        Error: "",
        Route: {
            RouteDirection: [
                {
                    RouteNo: "97",
                    RouteLabel: "Aéroport",
                    Direction: "",
                    Error: "",
                    RequestProcessingTime: "20201104112747",
                    Trips: {
                        Trip: [
                            {
                                Longitude: "-75.66520690917969",
                                Latitude: "45.412139892578125",
                                GPSSpeed: "",
                                TripDestination: "Aéroport",
                                TripStartTime: "11:36",
                                AdjustedScheduleTime: "13",
                                AdjustmentAge: "1",
                                LastTripOfSchedule: false,
                                BusType: ""
                            },
                            {
                                Longitude: "-75.73878479003906",
                                Latitude: "45.40216827392578",
                                GPSSpeed: "",
                                TripDestination: "Aéroport",
                                TripStartTime: "11:51",
                                AdjustedScheduleTime: "28",
                                AdjustmentAge: "1",
                                LastTripOfSchedule: false,
                                BusType: ""
                            },
                            {
                                Longitude: "",
                                Latitude: "",
                                GPSSpeed: "",
                                TripDestination: "Aéroport",
                                TripStartTime: "12:06",
                                AdjustedScheduleTime: "43",
                                AdjustmentAge: "-1",
                                LastTripOfSchedule: false,
                                BusType: ""
                            }
                        ]
                    }
                },
                {
                    RouteNo: "97",
                    RouteLabel: "Hurdman & N Rideau",
                    ...
                }
            ]
        }
    }
}

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
Chargement en cours...

JSON
{
    GetRouteSummaryForStopResult: {
        StopNo: "chaîne",
        Error: "chaîne",
        StopDescription: "chaîne",
        Routes: {
            Route: [
                {
                    RouteNo: "chaîne",
                    RouteHeading: "chaîne",
                    DirectionID: interger,
                    Direction: "chaîne",
                    Trips: [
                        {
                            Longitude: "chaîne",
                            Latitude: "chaîne",
                            GPSSpeed: "chaîne vide",
                            TripDestination: "chaîne",
                            TripStartTime: "chaîne",
                            AdjustedScheduleTime: "chaîne",
                            AdjustmentAge: "chaîne",
                            LastTripOfSchedule: booléen,
                            BusType: "chaîne"
                        },
                        {
                            Longitude: "chaîne",
                            Latitude: "chaîne",
                            GPSSpeed: "chaîne vide",
                            TripDestination: "chaîne",
                            TripStartTime: "chaîne",
                            AdjustedScheduleTime: "chaîne",
                            AdjustmentAge: "chaîne",
                            LastTripOfSchedule: booléen,
                            BusType: "chaîne"
                        },
                        {
                            Longitude: "chaîne",
                            Latitude: "chaîne",
                            GPSSpeed: "chaîne vide",
                            TripDestination: "chaîne",
                            TripStartTime: "chaîne",
                            AdjustedScheduleTime: "chaîne",
                            AdjustmentAge: "chaîne",
                            LastTripOfSchedule: booléen,
                            BusType: "chaîne"
                        }
                    ]
                },
                {
                    RouteNo: "chaîne",
                    RouteHeading: "chaîne",
                    ...
                },
                {
                    RouteNo: "chaîne",
                    RouteHeading: "chaîne",
                    ...
                }
            ]
        }
    }
}

Exemple de réponse
XML
Chargement en cours...

JSON
{
    GetRouteSummaryForStopResult: {
        StopNo: "7633",
        Error: "",
        StopDescription: "HAWTHORNE / COLONEL BY",
        Routes: {
            Route: [
                {
                    RouteNo: "5",
                    RouteHeading: "Rideau",
                    DirectionID: 1,
                    Direction: "",
                    Trips: [
                        {
                            Longitude: "-75.67637802124024",
                            Latitude: "45.406397399902346",
                            GPSSpeed: "",
                            TripDestination: "Rideau",
                            TripStartTime: "11:01",
                            AdjustedScheduleTime: "1",
                            AdjustmentAge: "0",
                            LastTripOfSchedule: false,
                            BusType: ""
                        },
                        {
                            Longitude: "-75.67637802124024",
                            Latitude: "45.406397399902346",
                            GPSSpeed: "",
                            TripDestination: "Rideau",
                            TripStartTime: "12:01",
                            AdjustedScheduleTime: "53",
                            AdjustmentAge: "1",
                            LastTripOfSchedule: false,
                            BusType: ""
                        },
                        {
                            Longitude: "",
                            Latitude: "",
                            GPSSpeed: "",
                            TripDestination: "Rideau",
                            TripStartTime: "12:31",
                            AdjustedScheduleTime: "83",
                            AdjustmentAge: "-1",
                            LastTripOfSchedule: false,
                            BusType: ""
                        }
                    ]
                },
                {
                    RouteNo: "55",
                    RouteHeading: "Bayshore",
                    ...
                },
                {
                    RouteNo: "56",
                    RouteHeading: "Tunney's Pasture",
                    ...
                }
            ]
        }
    }
}

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
  • 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 : Le tableau stops exige de préciser le stop_id, le stop_code ou les valeurs id.

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 : Le tableaustop_times exige de préciser le trip_id, le stop_id ou les valeurs id.

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 : Le tableau trips exige de préciser le route_id  ou les valeurs id.

Description en format XML

Chargement en cours...