Three lines

Uber

Developers

Get Request Zones

GEThttps://api.uber.com/v1/guests/zones

Privileged and Confidential This endpoint design has been confidentially shared with you. It is still under development and is subject to change without notice. Please do not share this document or API endpoint details with anyone who is not authorized to have access. For more information read about scopes.

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.

Uber

Developers
© 2023 Uber Technologies Inc.