Vai al contenuto principale

Segnali un problema

Questa pagina non riguarda una sola fermata, linea, stazione o un solo veicolo. Ne apra una per far indicare il nome nella segnalazione, oppure usi la segnalazione completa.

Che cosa è successo
Rapporto completo Nessun account necessario
Prove e dati
  1. Lettura
  2. Prove e dati
  3. API per sviluppatori

Ogni dato di questo sito è a una chiamata JSON gratuita di distanza.API per sviluppatori

Every figure here is versioned JSON. Free to use, with or without a key.Every figure here is versioned JSON. Free to use, with or without a key.

Free, key optional · 1,000 a day, 60 a minute · code MIT · version 1.0.0

Accesso

Gratuito

chiave facoltativa

Limite di richieste

1,000 al giorno

60 al minuto; altri dettagli in Developer

Licenza del codice

MIT

i dati mantengono le condizioni della loro fonte

Versione

1.0.0

stabile · preavviso di 180 giorni

Piani

Gratuito

1,000 chiamate al giorno, 60 al minuto. Non serve alcuna chiave. Una chiave gratuita conteggia le chiamate separatamente da quelle di tutti gli altri sulla stessa rete.

Citi ‘Data: OTranspo (otranspo.ca)’ ovunque mostri i dati.

Sviluppatore

$10 al meseoppure $100 all'anno (CAD)

  • 100,000 chiamate al giorno, 600 al minuto
  • Download in blocco e cronologia completa
  • Assistenza via e-mail

Giornalisti, studenti e personale del consiglio comunale: il livello gratuito è per Voi. Ci scriva se ha bisogno di più per un articolo o per uno studio.

Come inviare una chiave

curl -H "Authorization: Bearer otr_…" https://otranspo.ca/api/public/v1/route-states

Limiti

Ogni risposta contiene X-RateLimit-Remaining (questo minuto) e X-RateLimit-Daily-Remaining (oggi, UTC). Se supera il limite, riceve 429 con l'ora in cui il limite si azzera.

Una sola chiamata, dall'inizio alla fine

Richiesta

curl https://otranspo.ca/api/public/v1/route-states

La risposta è quella reale di questo sito, ottenuta nel momento in cui Lei la richiede.

Risposta, abbreviata Schema

In corso…

Tutte le risorse, 39

I percorsi iniziano con /api/public/v1, salvo se scritti per intero. Apra una riga per vedere stati HTTP, codici di errore, accesso, incertezza e schema.

Indice e contrattoinizi da qui2
Indice delle APIGET/api/public/v1—JSON

Stato HTTP

200

Codici dei motivi di errore

—

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

endpoints.id · endpoints.path

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1

JSON Schema

Contratto OpenAPI 3.1GET/openapi.json—JSON

Stato HTTP

200

Codici dei motivi di errore

—

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

operationId · path

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/openapi.json

JSON Schema

Servizio attualecosa succede in questo momento5
Cancellazioni pubblicate oraGET/current-cancellations—JSON

Stato HTTP

200 · 400 · 503

Codici dei motivi di errore

unsupported_query 400 · current_cancellations_unavailable 503

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

trips.tripId · trips.routeId

Fonte e incertezza

Only explicit CANCELED/DELETED notices for timetable trips in the current snapshot are listed. Empty or unavailable feeds do not prove that no trips were cancelled; outside-timetable notices may be withheld.

Esempio di chiamata

GET /api/public/v1/current-cancellations

JSON Schema

Stati delle linee: previsto e osservatoGET/route-states—JSON

Stato HTTP

200 · 503

Codici dei motivi di errore

—

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

operatorId · routeId

Fonte e incertezza

This is not an operator alert. Routes without published positions use positions_not_published; stale or missing feeds return unavailable.

Esempio di chiamata

GET /api/public/v1/route-states

JSON Schema

Incidenti, in inglese e in franceseGET/incidents—JSON

Stato HTTP

200 · 503

Codici dei motivi di errore

—

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

publicId · slug · updates.id

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/incidents

JSON Schema

Un avviso ufficialeGET/alerts/{alertId}format=json|csv · alertIdJSON · CSV

Stato HTTP

200 · 400 · 503

Codici dei motivi di errore

