Feature Service

Description

A feature service can contain datasets (for example, tables and views) with or without a spatial column. Datasets with a spatial column are considered layers; those without a spatial column are considered tables. A feature service allows clients to query and edit feature geometry and attributes.

This resource provides basic information about the feature service, including the feature layers and tables that it contains, the service description, and so on.

The capabilities property returns Create, Delete, Extract, Query, Update, Sync, and Uploads capabilities. The Uploads capability is included if Create, Delete, or Update is enabled for a feature service. The Editing capability is included if Create, Delete, and Update is enabled and allowGeometryUpdates is true. The Sync capability allows editors to make local edits and periodically sync with the feature service. The Extract capability allows editors to create a local copy of data without the ability to sync with the feature service.

The maxRecordCount property returns the maximum number of records that will be returned at once for a query. The Feature Service resource has an input parameters option and outSR to support viewing of a feature service footprint.

The following properties describe features that have been added to Feature Service through the releases. If the property does not exist, it's equivalent to having a value of false or is not set:

New at 10.9

New at 10.8.1

New at 10.8

New at 10.7

New at 10.6.1

New at 10.6

NoteNote:

When querying, z values are returned in the sourceSpatialReference vertical coordinate system regardless of what is specified as the output spatial reference. It is also expected that z values are provided in the sourceSpatialReference source vertical coordinate system when editing.

NoteNote:

The features listed above are available for non-hosted services published from ArcGIS Pro or later but not necessarily for services published from ArcMap or other processes. Services published from ArcGIS Pro 2.1 have the following layer and service property: "cimVersion": "2.1.0"

New at 10.5

Request parameters

Parameter

Details

option

This parameter was added at 10.1.

If option is footprints, the footprint of the feature service is returned as a feature collection. This feature collection can be viewed in Map Viewer. This is only supported when f is json.

Value: footprints

outSR

This parameter was added at 10.1.

The spatial reference of the geometry returned in footprints. This parameter is supported only when option=footprints is specified. The spatial reference should be specified as a well-known ID. If outSR is not specified, the geometry is returned in GCS_WGS_1984.

useGlobalIds

Used to specify whether upsert needs to use GlobalId when matching features. The default value is false and ObjectId is used by default.

f

The response format. The default response format is html.

Values: html | json | pjson

Example usage

Below is a sample request URL for a feature service:

https://machine.domain.com/webadaptor/rest/services/USA/FeatureServer?f=pjson

JSON Response syntax

{
  "currentVersion": <currentVersion>,
  "serviceDescription": "<serviceDescription>",
  "hasVersionedData": <true | false>,
  "supportsDisconnectedEditing": <true | false>,
  "supportsDatumTransformation": <true | false>, //Added at 10.8
  "supportsReturnDeleteResults": <true | false>, //Added at 10.7
  "hasStaticData" : <true | false>,
  "maxRecordCount" : "<maxRecordCount>",
  "supportedQueryFormats": "<supportedQueryFormats>",
  "supportsRelationshipsResource": <true | false>, //Added at 10.7
  "capabilities": "<capabilities>",
  "description": "<description>",
  "copyrightText": "<copyrightText>",
  "userTypeExtensions": [<Extension Types>], //Added at 10.8
  "advancedEditingCapabilities": {<advancedEditingCapabilities>},
  "spatialReference": {<spatialReference>},
  "initialExtent": {<envelope>},
  "fullExtent": {<envelope>},
  "allowGeometryUpdates": <true | false>,
  "units": "<units>",
  "syncEnabled" : <true | false>,
  "returnServiceEditsHaveSR": <true | false>, //Added at 10.7.1
  //Added at 10.7
  "validationSystemLayers": {
    "validationPointErrorlayerId": <validationPointErrorlayerId>,
    "validationLineErrorlayerId": <validationLineErrorlayerId>,
    "validationPolygonErrorlayerId": <validationPolygonErrorlayerId>,
    "validationObjectErrortableId": <validationObjectErrortableId>
  },
  //Added at 10.6.1
  "extractChangesCapabilities": {
    "supportsReturnIdsOnly": <true | false>,
    "supportsReturnExtentOnly": <true | false>,
    "supportsReturnAttachments": <true | false>,
    "supportsLayerQueries": <true | false>,
    "supportsSpatialFilter": <true | false>,
    "supportsReturnFeature": <true | false>,
    "supportsReturnHasGeometryUpdates": <true | false> //Added at 10.9
  },
  "syncCapabilities": {
    "supportsASync": <true | false>,
    "supportsRegisteringExistingData": <true | false>,
    "supportsSyncDirectionControl": <true | false>,
    "supportsPerLayerSync": <true | false>,
    "supportsPerReplicaSync": <true | false>,
    "supportsRollbackOnFailure": <true | false>,
    "supportedSyncDataOptions": <supportedSyncDataOptions>, //Added at 10.7
    "supportsQueryWithDatumTransformatiom": <true | false>, //Added at 10.8
    "supportsBiDirectionalSyncForServer": <true | false> //Added at 10.9
  },
  "editorTrackingInfo": {
    "enableEditorTracking": <true | false>,
    "enableOwnershipAccessControl": <true | false>,
    "allowOthersToUpdate": <true | false>,
    "allowOthersToDelete": <true | false>
  }, 
  "documentInfo": { 
   "<key1>": "<value1>",
   "<key2>": "<value2>"
   },
  //the feature layers published by this service
  "layers": [
    { "id": <layerId1>, "name": "<layerName1>" },
    { "id": <layerId2>, "name": "<layerName2>" }
  ],
  //the non-spatial tables published by this service
  "tables": [
    { "id": <tableId1>, "name": "<tableName1>" },
    { "id": <tableId2>, "name": "<tableName2>" }
  ],
  "relationships": [
    { "id": <relationshipId1>, "name": "<relationshipName1>" },
    { "id": <relationshipId2>, "name": "<relationshipName2>" }
  ],
  "datumTransformations": [<datumTransformations>] //Added at 10.7.1
  "enableZDefaults": <true | false>,
  "isLocationTrackingService": <true | false>, //Added at 10.7
  "isLocationTrackingView": <true | false>, //Added at 10.7
  "zDefault": <zDefaultValue>,
}

