Skip To Content ArcGIS for Developers Sign In Dashboard

Geoprocessing services

A geoprocessing service can contain one or more tools that use input data from a client application, process it, and return output in the form of features, maps, reports, files, or services. These tools are first authored and run in ArcGIS Pro or ArcGIS Desktop, typically as a custom model or script tools, before being shared to an ArcGIS Server. To publish a geoprocessing service from ArcGIS Pro, see Share your geoprocessing service. To publish a web tool from ArcGIS Pro, see Share your web tool. To publish a geoprocessing service from ArcGIS Desktop, see A quick tour of authoring and sharing geoprocessing services.

Service structure

A geoprocessing service is a resource that can be accessed through a URL. The URL format for a geoprocessing service is https://<server name>/<instance name>/rest/services/<Service Name>/GPServer, for example, https://myServer/ArcGIS/rest/services/BufferPoints/GPServer.

A geoprocessing service has properties including Service Description, Tasks, Execution Type, and Result Map Server. The geoprocessing tasks that are published in a geoprocessing service are its child resources.

A geoprocessing service does not include operations, but in an asynchronous geoprocessing service, tasks support submitJob and cancel job operations. In a synchronous geoprocessing job, tasks support the execute operation.

The tasks in a geoprocessing service inherit the Execution Type and Result Map Server properties and include additional properties such as the task Description, and Parameters. The properties of the service and the task are determined by the publisher of the service and cannot be modified by clients. However, an administrator can edit service properties using Server Manager.

The figure below shows the hierarchy of geoprocessing REST resources:

Geoprocessing REST service hierarchy

Input and output

Most geoprocessing tasks have both inputs and outputs. There are slight differences between the handling of input and output by geoprocessing services.

Input

For both synchronous and asynchronous geoprocessing services, the input of a task should follow the syntax based on the data type of a parameter.

Output

For synchronous geoprocessing services, the result is given directly once the execute operation completes.

For asynchronous geoprocessing services, the result must be accessed through the GP Result resource after the submitJob operation.

Note:

During the execution of the submitJob operation, the status of the job can be accessed through GP Job.

For both synchronous and asynchronous services, the syntax of the result parameters will be based on their data types.

Secured services

To consume a secured geoprocessing service, a token must be passed with the submitJob or execute operation as an additional parameter. A sample GET request will be https://domain/server/rest/services/LandUseReport/GPServer/LandUse/submitJob?Area_of_Interest=testArea&f=json&token=myToken.

When you use URLs to reference a secured map service, feature service, or an image service as an input, a token is also required, regardless of whether your geoprocessing service is secured or public. An exception is when your secured geoprocessing service is on the same server as your secured input services.

This is an example of accessing secured web layers as an input.

{
    "url":"https://mySecuredServer/server/rest/services/Hosted/layername/FeatureServer/0",
    "token":"thisIsYourTokenToYourSecuredServices"
}