invalid_alert_id 400 · unsupported_format 400 · alert_not_found 400 · alert_unavailable 503

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

alert.id · alert.operatorId

Fonte e incertezza

The notice is the operator’s own wording. Kept wordings start when we first saw the notice, not when the operator posted it, and an empty list does not prove the notice never changed.

Esempio di chiamata

GET /api/public/v1/alerts/{alertId}

JSON Schema

Tabellone della stazioneGET/stations/{stationId}format=json|csv · stationIdJSON

Stato HTTP

200 · 400 · 404 · 503

Codici dei motivi di errore

invalid_station_id 400 · unsupported_format 400 · station_not_found 404 · station_board_unavailable 503

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

station.id · lines.routeRecordId · departures.tripId

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/stations/{stationId}

JSON Schema

Dati probanti e segnalazionii dati dietro ogni pagina11
Dati probatori sull'affidabilitàGET/reliability-evidenceformat=json|csvJSON · CSV

Stato HTTP

200 · 400 · 503

Codici dei motivi di errore

unsupported_format 400

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

routeId · window

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/reliability-evidence

JSON Schema

Dati probanti della lineaGET/routes/{routeId}/evidenceformat=json|csv · routeIdJSON

Stato HTTP

200 · 400 · 404 · 503

Codici dei motivi di errore

invalid_route_id 400 · unsupported_format 400 · route_not_found 404 · route_evidence_unavailable 503

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

route.routeId

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/routes/{routeId}/evidence

JSON Schema

Route 7 evidence on the site

Servizio della linea per giornoGET/routes/{routeId}/service-evidencewindow=day|week|month|28d · date · format=json|csv · routeIdJSON

Stato HTTP

200 · 400 · 404 · 503

Codici dei motivi di errore

invalid_route_id 400 · unsupported_window 400 · invalid_service_date 400 · unsupported_format 400 · route_not_found 404 · route_service_evidence_unavailable 503

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

routeId · window

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/routes/{routeId}/service-evidence

JSON Schema

Servizio per stazione o quartiere elettoraleGET/places/{kind}/{placeId}/service-evidencedate · kind=station|ward · placeIdJSON

Stato HTTP

200 · 400 · 503

Codici dei motivi di errore

unsupported_place_kind 400 · invalid_place_id 400 · unsupported_query 400 · invalid_service_date 400 · place_service_evidence_unavailable 503

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

kind · placeId · operatorId

Fonte e incertezza

Observation and cancellation completeness are explicitly unverified; no-position candidate counts remain null and comparison eligibility is false.

Esempio di chiamata

GET /api/public/v1/places/{kind}/{placeId}/service-evidence

JSON Schema

Scarica il file dei dati probantiGET/evidence/{evidenceId}format=json|csv · evidenceIdJSON · CSV

Stato HTTP

200 · 400 · 404

Codici dei motivi di errore

unsupported_format 400 · not_found 404

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

evidenceId

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/evidence/{evidenceId}

JSON Schema

Pagelle dei quartieri elettoraliGET/ward-scorecardsformat=json|csvJSON · CSV

Stato HTTP

200 · 503

Codici dei motivi di errore

—

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

snapshotId · wardId

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/ward-scorecards

JSON Schema

Edizioni precedenti delle pagelleGET/historical-scorecardssnapshotId=historical-scorecards:<sha256> · routeIdJSON

Stato HTTP

200 · 400 · 404 · 422

Codici dei motivi di errore

snapshot_id_required 400 · invalid_route_id 400 · invalid_parameters 400 · snapshot_not_found 404 · route_detail_not_published 422 · route_not_in_snapshot 404

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

snapshotId · routeId

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/historical-scorecards

JSON Schema

Archivio dei segnalazioni di servizioGET/service-report-archivekindJSON

Stato HTTP

200 · 400 · 503

Codici dei motivi di errore

invalid_archive_query 400 · archive_unavailable 503

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

kind · period

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/service-report-archive

JSON Schema

Precisione delle previsioniGET/prediction-calibration—JSON

Stato HTTP

200 · 503

Codici dei motivi di errore

—

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

operatorId · routeId · routeContext · horizonBucket

Fonte e incertezza

Later observed arrival is a comparison, not ground truth or a validated prediction interval; independent validation is false.

Esempio di chiamata

