Layer (Feature Service)

Description

The layer resource represents a single feature layer or a non-spatial table in a feature service. A feature layer is a table or view with at least one spatial column.

For tables, it provides basic information about the table such as its ID, name, fields, types, and templates. For feature layers, in addition to the table information, it provides information such as its geometry type, min and max scales, and spatial reference. Each type includes information about the type, such as the type ID, name, and definition expression. Types also include a default symbol and a list of feature templates. Each feature template includes a template name, description, and prototypical feature.

The property capabilities return Query, Create, Delete, Update, Editing, Sync, Uploads and Extract capabilities. The Editing capability will be included if Create, Delete, or Update is enabled for a feature service.

The maxRecordCount property returns the maximum number of records that will be returned at once for a query.

The Layer resource returns relatedTableId, cardinality, role, keyField, and composite for all relationships. In addition, the relationshiptableId and keyFieldInRelationshipTable properties are returned for attributed relationships only.

The effectiveMinScale and effectiveMaxScale properties represent the effective minimum and maximum scales at which the layer is visible. Effective minimum and maximum scale are calculated based on the minScale and maxScale values of the current layer and its ancestors.

The Layer resource supports an input parameter returnUpdates that accepts a Boolean value. Pass this parameter to retrieve updated timeExtent for the layer.

The field property nullable indicates whether the field can accept null values.

If a layer has attachments, its hasAttachments property will be true.

If the layer objectIdField does not have a length property or the length property is set to 4, the objectIdField is 32-bit. If the objectIdField has a length of 8, the objectIdField is 64-bit.

The following is new in 10.5

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

NoteNote:
A unique index is also required on the globalid column in order for supportsApplyEditsWithGlobalIds to be true. Globalid columns may not already have a unique index. You can use the add attribute index geoprocessing tool to create a new unique index on the globalid column in ArcGIS Pro and ArcGIS desktop. You can also remove the non-unique index using the remove attribute index geoprocessing tool. For services that support it, the AddtoDefinition operation from the services admin API can also be used to add the index.

SqlType

FieldType

Result database column type

Not specified

esriFieldTypeOID

[int]

sqlTypeBigInt

esriFieldTypeOID

[bigint] - not currently supported

sqlTypeBigInt

esriFieldTypeInteger

[bigint]

sqlTypeInteger

esriFieldTypeInteger

[int]

sqlTypeBit

esriFieldTypeSmallInteger

[bit]

sqlTypeTinyInt

esriFieldTypeSmallInteger

[tinyint]

sqlTypeInteger

esriFieldTypeSmallInteger

[smallint]

NA

esriFieldTypeDate

columnSize = 4 [smalldatatime]

NA

esriFieldTypeDate

columnSize = 10 [datetimeoffset]

NA

esriFieldTypeDate

columnSize = 8 or none [datetime2]

sqlTypeTime

esriFieldTypeString

[time]

sqlTypeTimestamp

esriFieldTypeString

[timestamp]

none

esriFieldTypeString

nvarchar

SqlTypeResource hierarchy

fslayer

Request parameters

Parameter

Details

f

Description: The response format. The default response format is html.

Values: html | json | pjson

returnUpdates

This parameter was added at 10.1.

Description: If value is true, an updated time extent is returned. If the layer is not time-aware, an empty response is returned.

Values: true | false

returnDomainNames

This parameter was added at 10.5.

Description: If value is true, then domain information provided in the layer includes only the domain name. To get the full domain information, use the queryDomains operation in the service resource. This domains included in the layer can be used to linked to the full domain information via the domain name. If the value is false or not set, then full domain information is included in the layer as it was in past releases.

Example usage

Example: Get information about layer 0 in the "USA" Feature Service

http://services.myserver.com/ERmEceOGq5cHrItq/ArcGIS/rest/services/USA/FeatureServer/0

JSON response syntax

