Departures
Get live and scheduled bus departures for a specific stop.
GET/v1/departures
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| stop | string | Required | TfNSW 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. |
| limit | integer | Optional | Max bus departures to return. Default: 10, Max: 50. Applied after filtering to buses only. |
| routes | string | Optional | Comma-separated route filter e.g. 431,X31,N10 |
| date | string | Optional | Future date in YYYYMMDD format e.g. 20260410. Defaults to today. |
| time | string | Optional | Time 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) // 2Python
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
| Field | Type | Description |
|---|---|---|
| route | string | Route number (e.g. "N10", "422") |
| destination | string | Final stop name |
| scheduled_at | string | Scheduled departure time (UTC ISO 8601) |
| realtime_at | string | null | Estimated real-time departure (null if no live data) |
| minutes_away | integer | Minutes until departure (uses realtime if available) |
| is_live | boolean | Whether real-time tracking data is available |
| wheelchair_accessible | boolean | Whether the vehicle is wheelchair accessible |
| occupancy | string | null | MANY_SEATS, FEW_SEATS, STANDING_ONLY, or null |
| alerts | string[] | Plain-text disruption alerts (empty array if none) |