Service areas
What is a service area?
A service area, also known as an isochrone, is a polygon that represents the distance that can be reached when driving or walking on a street network. This type of analysis is common in real estate search or determining the driving proximity to schools, businesses, or other facilities. For example, you can create a drive time polygon that represents how far you can drive in any direction from the center of a city in 20 minutes.
You can use service areas to build applications that:
Visualize and measure the accessibility of locations that provide some kind of service. For example, a three-minute drive-time polygon around a grocery store can determine which residents are able to reach the store within three minutes and are thus more likely to shop there.
By generating multiple service areas around one or more locations that can show how accessibility changes with an increase in travel time or travel distance. It can be used, for example, to determine how many hospitals are within 5, 10, and 15 minute drive times of schools.
When creating service areas based on travel times, the service can make use of traffic data, which can influence the area that can be reached during different times of the day.
How service areas work
The typical workflow for creating service areas is to define:
- One or more locations around which service areas are generated (facilities).
- The size and number of service areas to generate for each facility.
- Define the type of travel for the analysis.
- Call the service to generate service areas around facilities.
URL requests
You can generate service areas by making an HTTPS request to the Service Area service solveServiceArea
operation or by using client APIs. Specify the one or more input facilities, and optionally, additional parameters to refine the operation. Some of the most common parameters are described provided below.
Required parameters
Name | Description | Examples |
---|---|---|
f | The format of the data returned. | f=json f=pjson |
token | An API key or OAuth 2.0 access token. Learn how to get an access token in Security and authentication. | token=<YOUR_API_KEY> token=<ACCESS_TOKEN> |
Direct
Use for shorter transactions with less than 100 facilities that will complete in less than 5 minutes.
Key parameters
Name (Direct) | Description | Examples |
---|---|---|
facilities | One or more locations around which service areas are generated. | facilities=-117,34 |
defaultBreaks | The size and number of service areas to generate for each facility. | defaultBreaks=5,10,15 |
travelMode | The mode of transportation such as driving a car or a truck or walking. | travelMode= JSON Object |
travelDirection | The direction of travel (away from facility or towards facility) that should be used when generating service areas. | travelDirection=esriNATravelDirectionFromFacility |
timeOfDay | The time to depart from or arrive at facilities. You can also specify a value of now , to set the depart or arrive time to current time. | timeOfDay=now |
Additional parameters: Exercise fine-grained control on how the service area polygons are generated by specifying outputPolygons
, splitPolygonAtBreaks
, overlapPolygons
, and mergeSimilarPolygonRanges
parameters.
Job
Use for longer transactions with up to 1,000 facilities that will complete in less than 2 hours.
Key parameters
Name (Job) | Description | Examples |
---|---|---|
facilities | One or more locations around which service areas are generated. | facilities={"features":[{"geometry":{"x":-117,"y":34.5}}]} |
break_values | The size and number of service areas to generate for each facility. | break_values=5 10 15 |
travel_mode | The mode of transportation such as driving a car or a truck or walking. | travel_mode= JSON Object |
travel_direction | The direction of travel (away from facility or towards facility) that should be used when generating service areas. | travel_direction=Away From Facility |
time_of_day | The time to depart from or arrive at facilities. | time_of_day=1608022800000 |
Additional parameters: Exercise fine-grained control on how the service area polygons are generated by specifying polygon_detail
, polygon_overlap_type
, and polygons_for_multiple_facilities
parameters.
Examples
Direct: Find walk distance areas
In this example, use the Service area service to find an area that is within 2.5 kilometers (1.55 miles) of walking distance from an elementary school. Such an area can be used to determine which students are eligible for the school bus service as the students that live within 1.5 miles of walking distance from the school are not eligible.
To find service areas, you need to define one or more facilities around which service areas are generated. The default travelMode
is driving time, so in this case the travel mode is set to walking distance. The defaultBreaks
are set to 2.5 which is interpreted by the service to be in kilometers since the distance unit of the travel mode's impedance attribute is kilometers. The travel direction is set to esriNATravelDirectionToFacility
to calculate the walk area as students walk towards the school.
The response contains a polygon of the walk area with 1.55 miles that does not qualify for bus transportation.
APIs
REST API
Job: Find drive-time areas
In this example, you will find the 5, 10, and 15 minute drive-time polygons around all locations of a grocery store chain in a city. The chain wants to use these drive-time areas to see how many customers can easily drive to their stores and thus are more likely to shop there.
The example illustrates how to measure the time it takes potential customers to reach each store. To do so, the travel_direction
is set to Towards Facility
. Attributes for each store are also provided such as the StoreId
, StoreName
, and Address
. These will be appended to the drive-time areas to correlate the output drive-time area with the store.
APIs
REST API
Unlike Direct request type which allows you to make a request and get back all the results in the response, when working with a Job request type, you need to follow a three step workflow:
- Make the
submitJob
request with the appropriate request parameters to get a job id. - Using the job id, check the job status to see if the job completed successfully.
- Use the job id to get one or more results.
Response (JSON)
Request
Response (JSON)
Request
Response (JSON)
Tutorials

Find a route and directions
Find a route and directions with the routing service

Find service areas
Create an isochrone with driving distance with the routing service.
Services
Routing service
Get turn-by-turn directions and solve advanced routing problems.
API support
Routing | Fleet routing | Closest facility routing | Service areas | Location-allocation | Travel cost matrix | |
---|---|---|---|---|---|---|
ArcGIS API for JavaScript | 1 | 1 | 1 | |||
ArcGIS Runtime API for Android | 1 | 1 | 1 | |||
ArcGIS Runtime API for iOS | 1 | 1 | 1 | |||
ArcGIS Runtime API for Java | 1 | 1 | 1 | |||
ArcGIS Runtime API for .NET | 1 | 1 | 1 | |||
ArcGIS Runtime API for Qt | 1 | 1 | 1 | |||
ArcGIS API for Python | ||||||
Esri Leaflet | 2 | 2 | 2 | 2 | 2 | 2 |
MapBox GL JS | 2 | 2 | 2 | 2 | 2 | 2 |
OpenLayers | 2 | 2 | 2 | 2 | 2 | 2 |
ArcGIS REST JS |
- 1. Access with geoprocessing task.
- 2. Access via ArcGIS REST JS.
Tools
Developer dashboard
Manage API keys, service usage, and data with the ArcGIS Developers website.
ArcGIS Online
Create, manage, and share content and data with cloud-based GIS tools.
Map Viewer
Create, explore, and share web maps for 2D applications.
Scene Viewer
Create, explore, and share web scenes for 3D applications.
ArcGIS Pro
Explore, visualize, and analyze both 2D and 3D data with desktop GIS tools.