JSON Response example

Below is an example of a feature service resource's JSON response:

{
  "currentVersion": 10.8.1,
  "serviceDescription": "Birds",
  "hasVersionedData": false,
  "supportsDisconnectedEditing: false,
  "supportsDatumTransformation": true,
  "supportsReturnDeleteResults": true,
  "supportsRelationshipsResource": true,
  "syncEnabled": false,
  "hasStaticData": false,
  "maxRecordCount": 1000,
  "supportedQueryFormats": "JSON",
  "capabilities": "Query,Create,Delete,Update,Uploads,Editing",
  "description": "",
  "copyrightText": "",
  "userTypeExtensions: [
    "utilityNetwork"
  ],
  "advancedEditingCapabilities": {
    "supportsSplit": true,
    "supportsReturnServiceEditsInSourceSR": true
  },
  "spatialReference": {
    "wkid": 4326,
    "latestWkid": 4326
  },
  "initialExtent": {
    "xmin": -118.016756138237,
    "ymin": 32.8933824408207,
    "xmax": -116.532738278622,
    "ymax": 34.3261469363675,
    "spatialReference": {
      "wkid": 4326,
      "latestWkid": 4326
    }
  },
  "fullExtent": {
    "xmin": -117.855689264791,
    "ymin": 32.5702577626442,
    "xmax": -116.87086222794,
    "ymax": 34.1460567673275,
    "spatialReference": {
      "wkid": 4326,
      "latestWkid": 4326
    }
  },
  "allowGeometryUpdates": true,
  "units": "esriDecimalDegrees",
  "syncEnabled": true,
  "validationSystemLayers": {
    "validationPointErrorlayerId": 1,
    "validationLineErrorlayerId": 2,
    "validationPolygonErrorlayerId": 3,
    "validationObjectErrortableId": 5
  },
  "extractChangesCapabilities": {
    "supportsReturnIdsOnly": true,
    "supportsReturnExtentOnly": false,
    "supportsReturnAttachments": false,
    "supportsLayerQueries": false,
    "supportsSpatialFilter": false,
    "supportsReturnFeature": false,
    "supportsReturnHasGeometryUpdates": true
  },
  "syncCapabilities": {
    "supportsASync": true,
    "supportsRegisteringExistingData": true,
    "supportsSyncDirectionControl": true,
    "supportsPerLayerSync": true,
    "supportsPerReplicaSync": false,
    "supportsRollbackOnFailure": false,
    "supportedSyncDataOptions": 3
    "supportsQueryWithDatumTransformation": true,
    "supportsBiDirectionalSyncForServer": true
  },
  "editorTrackingInfo": {
    "enableEditorTracking": false,
    "enableOwnershipAccessControl": false,
    "allowOthersToUpdate": true,
    "allowOthersToDelete": false
  },
  "layers": [
    {
      "id": 0,
      "name": "Sitings",
      "parentLayerId": -1,
      "defaultVisibility": true,
      "subLayerIds": null,
      "minScale": 0,
      "maxScale": 0,
      "geometryType": "esriGeometryPoint"
    },
    {
      "id": 1,
      "name": "NestingGrounds",
      "parentLayerId": -1,
      "defaultVisibility": true,
      "subLayerIds": null,
      "minScale": 0,
      "maxScale": 0,
      "geometryType": "esriGeometryPolygon"
    },
    {
      "id": 2,
      "name": "LandCover",
      "parentLayerId": -1,
      "defaultVisibility": true,
      "subLayerIds": null,
      "minScale": 0,
      "maxScale": 0,
      "geometryType": "esriGeometryPolygon"
    }
  ],
  "tables": [],
  "relationships": [
   {
    "id": 0,
    "name": "relationship_1"
   }
  ],
  "datumTransformations": [
    {
      "geoTransforms": [
        {
          "wkid": 15931,
          "latestWkid": 15931,
          "transformForward": false,
          "name": NAD_1983_NSRS2007_To_WGS_1984_1"
        }
      ]
    },
    {
      "geoTransforms": [
        {
          "wkid": 15931,
          "latestWkid": 15931,
          "transformForward": true,
          "name": NAD_1983_NSRS2007_to_WGS_1984_1"
        }
      ]
    }
  ],
  "isLocationTrackingService": true,
  "isLocationTrackingView": true
}

