본문으로 건너뛰기

문제 신고

이 페이지는 특정 정류장, 노선, 역, 차량에 대한 것이 아니에요. 하나를 열면 신고에 그 이름이 들어가요. 또는 전체 신고를 이용하세요.

무슨 일이 있었나요
전체 신고 내용 계정이 필요 없어요
데이터 및 근거 자료
  1. 읽을거리
  2. 데이터 및 근거 자료
  3. 개발자 API

이 사이트의 모든 수치는 무료 JSON 호출 한 번으로 받을 수 있어요.개발자 API

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.

기본 주소 https://otranspo.ca/api/public/v1

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

이용

Free

key optional

요청 한도

1,000 a day

60 a minute; more on Developer

코드 라이선스

MIT

데이터는 출처의 이용 조건을 그대로 따릅니다

버전

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

한계

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.

처음부터 끝까지 한 번의 호출

요청

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

이 응답은 이 사이트에서 가져온 실제 응답이며, 요청하실 때 바로 불러옵니다.

응답 (요약) 스키마

실행 중…

모든 리소스, 39개

경로는 전체 주소로 적지 않은 한 /api/public/v1 로 시작해요. 행을 열면 HTTP 상태, 오류 코드, 접근 방법, 불확실성, 스키마를 볼 수 있어요.

목록과 규약여기서 시작2
API 목차GET/api/public/v1—JSON

HTTP 상태

200

오류 사유 코드

—

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

endpoints.id · endpoints.path

출처와 불확실성

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

호출 예시

GET /api/public/v1

JSON 데이터 구조 규격

OpenAPI 3.1 규격GET/openapi.json—JSON

HTTP 상태

200

오류 사유 코드

—

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

operationId · path

출처와 불확실성

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

호출 예시

GET /api/public/v1/openapi.json

JSON 데이터 구조 규격

현재 운행지금 이 순간의 상황5
지금 게시된 운행 취소GET/current-cancellations—JSON

HTTP 상태

200 · 400 · 503

오류 사유 코드

unsupported_query 400 · current_cancellations_unavailable 503

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

trips.tripId · trips.routeId

출처와 불확실성

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.

호출 예시

GET /api/public/v1/current-cancellations

JSON 데이터 구조 규격

노선 상태: 예정 대 확인GET/route-states—JSON

HTTP 상태

200 · 503

오류 사유 코드

—

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

operatorId · routeId

출처와 불확실성

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

호출 예시

GET /api/public/v1/route-states

JSON 데이터 구조 규격

사건 및 사고 정보 (영어와 프랑스어)GET/incidents—JSON

HTTP 상태

200 · 503

오류 사유 코드

—

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

publicId · slug · updates.id

출처와 불확실성

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

호출 예시

GET /api/public/v1/incidents

JSON 데이터 구조 규격

공식 서비스 알림 한 건GET/alerts/{alertId}format=json|csv · alertIdJSON · CSV

HTTP 상태

200 · 400 · 503

오류 사유 코드

invalid_alert_id 400 · unsupported_format 400 · alert_not_found 400 · alert_unavailable 503

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

alert.id · alert.operatorId

출처와 불확실성

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.

호출 예시

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

JSON 데이터 구조 규격

정류장 안내판GET/stations/{stationId}format=json|csv · stationIdJSON

HTTP 상태

200 · 400 · 404 · 503

오류 사유 코드

invalid_station_id 400 · unsupported_format 400 · station_not_found 404 · station_board_unavailable 503

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

station.id · lines.routeRecordId · departures.tripId

출처와 불확실성

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

호출 예시

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

JSON 데이터 구조 규격

데이터와 신고모든 페이지의 바탕이 되는 수치11
신뢰도 근거 자료GET/reliability-evidenceformat=json|csvJSON · CSV

HTTP 상태

200 · 400 · 503

오류 사유 코드

unsupported_format 400

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

routeId · window

출처와 불확실성

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

호출 예시

GET /api/public/v1/reliability-evidence

JSON 데이터 구조 규격

노선 데이터GET/routes/{routeId}/evidenceformat=json|csv · routeIdJSON

