Departures

Get live and scheduled bus departures for a specific stop.

GET/v1/departures

Parameters

ParameterTypeRequiredDescription
stopstringRequiredTfNSW stop ID. Use numeric format e.g. 204210 (Newtown), 200060 (Central), 200020 (Circular Quay), 202210 (Bondi Junction). G-prefix street stops also work e.g. G200059.
limitintegerOptionalMax bus departures to return. Default: 10, Max: 50. Applied after filtering to buses only.
routesstringOptionalComma-separated route filter e.g. 431,X31,N10
datestringOptionalFuture date in YYYYMMDD format e.g. 20260410. Defaults to today.
timestringOptionalTime in HHmm 24-hour UTC format e.g. 2200 for 10pm UTC. Defaults to now.

Examples

cURL
curl "https://api.transitkit.dev/v1/departures?stop=200060&limit=5" \
  -H "Authorization: Bearer YOUR_API_KEY"
JavaScript
const res = await fetch(
  'https://api.transitkit.dev/v1/departures?stop=200060',
  {
    headers: {
      'Authorization': `Bearer ${process.env.TRANSITKIT_API_KEY}`
    }
  }
)
const data = await res.json()
console.log(data.departures[0].minutes_away) // 2
Python
import requests

response = requests.get(
  'https://api.transitkit.dev/v1/departures',
  params={'stop': '200060', 'limit': 5},
  headers={'Authorization': f'Bearer {API_KEY}'}
)
departures = response.json()['departures']

Response

200 OK
{
  "stop_id": "204210",
  "stop_name": "Newtown Station, King St, Stand B",
  "retrieved_at": "2026-04-03T16:53:00Z",
  "departures": [
    {
      "route": "N10",
      "destination": "Town Hall Station",
      "scheduled_at": "2026-04-03T16:59:00Z",
      "realtime_at": "2026-04-03T17:05:24Z",
      "minutes_away": 6,
      "is_live": true,
      "wheelchair_accessible": true,
      "occupancy": "MANY_SEATS",
      "alerts": []
    },
    {
      "route": "422",
      "destination": "Strathfield Station",
      "scheduled_at": "2026-04-03T17:04:00Z",
      "realtime_at": null,
      "minutes_away": 11,
      "is_live": false,
      "wheelchair_accessible": true,
      "occupancy": null,
      "alerts": [
        "Some buses run to a changed timetable"
      ]
    }
  ]
}

Response Fields

FieldTypeDescription
routestringRoute number (e.g. "N10", "422")
destinationstringFinal stop name
scheduled_atstringScheduled departure time (UTC ISO 8601)
realtime_atstring | nullEstimated real-time departure (null if no live data)
minutes_awayintegerMinutes until departure (uses realtime if available)
is_livebooleanWhether real-time tracking data is available
wheelchair_accessiblebooleanWhether the vehicle is wheelchair accessible
occupancystring | nullMANY_SEATS, FEW_SEATS, STANDING_ONLY, or null
alertsstring[]Plain-text disruption alerts (empty array if none)