Sound Transit Stops API

Stop locations and schedules

Operations 4

GET /stop/{id}.json Get Stop #
GET /stops-for-location.json List Stops For Location #
GET /stops-for-route/{id}.json List Stops For Route #
GET /schedule-for-stop/{id}.json Get Schedule For Stop #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/sound-transit-stops-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

sound-transit-stops-api-openapi.yml Raw ↑
openapi: 3.2.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:
    StopsResponse:
      allOf:
      - $ref: '#/components/schemas/BaseResponse'
      - type: object
        properties:
          data:
            type: object
            properties:
              list:
                type: array
                items:
                  $ref: '#/components/schemas/Stop'
    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
    StopScheduleResponse:
      allOf:
      - $ref: '#/components/schemas/BaseResponse'
      - type: object
        properties:
          data:
            type: object
            properties:
              entry:
                type: object
    StopResponse:
      allOf:
      - $ref: '#/components/schemas/BaseResponse'
      - type: object
        properties:
          data:
            type: object
            properties:
              entry:
                $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
    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
  parameters:
    ApiKey:
      name: key
      in: query
      required: true
      description: API key obtained from Sound Transit (contact oba_api_key@soundtransit.org)
      schema:
        type: string