{
   "currentVersion": <currentVersion>, //Added at 10.0 SP1
   //properties applicable to both feature layers and tables
   "id" : <layerOrTableId>,
   "name" : "<layerOrTableName>",
   "type" : "<layerOrTableType>", //"Feature Layer" or "Table"
   "displayField" : "<field name>"
   "description" : "<description>",
   "copyrightText" : "<copyrightText>",
			"subtypeField": "<subtypeField>",	//Added at 10.5 
			"defaultSubtypeCode": <defaultSubtypeCode>, //Added at 10.5 
   "defaultVisibility": <true | false>,//Added at 10.1
   //Added at 10.1
    "editFieldsInfo": {
      "creationDateField": "<creationDateField>",
         "creatorField": "<creatorField>",
      "editDateField": "<editDateField>",
      "editorField": "<editorField>",
      "realm":"<realm>"
    },
    //Added at 10.1
    "ownershipBasedAccessControlForFeatures": {
     "allowOthersToUpdate": <true | false>,
     "allowOthersToDelete": <true | false>,
     "allowOthersToQuery": <true | false>
    },
    //Added at 10.1
    "syncCanReturnChanges": <true | false>,
    "relationships" : [
     {
       "id" : <relationshipId1>,
       "name" : "<relationshipName1>",
       "relatedTableId" : <relatedTableId1>,
       "cardinality" : "<esriRelCardinalityOneToOne>|<esriRelCardinalityOneToMany>|<esriRelCardinalityManyToMany>";,//Added at 10.1
       "role" : "<esriRelRoleOrigin>|<esriRelRoleDestination>";,//Added at 10.1
       "keyField" : "<keyFieldName2>",//Added at 10.1
       "composite" : <true>|<false>,//Added at 10.1
       "relationshipTableId": <attributedRelationshipClassTableId>,  //Added in 10.1. Returned only for attributed relationships
       "keyFieldInRelationshipTable": "<key field in AttributedRelationshipClass table that matches keyField>" //Added in 10.1. Returned only for attributed relationships
     },
     {
       "id" : <relationshipId2>,
       "name" : "<relationshipName2>",
       "relatedTableId" : <relatedTableId2>,
      "cardinality" : "<esriRelCardinalityOneToOne>|<esriRelCardinalityOneToMany>|<esriRelCardinalityManyToMany>";,//Added at 10.1
       "role" : "<esriRelRoleOrigin>|<esriRelRoleDestination>";,//Added at 10.1
       "keyField" : "<keyFieldName2>",//Added at 10.1
       "composite" : <true>|<false>,//Added at 10.1
       "relationshipTableId": <attributedRelationshipClassTableId>,  //Added in 10.1. Returned only for attributed relationships
       "keyFieldInRelationshipTable": "<key field in AttributedRelationshipClass table that matches keyField>" //Added in 10.1. Returned only for attributed relationships
     }
   ],
   "isDataVersioned": <true | false>, //Added at 10.1
   "supportsRollbackOnFailureParameter": <true | false>, //Added at 10.1
   "archivingInfo": {
    "supportsQueryWithHistoricMoment": <true | false>,
    "startArchivingMoment": <startArchivingMoment>
   }, //Added at 10.5
   "supportsStatistics": <true | false>, //Added at 10.1
   "supportsAdvancedQueries":<true | false>, //Added at 10.1
   //properties applicable to feature layers only
   "geometryType" : "<geometryType>",
   "minScale" : <minScale>,
   "maxScale" : <maxScale>,
   "effectiveMinScale" : <effectiveMinScale>,
   "effectiveMaxScale" : <effectiveMaxScale>,
   "extent" :  <envelope>,

   //for feature layers only
   "drawingInfo" : {
     "renderer" : <renderer>,
     "transparency" : <transparency>,
     "labelingInfo" : <labelingInfo>
   },
    "hasM":  <true | false>, //if the features in the layer have M values, the hasM property will be true
    "hasZ":  <true | false>, //if the features in the layer have Z values, the hasZ property will be true
   //if the layer / table supports querying based on time
    "enableZDefaults": <true | false>,//Added at 10.1
    "zDefault": <zDefaultValue>,//Added at 10.1
    "allowGeometryUpdates": <true | false>,//Added at 10.1
   "timeInfo" : {
     "startTimeField" : "<startTimeFieldName>",
     "endTimeField" : "<endTimeFieldName>",
     "trackIdField" : "<trackIdFieldName>",
     "timeExtent" : [<startTime>, <endTime>],
     "timeReference" : {
       "timeZone" : "<timeZone>",
       "respectsDaylightSaving" : <true | false>
     },
     "timeInterval" : <timeInterval>,
     "timeIntervalUnits" : "<timeIntervalUnits>"
   },

   //if the layer / table has attachments, the hasAttachments property will be true
   "hasAttachments" : <true | false>

   //from 10 onward - indicates whether the layer / table has htmlPopups
   "htmlPopupType" : "<esriServerHTMLPopupTypeNone | esriServerHTMLPopupTypeAsURL | esriServerHTMLPopupTypeAsHTMLText>",

   //layer / table fields
   "objectIdField" : "<objectIdFieldName>",
   "globalIdField" : "<globalIdFieldName>",
   "typeIdField" : "<typeIdFieldName>",
   //from 10.0 fields of type (String, Date, GlobalID, GUID and XML) have an additional length property, editable properties
   //from 10.1 fields have an additional nullable property
   "fields" : [
     {"name" : "<fieldName1>", "type" : "<fieldType1>", "alias" : "<fieldAlias1>", "length" : "<length1>", "editable" :    "<true | false>","nullable" : "<true | false>","domain" : <domain1>},
     {"name" : "<fieldName2>", "type" : "<fieldType2>", "alias" : "<fieldAlias1>", "length" : "<length2>", "editable" :    "<true | false>","nullable" : "<true | false>", "domain" : <domain2>}
   ],
   //layer / table sub-types
   "types" : [
     {
       "id" : <typeId1>,
       "name" : "<typeName1>",
       "domains" : {
         "<domainField11>" : <domain11>,
         "<domainField12>" : <domain12>
      },
       "templates" : [
         {
           "name" : "<templateName11>",
           "description" : "<templateDescription11>",
           "prototype" : <prototypicalFeature11>
         },
         {
           "name" : "<templateName12>",
           "description" : "<templateDescription12>",
           "prototype" : <prototypicalFeature12>
         }
       ]
     },
     {
       "id" : <typeId2>,
       "name" : "<typeName2>",
       "domains" : {
         "<domainField11>" : <domain21>,
         "<domainField12>" : <domain22>
       },
       "templates" : [
         {
           "name" : "<templateName21>",
           "description" : "<templateDescription21>",
           "prototype" : <prototypicalFeature21>,
           "drawingTool": "esriFeatureEditToolNone | esriFeatureEditToolPoint | esriFeatureEditToolLine | esriFeatureEditToolPolygon |
                        esriFeatureEditToolAutoCompletePolygon | esriFeatureEditToolCircle | esriFeatureEditToolEllipse | esriFeatureEditToolRectangle |
                        esriFeatureEditToolFreehand"
         },
         {
           "name" : "<templateName22>",
           "description" : "<templateDescription22>",
           "prototype" : <prototypicalFeature22>,
           "drawingTool": "esriFeatureEditToolNone | esriFeatureEditToolPoint | esriFeatureEditToolLine | esriFeatureEditToolPolygon |
                        esriFeatureEditToolAutoCompletePolygon | esriFeatureEditToolCircle | esriFeatureEditToolEllipse | esriFeatureEditToolRectangle |
                        esriFeatureEditToolFreehand"
         }
       ]
     }
   ],

   //layer / table templates - usually present when the layer / table has no types
			"templates" : [
     {
       "name" : "<templateName1>",
       "description" : "<templateDescription1>",
       "prototype" : <prototypicalFeature1>
     },
     {
       "name" : "<templateName2>",
       "description" : "<templateDescription2>",
       "prototype" : <prototypicalFeature2>
     }
   ],
   "subtypes":  [
     {
       "code": <SubtypeCode1>,
       "name": "<SubtypeDescription1>",
       "defaultValues": {
         "<fieldName1>": <default1>,
         "<fieldName2>": "<default2>"
       },
       "domains": {         
         "<fieldName1>": <domain11>,
         "<fieldName2>": <domain12>
       }
     },
     {
       "code": <SubtypeCode2>,
       "name": "<SubtypeDescription2>",
       "defaultValues": {
         "<fieldName1>": <default3>,
         "<fieldName2>": "<default4>"
       },
       "domains": {
         "<fieldName1>": <domain21>,
         "<fieldName2>": <domain22>
       }
     }
   ],
   //Maximum number of records returned in a query result
   "maxRecordCount": <maxRecordCount>, //Added at 10.1
   "standardMaxRecordCount" : <standardMaxRecordCount>, 
   "tileMaxRecordCount" : <tileMaxRecordCount>, 
   "maxRecordCountFactor" : <maxRecordCountFactor>,
   "supportedQueryFormats": "<supportedQueryFormats>", //Added at 10.1
   "hasStaticData" : <true | false>
   //comma separated list of supported capabilities - e.g. "Create,Delete,Query,Update,Editing"
   "capabilities" : "<capabilities>"

}