HTTP 상태

200 · 400 · 404 · 503

오류 사유 코드

invalid_route_id 400 · unsupported_format 400 · route_not_found 404 · route_evidence_unavailable 503

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

route.routeId

출처와 불확실성

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

호출 예시

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

JSON 데이터 구조 규격

Route 7 evidence on the site

요일별 노선 운행GET/routes/{routeId}/service-evidencewindow=day|week|month|28d · date · format=json|csv · routeIdJSON

HTTP 상태

200 · 400 · 404 · 503

오류 사유 코드

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

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

routeId · window

출처와 불확실성

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

호출 예시

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

JSON 데이터 구조 규격

역 또는 선거구 서비스GET/places/{kind}/{placeId}/service-evidencedate · kind=station|ward · placeIdJSON

HTTP 상태

200 · 400 · 503

오류 사유 코드

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

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

kind · placeId · operatorId

출처와 불확실성

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

호출 예시

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

JSON 데이터 구조 규격

근거 기록 다운로드GET/evidence/{evidenceId}format=json|csv · evidenceIdJSON · CSV

HTTP 상태

200 · 400 · 404

오류 사유 코드

unsupported_format 400 · not_found 404

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

evidenceId

출처와 불확실성

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

호출 예시

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

JSON 데이터 구조 규격

선거구 성적표GET/ward-scorecardsformat=json|csvJSON · CSV

HTTP 상태

200 · 503

오류 사유 코드

—

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

snapshotId · wardId

출처와 불확실성

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

호출 예시

GET /api/public/v1/ward-scorecards

JSON 데이터 구조 규격

지난 성적표 판GET/historical-scorecardssnapshotId=historical-scorecards:<sha256> · routeIdJSON

HTTP 상태

200 · 400 · 404 · 422

오류 사유 코드

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

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

snapshotId · routeId

출처와 불확실성

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

호출 예시

GET /api/public/v1/historical-scorecards

JSON 데이터 구조 규격

서비스 신고 보관함GET/service-report-archivekindJSON

HTTP 상태

200 · 400 · 503

오류 사유 코드

invalid_archive_query 400 · archive_unavailable 503

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

kind · period

출처와 불확실성

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

호출 예시

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

JSON 데이터 구조 규격

예측 정확도GET/prediction-calibration—JSON

HTTP 상태

200 · 503

오류 사유 코드

—

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

operatorId · routeId · routeContext · horizonBucket

출처와 불확실성

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

호출 예시

GET /api/public/v1/prediction-calibration

JSON 데이터 구조 규격

선택한 서비스 신고GET/api/insights/reports/selected?period={period}&date={YYYY-MM-DD}period=day|week|month · date=YYYY-MM-DD · operator=all|oc_transpo|sto · routeJSON

HTTP 상태

200 · 400 · 503

오류 사유 코드

invalid_selection 400 · selected_report_unavailable 503 · invalid_route_hour_selection 400 · route_hours_unavailable 503

접근 및 요청 한도

익명입니다. 이 경로에는 공개 API 한도가 설정되어 있지 않습니다.

고정 식별자

period · date · operator · method

출처와 불확실성

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.

호출 예시

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

JSON 데이터 구조 규격

예측 비교 입력 자료GET/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

HTTP 상태

200 · 400 · 503

오류 사유 코드

invalid_comparison_evidence_selection 400

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

payload.edition · payload.selection · checksum.value

출처와 불확실성

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.

호출 예시

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

JSON 데이터 구조 규격

기록과 다시 보기이미 일어난 일6
과거의 운행 취소와 누락GET/historical-cancellationswindow=day|week|28d|month · date · assessment=noneJSON

HTTP 상태

200 · 400 · 503

오류 사유 코드

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

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

period · records.tripId

출처와 불확실성

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

호출 예시

GET /api/public/v1/historical-cancellations

JSON 데이터 구조 규격

도시 다시보기GET/replaydate · routeFamily · operator · fromMinute · minutes · summaryJSON

HTTP 상태

200 · 400 · 503

오류 사유 코드

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

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

date · routeFamily · operator

