Find nearby stops for voice agents
For voice models and voice agents, this endpoint reduces response tokens and keeps spoken-answer tool calls focused. Return all candidate stops from /v1/stopsInRadius in a normalized compact response sorted by calculated distance from the requested point. routeFields and stopFields declare row order once; each stop uses routeRefs to reference globally deduplicated routes including their transport modes. Stop identifiers, coordinates, distances and route identifiers remain available for exact /v1/nextDepartures and /v1/line follow-ups. No stops or routes are truncated beyond an optional requested limit.
Voice-ready response: This JSON REST method uses a smaller positional representation so voice models spend fewer tokens on repeated fields and map-only data. It does not accept or process audio.
The standard endpoint returns the complete application and map-oriented response for the same capability.
View the standard endpoint →Response fields and units
| Field | Format / unit | Meaning |
|---|---|---|
routeFields + routes, stopFields + stops | columnar JSON | Each row uses the field order declared once by its matching Fields array |
regionName | string | Region to reuse with stopId in /compact/v1/nextDepartures |
stops[].stopId, countryIso | string | Stop identifiers for an exact follow-up departure request |
stops[].lat, lon, distanceMeters | WGS 84 decimal degrees and meters | Stop coordinates and calculated distance from the requested point |
stops[].routeRefs | array of indexes | Indexes into routes with routeId, countryIso, public-facing line name and transport mode |
imperial | boolean | Optional flag, present as true for US/UK |
Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
location | string | Yes | Coordinates for search in 'lat,lon' format | 59.9352,30.3258 |
radius | integer | Yes | Search radius in meters | 400 |
limit | integer | No | Optional maximum number of candidate stops before distance sorting | 100 |
lang | string | No | Language code for translated stop/route names (IETF BCP 47 format) | en |
Wheelchair accessibility
wheelchairBoarding: wheelchairBoarding describes a stop.
| Value | Meaning |
|---|---|
field absent | Unknown (GTFS value 0). |
1 | Accessible. |
2 | Not accessible. |
Try It Out
Required parameters only
curl -H "capi-key: Bearer YOUR_API_KEY" \
-H "capi-host: busmaps.com" \
"https://capi.busmaps.com:8443/compact/v1/stopsInRadius?location=59.9352,30.3258&radius=400" Common usage with optional parameters
curl -H "capi-key: Bearer YOUR_API_KEY" \
-H "capi-host: busmaps.com" \
"https://capi.busmaps.com:8443/compact/v1/stopsInRadius?location=59.9352,30.3258&radius=400&limit=100" Popular parameters
curl -H "capi-key: Bearer YOUR_API_KEY" \
-H "capi-host: busmaps.com" \
"https://capi.busmaps.com:8443/compact/v1/stopsInRadius?location=59.9352,30.3258&radius=400&limit=100&lang=en"Response Example
{
"regionName": "uk_ireland",
"routeFields": [
"routeId",
"countryIso",
"line",
"mode"
],
"routes": [
[
"3173742969-2726050097",
"GBR",
"Northern",
"subway"
],
[
"3565009689-2914759404",
"GBR",
"274",
"bus"
],
[
"3844823529-791433801",
"GBR",
"88",
"bus"
],
[
"3640576068-3262563337",
"GBR",
"134",
"bus"
],
[
"991798478-4207167598",
"GBR",
"214",
"bus"
],
[
"2229394747-887181106",
"GBR",
"N20",
"bus"
],
[
"2413739300-3746968418",
"GBR",
"1",
"bus"
],
[
"998520239-1621359431",
"GBR",
"24",
"bus"
],
[
"3874723842-767720165",
"GBR",
"27",
"bus"
],
[
"1027128312-612496406",
"GBR",
"31",
"bus"
],
[
"306911036-390623978",
"GBR",
"N27",
"bus"
],
[
"3822330147-1660613983",
"GBR",
"N28",
"bus"
],
[
"648198988-2314007172",
"GBR",
"N31",
"bus"
],
[
"2834791456-1653979818",
"GBR",
"N5",
"bus"
],
[
"656716379-1251475361",
"GBR",
"29",
"bus"
],
[
"95850258-4056063685",
"GBR",
"N253",
"bus"
],
[
"3941329450-1891682798",
"GBR",
"N279",
"bus"
],
[
"650442947-1984920687",
"GBR",
"N29",
"bus"
],
[
"1608615088-1727388828",
"GBR",
"253",
"bus"
],
[
"574288618-2198300056",
"GBR",
"46",
"bus"
]
],
"stopFields": [
"stopId",
"countryIso",
"name",
"mode",
"lat",
"lon",
"code",
"description",
"wheelchairBoarding",
"distanceMeters",
"routeRefs"
],
"stops": [
[
"12749834648374944315",
"GBR",
"Camden Town Underground Station",
"subway",
51.539258,
-0.142972,
null,
null,
2,
0,
[
0
]
],
[
"10276177494248870102",
"GBR",
"Camden Town Underground Station",
"subway",
51.539194,
-0.142888,
null,
null,
2,
9,
[
0
]
],
[
"17917404820047035856",
"GBR",
"Camden Town Underground Station",
"subway",
51.539295,
-0.142465,
null,
null,
2,
35,
[
0
]
],
[
"10222722856752225669",
"GBR",
"Camden Town Underground Station",
"subway",
51.539349,
-0.142478,
null,
null,
2,
36,
[
0
]
],
[
"11974292288902583902",
"GBR",
"Camden High Street Camden Town",
"bus",
51.538744,
-0.143454,
"74369",
"Stop CX",
null,
66,
[
1,
2
]
],
[
"806794109445716952",
"GBR",
"Kentish Town Road Camden Town",
"bus",
51.539948,
-0.142251,
"48681",
"Stop L",
null,
92,
[
3,
4,
2,
5
]
],
[
"4228658847846611542",
"GBR",
"Camden Town Station",
"bus",
51.53843,
-0.142342,
"74888",
"Stop X",
null,
102,
[
6,
7,
8,
9,
10,
11,
12,
13
]
],
[
"1626760138692631694",
"GBR",
"Camden Town Station",
"bus",
51.539216,
-0.141445,
"74831",
"Stop Z1",
null,
106,
[
9,
11,
12
]
],
[
"9770583287182576542",
"GBR",
"Camden Town Station",
"bus",
51.539799,
-0.141349,
"55724",
"Stop S",
null,
127,
[
3,
7,
8,
14,
5,
15,
10,
16,
17,
13
]
],
[
"1544298330863233878",
"GBR",
"Camden Town Station / Bayham Street",
"bus",
51.538668,
-0.140919,
"47843",
"Stop T",
null,
156,
[
6,
4,
18,
1,
2
]
],
[
"8187525786594117823",
"GBR",
"Camden Town Station",
"bus",
51.537938,
-0.141929,
"74199",
"Stop Y",
null,
164,
[
3,
4,
14,
5,
15,
16,
17
]
],
[
"3702590244124351976",
"GBR",
"Camden Town Station / Camden Street",
"bus",
51.540003,
-0.140634,
"73580",
"Stop R",
null,
182,
[
6,
4,
18,
1,
2
]
],
[
"15662611411904534745",
"GBR",
"Bayham Street",
"bus",
51.538184,
-0.140477,
"76202",
"Stop U",
null,
210,
[
9,
11,
12
]
],
[
"18349897238089857359",
"GBR",
"Camden Town / Camden Road",
"bus",
51.540369,
-0.140417,
"71115",
"Stop N",
null,
216,
[
18,
1,
14,
15,
16,
17
]
],
[
"18028702421017154993",
"GBR",
"Parkway",
"bus",
51.537534,
-0.145392,
"75875",
"Stop CW",
null,
254,
[
1,
2
]
],
[
"7099218597593740742",
"GBR",
"Pratt Street",
"bus",
51.537174,
-0.140836,
"71814",
"Stop CS",
null,
275,
[
1,
2
]
],
[
"1935855700261159746",
"GBR",
"Arlington Road (NW1)",
"bus",
51.536654,
-0.142659,
"51242",
"Stop CT",
null,
290,
[
1,
2
]
],
[
"7921808350385612696",
"GBR",
"Pratt Street",
"bus",
51.539071,
-0.138567,
"74630",
"Stop J",
null,
305,
[
19
]
]
],
"imperial": true
}Response Schema
View JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Compact Stops In Radius Response",
"type": "object",
"properties": {
"regionName": {
"type": "string",
"description": "Transit data region that served the request"
},
"imperial": {
"type": "boolean",
"description": "Optional flag, present as true for US/UK; numeric distance fields remain in meters"
},
"routeFields": {
"type": "array",
"items": [
{
"const": "routeId"
},
{
"const": "countryIso"
},
{
"const": "line"
},
{
"const": "mode"
}
],
"additionalItems": false,
"minItems": 4,
"maxItems": 4,
"description": "Column order for routes rows"
},
"routes": {
"type": "array",
"items": {
"type": "array",
"items": [
{
"type": [
"string",
"null"
],
"description": "Route identifier for /line and departure matching"
},
{
"type": [
"string",
"null"
],
"description": "ISO 3166-1 alpha-3 country code"
},
{
"type": [
"string",
"null"
],
"description": "Public-facing route name"
},
{
"type": [
"string",
"null"
],
"description": "Transport type such as bus, subway, train, or tram"
}
],
"additionalItems": false,
"minItems": 4,
"maxItems": 4
},
"description": "Globally deduplicated routes serving the returned stops"
},
"stopFields": {
"type": "array",
"items": [
{
"const": "stopId"
},
{
"const": "countryIso"
},
{
"const": "name"
},
{
"const": "mode"
},
{
"const": "lat"
},
{
"const": "lon"
},
{
"const": "code"
},
{
"const": "description"
},
{
"const": "wheelchairBoarding"
},
{
"const": "distanceMeters"
},
{
"const": "routeRefs"
}
],
"additionalItems": false,
"minItems": 11,
"maxItems": 11,
"description": "Column order for stops rows"
},
"stops": {
"type": "array",
"items": {
"type": "array",
"items": [
{
"type": [
"string",
"null"
],
"description": "Stop identifier for an exact departure request"
},
{
"type": [
"string",
"null"
],
"description": "ISO 3166-1 alpha-3 country code"
},
{
"type": [
"string",
"null"
],
"description": "Stop name"
},
{
"type": [
"string",
"null"
],
"description": "Stop transport type"
},
{
"type": [
"number",
"null"
],
"description": "Latitude in decimal degrees"
},
{
"type": [
"number",
"null"
],
"description": "Longitude in decimal degrees"
},
{
"type": [
"string",
"null"
],
"description": "Public stop code"
},
{
"type": [
"string",
"null"
],
"description": "Additional stop description"
},
{
"enum": [
1,
2,
null
],
"description": "Wheelchair accessibility of the stop"
},
{
"type": [
"integer",
"null"
],
"description": "Calculated distance from the requested point in meters"
},
{
"type": "array",
"items": {
"type": "integer",
"minimum": 0
},
"description": "Indexes into routes"
}
],
"additionalItems": false,
"minItems": 11,
"maxItems": 11
},
"description": "All candidate stops sorted by calculated distance from the requested point"
},
"message": {
"type": "string",
"description": "Human-readable empty-result message"
}
},
"required": [
"regionName",
"routeFields",
"routes",
"stopFields",
"stops"
]
}Response Codes
200
Compact nearby stops retrieved successfully400
Invalid location or radius500
Internal server error