GET /api/public/v1/prediction-calibration

JSON Schema

Rapporto sul servizio selezionatoGET/api/insights/reports/selected?period={period}&date={YYYY-MM-DD}period=day|week|month · date=YYYY-MM-DD · operator=all|oc_transpo|sto · routeJSON

Stato HTTP

200 · 400 · 503

Codici dei motivi di errore

invalid_selection 400 · selected_report_unavailable 503 · invalid_route_hour_selection 400 · route_hours_unavailable 503

Accesso e limite di richieste

Anonimo; per questo percorso non è configurato alcun limite per l'API pubblica.

Identificatori stabili

period · date · operator · method

Fonte e incertezza

Without route, the selected-report contract is unchanged. With route, the selected-route-hours contract returns at most48 method-separated local-hour prediction groups, preserving requested report operator separately from routeOperator. These mutable retained predictions do not prove physical arrivals, complete archive coverage, zero service or an immutable publication.

Esempio di chiamata

GET /api/insights/reports/selected?period={period}&date={YYYY-MM-DD}

JSON Schema

Dati usati per il confronto delle previsioniGET/api/insights/reports/selected/comparison-evidence?period={period}&date={YYYY-MM-DD}period=day|week|month · date=YYYY-MM-DD · operator=all|oc_transpo|stoJSON

Stato HTTP

200 · 400 · 503

Codici dei motivi di errore

invalid_comparison_evidence_selection 400

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

payload.edition · payload.selection · checksum.value

Fonte e incertezza

This opt-in export preserves the exact captured route/day read results, declared calendar, comparison refusals and measured source-code manifest. It is bounded to 20,000 input rows and 8 MiB and does not claim an atomic database snapshot, statistical independence, confidence intervals, physical service delivery, causation, equivalence or model eligibility. Schema validation alone does not verify checksum or replay; consumers must perform those checks separately.

Esempio di chiamata

GET /api/insights/reports/selected/comparison-evidence?period={period}&date={YYYY-MM-DD}

JSON Schema

Cronologia e riproduzioneche cosa è già successo6
Cancellazioni e interruzioni passateGET/historical-cancellationswindow=day|week|28d|month · date · assessment=noneJSON

Stato HTTP

200 · 400 · 503

Codici dei motivi di errore

unsupported_query 400 · unsupported_window 400 · invalid_service_date 400 · unsupported_assessment 400 · historical_cancellations_unavailable 503 · historical_cancellation_limit_exceeded 400

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

period · records.tripId

Fonte e incertezza

Historical polling completeness is unverified and schedule matching may be unassessed; unknown coverage is not zero cancellations.

Esempio di chiamata

GET /api/public/v1/historical-cancellations

JSON Schema

Riproduzione della cittàGET/replaydate · routeFamily · operator · fromMinute · minutes · summaryJSON

Stato HTTP

200 · 400 · 503

Codici dei motivi di errore

date_required 400 · invalid_route_family 400 · invalid_operator 400 · replay_positions_unavailable 503 · published_replay_unavailable 503

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

date · routeFamily · operator

Fonte e incertezza

Replay is historical and never live; only captured/published archive evidence is returned.

Esempio di chiamata

GET /api/public/v1/replay

JSON Schema

Veicoli osservati, per giornoGET/fleet-historydate · operator=all|oc_transpo|sto · route · feedIdJSON

Stato HTTP

200 · 400 · 503

Codici dei motivi di errore

invalid_fleet_history_lookup 400 · invalid_fleet_history_date 400 · invalid_fleet_history_operator 400 · fleet_history_unavailable 503

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

serviceDate · operator · route

Fonte e incertezza

Retained feed observations are not a physical fleet inventory; missing retention is not zero service.

Esempio di chiamata

GET /api/public/v1/fleet-history

JSON Schema

ID dei veicoli del feed, per giornoGET/fleet-history/feed-idsdate · operator=all|oc_transpo|sto · cursorJSON

Stato HTTP

200 · 400 · 503

Codici dei motivi di errore

invalid_fleet_feed_id_selection 400 · invalid_fleet_history_date 400 · invalid_fleet_history_operator 400 · invalid_fleet_feed_id_cursor 400 · fleet_feed_id_census_unavailable 503

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