JSON response example

{
  "id": 0,
  "name": "Incidents",
  "type": "Feature Layer",
  "displayField": "req_id",
  "description": "",
  "copyrightText": ""
  "supportsRollbackOnFailures": true,
  "geometryType": "esriGeometryPoint",
  "minScale": 0,
  "maxScale": 0,
  "extent": {
    "xmin": -122.514435102,
    "ymin": 5.6843418860808E-14,
    "xmax": 138.625776397,
    "ymax": 67.1577965990001,
    "spatialReference": {
      "wkid": 4326
    }
  },
  "drawingInfo": {
    "renderer": {
      "type": "uniqueValue",
      "field1": "req_type",
      "field2": null,
      "field3": null,
      "defaultSymbol": null,
      "defaultLabel": "\u003call other values\u003e",
      "uniqueValueInfos": [
        {
          "value": "Blocked Street or Sidewalk",
          "label": "Blocked Street or Sidewalk",
          "description": "",
          "symbol": {
            "type": "esriPMS",
            "url": "1DD4FC53",
            "imageData": "iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAII=",
            "contentType": "image/png",
            "color": null,
            "width": 19,
            "height": 19,
            "angle": 0,
            "xoffset": 0,
            "yoffset": 0
          }
        },
        {
          "value": "Damaged Property",
          "label": "Damaged Property",
          "description": "",
          "symbol": {
            "type": "esriPMS",
            "url": "DF3100A6",
            "imageData": "iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAII=",
            "contentType": "image/png",
            "color": null,
            "width": 15,
            "height": 9,
            "angle": 0,
            "xoffset": 0,
            "yoffset": 0
          }
        },
        {
          "value": "Graffiti Complaint - Public Property",
          "label": "Graffiti Complaint",
          "description": "",
          "symbol": {
            "type": "esriPMS",
            "url": "B2E6E7A0",
            "imageData": "iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAg==",
            "contentType": "image/png",
            "color": null,
            "width": 19,
            "height": 19,
            "angle": 0,
            "xoffset": 0,
            "yoffset": 0
          }
        },
        {
          "value": "Graffiti Complaint � Private Property",
          "label": "Graffiti Complaint",
          "description": "",
          "symbol": {
            "type": "esriPMS",
            "url": "B2E6E7A0",
            "imageData": "iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAAg==",
            "contentType": "image/png",
            "color": null,
            "width": 19,
            "height": 19,
            "angle": 0,
            "xoffset": 0,
            "yoffset": 0
          }
        },
        {
          "value": "Sewer Issues",
          "label": "Sewer Issues",
          "description": "",
          "symbol": {
            "type": "esriPMS",
            "url": "80DC11A7",
            "imageData": "iVBORw0KGgoAAAANSUhEUgAAABYAAAAaCAYAAACzdqxAAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAAg==",
            "contentType": "image/png",
            "color": null,
            "width": 16,
            "height": 19,
            "angle": 0,
            "xoffset": 0,
            "yoffset": 0
          }
        },
        {
          "value": "Sidewalk and Curb Issues",
          "label": "Sidewalk and Curb Issues",
          "description": "",
          "symbol": {
            "type": "esriPMS",
            "url": "19213DC2",
            "imageData": "iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAAII=",
            "contentType": "image/png",
            "color": null,
            "width": 19,
            "height": 19,
            "angle": 0,
            "xoffset": 0,
            "yoffset": 0
          }
        },
        {
          "value": "Tree Maintenance or Damage",
          "label": "Tree Maintenance or Damage",
          "description": "",
          "symbol": {
            "type": "esriPMS",
            "url": "37B62A6C",
            "imageData": "iVBORw0KGgoAAAANSUhEUgAAABcAAAAaCAYAAABctMd+AAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAACC",
            "contentType": "image/png",
            "color": null,
            "width": 17,
            "height": 19,
            "angle": 0,
            "xoffset": 0,
            "yoffset": 0
          }
        }
      ]
    },
    "transparency": 0,
    "labelingInfo": null
  },
  "hasAttachments": false,
  "htmlPopupType": "esriServerHTMLPopupTypeAsHTMLText",
  "objectIdField": "objectid",
  "globalIdField": "",
  "typeIdField": "req_type",
  "fields": [
    {
      "name": "objectid",
      "type": "esriFieldTypeOID",
      "alias": "Object ID",
      "editable": false,
      "nullable": true,
      "domain": null
    },
    {
      "name": "req_id",
      "type": "esriFieldTypeString",
      "alias": "Request ID",
      "editable": true,
      "length": 20,
      "nullable": true,
      "domain": null
    },
    {
      "name": "req_type",
      "type": "esriFieldTypeString",
      "alias": "Request Type",
      "editable": true,
      "length": 40,
      "nullable": true,
      "domain": null
    },
    {
      "name": "req_date",
      "type": "esriFieldTypeString",
      "alias": "Request Date",
      "editable": true,
      "length": 30,
      "nullable": true,
      "domain": null
    },
    {
      "name": "req_time",
      "type": "esriFieldTypeString",
      "alias": "Request Time",
      "editable": true,
      "length": 20,
      "nullable": true,
      "domain": null
    },
    {
      "name": "address",
      "type": "esriFieldTypeString",
      "alias": "Address",
      "editable": true,
      "length": 60,
      "nullable": true,
      "domain": null
    },
    {
      "name": "x_coord",
      "type": "esriFieldTypeString",
      "alias": "X Coordinate",
      "editable": true,
      "length": 20,
      "nullable": true,
      "domain": null
    },
    {
      "name": "y_coord",
      "type": "esriFieldTypeString",
      "alias": "Y Coordinate",
      "editable": true,
      "length": 20,
      "nullable": true,
      "domain": null
    },
    {
      "name": "district",
      "type": "esriFieldTypeString",
      "alias": "District",
      "editable": true,
      "length": 20,
      "nullable": true,
      "domain": null
    },
    {
      "name": "status",
      "type": "esriFieldTypeSmallInteger",
      "alias": "Status",
      "editable": true,
      "nullable": true,
      "domain": {
        "type": "codedValue",
        "name": "StatusCodes",
        "codedValues": [
          {
            "name": "New",
            "code": 1
          },
          {
            "name": "Open",
            "code": 2
          },
          {
            "name": "Closed",
            "code": 3
          }
        ]
      }
    }
  ],
  "types": [
    {
      "id": "Graffiti Complaint - Private Property",
      "name": "Graffiti Complaint",
      "domains": {
        
      },
      "templates": [
        {
          "name": "Graffiti Complaint",
          "description": "",
          "drawingTool": "esriFeatureEditToolPoint",
          "prototype": {
            "attributes": {
              "status": 1,
              "req_id": null,
              "req_type": "Graffiti Complaint - Private Property",
              "req_date": null,
              "req_time": null,
              "address": null,
              "x_coord": null,
              "y_coord": null,
              "district": null
            }
          }
        }
      ]
    },
    {
      "id": "Blocked Street or Sidewalk",
      "name": "Blocked Street or Sidewalk",
      "domains": {
        
      },
      "templates": [
        {
          "name": "Blocked Street or Sidewalk",
          "description": "",
          "drawingTool": "esriFeatureEditToolPoint",
          "prototype": {
            "attributes": {
              "status": 1,
              "req_id": null,
              "req_type": "Blocked Street or Sidewalk",
              "req_date": null,
              "req_time": null,
              "address": null,
              "x_coord": null,
              "y_coord": null,
              "district": null
            }
          }
        }
      ]
    },
    {
      "id": "Damaged Property",
      "name": "Damaged Property",
      "domains": {
        
      },
      "templates": [
        {
          "name": "Damaged Property",
          "description": "",
          "drawingTool": "esriFeatureEditToolPoint",
          "prototype": {
            "attributes": {
              "status": 1,
              "req_id": null,
              "req_type": "Damaged Property",
              "req_date": null,
              "req_time": null,
              "address": null,
              "x_coord": null,
              "y_coord": null,
              "district": null
            }
          }
        }
      ]
    },
    {
      "id": "Graffiti Complaint - Public Property",
      "name": "Graffiti Complaint",
      "domains": {
        
      },
      "templates": [
        {
          "name": "Graffiti Complaint",
          "description": "",
          "drawingTool": "esriFeatureEditToolPoint",
          "prototype": {
            "attributes": {
              "status": 1,
              "req_id": null,
              "req_type": "Graffiti Complaint - Public Property",
              "req_date": null,
              "req_time": null,
              "address": null,
              "x_coord": null,
              "y_coord": null,
              "district": null
            }
          }
        }
      ]
    },
    {
      "id": "Sewer Issues",
      "name": "Sewer Issues",
      "domains": {
        
      },
      "templates": [
        {
          "name": "Sewer Issues",
          "description": "",
          "drawingTool": "esriFeatureEditToolPoint",
          "prototype": {
            "attributes": {
              "status": 1,
              "req_id": null,
              "req_type": "Sewer Issues",
              "req_date": null,
              "req_time": null,
              "address": null,
              "x_coord": null,
              "y_coord": null,
              "district": null
            }
          }
        }
      ]
    },
    {
      "id": "Tree Maintenance or Damage",
      "name": "Tree Maintenance or Damage",
      "domains": {
        
      },
      "templates": [
        {
          "name": "Tree Maintenance or Damage",
          "description": "",
          "drawingTool": "esriFeatureEditToolPoint",
          "prototype": {
            "attributes": {
              "status": 1,
              "req_id": null,
              "req_type": "Tree Maintenance or Damage",
              "req_date": null,
              "req_time": null,
              "address": null,
              "x_coord": null,
              "y_coord": null,
              "district": null
            }
          }
        }
      ]
    },
    {
      "id": "Sidewalk and Curb Issues",
      "name": "Sidewalk and Curb Issues",
      "domains": {
        
      },
      "templates": [
        {
          "name": "Sidewalk and Curb Issues",
          "description": "",
          "drawingTool": "esriFeatureEditToolPoint",
          "prototype": {
            "attributes": {
              "status": 1,
              "req_id": null,
              "req_type": "Sidewalk and Curb Issues",
              "req_date": null,
              "req_time": null,
              "address": null,
              "x_coord": null,
              "y_coord": null,
              "district": null
            }
          }
        }
      ]
    }
  ],
  "templates": [
    
  ],
  "maxRecordCount" : 2000, 
  "standardMaxRecordCount" : 4000, 
  "tileMaxRecordCount" : 4000, 
  "maxRecordCountFactor" : 1,
  "capabilities": "Create,Delete,Query,Update,Editing"
}