Below is a portion of a JSON response example for a spatial reference, VCS, tolerance, resolution properties, and high model info:

...
 "spatialReference": {
  "wkid": 102100,
  "latestWkid": 3857,
  "vcsWkid": 115700,
  "latestVcsWkid": 115700,
  "xyTolerance": 0.001,
  "zTolerance": 0.001,
  "mTolerance": 0.001,
  "falseX": -20037700,
  "falseY": -30241100,
  "xyUnits": 1.4892314192838538E8,
  "falseZ": -100000,
  "zUnits": 10000,
  "falseM": -100000,
  "mUnits": 10000
 }, 
 "heightModelInfo": {
  "heightModel": "ellipsoidal",
  "vertCRS": "WGS_1984",
  "heightUnit": "meter"
 },
...

Below is an example of a feature service that includes topology layers:

{
...
	 "layers": [
    {
		    "id": 0,
		    "name": "topo_1081.GDB.topo_2",
		    "parentLayerId": -1,
		    "defaultVisibility": true,
		    "subLayerIds": [
			     1,
        2,
        3,
        4
		    ],
		    "minScale": 0,
		    "maxScale": 0,
		    "type": "Topology Layer"
	   },
    {
		    "id": 1,
		    "name": "Dirty Areas",
		    "parentLayerId": 0,
		    "defaultVisibility": false,
		    "subLayerIds": null,
		    "minScale": 0,
		    "maxScale": 0,
		    "type": "Feature Layer",
		    "geometryType": "esriGeometryPolygon"
	   },
    {
		    "id": 2,
		    "name": "Point Errors",
		    "parentLayerId": 0,
		    "defaultVisibility": true,
		    "subLayerIds": null,
		    "minScale": 0,
		    "maxScale": 0,
		    "type": "Feature Layer",
		    "geometryType": "esriGeometryPoint"
	   },
    {
		    "id": 3,
		    "name": "Line Errors",
		    "parentLayerId": 0,
		    "defaultVisibility": true,
		    "subLayerIds": null,
		    "minScale": 0,
		    "maxScale": 0,
		    "type": "Feature Layer",
		    "geometryType": "esriGeometryPolyline"
	   },
    {
		    "id": 4,
		    "name": "Polygon Errors",
		    "parentLayerId": 0,
		    "defaultVisibility": true,
		    "subLayerIds": null,
		    "minScale": 0,
		    "maxScale": 0,
		    "type": "Feature Layer",
		    "geometryType": "esriGeometryPolygon"
	   },
    {
		    "id": 5,
		    "name": "topo_1081.GDB.us_caps_test_2",
		    "parentLayerId": -1,
		    "defaultVisibility": true,
		    "subLayerIds": null,
		    "minScale": 0,
		    "maxScale": 0,
		    "type": "Feature Layer",
		    "geometryType": "esriGeometryPoint"
	   },
    {
		    "id": 6,
		    "name": "topo_1081.GDB.us_caps_buff_2",
		    "parentLayerId": -1,
		    "defaultVisibility": true,
		    "subLayerIds": null,
		    "minScale": 0,
		    "maxScale": 0,
		    "type": "Feature Layer",
		    "geometryType": "esriGeometryPolyline"
	   },
    {
		    "id": 7,
		    "name": "topo_1081.GDB.us_states_test_2",
		    "parentLayerId": -1,
		    "defaultVisibility": true,
		    "subLayerIds": null,
		    "minScale": 0,
		    "maxScale": 0,
		    "type": "Feature Layer",
		    "geometryType": "esriGeometryPolygon"
	   }
  ],
  "tables": [],
  "relationships": [],
  "controllerDatasetLayers": {
	   "topologyLayerIds": [
		    0
	   ]
  },
  "supportsDynamicLayers": true,
  "enableZDefaults": false,
  "allowUpdateWithoutMValues": false,
  "supportsVCSProjection": true,
  "referenceScale": 0,
  "serviceItemId": "64bbff5e478f41cf8ddc6d7792b3d2eb"
},
...