date · operator · digest · collisionOrdinal

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/fleet-history/feed-ids

JSON Schema

Un ID veicolo nel tempoGET/vehicles/{vehicleId}/visibility-historyformat=json|csv · vehicleIdJSON

Stato HTTP

200 · 400 · 404 · 503

Codici dei motivi di errore

invalid_vehicle_id 400 · unsupported_format 400 · vehicle_history_unavailable 503 · vehicle_history_not_found 404

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

vehicleId

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/vehicles/{vehicleId}/visibility-history

JSON Schema

Veicoli osservati, dati completiGET/bulk/fleet-historyfrom · to · operator=all|oc_transpo|sto · route · feedIdJSON

Stato HTTP

200 · 400 · 401 · 403 · 429 · 503

Codici dei motivi di errore

unsupported_query 400 · invalid_bulk_range 400 · invalid_fleet_history_lookup 400 · invalid_fleet_history_operator 400 · fleet_history_unavailable 503 · api_key_required 401 · invalid_api_key 401 · plan_required 403 · rate_limited 429

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

serviceDate · operator · route

Fonte e incertezza

Each line is the fleet-history evidence for one seven-day window; retained feed observations are not a physical fleet inventory and missing retention is not zero service.

Esempio di chiamata

GET /api/public/v1/bulk/fleet-history

JSON Schema

Orari e uso offlinel'orario pubblicato6
Orario di una lineaGET/transit-planning/{routeId}date · routeIdJSON

Stato HTTP

200 · 400 · 503

Codici dei motivi di errore

invalid_route_or_date 400 · use_history_for_past_dates 400 · planning_baseline_unavailable 503

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

routeId · serviceDate

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/transit-planning/{routeId}

JSON Schema

Orario della reteGET/transit-planning/networkdateJSON

Stato HTTP

200 · 400 · 503

Codici dei motivi di errore

invalid_parameters 400 · invalid_service_date 400 · network_baseline_unavailable 503

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

serviceDate

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/transit-planning/network

JSON Schema

Percorso stradale tra due puntiPOST/transit-planning/street-pathbodyJSON

Stato HTTP

200 · 400 · 503

Codici dei motivi di errore

invalid_body 400 · invalid_segment 400

Accesso e limite di richieste

Anonimo, origine attendibile richiesta; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

from · to

Fonte e incertezza

Path may be unavailable when routing source data is absent; no path is not evidence of no accessible route.

Esempio di chiamata

POST /api/public/v1/transit-planning/street-path

JSON Schema

Pacchetti orari offlineGET/offline-pack—JSON

Stato HTTP

200 · 503

Codici dei motivi di errore

offline_pack_not_published 503 · offline_pack_unavailable 503

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

packId · digest

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/offline-pack

JSON Schema

Manifesto del pacchetto offlineGET/offline-pack/manifestpackJSON

Stato HTTP

200 · 404 · 503

Codici dei motivi di errore

—

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

packId · shards.id

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/offline-pack/manifest

JSON Schema

Parte del pacchetto offlineGET/offline-pack/shards/{id}idbytes

Stato HTTP

200 · 404 · 503

Codici dei motivi di errore

—

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

id · digest

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/offline-pack/shards/{id}

JSON Schema

Registri e normeche cosa abbiamo cambiato e perché6
Registro delle correzioniGET/correctionsformat=json|csvJSON · CSV

Stato HTTP

200 · 400

Codici dei motivi di errore

unsupported_format 400

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

records.id · records.revision

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/corrections

JSON Schema

Registro delle politicheGET/policy-register—JSON

Stato HTTP

200

Codici dei motivi di errore

—

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

records.id · records.revision

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/policy-register

JSON Schema

Garanzia di accessibilitàGET/accessibility-assurance—JSON

Stato HTTP

200

Codici dei motivi di errore

—

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

evidence.id · remediationLog.id

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/accessibility-assurance

JSON Schema

Copertura regionale e aggiornamento dei datiGET/regional-coverage—JSON

Stato HTTP

200 · 503

Codici dei motivi di errore

—

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

operators.operatorId

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/regional-coverage

JSON Schema

Canali di notifica e assistenzaGET/journey-service-policy—JSON

Stato HTTP

200

Codici dei motivi di errore

—

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