JSON response example where the layer has subtypes and returnDomainNames=false

{
 "currentVersion": 10.5,
 "cimVersion": "1.3.0",
 "id": 1,
 "name": "FC1",
 "parentLayerId": -1,
 "type": "Feature Layer",
 "description": "sync.GDB.FC1_1",
 "copyrightText": "",
 "defaultVisibility": true,
 "editFieldsInfo": null,
 "ownershipBasedAccessControlForFeatures": null,
 "syncCanReturnChanges": false,
 "relationships": [],
 "isDataVersioned": false,
 "supportsRollbackOnFailureParameter": true,
 "archivingInfo": {
  "supportsQueryWithHistoricMoment": false,
  "startArchivingMoment": -1
 },
 "supportsStatistics": true,
 "supportsAdvancedQueries": true,
 "supportsValidateSQL": true,
 "supportsCalculate": true,
 "advancedQueryCapabilities": {
  "supportsPagination": true,
  "supportsTrueCurve": true,
  "supportsQueryWithDistance": true,
  "supportsReturningQueryExtent": true,
  "supportsStatistics": true,
  "supportsOrderBy": true,
  "supportsDistinct": true
 },
 "geometryType": "esriGeometryPolygon",
 "minScale": 0,
 "maxScale": 0,
 "extent": {
  "xmin": -1.11478990548E7,
  "ymin": 5784886.1743,
  "xmax": -1.08927509324E7,
  "ymax": 5970448.445100002,
  "spatialReference": {
   "wkid": 102100,
   "latestWkid": 3857
  }
 },
 "drawingInfo": {
  "renderer": {
   "type": "uniqueValue",
   "field1": "FLD0_SUBT_FC2",
   "field2": null,
   "fieldDelimiter": ", ",
   "defaultSymbol": {
    "type": "esriSFS",
    "style": "esriSFSSolid",
    "color": [
     130,
     130,
     130,
     255
    ],
    "outline": {
     "type": "esriSLS",
     "style": "esriSLSSolid",
     "color": [
      225,
      225,
      225,
      255
     ],
     "width": 0.75
    }
   },
   "defaultLabel": "<all other values>",
   "uniqueValueInfos": [
    {
     "symbol": {
      "type": "esriSFS",
      "style": "esriSFSSolid",
      "color": [
       207,
       246,
       252,
       255
      ],
      "outline": {
       "type": "esriSLS",
       "style": "esriSLSSolid",
       "color": [
        110,
        110,
        110,
        255
       ],
       "width": 0.7
      }
     },
     "value": "1",
     "label": "subtype1",
     "description": ""
    }
   ]
  },
  "transparency": 0,
  "labelingInfo": null
 },
 "hasM": false,
 "hasZ": false,
 "allowGeometryUpdates": true,
 "hasAttachments": false,
 "supportsApplyEditsWithGlobalIds": false,
 "htmlPopupType": "esriServerHTMLPopupTypeAsHTMLText",
 "objectIdField": "OBJECTID",
 "globalIdField": "",
 "displayField": "FLD0_SUBT_FC2",
 "typeIdField": "FLD0_SUBT_FC2",
 "subtypeField": "FLD0_SUBT_FC2",
 "defaultSubtypeCode": 1,
 "fields": [
  {
   "name": "OBJECTID",
   "type": "esriFieldTypeOID",
   "alias": "OBJECTID",
   "domain": null,
   "editable": false,
   "nullable": false
  },
  {
   "name": "FLD0_SUBT_FC2",
   "type": "esriFieldTypeInteger",
   "alias": "FLD0_SUBT_FC2",
   "domain": null,
   "editable": true,
   "nullable": true
  },
  {
   "name": "FLD1_LONG_FC2",
   "type": "esriFieldTypeInteger",
   "alias": "FLD1_LONG_FC1",
   "domain": {
    "type": "range",
    "name": "RDOM_1",
    "range": [
     1,
     50
    ],
    "mergePolicy": "esriMPTDefaultValue",
    "splitPolicy": "esriSPTDefaultValue"
   },
   "editable": true,
   "nullable": true
  },
  {
   "name": "FLD2_DBL_FC2",
   "type": "esriFieldTypeDouble",
   "alias": "FLD2_DBL_FC2",
   "domain": {
    "type": "range",
    "name": "RDOM_3",
    "range": [
     100,
     150.5
    ],
    "mergePolicy": "esriMPTDefaultValue",
    "splitPolicy": "esriSPTDefaultValue"
   },
   "editable": true,
   "nullable": true
  },
  {
   "name": "FLD3_DBL_FC2",
   "type": "esriFieldTypeDouble",
   "alias": "FLD3_LONG_FC1",
   "domain": {
    "type": "codedValue",
    "name": "CDOM_1",
    "codedValues": [
     {
      "name": "code 1 description",
      "code": 1
     },
     {
      "name": "code 1.5 description",
      "code": 1.5
     },
     {
      "name": "code 2 description",
      "code": 2
     },
     {
      "name": "code 2.5 description",
      "code": 2.5
     }
    ],
    "mergePolicy": "esriMPTDefaultValue",
    "splitPolicy": "esriSPTDefaultValue"
   },
   "editable": true,
   "nullable": true
  },
  {
   "name": "FLD4_TEXT_FC2",
   "type": "esriFieldTypeString",
   "alias": "FLD4_LONG_FC1",
   "domain": {
    "type": "codedValue",
    "name": "CDOM_3",
    "codedValues": [
     {
      "name": "code 100 description",
      "code": "code 100"
     },
     {
      "name": "code 200 description",
      "code": "code 200"
     },
     {
      "name": "code 300 description",
      "code": "code 300"
     }
    ],
    "mergePolicy": "esriMPTDefaultValue",
    "splitPolicy": "esriSPTDefaultValue"
   },
   "editable": true,
   "nullable": true,
   "length": 50
  }
 ],
 "indexes": [
  {
   "name": "R1390_pk",
   "fields": "OBJECTID",
   "isAscending": true,
   "isUnique": true,
   "description": ""
  },
  {
   "name": "S1047_idx",
   "fields": "SHAPE",
   "isAscending": true,
   "isUnique": true,
   "description": ""
  }
 ],
 "dateFieldsTimeReference": {
  "timeZone": "UTC",
  "respectsDaylightSaving": false
 },
 "types": [
  {
   "id": 1,
   "name": "subtype1",
   "domains": {
    "FLD1_LONG_FC2": {"type": "inherited"},
    "FLD3_DBL_FC2": {
     "type": "codedValue",
     "name": "CDOM_4",
     "codedValues": [
      {
       "name": "coded 1000.1 desc",
       "code": 1000.1
      },
      {
       "name": "coded 2000.1 desc",
       "code": 2000.2
      },
      {
       "name": "coded 3000.1 desc",
       "code": 3000.3
      }
     ],
     "mergePolicy": "esriMPTDefaultValue",
     "splitPolicy": "esriSPTDefaultValue"
    },
    "FLD4_TEXT_FC2": {"type": "inherited"}
   },
   "templates": [
    {
     "name": "subtype1",
     "description": "",
     "prototype": {
      "attributes": {
       "FLD3_DBL_FC2": 1000.1,
       "FLD4_TEXT_FC2": "code 200",
       "FLD0_SUBT_FC2": 1,
       "FLD1_LONG_FC2": 25,
       "FLD2_DBL_FC2": null
      }
     },
     "drawingTool": "esriFeatureEditToolPolygon"
    }
   ]
  }
 ],
 "templates": [],
 "subtypes": [
  {
   "code": 1,
   "name": "subtype1",
   "defaultValues": {
    "FLD0_SUBT_FC2": 1,
    "FLD1_LONG_FC2": 25,
    "FLD2_DBL_FC2": null,
    "FLD3_DBL_FC2": 1000.1,
    "FLD4_TEXT_FC2": "code 200"
   },
   "domains": {
    "FLD1_LONG_FC2": {"type": "inherited"},
    "FLD3_DBL_FC2": {
     "type": "codedValue",
     "name": "CDOM_4",
     "codedValues": [
      {
       "name": "coded 1000.1 desc",
       "code": 1000.1
      },
      {
       "name": "coded 2000.1 desc",
       "code": 2000.2
      },
      {
       "name": "coded 3000.1 desc",
       "code": 3000.3
      }
     ],
     "mergePolicy": "esriMPTDefaultValue",
     "splitPolicy": "esriSPTDefaultValue"
    },
    "FLD4_TEXT_FC2": {"type": "inherited"}
   }
  }
 ],
 "maxRecordCount" : 2000, 
 "standardMaxRecordCount" : 4000, 
 "tileMaxRecordCount" : 4000, 
 "maxRecordCountFactor" : 1,
 "supportedQueryFormats": "JSON, AMF, geoJSON",
 "capabilities": "Create,Query,Update,Delete,Extract,Uploads,Editing",
 "useStandardizedQueries": true
}

