Ir para o conteúdo principal

Relatar um problema

Esta página não trata de uma parada, linha, estação ou veículo. Abra um deles para o relato citá-lo, ou use o relatório completo.

O que aconteceu
Relatório completo Não precisa de conta
Dados probantes e dados
  1. Leitura
  2. Dados probantes e dados
  3. API para desenvolvedores

Cada número deste site está a uma chamada JSON gratuita de distância.API para desenvolvedores

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

Acesso

Free

key optional

Limite de uso

1,000 a day

60 a minute; more on Developer

Licença do código

MIT

os dados mantêm os termos da sua fonte

Versão

1.0.0

stable · 180 days’ notice

Plans

Free

1,000 calls a day, 60 a minute. No key needed; a free key counts your calls separately from everyone else on your network.

Credit ‘Data: OTranspo (otranspo.ca)’ wherever you show the data.

Developer

$10 a monthor $100 a year (CAD)

  • 100,000 calls a day, 600 a minute
  • Bulk downloads and full history
  • Support by email

Journalists, students and council staff: the free tier is yours. Write to us if you need more for a story or a study.

How to send a key

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

Limites

Each answer carries X-RateLimit-Remaining (this minute) and X-RateLimit-Daily-Remaining (today, UTC). Over the limit you get 429 with the time it resets.

Uma chamada, do início ao fim

Requisição

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

A resposta é a real deste site, obtida quando você a solicita.

Resposta resumida Esquema

Executando…

Todos os recursos, 39

Os caminhos começam em /api/public/v1, a menos que estejam escritos por inteiro. Abra qualquer linha para ver os status HTTP, os códigos de erro, o acesso, a incerteza e o esquema.

Índice e contratocomece aqui2
Índice da APIGET/api/public/v1—JSON

Status HTTP

200

Códigos de motivo de erro

—

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

endpoints.id · endpoints.path

Fonte e incerteza

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

Exemplo de chamada

GET /api/public/v1

JSON Schema

Contrato OpenAPI 3.1GET/openapi.json—JSON

Status HTTP

200

Códigos de motivo de erro

—

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

operationId · path

Fonte e incerteza

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

Exemplo de chamada

GET /api/public/v1/openapi.json

JSON Schema

Serviço agorao que está acontecendo neste minuto5
Cancelamentos publicados agoraGET/current-cancellations—JSON

Status HTTP

200 · 400 · 503

Códigos de motivo de erro

unsupported_query 400 · current_cancellations_unavailable 503

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

trips.tripId · trips.routeId

Fonte e incerteza

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.

Exemplo de chamada

GET /api/public/v1/current-cancellations

JSON Schema

Estados da linha: prevista e observadaGET/route-states—JSON

Status HTTP

200 · 503

Códigos de motivo de erro

—

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

operatorId · routeId

Fonte e incerteza

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

Exemplo de chamada

GET /api/public/v1/route-states

JSON Schema

Incidentes, em inglês e francêsGET/incidents—JSON

Status HTTP

200 · 503

Códigos de motivo de erro

—

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

publicId · slug · updates.id

Fonte e incerteza

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

Exemplo de chamada

GET /api/public/v1/incidents

JSON Schema

Um alerta oficialGET/alerts/{alertId}format=json|csv · alertIdJSON · CSV

Status HTTP

200 · 400 · 503

Códigos de motivo de erro

invalid_alert_id 400 · unsupported_format 400 · alert_not_found 400 · alert_unavailable 503

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

alert.id · alert.operatorId

Fonte e incerteza

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.

Exemplo de chamada

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

JSON Schema

Painel da estaçãoGET/stations/{stationId}format=json|csv · stationIdJSON

Status HTTP

200 · 400 · 404 · 503

Códigos de motivo de erro

invalid_station_id 400 · unsupported_format 400 · station_not_found 404 · station_board_unavailable 503

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

station.id · lines.routeRecordId · departures.tripId

Fonte e incerteza

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

Exemplo de chamada

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

JSON Schema

Dados probantes e relatóriosos números por trás de cada página11
Dados probantes de fiabilidadeGET/reliability-evidenceformat=json|csvJSON · CSV

Status HTTP

200 · 400 · 503

Códigos de motivo de erro

unsupported_format 400

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

routeId · window

Fonte e incerteza

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

Exemplo de chamada

