From 5fcb6603578290c41d0628c3c3b402153e225408 Mon Sep 17 00:00:00 2001 From: Adel Mohamed Date: Sun, 29 Mar 2026 22:31:27 +0200 Subject: [PATCH 1/3] docs: add arrivals-and-departures-for-location method page and sample response --- .../arrivals-and-departures-for-location.json | 121 ++++++++++++++++++ .../arrivals-and-departures-for-location.md | 30 +++++ 2 files changed, 151 insertions(+) create mode 100644 src/api/example_responses/arrivals-and-departures-for-location.json create mode 100644 src/api/where/methods/arrivals-and-departures-for-location.md diff --git a/src/api/example_responses/arrivals-and-departures-for-location.json b/src/api/example_responses/arrivals-and-departures-for-location.json new file mode 100644 index 0000000..877d69f --- /dev/null +++ b/src/api/example_responses/arrivals-and-departures-for-location.json @@ -0,0 +1,121 @@ +{ + "version": 2, + "code": 200, + "text": "OK", + "currentTime": 1270614730908, + "data": { + "references": { + "agencies": [ + { + "id": "1", + "name": "Metro Transit", + "url": "http://metro.kingcounty.gov", + "timezone": "America/Los_Angeles", + "lang": "en", + "phone": "(206) 553-3000", + "fareUrl": "http://metro.kingcounty.gov/tops/fares/fare-tickets.htm" + } + ], + "routes": [ + { + "id": "1_10", + "shortName": "10", + "longName": "Downtown to U District", + "description": "", + "type": 3, + "url": "http://metro.kingcounty.gov/schedules/010.pdf", + "agencyId": "1", + "color": "003399" + } + ], + "stops": [ + { + "id": "1_75403", + "lat": 47.653, + "lon": -122.307, + "name": "University Way NE & NE 45th St", + "code": "75403", + "locationType": 0, + "wheelchairBoarding": 1, + "routeIds": ["1_10", "1_49", "1_65"] + } + ], + "trips": [ + { + "id": "1_12345", + "routeId": "1_10", + "serviceId": "1_Weekday", + "tripHeadsign": "U District", + "tripShortName": "", + "directionId": 0, + "blockId": "1_100", + "shapeId": "1_10_0", + "wheelchairAccessible": 1 + } + ], + "situations": [] + }, + "entry": { + "class": "stopsWithArrivalsAndDepartures", + "stopIds": ["1_75403"], + "arrivalsAndDepartures": [ + { + "tripId": "1_12345", + "serviceDate": 1270614730000, + "vehicleId": "1_4001", + "stopId": "1_75403", + "stopSequence": 15, + "blockTripSequence": 0, + "totalStopsInTrip": 30, + "routeId": "1_10", + "routeShortName": "10", + "routeLongName": "Downtown to U District", + "tripHeadsign": "U District", + "arrivalEnabled": true, + "departureEnabled": true, + "scheduledArrivalTime": 1270614730000, + "scheduledDepartureTime": 1270614730000, + "predictedArrivalTime": 1270614750000, + "predictedDepartureTime": 1270614750000, + "predicted": true, + "distanceFromStop": 150.5, + "numberOfStopsAway": 2, + "historicalOccupancy": 0, + "occupancyStatus": null, + "status": "default", + "tripStatus": { + "activeTripId": "1_12345", + "blockId": "1_100", + "closestStop": "1_75402", + "closestStopTimeOffset": 30, + "distanceAlongBlock": 5000.0, + "lastUpdateTime": 1270614720000, + "nextStop": "1_75403", + "nextStopTimeOffset": 60, + "orientation": 45.0, + "phase": "IN_PROGRESS", + "position": { + "lat": 47.6525, + "lon": -122.3065 + }, + "predicted": true, + "scheduleDeviation": 120, + "serviceDate": 1270614730000, + "situationIds": [], + "totalDistanceAlongBlock": 10000.0, + "vehicleId": "1_4001" + }, + "situationIds": [] + } + ], + "nearbyStopIds": [ + { + "stopId": "1_75414", + "distanceFromQuery": 63.30975615515593 + } + ], + "situationIds": [], + "limitExceeded": false + } + } +} diff --git a/src/api/where/methods/arrivals-and-departures-for-location.md b/src/api/where/methods/arrivals-and-departures-for-location.md new file mode 100644 index 0000000..9c81325 --- /dev/null +++ b/src/api/where/methods/arrivals-and-departures-for-location.md @@ -0,0 +1,30 @@ +--- +layout: rest_api +title: arrivals-and-departures-for-location Method +description: Get current arrivals and departures for a given location +sample_request_url: https://api.pugetsound.onebusaway.org/api/where/arrivals-and-departures-for-location.json?key=TEST&lat=47.653&lon=-122.307&radius=100 +example_response_file: arrivals-and-departures-for-location.json +--- + +Get current arrivals and departures for stops identified by a specific location (using a bounding box or a radius). + +## Request Parameters + +* **lat** (Required) - The latitude coordinate of the search center. +* **lon** (Required) - The longitude coordinate of the search center. +* **radius** (Optional) - The search radius in meters. +* **latSpan / lonSpan** (Optional) - Set the limits of the search bounding box. Used as an alternative to `radius`. +* **time** (Optional) - By default, the method returns the status of the system right now. However, the system can also be queried at a specific time (in milliseconds since the Unix epoch). This can be useful for testing. +* **minutesBefore** (Optional) - Include arrivals and departures this many minutes before the query time. Defaults to 5. +* **minutesAfter** (Optional) - Include arrivals and departures this many minutes after the query time. Defaults to 35. +* **maxCount** (Optional) - The maximum size of the list of nearby stops and arrivals to return. Defaults to 250, can be up to 1000. +* **routeType** (Optional) - A comma-delimited list of GTFS routeTypes to filter by. +* **emptyReturnsNotFound** (Optional) - A boolean flag. If set to `true`, the API will return a `404 Not Found` error instead of a `200 OK` with an empty result when no stops or arrivals are found in the specified location. + +## Response + +The response contains a list of `arrivalsAndDepartures` matching the specified location parameters. + +The `nearbyStopIds` list is designed to capture stops that are very close by (like across the street) for quick navigation. This is sorted by distance and truncated to `maxCount`. + +Trips will not show up in the results if their schedule relationship is skipped or if there is no active service for the given time window. From d0f4e9157f8ef2c5466bc2d17290861a71cd306e Mon Sep 17 00:00:00 2001 From: Adel Mohamed Date: Sun, 29 Mar 2026 22:31:49 +0200 Subject: [PATCH 2/3] chore: register arrivals-and-departures-for-location in nav data --- src/_data/rest_api.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/_data/rest_api.json b/src/_data/rest_api.json index 872c0eb..75dc407 100644 --- a/src/_data/rest_api.json +++ b/src/_data/rest_api.json @@ -12,6 +12,10 @@ "description": "details about a specific arrival/departure at a stop" }, + "arrivals-and-departures-for-location": { + "description": "get current arrivals and departures near a location" + }, + "arrivals-and-departures-for-stop": { "description": "get current arrivals and departures for a stop" }, From 7720c058e86300545a8e5bdc64b874387dd1c643 Mon Sep 17 00:00:00 2001 From: Adel Mohamed Date: Sun, 29 Mar 2026 22:32:07 +0200 Subject: [PATCH 3/3] docs: link arrivalAndDeparture element to location endpoint --- src/api/where/elements/arrival-and-departure.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/api/where/elements/arrival-and-departure.md b/src/api/where/elements/arrival-and-departure.md index 33c02a4..0257f70 100644 --- a/src/api/where/elements/arrival-and-departure.md +++ b/src/api/where/elements/arrival-and-departure.md @@ -7,6 +7,7 @@ The `` element captures information about the arrival and * [arrivals-and-departures-for-stop](/api/where/methods/arrivals-and-departures-for-stop) * [arrival-and-departure-for-stop](/api/where/methods/arrival-and-departure-for-stop) +* [arrivals-and-departures-for-location](/api/where/methods/arrivals-and-departures-for-location) ## Example