JSON response example where the layer has subtypes and returnDomainNames=true

{
 "currentVersion": 10.5,
 "cimVersion": "1.3.0",
 "id": 1,
 "name": "FC1",
 "parentLayerId": -1,
 "type": "Feature Layer",
 "description": "sync.GDB.FC1_1",
 "copyrightText": "",
 "defaultVisibility": true,
 "editFieldsInfo": null,
 "ownershipBasedAccessControlForFeatures": null,
 "syncCanReturnChanges": false,
 "relationships": [],
 "isDataVersioned": false,
 "supportsRollbackOnFailureParameter": true,
 "archivingInfo": {
  "supportsQueryWithHistoricMoment": false,
  "startArchivingMoment": -1
 },
 "supportsStatistics": true,
 "supportsAdvancedQueries": true,
 "supportsValidateSQL": true,
 "supportsCalculate": true,
 "advancedQueryCapabilities": {
  "supportsPagination": true,
  "supportsTrueCurve": true,
  "supportsQueryWithDistance": true,
  "supportsReturningQueryExtent": true,
  "supportsStatistics": true,
  "supportsOrderBy": true,
  "supportsDistinct": true
 },
 "geometryType": "esriGeometryPolygon",
 "minScale": 0,
 "maxScale": 0,
 "extent": {
  "xmin": -1.11478990548E7,
  "ymin": 5784886.1743,
  "xmax": -1.08927509324E7,
  "ymax": 5970448.445100002,
  "spatialReference": {
   "wkid": 102100,
   "latestWkid": 3857
  }
 },
 "drawingInfo": {
  "renderer": {
   "type": "uniqueValue",
   "field1": "FLD0_SUBT_FC2",
   "field2": null,
   "fieldDelimiter": ", ",
   "defaultSymbol": {
    "type": "esriSFS",
    "style": "esriSFSSolid",
    "color": [
     130,
     130,
     130,
     255
    ],
    "outline": {
     "type": "esriSLS",
     "style": "esriSLSSolid",
     "color": [
      225,
      225,
      225,
      255
     ],
     "width": 0.75
    }
   },
   "defaultLabel": "<all other values>",
   "uniqueValueInfos": [
    {
     "symbol": {
      "type": "esriSFS",
      "style": "esriSFSSolid",
      "color": [
       207,
       246,
       252,
       255
      ],
      "outline": {
       "type": "esriSLS",
       "style": "esriSLSSolid",
       "color": [
        110,
        110,
        110,
        255
       ],
       "width": 0.7
      }
     },
     "value": "1",
     "label": "subtype1",
     "description": ""
    }
   ]
  },
  "transparency": 0,
  "labelingInfo": null
 },
 "hasM": false,
 "hasZ": false,
 "allowGeometryUpdates": true,
 "hasAttachments": false,
 "supportsApplyEditsWithGlobalIds": false,
 "htmlPopupType": "esriServerHTMLPopupTypeAsHTMLText",
 "objectIdField": "OBJECTID",
 "globalIdField": "",
 "displayField": "FLD0_SUBT_FC2",
 "typeIdField": "FLD0_SUBT_FC2",
 "subtypeField": "FLD0_SUBT_FC2",
 "defaultSubtypeCode": 1,
 "fields": [
  {
   "name": "OBJECTID",
   "type": "esriFieldTypeOID",
   "alias": "OBJECTID",
   "domain": null,
   "editable": false,
   "nullable": false
  },
  {
   "name": "FLD0_SUBT_FC2",
   "type": "esriFieldTypeInteger",
   "alias": "FLD0_SUBT_FC2",
   "domain": null,
   "editable": true,
   "nullable": true
  },
  {
   "name": "FLD1_LONG_FC2",
   "type": "esriFieldTypeInteger",
   "alias": "FLD1_LONG_FC1",
   "domain": {"name": "RDOM_1"},
   "editable": true,
   "nullable": true
  },
  {
   "name": "FLD2_DBL_FC2",
   "type": "esriFieldTypeDouble",
   "alias": "FLD2_DBL_FC2",
   "domain": {"name": "RDOM_3"},
   "editable": true,
   "nullable": true
  },
  {
   "name": "FLD3_DBL_FC2",
   "type": "esriFieldTypeDouble",
   "alias": "FLD3_LONG_FC1",
   "domain": {"name": "CDOM_1"},
   "editable": true,
   "nullable": true
  },
  {
   "name": "FLD4_TEXT_FC2",
   "type": "esriFieldTypeString",
   "alias": "FLD4_LONG_FC1",
   "domain": {"name": "CDOM_3"},
   "editable": true,
   "nullable": true,
   "length": 50
  }
 ],
 "indexes": [
  {
   "name": "R1390_pk",
   "fields": "OBJECTID",
   "isAscending": true,
   "isUnique": true,
   "description": ""
  },
  {
   "name": "S1047_idx",
   "fields": "SHAPE",
   "isAscending": true,
   "isUnique": true,
   "description": ""
  }
 ],
 "dateFieldsTimeReference": {
  "timeZone": "UTC",
  "respectsDaylightSaving": false
 },
 "types": [
  {
   "id": 1,
   "name": "subtype1",
   "domains": {
    "FLD1_LONG_FC2": {"name": "RDOM_1"},
    "FLD3_DBL_FC2": {"name": "CDOM_4"},
    "FLD4_TEXT_FC2": {"name": "CDOM_3"}
   },
   "templates": [
    {
     "name": "subtype1",
     "description": "",
     "prototype": {
      "attributes": {
       "FLD3_DBL_FC2": 1000.1,
       "FLD4_TEXT_FC2": "code 200",
       "FLD0_SUBT_FC2": 1,
       "FLD1_LONG_FC2": 25,
       "FLD2_DBL_FC2": null
      }
     },
     "drawingTool": "esriFeatureEditToolPolygon"
    }
   ]
  }
 ],
 "templates": [],
 "subtypes": [
  {
   "code": 1,
   "name": "subtype1",
   "defaultValues": {
    "FLD0_SUBT_FC2": 1,
    "FLD1_LONG_FC2": 25,
    "FLD2_DBL_FC2": null,
    "FLD3_DBL_FC2": 1000.1,
    "FLD4_TEXT_FC2": "code 200"
   },
   "domains": {
    "FLD1_LONG_FC2": {"name": "RDOM_1"},
    "FLD3_DBL_FC2": {"name": "CDOM_4"},
    "FLD4_TEXT_FC2": {"name": "CDOM_3"}
   }
  }
 ],
 "maxRecordCount" : 2000, 
 "standardMaxRecordCount" : 4000, 
 "tileMaxRecordCount" : 4000, 
 "maxRecordCountFactor" : 1,
 "supportedQueryFormats": "JSON, AMF, geoJSON",
 "capabilities": "Create,Query,Update,Delete,Extract,Uploads,Editing",
 "useStandardizedQueries": true
}