GET /api/public/v1/reliability-evidence

JSON Schema

Dados probantes da linhaGET/routes/{routeId}/evidenceformat=json|csv · routeIdJSON

Status HTTP

200 · 400 · 404 · 503

Códigos de motivo de erro

invalid_route_id 400 · unsupported_format 400 · route_not_found 404 · route_evidence_unavailable 503

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

route.routeId

Fonte e incerteza

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

Exemplo de chamada

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

JSON Schema

Route 7 evidence on the site

Serviço da linha por diaGET/routes/{routeId}/service-evidencewindow=day|week|month|28d · date · format=json|csv · routeIdJSON

Status HTTP

200 · 400 · 404 · 503

Códigos de motivo de erro

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

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

routeId · window

Fonte e incerteza

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

Exemplo de chamada

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

JSON Schema

Serviço por estação ou distrito eleitoralGET/places/{kind}/{placeId}/service-evidencedate · kind=station|ward · placeIdJSON

Status HTTP

200 · 400 · 503

Códigos de motivo de erro

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

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

kind · placeId · operatorId

Fonte e incerteza

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

Exemplo de chamada

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

JSON Schema

Baixar registro de evidênciasGET/evidence/{evidenceId}format=json|csv · evidenceIdJSON · CSV

Status HTTP

200 · 400 · 404

Códigos de motivo de erro

unsupported_format 400 · not_found 404

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

evidenceId

Fonte e incerteza

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

Exemplo de chamada

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

JSON Schema

Boletins por distrito eleitoralGET/ward-scorecardsformat=json|csvJSON · CSV

Status HTTP

200 · 503

Códigos de motivo de erro

—

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

snapshotId · wardId

Fonte e incerteza

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

Exemplo de chamada

GET /api/public/v1/ward-scorecards

JSON Schema

Edições anteriores do boletim de desempenhoGET/historical-scorecardssnapshotId=historical-scorecards:<sha256> · routeIdJSON

Status HTTP

200 · 400 · 404 · 422

Códigos de motivo de erro

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

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

snapshotId · routeId

Fonte e incerteza

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

Exemplo de chamada

GET /api/public/v1/historical-scorecards

JSON Schema

Arquivo de relatórios de serviçoGET/service-report-archivekindJSON

Status HTTP

200 · 400 · 503

Códigos de motivo de erro

invalid_archive_query 400 · archive_unavailable 503

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

kind · period

Fonte e incerteza

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

Exemplo de chamada

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

JSON Schema

Precisão das previsõesGET/prediction-calibration—JSON

Status HTTP

200 · 503

Códigos de motivo de erro

—

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

operatorId · routeId · routeContext · horizonBucket

Fonte e incerteza

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

Exemplo de chamada

GET /api/public/v1/prediction-calibration

JSON Schema

Relatório do serviço selecionadoGET/api/insights/reports/selected?period={period}&date={YYYY-MM-DD}period=day|week|month · date=YYYY-MM-DD · operator=all|oc_transpo|sto · routeJSON

Status HTTP

200 · 400 · 503

Códigos de motivo de erro

invalid_selection 400 · selected_report_unavailable 503 · invalid_route_hour_selection 400 · route_hours_unavailable 503

Acesso e limite de uso

Anônimo; nenhum limite de API pública está configurado para este caminho.

Identificadores estáveis

period · date · operator · method

Fonte e incerteza

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.

Exemplo de chamada

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

JSON Schema

Dados usados na comparação das previsõesGET/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

Status HTTP

200 · 400 · 503

Códigos de motivo de erro

invalid_comparison_evidence_selection 400

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

payload.edition · payload.selection · checksum.value

Fonte e incerteza

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.

Exemplo de chamada

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

JSON Schema

Histórico e reproduçãoo que já aconteceu6
Cancelamentos e falhas do passadoGET/historical-cancellationswindow=day|week|28d|month · date · assessment=noneJSON

Status HTTP

200 · 400 · 503

Códigos de motivo de erro

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

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

period · records.tripId

Fonte e incerteza

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

Exemplo de chamada

GET /api/public/v1/historical-cancellations

JSON Schema

Replay da cidadeGET/replaydate · routeFamily · operator · fromMinute · minutes · summaryJSON

Status HTTP

200 · 400 · 503

Códigos de motivo de erro

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

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

date · routeFamily · operator

