OpenAPI Specification
openapi: 3.0.0
info:
title: Sound Transit OneBusAway Agencies Stops API
description: The Sound Transit OneBusAway API provides access to real-time and scheduled transit data for the Puget Sound region including routes, stops, arrivals, departures, and vehicle positions. Supports real-time data for the 1 Line, 2 Line, T Line, and ST Express bus routes.
version: '2.0'
contact:
name: Sound Transit Open Transit Data
email: open_transit_data@soundtransit.org
url: https://www.soundtransit.org/help-contacts/business-information/open-transit-data-otd
license:
name: Open Data
url: https://www.soundtransit.org/help-contacts/business-information/open-transit-data-otd/transit-data-terms-use
servers:
- url: https://api.pugetsound.onebusaway.org/api/where
description: Puget Sound OneBusAway API
tags:
- name: Stops
description: Stop locations and schedules
paths:
/stop/{id}.json:
get:
operationId: getStop
summary: Get Stop
description: Retrieve details for a specific transit stop.
tags:
- Stops
parameters:
- name: id
in: path
required: true
description: Unique stop identifier
schema:
type: string
- $ref: '#/components/parameters/ApiKey'
responses:
'200':
description: Stop details
content:
application/json:
schema:
$ref: '#/components/schemas/StopResponse'
'404':
description: Stop not found
/stops-for-location.json:
get:
operationId: listStopsForLocation
summary: List Stops For Location
description: Search for transit stops near a geographic location.
tags:
- Stops
parameters:
- name: lat
in: query
required: true
description: Latitude of the search location
schema:
type: number
format: float
- name: lon
in: query
required: true
description: Longitude of the search location
schema:
type: number
format: float
- name: radius
in: query
required: false
description: Search radius in meters (default 500)
schema:
type: integer
default: 500
- name: query
in: query
required: false
description: Stop code or name search query
schema:
type: string
- $ref: '#/components/parameters/ApiKey'
responses:
'200':
description: List of stops near the location
content:
application/json:
schema:
$ref: '#/components/schemas/StopsResponse'
/stops-for-route/{id}.json:
get:
operationId: listStopsForRoute
summary: List Stops For Route
description: Get all stops and travel paths for a specific route.
tags:
- Stops
parameters:
- name: id
in: path
required: true
description: Route identifier
schema:
type: string
- $ref: '#/components/parameters/ApiKey'
responses:
'200':
description: Stops and paths for the route
content:
application/json:
schema:
$ref: '#/components/schemas/StopsForRouteResponse'
/schedule-for-stop/{id}.json:
get:
operationId: getScheduleForStop
summary: Get Schedule For Stop
description: Get the full schedule for a stop on a particular day.
tags:
- Stops
parameters:
- name: id
in: path
required: true
description: Stop identifier
schema:
type: string
- name: date
in: query
required: false
description: Service date in YYYY-MM-DD format (default today)
schema:
type: string
format: date
- $ref: '#/components/parameters/ApiKey'
responses:
'200':
description: Full schedule for the stop
content:
application/json:
schema:
$ref: '#/components/schemas/StopScheduleResponse'
components:
schemas:
StopResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
properties:
data:
type: object
properties:
entry:
$ref: '#/components/schemas/Stop'
StopsForRouteResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
properties:
data:
type: object
properties:
entry:
type: object
properties:
routeId:
type: string
stopIds:
type: array
items:
type: string
polylines:
type: array
items:
type: object
StopScheduleResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
properties:
data:
type: object
properties:
entry:
type: object
StopsResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
properties:
data:
type: object
properties:
list:
type: array
items:
$ref: '#/components/schemas/Stop'
Stop:
type: object
properties:
id:
type: string
lat:
type: number
format: float
lon:
type: number
format: float
direction:
type: string
name:
type: string
code:
type: string
locationType:
type: integer
routeIds:
type: array
items:
type: string
wheelchairBoarding:
type: string
BaseResponse:
type: object
properties:
code:
type: integer
description: HTTP status code
currentTime:
type: integer
format: int64
description: Current server time in milliseconds
text:
type: string
description: Human-readable status message
version:
type: integer
description: API version
parameters:
ApiKey:
name: key
in: query
required: true
description: API key obtained from Sound Transit (contact oba_api_key@soundtransit.org)
schema:
type: string