openapi: 3.0.0 info: title: Sound Transit OneBusAway Agencies Routes 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: Routes description: Route definitions and schedules paths: /route/{id}.json: get: operationId: getRoute summary: Get Route description: Retrieve details for a specific transit route. tags: - Routes parameters: - name: id in: path required: true description: Unique route identifier schema: type: string - $ref: '#/components/parameters/ApiKey' responses: '200': description: Route details content: application/json: schema: $ref: '#/components/schemas/RouteResponse' '404': description: Route not found /routes-for-agency/{id}.json: get: operationId: listRoutesForAgency summary: List Routes For Agency description: List all transit routes for a specific agency. tags: - Routes parameters: - name: id in: path required: true description: Agency identifier schema: type: string - $ref: '#/components/parameters/ApiKey' responses: '200': description: List of routes for the agency content: application/json: schema: $ref: '#/components/schemas/RoutesResponse' /routes-for-location.json: get: operationId: listRoutesForLocation summary: List Routes For Location description: Search for transit routes near a geographic location. tags: - Routes 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 schema: type: integer - name: query in: query required: false description: Route name search query schema: type: string - $ref: '#/components/parameters/ApiKey' responses: '200': description: List of routes near the location content: application/json: schema: $ref: '#/components/schemas/RoutesResponse' /shape/{id}.json: get: operationId: getShape summary: Get Shape description: Get polyline shape details for a route or trip. tags: - Routes parameters: - name: id in: path required: true description: Shape identifier schema: type: string - $ref: '#/components/parameters/ApiKey' responses: '200': description: Shape polyline data content: application/json: schema: $ref: '#/components/schemas/ShapeResponse' components: parameters: ApiKey: name: key in: query required: true description: API key obtained from Sound Transit (contact oba_api_key@soundtransit.org) schema: type: string schemas: RoutesResponse: allOf: - $ref: '#/components/schemas/BaseResponse' - type: object properties: data: type: object properties: list: type: array items: $ref: '#/components/schemas/Route' RouteResponse: allOf: - $ref: '#/components/schemas/BaseResponse' - type: object properties: data: type: object properties: entry: $ref: '#/components/schemas/Route' Route: type: object properties: id: type: string agencyId: type: string shortName: type: string longName: type: string description: type: string type: type: integer description: GTFS route type url: type: string format: uri color: type: string textColor: type: string ShapeResponse: allOf: - $ref: '#/components/schemas/BaseResponse' - type: object properties: data: type: object properties: entry: type: object properties: points: type: string description: Encoded polyline string length: type: integer 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