Fonte e incerteza

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

Exemplo de chamada

GET /api/public/v1/replay

JSON Schema

Veículos observados, por diaGET/fleet-historydate · operator=all|oc_transpo|sto · route · feedIdJSON

Status HTTP

200 · 400 · 503

Códigos de motivo de erro

invalid_fleet_history_lookup 400 · invalid_fleet_history_date 400 · invalid_fleet_history_operator 400 · fleet_history_unavailable 503

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

serviceDate · operator · route

Fonte e incerteza

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

Exemplo de chamada

GET /api/public/v1/fleet-history

JSON Schema

IDs de veículos do feed, por diaGET/fleet-history/feed-idsdate · operator=all|oc_transpo|sto · cursorJSON

Status HTTP

200 · 400 · 503

Códigos de motivo de erro

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

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

date · operator · digest · collisionOrdinal

Fonte e incerteza

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

Exemplo de chamada

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

JSON Schema

Um ID de veículo ao longo do tempoGET/vehicles/{vehicleId}/visibility-historyformat=json|csv · vehicleIdJSON

Status HTTP

200 · 400 · 404 · 503

Códigos de motivo de erro

invalid_vehicle_id 400 · unsupported_format 400 · vehicle_history_unavailable 503 · vehicle_history_not_found 404

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

vehicleId

Fonte e incerteza

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

Exemplo de chamada

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

JSON Schema

Vehicles seen, in bulkGET/bulk/fleet-historyfrom · to · operator=all|oc_transpo|sto · route · feedIdJSON

Status HTTP

200 · 400 · 401 · 403 · 429 · 503

Códigos de motivo de erro

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

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

serviceDate · operator · route

Fonte e incerteza

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.

Exemplo de chamada

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

JSON Schema

Horários e uso offlineo horário publicado6
Horário de uma linhaGET/transit-planning/{routeId}date · routeIdJSON

Status HTTP

200 · 400 · 503

Códigos de motivo de erro

invalid_route_or_date 400 · use_history_for_past_dates 400 · planning_baseline_unavailable 503

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

routeId · serviceDate

Fonte e incerteza

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

Exemplo de chamada

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

JSON Schema

Horários da redeGET/transit-planning/networkdateJSON

Status HTTP

200 · 400 · 503

Códigos de motivo de erro

invalid_parameters 400 · invalid_service_date 400 · network_baseline_unavailable 503

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

serviceDate

Fonte e incerteza

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

Exemplo de chamada

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

JSON Schema

Trajeto pelas ruas entre dois pontosPOST/transit-planning/street-pathbodyJSON

Status HTTP

200 · 400 · 503

Códigos de motivo de erro

invalid_body 400 · invalid_segment 400

Acesso e limite de uso

Anônimo, origem confiável obrigatória; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

from · to

Fonte e incerteza

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

Exemplo de chamada

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

JSON Schema

Pacotes de horários offlineGET/offline-pack—JSON

Status HTTP

200 · 503

Códigos de motivo de erro

offline_pack_not_published 503 · offline_pack_unavailable 503

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

packId · digest

Fonte e incerteza

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

Exemplo de chamada

GET /api/public/v1/offline-pack

JSON Schema

Manifesto do pacote offlineGET/offline-pack/manifestpackJSON

Status HTTP

200 · 404 · 503

Códigos de motivo de erro

—

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

packId · shards.id

Fonte e incerteza

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

Exemplo de chamada

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

JSON Schema

Parte do pacote offlineGET/offline-pack/shards/{id}idbytes

Status HTTP

200 · 404 · 503

Códigos de motivo de erro

—

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

id · digest

Fonte e incerteza

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

Exemplo de chamada

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

JSON Schema

Registros e políticaso que mudamos e por quê6
Registro de correçõesGET/correctionsformat=json|csvJSON · CSV

Status HTTP

200 · 400

Códigos de motivo de erro

unsupported_format 400

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

records.id · records.revision

Fonte e incerteza

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

Exemplo de chamada

GET /api/public/v1/corrections

JSON Schema

Registro de políticasGET/policy-register—JSON

Status HTTP

200

Códigos de motivo de erro

—

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

records.id · records.revision

Fonte e incerteza

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

Exemplo de chamada

GET /api/public/v1/policy-register

JSON Schema

Garantia de acessibilidadeGET/accessibility-assurance—JSON

