Get Request Zones
GEThttps://api.uber.com/v1/guests/zones
¶ Use case
Returns information pertaining to specialized pickup locations for venues like airports, hospitals, concert arenas, and other large access points.
Using these locations when available will help ensure that your guest is picked up quickly and in the right place.
The response consists of a zone, which can be either “non-hierarchical” or “hierarchical.”
Non-hierarchical zones contain an array of access points, which are points at which the rider can be picked up - for example, if a concert venue has a series of pickup points located around its perimeter, those would be returned as access_points
on the top-level response field master_zone
.
On the other hand, hierarchical zones contain an array of sub-zones, which themselves have arrays of access points.
For example, an airport could have different pickup zones for its terminals, which themselves could have access points - in this case, the airport would be the master zone, the terminals would be the airport’s sub-zones, and each of the terminals would have an array of access points where the rider can be picked up.
If there is no zone, a list of access points is returned.
When creating trips that start at specialized pickups, the following fields should be set on the /v1/guests/trips request:
Field | Value | Description |
---|---|---|
start_place.place_id |
string | The selected access point’s id, i.e. access_point.id . |
start_place.provider |
string | The constant uber_geofences . |
start_place.zone_id |
string | The id of the most immediate parent zone, i.e. master_zone.id for non-hierarchical pickups, master_zone.sub_zones[i].id for hierarchical pickups. |
If these fields are not set and only the latitude and longitude are provided for a specialized pickup zone, the driver may not see the correct title for the location and will not receive any wayfinding notes to help navigate to the location.
If the request is from a third party (3P) app, please add x-uber-organizationuuid header and the Organization UUID as the value or the request will be denied.
¶ Authorization
OAuth 2.0 Bearer token with the guests.trips
scope.
¶ Request
¶ Example request (bounding box and master zone)
curl -X GET \
-H 'Authorization: Bearer $UBER_TOKEN' \
'https://api.uber.com/v1/guests/zones?latitude=40.6413&longitude=-73.7781'
¶ Example request (bounding box)
curl -X GET \
-H 'Authorization: Bearer $UBER_TOKEN' \
'https://api.uber.com/v1/guests/zones?latitude=37.7678862&longitude=-122.4294484'
¶ Example request (bounding box and access points)
curl -X GET \
-H 'Authorization: Bearer $UBER_TOKEN' \
'https://api.uber.com/v1/guests/zones?latitude=37.4253501&longitude=-122.1828359&place_id=ChIJw9EyTNakj4ARLgYZv1Gdp4I&place_provider=google_places'
¶ Request URL parameters
URL parameter | Type | Description |
---|---|---|
latitude |
float | The latitude of the request. |
longitude |
float | The longitude of the request. |
place_id |
string | (optional) The place ID to be used to fetch nearby access points. |
place_provider |
string | (optional) The provider of the above place ID, e.g. uber_places and google_places . |
address |
string | The address of the location for which zones needs to be fetched. |
product_id |
string | An ID representing a specific product. If provided, the access points returned in the master_zone or its associated sub_zones will be filtered to include only those valid for the given product_id . If not provided, all access points will be returned (optional). |
¶ Response
¶ Example hierarchical zone response
(master zone -> sub zone -> access point)
{
"bounding_box": {
"north_east_lat": 40.64579533968136,
"north_east_lng": -73.77217574100271,
"south_west_lat": 40.63680466031865,
"south_west_lng": -73.78402425899729
},
"master_zone": {
"id": "bee23dac-5a74-46ca-a9bd-147253f34ee9",
"name": "John F. Kennedy International Airport",
"address_line1": "John F. Kennedy International Airport",
"address_line2": null,
"categories": ["airport"],
"polygon": "igdwFvrqaMvj@atAdo@u`AoFoCma@nKq@uB{@}OkKwdAsVpc@eHo@kXq^lMsm@tg@crAvS_g@n]cm@|Rm[fXgBh\\lE|f@|dBdKt[x`@dKx`@fKu|A`aEieAbb@CBcRtm@eWbb@edApC",
"latitude": 40.640596819011776,
"longitude": -73.78226145095424,
"access_points": null,
"sub_zones": [
{
"id": "5c944720-b172-42d3-b74c-5b0b8f8e682f",
"name": "Terminal 4, Arrivals",
"address_line1": "Terminal 4, Arrivals",
"address_line2": null,
"categories": ["airport"],
"polygon": "ahawFlfjaMqMsZrOcOdCoFhEbFwCvHxE~IdKmIv\\pAqw@f^",
"latitude": 40.640596819011776,
"longitude": -73.78172083623768,
"access_points": [
{
"id": "7dd8e48e-2635-489f-8fb3-306d9f47b521",
"label": "Pick-Up A",
"latitude": 40.6442406,
"longitude": -73.7835249,
"rider_wayfinding_note": "Meet your driver curbside on the Arrivals (lower) level, following signs for Ground Transportation and Passenger Pick Up."
},
{
"id": "3ba1a3d7-8792-4c99-8329-5c1f2aee36f5",
"label": "Pick-Up B",
"latitude": 40.6443813,
"longitude": -73.7832683,
"rider_wayfinding_note": "Meet your driver curbside on the Arrivals (lower) level, following signs for Ground Transportation and Passenger Pick Up."
}
]
},
{
"id": "b39af35a-557b-4726-82b8-122121cdf167",
"name": "Terminal 5, Arrivals",
"address_line1": "Terminal 5, Arrivals",
"address_line2": null,
"categories": ["airport"],
"polygon": "w|awFhfiaMwDaLzGkRrCcSjAk@h@lF[vHrFzG}BjGuF\\OdEaEjK",
"latitude": 40.64638469610314,
"longitude": -73.77633212812239,
"access_points": [
{
"id": "d642dba0-8391-4ebc-8630-6acf8f976460",
"latitude": 40.646658,
"longitude": -73.776801,
"label": "Upper Level, Door 8 (use after 1pm)",
"rider_wayfinding_note": "Use Departures Level pickups after 1pm; use Arrivals Levels pickups before 1pm"
},
{
"id": "eff28b68-988a-4f41-8f83-d212b95c0fd6",
"latitude": 40.64655604,
"longitude": -73.77669561,
"label": "Upper Level, Door 7 (use after 1pm)",
"rider_wayfinding_note": "Use Departures Level pickups after 1pm; use Arrivals Levels pickups before 1pm"
}
]
}
]
},
"access_points": null
}
¶ Example non-hierarchical zone response
(master zone -> access point)
{
"bounding_box": {
"north_east_lat": 40.764122329658235,
"north_east_lng": -73.97942218748364,
"south_west_lat": 40.75513165029554,
"south_west_lng": -73.9912917716372
},
"master_zone": {
"id": "7d9968b3-be48-42c2-9eef-1018a24423b3",
"name": "Times Square",
"address_line1": "Times Square",
"address_line2": null,
"categories": ["train", "marketplace_optimization"],
"polygon": "kiwwF~oqbMmQuFdCiIjOvKcAfD",
"latitude": 40.758230644713244,
"longitude": -73.98539351865526,
"access_points": [
{
"id": "b000a6e1-99dd-4d7a-ad04-10430342aef2",
"label": "W 47th St. & Broadway",
"latitude": 40.75962698997689,
"longitude": -73.98535697956041,
"rider_wayfinding_note": "Meet your driver on the NW corner of 47th St. & Broadway in front of the Starbucks"
},
{
"id": "ea9ff148-addd-4dfb-9846-55279f61d99c",
"label": "W 46th St. & Broadway",
"latitude": 40.75887508059204,
"longitude": -73.98551454664293,
"rider_wayfinding_note": "Meet your driver on the NW corner of 46th St. & Broadway in front of American Eagle"
}
],
"sub_zones": null
},
"access_points": null
}
¶ Example empty zone response
(access points only)
{
"bounding_box": {
"north_east_lat": 37.80663433968135,
"north_east_lng": -122.41305064816747,
"south_west_lat": 37.79764366031865,
"south_west_lng": -122.42442935183253
},
"master_zone": null,
"access_points": [
{
"id": "90f5c43c-4c60-4409-b4bf-e4ebe0ffc4cf",
"latitude": 37.8020597,
"longitude": -122.4180167,
"label": "Leavenworth St",
"rider_wayfinding_note": "Meet at your pickup spot on Leavenworth St"
},
{
"id": "aaaadf5a-6484-4e2b-a44a-8adf2bbfea2e",
"latitude": 37.8018747,
"longitude": -122.41956,
"label": "Hyde St",
"rider_wayfinding_note": "Meet at your pickup spot on Hyde St"
}
]
}
¶ Response body parameters
Field | Type | Description |
---|---|---|
master_zone |
object |
Root object containing zone information. |
master_zone.id |
string |
The unique ID of the zone. |
master_zone.name |
string |
The name of the zone, e.g. “John F. Kennedy International Airport”. |
master_zone.address_line1 |
string |
The first address line of the zone. |
master_zone.address_line2 |
string |
The second address line of the zone. Might be null. |
master_zone.latitude |
string |
The latitude of the zone. |
master_zone.longitude |
string |
The longitude of the zone. |
master_zone.categories |
array |
An array of string categories that characterize the zone, i.e. “airport”, “hospital”, “theater” etc. |
master_zone.polygon |
string |
A string representing a list of coordinates that enclose the zone, encoded in Encoded Polyline Algorithm Format. |
master_zone.sub_zones |
array |
Array of zones that are children of the master_zone. See object definition for master_zone. Will be null for terminal zones. |
master_zone.access_points[i].id |
string |
The unique ID of the access point. |
master_zone.access_points[i].label |
string |
The name of the access point, e.g. “Pick-Up A”. |
master_zone.access_points[i].latitude |
float |
The latitude of the access point. |
master_zone.access_points[i].longitude |
float |
The longitude of the access point. |
master_zone.access_points[i].rider_wayfinding_note |
string |
A note that helps the rider find the pick-up point, i.e. “Meet your driver on the corner of 23rd St & 5th Ave”). Not provided for all access points. Sent via SMS for on-demand rides and in addition to scheduled / flexible ride reminder SMSs. |
bounding_box |
object |
A rectangle consisting of two {latitude, longitude} pairs that encapsulates the zones returned. |
bounding_box.north_east_lat |
float |
A latitude corresponding to the north-east corner of the bounding box rectangle. |
bounding_box.north_east_lng |
float |
A longitude corresponding to the north-east corner of the bounding box rectangle. |
bounding_box.south_west_lat |
float |
A latitude corresponding to the south-west corner of the bounding box rectangle. |
bounding_box.south_west_lng |
float |
A longitude corresponding to the south-west corner of the bounding box rectangle. |
access_points[i].id |
string |
The unique ID of the access point. |
access_points[i].label |
string |
The name of the access point, e.g. “Electioneer Rd”. |
access_points[i].latitude |
float |
The latitude of the access point. |
access_points[i].longitude |
float |
The longitude of the access point. |
access_points[i].rider_wayfinding_note |
string |
A note that helps the rider find the pick-up point, i.e. “Meet at your pickup spot on Electioneer Rd”). Not provided for all access points. Sent via SMS for on-demand rides and in addition to scheduled / flexible ride reminder SMSs. |
¶ Endpoint Possible Errors
HTTP Status | Code | Description |
---|---|---|
400 | bad_request | Suggests that the server was unable to understand or process the request due to its incorrect or malformed structure. |
401 | unauthorized | Authentication failed. The client lacks valid authentication credentials for the requested resource. |
403 | forbidden | The client does not have permission to access the requested resource. |
404 | not_found | The requested resource or entity could not be found on the server or in the database. |
500 | internal_server_error | An unexpected error occurred on the server while processing the request. |