FRAMES | NO FRAMES
ArcGIS Server REST API - Overview

This is an archive of a previous version of the ArcGIS REST API. The current version can be found at http://resources.arcgis.com/en/help/arcgis-rest-api/

Introduction

The ArcGIS Server REST API, short for Representational State Transfer, provides a simple, open Web interface to services hosted by ArcGIS Server. All resources and operations exposed by the REST API are accessible through a hierarchy of endpoints or Uniform Resource Locators (URLs) for each GIS service published with ArcGIS Server.

When using the REST API, you typically start from a well-known endpoint, which represents the server catalog. The table of contents for this Help system mimics the hierarchy of resources in the REST API. The default start URL for an ArcGIS Server installation is:

For example, to get to the root directory of ArcGIS Online services, the URL is:

http://server.arcgisonline.com/arcgis/rest/services

From this base URL, you can traverse to any of the listed service and resources and operations associated with the service.

The REST API is stateless, which means that REST does not keep track of transactions from one request to the next. Each request must contain all the information necessary for successful processing.

Getting Started

If you want to learn more about how the REST API works, you can start by following the examples in Getting Started.

Services Directory

Each ArcGIS Server comes with a Services Directory. Services Directory is a view of the ArcGIS Server REST API in HTML format. You can browse the contents of an ArcGIS Server and obtain information such as service metadata and supported operations that can be useful in developing applications.

Resources and Operations

The REST API has some level of support for each of the ArcGIS Server service types. Each service is a resource and has a unique URL. Although a REST system always returns only representations of resources to the clients, for the sake of simplicity, the resources of the ArcGIS REST API are divided into two types: resources and operations. For more information, see Resources and Operations.

The supported service types that include operations are map, geocode, geoprocessing, geometry, and image. Another set of service types that are supported as resources but have no associated operations include network, geodata, and globe services. One requirement of the REST API is that ArcGIS Server services must be configured as Pooled. Non-pooled services are not listed in Services Directory.

You can find out additional details about all resources and operations supported by the REST API. To get going, you can review Catalog, which is the root node for the API.

Output Formats

The REST API supports responses in several formats. The format is specified by using the query parameter f in the URL. The list of supported formats includes html (HyperText Markup Language), json (JavaScript Object Notation), image, kmz (compressed KML, or Keyhole Markup Language), help, lyr (layer file), nmf (ArcGIS Explorer map file), jsapi (JavaScript), ve (Virtual Earth), and gmaps (Google Maps). For more details, see Output formats.

KML Support

You can request KML in several different ways, which is summarized in KML support.

Versioning

As the REST API evolves over time, different versions of the API will become available. For information on the rules of versioning, see REST API Versioning

REST API Administration

In addition to being a browser for your published data, Services Directory also provides access to an administrative console. The administration page is needed to refresh the site after adding, deleting, and updating services or after updating to a new version of the REST API. Services Directory can also be disabled through the console. For more information, see REST API Admin.

Configuring the REST API

The REST API works out-of-the-box without any configuration. However, if you export and deploy the REST instance elsewhere, or if you needed to change the defaults, you will need to modify some configuration files. For more information, see Configuring the REST API.