출처와 불확실성

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

호출 예시

GET /api/public/v1/replay

JSON 데이터 구조 규격

관측된 차량, 일별GET/fleet-historydate · operator=all|oc_transpo|sto · route · feedIdJSON

HTTP 상태

200 · 400 · 503

오류 사유 코드

invalid_fleet_history_lookup 400 · invalid_fleet_history_date 400 · invalid_fleet_history_operator 400 · fleet_history_unavailable 503

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

serviceDate · operator · route

출처와 불확실성

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

호출 예시

GET /api/public/v1/fleet-history

JSON 데이터 구조 규격

차량 ID 피드, 일별GET/fleet-history/feed-idsdate · operator=all|oc_transpo|sto · cursorJSON

HTTP 상태

200 · 400 · 503

오류 사유 코드

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

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

date · operator · digest · collisionOrdinal

출처와 불확실성

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

호출 예시

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

JSON 데이터 구조 규격

시간에 따른 차량 ID 하나GET/vehicles/{vehicleId}/visibility-historyformat=json|csv · vehicleIdJSON

HTTP 상태

200 · 400 · 404 · 503

오류 사유 코드

invalid_vehicle_id 400 · unsupported_format 400 · vehicle_history_unavailable 503 · vehicle_history_not_found 404

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

vehicleId

출처와 불확실성

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

호출 예시

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

JSON 데이터 구조 규격

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

HTTP 상태

200 · 400 · 401 · 403 · 429 · 503

오류 사유 코드

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

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

serviceDate · operator · route

출처와 불확실성

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.

호출 예시

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

JSON 데이터 구조 규격

시간표와 오프라인공개된 시간표6
노선 하나의 시간표GET/transit-planning/{routeId}date · routeIdJSON

HTTP 상태

200 · 400 · 503

오류 사유 코드

invalid_route_or_date 400 · use_history_for_past_dates 400 · planning_baseline_unavailable 503

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

routeId · serviceDate

출처와 불확실성

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

호출 예시

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

JSON 데이터 구조 규격

전체 노선망 시간표GET/transit-planning/networkdateJSON

HTTP 상태

200 · 400 · 503

오류 사유 코드

invalid_parameters 400 · invalid_service_date 400 · network_baseline_unavailable 503

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

serviceDate

출처와 불확실성

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

호출 예시

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

JSON 데이터 구조 규격

두 지점 사이의 도로 경로POST/transit-planning/street-pathbodyJSON

HTTP 상태

200 · 400 · 503

오류 사유 코드

invalid_body 400 · invalid_segment 400

접근 및 요청 한도

익명 요청은 신뢰할 수 있는 출처가 필요합니다. 분산 요청 제한이 켜져 있으면 분당 60회입니다.

고정 식별자

from · to

출처와 불확실성

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

호출 예시

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

JSON 데이터 구조 규격

오프라인 시간표 묶음GET/offline-pack—JSON

HTTP 상태

200 · 503

오류 사유 코드

offline_pack_not_published 503 · offline_pack_unavailable 503

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

packId · digest

출처와 불확실성

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

호출 예시

GET /api/public/v1/offline-pack

JSON 데이터 구조 규격

오프라인 팩 목록GET/offline-pack/manifestpackJSON

HTTP 상태

200 · 404 · 503

오류 사유 코드

—

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

packId · shards.id

출처와 불확실성

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

호출 예시

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

JSON 데이터 구조 규격

오프라인 팩 조각GET/offline-pack/shards/{id}idbytes

HTTP 상태

200 · 404 · 503

오류 사유 코드

—

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

id · digest

출처와 불확실성

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

호출 예시

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

JSON 데이터 구조 규격

등록부와 정책무엇을 왜 바꿨는지6
정정 대장GET/correctionsformat=json|csvJSON · CSV

HTTP 상태

200 · 400

오류 사유 코드

unsupported_format 400

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

records.id · records.revision

출처와 불확실성

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

호출 예시

GET /api/public/v1/corrections

JSON 데이터 구조 규격

정책 목록GET/policy-register—JSON

HTTP 상태

200

