Passer directement au contenu

Ancienne API 2.0 d’OC Transpo

Changements apportés aux flux de données ouvertes d’OC Transpo 

OC Transpo a migré vers un nouveau flux de données ouvertes GTFS-RT. Cela signifie que l’ancien flux de données API 2.0 que nous fournissons actuellement ne sera plus disponible après le 30 avril 2025.

Les anciens comptes API 2.0 et clés API continueront d’être pris en charge jusqu’au 30 avril 2025. En date du 1er mai 2025 :

Les titulaires de comptes existants peuvent continuer à accéder à leur compte jusqu’au 30 avril 2025.

Téléchargement de l’ancien GTFS

Remarque : Ce fichier GTFS sera mis hors ligne le 30 avril 2025. Utilisez notre NOUVEAU flux de données ouvertes GTFS-RT et l’horaire GTFS que vous trouverez ici.

Les données GTFS fournissent les mêmes données d’horaire que celles qui appuient le planificateur de trajet en ligne d’OC Transpo. Veuillez noter qu’en accédant aux ensembles de données, vous acceptez les conditions d’utilisation de la Ville d’Ottawa. Le fichier d’horaires (Schedule) GTFS d’OC Transpo respecte la norme GTFS gérée par MobilityData.

octranspo.com/files/google_transit.zip

Méthodes

Les méthodes ci-dessous ne seront plus disponibles lorsque l’API 2.0 sera mis hors ligne le 30 avril 2025. L’information ci-dessous ne concerne que les applications existantes et sera également mise hors ligne le 30 avril 2025.

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