JSON response example (template with thumbnail)

{
  ....
  "templates":[
    {
      "name":"template_sample",
      "description":"template with thumbnail",
      "prototype":{
        "attributes":{
          "direction":null,
          "name":null,
          "code":null
        }
      },
      "drawingTool":"esriFeatureEditToolPoint",
      "thumbnail":{
        "imageData":"<base 64>",
        "contentType":"image/png",
        "height":34,
        "width":40
      }
    }
  ]
  ....
}

JSON response example (maxRecordCount for point data)

{
  "maxRecordCount" : 2000, 
  "standardMaxRecordCount" : 32000, 
  "tileMaxRecordCount" : 8000, 
}

JSON response example (maxRecordCount for polyline data)

{
  "maxRecordCount" : 2000, 
  "standardMaxRecordCount" : 4000, 
  "tileMaxRecordCount" : 4000, 
}

JSON response example (maxRecordCount for polygon data)

{
  "maxRecordCount" : 2000, 
  "standardMaxRecordCount" : 4000, 
  "tileMaxRecordCount" : 4000, 
}

JSON response example (maxRecordCount for table)

{
  "maxRecordCount" : 2000, 
  "standardMaxRecordCount" : 32000, 
  "tileMaxRecordCount" : 8000, 
}

3/3/2017