오류 사유 코드

—

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

records.id · records.revision

출처와 불확실성

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

호출 예시

GET /api/public/v1/policy-register

JSON 데이터 구조 규격

접근성 보증GET/accessibility-assurance—JSON

HTTP 상태

200

오류 사유 코드

—

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

evidence.id · remediationLog.id

출처와 불확실성

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

호출 예시

GET /api/public/v1/accessibility-assurance

JSON 데이터 구조 규격

지역 범위와 데이터 최신성GET/regional-coverage—JSON

HTTP 상태

200 · 503

오류 사유 코드

—

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

operators.operatorId

출처와 불확실성

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

호출 예시

GET /api/public/v1/regional-coverage

JSON 데이터 구조 규격

알림 및 도움 채널GET/journey-service-policy—JSON

HTTP 상태

200

오류 사유 코드

—

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

contractVersion · channels.channel

출처와 불확실성

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

호출 예시

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

JSON 데이터 구조 규격

차량 표시 점검GET/fleet-presentation—JSON

HTTP 상태

200 · 503

오류 사유 코드

—

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

evidence.operatorSamples.operatorId

출처와 불확실성

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

호출 예시

GET /api/public/v1/fleet-presentation

JSON 데이터 구조 규격

공유링크와 소셜 카드3
공유 링크 만들기POST/share-snapshotsbodyJSON

HTTP 상태

200 · 400 · 404 · 409 · 503

오류 사유 코드

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

접근 및 요청 한도

익명 요청은 신뢰할 수 있는 출처가 필요합니다. 분산 요청 제한이 켜져 있으면 분당 60회입니다.

고정 식별자

snapshotId · revision

출처와 불확실성

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

호출 예시

POST /api/public/v1/share-snapshots

JSON 데이터 구조 규격

공유 링크 상태GET/share-snapshots/{snapshotId}snapshotIdJSON

HTTP 상태

200 · 400 · 404 · 410 · 503

오류 사유 코드

—

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

snapshotId · revision

출처와 불확실성

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

호출 예시

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

JSON 데이터 구조 규격

공유 링크 소셜 카드GET/share-snapshots/{snapshotId}/opengraphsnapshotIdPNG

HTTP 상태

200 · 400 · 404 · 503

오류 사유 코드

invalid_identifier 400 · not_found 404 · temporarily_unavailable 503

접근 및 요청 한도

익명 접근. 분산 요청 제한이 켜져 있으면 분당 60건입니다.

고정 식별자

snapshotId · revision

출처와 불확실성

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

호출 예시

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

JSON 데이터 구조 규격

접근 및 이용

접근 및 이용Limits, caching, versions, privacy and licence
이용
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.
요청 한도
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.
캐시
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.
버전
모든 응답에는 schema와 schemaVersion이 표시됩니다. 호환되지 않는 변경은 새 /v2 경로로 제공합니다. 이때 Deprecation, Sunset, Link 헤더로 180일 전에 알립니다.
개인정보 보호
개인 정보를 보내지 마세요. 거리 경로 요청에 보낸 좌표는 해당 요청에만 사용하며, 기록하거나 저장하지 않습니다. 응답에는 계정 ID, 경로 검색 기록, 이메일, 네트워크 주소, 내부 증거 링크가 포함되지 않습니다.
알 수 없음은 영이 아닙니다
리소스가 있어도 응답이 '이용 불가'일 수 있어요. status, evidenceState, 출처 시각, 적용 범위, 한계를 확인하세요. 노선 상태는 시간표와 실제로 관측된 버스를 비교한 결과예요. 운영 기관의 서비스 알림이 아니에요.
라이선스
코드: MIT. OC Transpo와 STO 데이터는 각자의 공개 데이터 약관을 따르며 출처 표기가 필요해요. 저희 수치: CC BY 4.0, 출처 표기 otranspo.ca.
아직 안 됨
No SDK is published, no second city is supported, and partner tenant-key access is not open. This page does not claim them.
데이터 및 다운로드같은 수치를 CSV와 JSON 파일로 제공합니다. 인용 방법도 함께 안내합니다.