Status HTTP

200

Códigos de motivo de erro

—

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

evidence.id · remediationLog.id

Fonte e incerteza

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

Exemplo de chamada

GET /api/public/v1/accessibility-assurance

JSON Schema

Cobertura regional e atualidade dos dadosGET/regional-coverage—JSON

Status HTTP

200 · 503

Códigos de motivo de erro

—

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

operators.operatorId

Fonte e incerteza

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

Exemplo de chamada

GET /api/public/v1/regional-coverage

JSON Schema

Canais de aviso e de ajudaGET/journey-service-policy—JSON

Status HTTP

200

Códigos de motivo de erro

—

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

contractVersion · channels.channel

Fonte e incerteza

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

Exemplo de chamada

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

JSON Schema

Verificação da apresentação do veículoGET/fleet-presentation—JSON

Status HTTP

200 · 503

Códigos de motivo de erro

—

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

evidence.operatorSamples.operatorId

Fonte e incerteza

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

Exemplo de chamada

GET /api/public/v1/fleet-presentation

JSON Schema

Compartilhamentolinks e cartões de redes sociais3
Criar um link de compartilhamentoPOST/share-snapshotsbodyJSON

Status HTTP

200 · 400 · 404 · 409 · 503

Códigos de motivo de erro

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

Acesso e limite de uso

Anônimo, origem confiável obrigatória; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

snapshotId · revision

Fonte e incerteza

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

Exemplo de chamada

POST /api/public/v1/share-snapshots

JSON Schema

Status do link de compartilhamentoGET/share-snapshots/{snapshotId}snapshotIdJSON

Status HTTP

200 · 400 · 404 · 410 · 503

Códigos de motivo de erro

—

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

snapshotId · revision

Fonte e incerteza

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

Exemplo de chamada

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

JSON Schema

Cartão social do link de compartilhamentoGET/share-snapshots/{snapshotId}/opengraphsnapshotIdPNG

Status HTTP

200 · 400 · 404 · 503

Códigos de motivo de erro

invalid_identifier 400 · not_found 404 · temporarily_unavailable 503

Acesso e limite de uso

Acesso anônimo; 60 por minuto quando o limite de taxa distribuído está ativado.

Identificadores estáveis

snapshotId · revision

Fonte e incerteza

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

Exemplo de chamada

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

JSON Schema

Acesso e uso

Acesso e usoLimits, caching, versions, privacy and licence
Acesso
Every GET resource is public and free to use, with or without a key. Bulk and history resources need a Developer key. The two POST resources (making a share link, drawing a street path) only accept requests from otranspo.ca itself.
Limite de uso
1,000 calls a day and 60 a minute, with or without a free key; 100,000 a day and 600 a minute on the Developer plan. Read the X-RateLimit-* headers on every answer; X-RateLimit-Status says when limits are degraded.
Keys
Send a key as Authorization: Bearer otr_… or X-API-Key. Never in the address. A wrong, revoked or expired key gets 401, never a keyless answer.
Cache
The index is kept 30 seconds by your browser and 5 minutes at the edge. Live resources such as cancellations are sent no-store. Offline timetable pieces never change once published.
Versões
Cada resposta indica seu schema e schemaVersion. Uma mudança incompatível recebe um novo caminho /v2, com aviso prévio de 180 dias nos cabeçalhos Deprecation, Sunset e Link.
Privacidade
Não envie dados pessoais. As coordenadas enviadas ao caminho de ruas são usadas somente para aquele pedido. Nunca são registradas nem guardadas. As respostas nunca contêm IDs de conta, buscas de trajeto, e-mails, endereços de rede ou links internos de dados probantes.
Desconhecido não é zero
Uma resposta pode estar indisponível mesmo quando o recurso existe. Leia status, evidenceState, horários da fonte, cobertura e limitações. Os estados das linhas comparam o horário programado com os ônibus vistos. Eles não são alertas do operador.
Licença
Código: MIT. Os dados da OC Transpo e da STO seguem os próprios termos de dados abertos e exigem crédito. Nossos números: CC BY 4.0, crédito otranspo.ca.
Ainda não feito
No SDK is published, no second city is supported, and partner tenant-key access is not open. This page does not claim them.
Dados e downloadsOs mesmos números em arquivos CSV e JSON, com a forma de citá-los.