contractVersion · channels.channel

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/journey-service-policy

JSON Schema

Verifica della presentazione del veicoloGET/fleet-presentation—JSON

Stato HTTP

200 · 503

Codici dei motivi di errore

—

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

evidence.operatorSamples.operatorId

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/fleet-presentation

JSON Schema

Condivisionelink e schede social3
Creare un link di condivisionePOST/share-snapshotsbodyJSON

Stato HTTP

200 · 400 · 404 · 409 · 503

Codici dei motivi di errore

Invalid request body. 400 · A canonical public path is required. 400 · This page cannot be shared as a public snapshot. 400 · The public page was not found. 404

Accesso e limite di richieste

Anonimo, origine attendibile richiesta; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

snapshotId · revision

Fonte e incertezza

If immutable evidence is not published, issuance returns a canonical_only state; retryable storage faults return a human-readable error and 503.

Esempio di chiamata

POST /api/public/v1/share-snapshots

JSON Schema

Stato del link di condivisioneGET/share-snapshots/{snapshotId}snapshotIdJSON

Stato HTTP

200 · 400 · 404 · 410 · 503

Codici dei motivi di errore

—

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

snapshotId · revision

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/share-snapshots/{snapshotId}

JSON Schema

Scheda social del link di condivisioneGET/share-snapshots/{snapshotId}/opengraphsnapshotIdPNG

Stato HTTP

200 · 400 · 404 · 503

Codici dei motivi di errore

invalid_identifier 400 · not_found 404 · temporarily_unavailable 503

Accesso e limite di richieste

Accesso anonimo; 60 al minuto quando il limite di frequenza distribuito è attivo.

Identificatori stabili

snapshotId · revision

Fonte e incertezza

Read the response status, evidenceState, source timestamps, limitations and gaps; absence is not proof of zero.

Esempio di chiamata

GET /api/public/v1/share-snapshots/{snapshotId}/opengraph

JSON Schema

Accesso e uso

Accesso e usoLimits, caching, versions, privacy and licence
Accesso
Ogni risorsa GET è pubblica e gratuita, con o senza chiave. Le risorse in blocco e dello storico richiedono una chiave per sviluppatori. Le due risorse POST (creare un link di condivisione, tracciare un percorso stradale) accettano richieste solo da otranspo.ca stesso.
Limite di richieste
1,000 richieste al giorno e 60 al minuto, con o senza una chiave gratuita; 100,000 al giorno e 600 al minuto con il piano Developer. Legga le intestazioni X-RateLimit-* in ogni risposta; X-RateLimit-Status indica quando i limiti sono ridotti.
Chiavi
Invii una chiave come Authorization: Bearer otr_… oppure X-API-Key. Mai nell'indirizzo. Una chiave errata, revocata o scaduta riceve 401, mai una risposta senza chiave.
Cache
L'indice resta in memoria per 30 secondi nel Suo browser e per 5 minuti sull'edge. Le risorse in tempo reale, come le cancellazioni, sono inviate con no-store. Le parti dell'orario offline non cambiano più una volta pubblicate.
Versioni
Ogni risposta indica il proprio schema e schemaVersion. Una modifica incompatibile riceve un nuovo percorso /v2, con 180 giorni di preavviso nelle intestazioni Deprecation, Sunset e Link.
Privacy
Non invii dati personali. Le coordinate inviate al percorso stradale sono usate solo per quella richiesta, mai registrate né conservate. Le risposte non contengono mai ID account, ricerche di viaggi, e-mail o indirizzi di rete, né collegamenti interni alle prove.
Sconosciuto non significa zero
Una risposta può risultare non disponibile anche quando la risorsa esiste. Legga status, evidenceState, gli orari delle fonti, la copertura e i limiti. Gli stati delle linee confrontano l'orario previsto con gli autobus osservati. Non sono avvisi dell'operatore.
Licenza
Codice: MIT. I dati di OC Transpo e STO restano soggetti ai propri termini open data e richiedono l'indicazione della fonte. I nostri dati: CC BY 4.0, fonte otranspo.ca.
Non ancora fatto
No SDK is published, no second city is supported, and partner tenant-key access is not open. This page does not claim them.
Dati e downloadGli stessi dati come file CSV e JSON, con le indicazioni su come citarli.