Skip To Content ArcGIS for Developers Sign In Dashboard

Map Service

Description

Map services offer access to the contents of a map hosted on a server. Map services can expose different levels of capabilities. When a map service is hosted on ArcGIS Online or Portal for ArcGIS, it exposes a set of tiled images that are used by the client for rapid map navigation. When a map service is hosted on an ArcGIS Server site, it exposes additional functionality, such as dynamic drawing, query, and search. With ArcGIS Server, further web services may be available through the map service root URL that allow network analysis, vector feature editing, and so forth.

The REST API Map Service resource works only with the default data frame of your published map document. This resource provides basic information about the map, including the layers that it contains, whether or not the map is cached, its spatial reference, initial and full extents, map units, and copyright text. It also provides some metadata associated with the service, such as its service description, its author, and keywords. If the map is cached, additional information about its tiling scheme, such as the origin of the cached tiles, the levels of detail, and tile size, is included.

Map services do not expose editing capabilities. They provide read-only access to feature and attribute content.

Map services hosted by ArcGIS Online and Portal for ArcGIS

Map services hosted by ArcGIS Online or Portal for ArcGIS can only return tiles from the server's cache; they cannot draw images dynamically, nor do they allow query of the individual features behind the map. You can support queries and informational pop-up windows in your applications using feature services in conjunction with your map services.

Accordingly, some of the resources, operations, and properties mentioned in this section of the documentation do not apply to map services hosted by ArcGIS Online or Portal for ArcGIS.

Map services hosted by ArcGIS Server

Map services hosted by ArcGIS Server support a larger set of operations as follows:

  • Export map—Exports a map image from a dynamic map service. The resulting map can be used for display and be in a different projection from the original data source. When generating a map image, map services cannot change feature rendering for an existing layer, add a dynamic layer, or change the layer draw order.
  • Identify—Returns information about features in one or more layers based on where a user clicks on the map.
  • Find—Returns information about features in one or more fields in one or more layers based on a keyword.
  • Generate KML—Generates a KML document wrapped in a KMZ file. The document contains a network link to the KML service endpoint with specified properties and parameters. This operation is valid on services that have not been restricted using a token service.
  • Query on a Layer/Table—Returns a subset of features in a layer or records in a table based on query criteria.

New in 10.7.1

  • The queryLegends operation can be used to return information about the map service's legend filtered by layer and visibility. This operation is only available when the layer resource reports supportsDynamicLegends true.
  • supportedQueryFormats now includes pbf (protocol buffer), a compact binary encoding for geographic data.
  • The minLOD is the minimum level of detail (LOD) of the tiling scheme at which the cache tiles are available in the tile service. This does not have to be the smallest scale in your tiling scheme. You can choose to not create the cache tiles for all the LOD of your tiling scheme and only create caches from min-maxLODs. The resampling property will be used to display cache for the levels beyond min-max LODs. The minLOD should always be larger than the maxLOD.
  • The maxLOD is the maximum level of detail (LOD) of the tiling scheme at which the cache tiles are available in the tile service. Any requests to draw tiles outside this level would try to use the resampling setting to resample tiles from the nearest available LOD.
    Note:

    The minLOD and maxLOD values are set automatically when publishing to ArcGIS Server, Portal for ArcGIS, and ArcGIS Online environments. To edit these values, you will need to use the Edit Service operation, while ensuring that the new values exist within the range of the previous minLOD and maxLOD values.

  • At 10.7.1, both minScale and maxScale properties have been updated. Previously, these properties were described as the minimum and maximum map scales at which the administrator has allowed the tiles to be built. As of 10.7.1, their descriptions have been updated to the following:
    • minScale is the minimum scale (most zoomed out) at which the service layer is visible in the map view. If the map is zoomed out beyond this scale, the service layer will not be visible. A value of 0 means the layer does not have a minimum scale. The minScale value should always be larger than the maxScale value.
    • maxScale is the maximum scale (most zoomed in) at which the service layer is visible in the current map view. If the map is zoomed in beyond this scale, the service layer will not be visible. A value of 0 means the layer does not have a maximum scale. The maxScale value should always be smaller than the minScale value.
  • The resampling property has been updated at 10.7.1. At 10.3, this property was introduced as a Boolean value (true|false) that indicated whether clients should resample tiles for areas where tiles are unavailable. At 10.7.1, its description has been updated to the following:
    • A Boolean value (true | false) that is used for rendering in Tile Package Clients such as ArcMap, ArcGIS Pro, Map Viewer, and JSAPI. Enabling resampling redraws images up to the maxScale value. In areas with no data, blurred images will be displayed.

New in 10.7

  • Ended support for Action Message Format (AMF) as an output format.

New in 10.6.1

  • Added support for Layer File (.lyrx) as a dynamic layer source: Dynamic Workspace Layer .
  • For archive enabled data, the query operation on the layer resources as well as the queryRelatedRecords operation support a historicMoment parameter. Layers with the supportsQueryWithHistoricMoment property set to true support the historicMoment parameter.
  • The query operation returns a number of unique values, instead of a list of unique values, in a field when values for both the returnCountOnly and returnDistinctValues parameters are true.
  • The legend resource introduces two new parameters to return legend patches at higher dpi and different size.
  • The layer/table resource introduces the hasMetadata flag and three new resources: iteminfo, thumbnail, and metadata.

New in 10.5

  • Supports the following new parameters in the export, identify, find and query operations:
    • datumTransformation
    • mapRangeValues
    • layerRangeValues
    • layerParameterValues
  • Map service root resources include activeRangeName and currentRangeExtent when the map has ranges.
  • Layer resources include rangeInfos and parameterInfos when available.
  • The identify and find operations are enhanced with the following Boolean flags that support returning unformatted values and field names when desired:
    • returnUnformattedValues
    • returnFieldName
  • Supports SQL expressions in query operation's orderBy, groupByFieldsForOutStatistics, and outStatistics. Check supportsSqlExpression on resources to find out whether the layer/table allows SQL expressions.
  • The returnUpdates response includes the updated full spatial extent when the map contains one or more layers from enterprise geodatabases.

New at 10.4

  • GeoJSON is supported as an output format of the map service layer query operation.
  • The query operation supports expressions in addition to field names for orderByFields and groupByFieldsForStatistics.

New at 10.3

  • Map Service will return resampling:true|false, indicating whether clients should resample tiles for areas where tiles are unavailable. This property is not enabled by default; you can add it using the ArcGIS Server Administrator Directory.

New at 10.2

  • Standardized SQL queries are the default way to specify a where clause or definition expression. The map service Layer and Dynamic Layer resources now report the useStandardizedQueries property to indicate support for standardized queries.
  • Query operations on Layer and Dynamic Layer now support specifying a gdbVersion parameter in conjunction with the outStatistics parameter.
  • The Renderer object supports two new optional properties: rotationType that controls the origin and direction of rotation, and rotationExpression, which is a constant value or an expression that derives the angle of rotation based on the feature attribute value. When an attribute name is specified in rotationExpression, it is enclosed in square brackets, for example, [Rotation].
  • The Map Service resource lists two new properties: exportTilesAllowed, a Boolean flag that indicates whether clients can export cache tiles, and maxExportTilesCount that specifies the maximum number of tiles that can be exported to a cache dataset or a tile package.
  • The Map Service resource lists a new property supportedExtensions, a comma-separated list of extensions supported by the map service.

New at 10.1 SP1

  • Query operations on Layer and Dynamic Layer support a new parameter called returnDistinctValues that accepts a Boolean value. When true, query results will contain distinct values based on the fields specified in the outFields parameter.
  • Query operations on Layer and Dynamic Layer support the geometry parameter to be used in conjunction with the outStatistics parameter.
  • The Legend resource returns the height and width of the legend symbol.
  • The All Layers/Table, Layer, and Dynamic Layer resources now include an ownershipBasedAccessControlForFeatures flag to indicate ownership.

New at 10.1

  • The Map Service resource supports a new parameter, returnUpdates, that accepts a Boolean value. Pass this parameter to retrieve updated information from the map service.
  • The Map Service resource has new input parameters, option and outSR, to support viewing of a map service footprint in arcgis.com.
  • Support for dynamic layers has been added to map service. This allows per-request modification of renderer, joins, geodatabase version, or layer order for existing map service layers. If the map service has registered workspaces, dynamic layers also allow per-request addition of layers based on the data from the registered workspaces. Use the supportsDynamicLayers property on the Map Service resource to determine if the service supports dynamic layers.
  • The Map Service resource contains maxRecordCount, maxImageHeight, and maxImageWidth properties. maxRecordCount represents the maximum number of records that can be returned by query, find, and identify operations. maxImageHeight and maxImageWidth represent the maximum image height and width, in pixels, the map service will export.
  • The Map Service resource includes the tileServers property, which advertises multiple subdomains on a map service endpoint. This allows the tile requests to be split across the tile servers specified in this property, for example, https://maps1.myserver.com and https://maps2.myserver.com.
  • The Map Service resource includes supportedQueryFormats. This value indicates the supported output formats for a query operation.
  • The Map Service resource includes these new properties under timeInfo: timeRelation, defaultTimeInterval, defaultTimeIntervalUnits, defaultTimeWindow, and hasLiveData.

    • timeRelation indicates how the start and end time of the time slider extent are processed: esriTimeRelationOverlaps when start and end time of the time slider are included, esriTimeRelationOverlapsStartWithinEnd when start time is included and end time is excluded, and esriTimeRelationAfterStartOverlapsEnd when start time is excluded and end time is included.
    • defaultTimeInterval and defaultTimeIntervalUnits indicate the initial time slider step size. The allowed units include the following:
      • esriTimeUnitsCenturies
      • esriTimeUnitsDays
      • esriTimeUnitsDecades
      • esriTimeUnitsHours
      • esriTimeUnitsMilliseconds
      • esriTimeUnitsMinutes
      • esriTimeUnitsMonths
      • esriTimeUnitsSeconds
      • esriTimeUnitsWeeks
      • esriTimeUnitsYears
      • esriTimeUnitsUnknown
    • defaultTimeWindow indicates the time slider window size.
    • hasLiveData returns a Boolean value. If true, export and identify operations will default the value for the time parameter to be [<current server time - defaultTimeWindow>, <current server time>].

  • The Map Service resource includes minScale and maxScale properties. For a cached map service, these values represent the minimum and maximum map scales at which the administrator has allowed the tiles to be built. In the case of a dynamic map service, these values are calculated as a union of minimum and maximum scales of all the map layers.
  • The Map Service resource includes hasVersionedData if any of the map layers data is versioned. When true, map service operations accept the gdbVersion parameter to switch the geodatabase version.

New at 10.0 SP1

  • Support for a Map Service Legend child resource was added.
  • The Map Service resource includes scale information (minScale and maxScale) for layers.

New at 10.0

  • At 10 and later, in addition to layers, map services can also publish stand-alone tables. The response includes a new tablesproperty that contains some basic information about tables. The child layer resource is now a Layer/Table resource in that it represents either a layer or a table depending on the ID that was specified.
  • Support for time-aware map services was added at 10. If the map supports querying and exporting maps based on time, the response will include a timeInfo property that includes information such as the map's time extent and the map's native time reference. However, the REST API always encodes time in UTC (milliseconds from epoch).

Request parameters

ParameterDetails
f

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

Values: html | json | kmz | lyr | nmf | jsapi | ve | gmaps

returnUpdates

This parameter was added at 10.1.

Description: If value is true, returns updated time extent. If the service is not time aware, returns an empty response.

Values: true | false

option

This parameter was added at 10.1.

Description: If option is footprints, the footprint of the map service is returned as a feature collection. This feature collection can be viewed in an arcgis.com map. This is supported when f=json only.

Values: footprints

outSR

This parameter was added at 10.1.

Description: 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.

Example usage

Example: URL for the "ESRI_StateCityHighway_USA" map service on sampleserver1.

https://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer

JSON response syntax

The following properties were added to the JSON response at 10.2:

  • exportTilesAllowed
  • maxExportTilesCount
  • supportedExtensions

The following properties were added to the JSON response at 10.1:

  • supportsDynamicLayers
  • timeInfo

    • timeRelation
    • defaultTimeInterval
    • defaultTimeIntervalUnits
    • defaultTimeWindow
    • hasLiveData

  • maxRecordCount
  • maxImageHeight
  • maxImageWidth
  • minScale
  • maxScale
  • tileServers
  • supportedQueryFormats

The following property was added to the JSON response at 9.3.1:

  • supportedImageFormatTypes

{
"currentVersion": <currentVersion>, //Added at 10.0 SP1
"serviceDescription" : "<serviceDescription>",
"mapName" : "<mapName>"
"description": "<description>",
"copyrightText" : "<copyrightText>",
"supportsDynamicLayers" : <true|false>, //Added at 10.1
"layers": [ //the spatial layers published by this service
    {
    "id" : <layerId1>, 
    "name" : "<layerName1>", 
    "defaultVisibility" : <true|false>, 
    "parentLayerId" : <parentLayerId1>,
    "subLayerIds" : [<subLayerId11>, <subLayerId12>]
    "minScale": <minScale1>, //Added at 10.0 SP1
    "maxScale": <maxScale1>
    },
    {
    "id" : <layerId2>, 
    "name" : "<layerName2>", 
    "defaultVisibility" : <true|false>, 
    "parentLayerId" : <parentLayerId2>,
    "subLayerIds" : [<subLayerId21>, <subLayerId22>]
    "minScale": <minScale1>,
    "maxScale": <maxScale1>
    }
],
"tables": [ //the tables published by this service - from 10 onward
    {
    "id" : <tableId1>, 
    "name" : "<tableName1>"
    },
    {
    "id" : <tableId2>, 
    "name" : "<tableName2>"
    }
],
"spatialReference" : {<spatialReference>},
"singleFusedMapCache" : <true | false>,
"tileInfo": {
    "rows" : <rows>, "cols" : <cols>, "dpi" : <dpi>, "format" : <format>, "compressionQuality" : <quality>,
    "origin" : {<point>},
    "spatialReference" : {<spatialReference>},
    "lods": [
        {"level" : <level1>, "resolution" : <resolution1>, "scale" : <scale1> },
        {"level" : <level2>, "resolution" : <resolution2>, "scale" : <scale2> }
    ]
},
"initialExtent" : {<envelope>},
"fullExtent" : {<envelope>},
//from 10 onward - if the map supports querying and exporting maps based on time
"timeInfo" : {
  "timeExtent": [<startTime>, <endTime>],
  "timeReference": {
    "timeZone": "<timeZone>",
    "respectsDaylightSaving": <true | false>
  },
  "timeRelation": "<esriTimeRelationOverlaps | esriTimeRelationOverlapsStartWithinEnd | esriTimeRelationAfterStartOverlapsEnd>",
  "defaultTimeInterval" : <time interval>,
  "defaultTimeIntervalUnits" : "<esriTimeUnitsCenturies | esriTimeUnitsDays | esriTimeUnitsDecades |
                             esriTimeUnitsHours | esriTimeUnitsMilliseconds | esriTimeUnitsMinutes |
                             esriTimeUnitsMonths | esriTimeUnitsSeconds | esriTimeUnitsWeeks | esriTimeUnitsYears |
                             esriTimeUnitsUnknown>",
  "defaultTimeInterval" : <time interval>,
  "defaultTimeWindow" : <time window>,
  "hasLiveData" : <true | false>,
},
"units" : "<units>",
"supportedImageFormatTypes" : "<supportedImageFormatTypes>",
"documentInfo": {
    "<key1>" : "<value1>",
    "<key2>" : "<value2>"
},
//comma separated list of supported capabilities - e.g. "Map,Query,Data"
"capabilities" : "<capabilities>",
"maxRecordCount" : <maxRecordCount>, //Added at 10.1
"maxImageHeight" : <maxImageHeight>, //Added at 10.1
"maxImageWidth" : <maxImageWidth>, //Added at 10.1
"minScale" : <minimum map scale>, //Added at 10.1
"maxScale" : <maximum map scale>, //Added at 10.1
"tileServers" : ["<tileServerUrl1>","<tileServerUrl2>","<tileServerUrl2>"], //Added at 10.1
"supportedQueryFormats" : "<query output formats>",
"exportTilesAllowed": <true | false>,
"maxExportTilesCount: <export tiles limit>,
"supportedExtensions": "<FeatureServer,KmlServer,MobileServer,WCSServer,WFSServer,WMSServer,NAServer,SchematicsServer>",
"resampling" : <true | false> // Added at 10.3
}

JSON response example

{
    "currentVersion": 10.1,
    "serviceDescription": "Test Map Service Description",
    "mapName": "Street Map Pro Data",
    "description": "Street Map USA",
    "copyrightText": "ESRI",
    "supportsDynamicLayers": false,
    "layers": [
        {
            "id": 0,
            "name": "Cities",
            "defaultVisibility": true,
            "parentLayerId": -1,
            "subLayerIds": null,
            "minScale": 0,
            "maxScale": 0
        },
        {
            "id": 1,
            "name": "States",
            "defaultVisibility": true,
            "parentLayerId": -1,
            "subLayerIds": null,
            "minScale": 0,
            "maxScale": 0
        },
        {
            "id": 2,
            "name": "Counties",
            "defaultVisibility": false,
            "parentLayerId": -1,
            "subLayerIds": [
                3,
                4
            ],
            "minScale": 0,
            "maxScale": 0
        },
        {
            "id": 3,
            "name": "Large Counties",
            "defaultVisibility": false,
            "parentLayerId": 2,
            "subLayerIds": null,
            "minScale": 0,
            "maxScale": 0
        },
        {
            "id": 4,
            "name": "Small Counties",
            "defaultVisibility": false,
            "parentLayerId": 2,
            "subLayerIds": null,
            "minScale": 0,
            "maxScale": 0
        }
    ],
    "spatialReference": {
        "wkid": 4326
    },
    "singleFusedMapCache": true,
    "tileInfo": {
        "rows": 512,
        "cols": 512,
        "dpi": 96,
        "format": "JPEG",
        "compressionQuality": 75,
        "origin": {
            "x": -130,
            "y": 50
        },
        "spatialReference": {
            "wkid": 4326
        },
        "lods": [
            {
                "level": 0,
                "resolution": 8.46,
                "scale": 32000
            },
            {
                "level": 1,
                "resolution": 4.23,
                "scale": 16000
            },
            {
                "level": 2,
                "resolution": 2.11,
                "scale": 8000
            },
            {
                "level": 3,
                "resolution": 1.05,
                "scale": 4000
            },
            {
                "level": 4,
                "resolution": 0.52,
                "scale": 2000
            }
        ]
    },
    "initialExtent": {
        "xmin": -109.55,
        "ymin": 25.76,
        "xmax": -86.39,
        "ymax": 49.94,
        "spatialReference": {
            "wkid": 4326
        }
    },
    "fullExtent": {
        "xmin": -130,
        "ymin": 24,
        "xmax": -65,
        "ymax": 50,
        "spatialReference": {
            "wkid": 4326
        }
    },
    "units": "esriDecimalDegrees",
    "supportedImageFormatTypes": "PNG32,PNG24,PNG,JPG,DIB,TIFF,EMF,PS,PDF,GIF,SVG,SVGZ",
    "documentInfo": {
        "Title": "StreetMap USA.mxd",
        "Author": "ESRI Data Team",
        "Comments": "ESRI Data and Maps 2004",
        "Subject": "Street level data for the US",
        "Category": "vector",
        "Keywords": "StreetMap USA"
    },
    "capabilities": "Map,Query,Data",
    "maxRecordCount": 1000,
    "maxImageHeight": 2048,
    "maxImageWidth": 2048,
    "minScale": 0,
    "maxScale": 0,
    "tileServers": ["https://myserver/arcgis/rest/services/basemap/MapServer","https://myserver2/arcgis/rest/services/basemap/MapServer"],
    "supportedQueryFormats": "JSON",
    "exportTilesAllowed": true,
    "maxExportTilesCount": 100000,
    "supportedExtensions": "FeatureServer,KmlServer,MobileServer,WCSServer,WFSServer,WMSServer,NAServer,SchematicsServer"
}

Example 2: When requesting updated information from the service:

JSON response syntax

{
  "timeExtent": [
    <startTime>, 
    <endTime>
  ],
  "fullExtent": {
    "xmin": <xmin>,
    "ymin": <ymin>,
    "xmax": <xmax>,
    "ymax": <ymax>,
    "spatialReference": <spatialReference>
 }
}

JSON response example

{
  "timeExtent":
    [
      1230768000000, 1243814400000
    ],
  "fullExtent": {
    "xmin": -178.21759836192689,
    "ymin": 18.924781799107389,
    "xmax": -66.969271035924393,
    "ymax": 71.406235352841463,
    "spatialReference": {
       "wkid": 4269,
       "latestWkid": 4269
    }
  }
}

Example 3: When requesting footprint for a service:

URL: https://sampleserver.arcgisonline.com/arcgis/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer?f=json&option=footprints&outSR=102100

JSON response syntax

{
    {
    "featureCollection": {
        "layers": [
            {
                "layerDefinition": {
                    "type": "Feature Layer",
                    "geometryType": "esriGeometryPoint",
                    "extent": {
                        <envelope>
                    },
                    "objectIdField": "id",
                    "displayFieldName": "<displayFieldName>",
                    "drawingInfo": {
                        "renderer": {
                            "type": "simple",
                            "label": "<label>",
                            "description": "",
                            "symbol": {
                                "height": 24,
                                "xoffset": 0,
                                "yoffset": 0,
                                "width": 24,
                                "contentType": "image/png",
                                "type": "esriPMS",
                                "imageData": "<imageData>",
                                "url": "<imageUrl>"
                            }
                        }
                    },
                    "fields": [
                        {
                            "name": "id",
                            "alias": "ID",
                            "type": "esriFieldTypeOID"
                        },
                        {
                            "name": "title",
                            "alias": "Title",
                            "type": "esriFieldTypeString"
                        },
                        {
                            "name": "summary",
                            "alias": "Summary",
                            "type": "esriFieldTypeString"
                        },
                        {
                            "name": "description",
                            "alias": "Description",
                            "type": "esriFieldTypeString"
                        },
                        {
                            "name": "tags",
                            "alias": "Tags",
                            "type": "esriFieldTypeString"
                        },
                        {
                            "name": "type",
                            "alias": "Type",
                            "type": "esriFieldTypeString"
                        },
                        {
                            "name": "thumbnail",
                            "alias": "Thumbnail",
                            "type": "esriFieldTypeString"
                        },
                        {
                            "name": "xmin",
                            "alias": "xmin",
                            "type": "esriFieldTypeDouble"
                        },
                        {
                            "name": "ymin",
                            "alias": "ymin",
                            "type": "esriFieldTypeDouble"
                        },
                        {
                            "name": "xmax",
                            "alias": "xmax",
                            "type": "esriFieldTypeDouble"
                        },
                        {
                            "name": "ymax",
                            "alias": "ymax",
                            "type": "esriFieldTypeDouble"
                        },
                        {
                            "name": "accessInformation",
                            "alias": "Access Information",
                            "type": "esriFieldTypeString"
                        },
                        {
                            "name": "licenseInfo",
                            "alias": "License Information",
                            "type": "esriFieldTypeString"
                        },
                        {
                            "name": "credits",
                            "alias": "Credits",
                            "type": "esriFieldTypeString"
                        },
                        {
                            "name": "link",
                            "alias": "Link",
                            "type": "esriFieldTypeString"
                        },
                        {
                            "name": "arcgisJslink",
                            "alias": "ArcgisJsLink",
                            "type": "esriFieldTypeString"
                        }
                    ]
                },
                "featureSet": {
                    "geometryType": "esriGeometryPoint",
                    "spatialReference": {
                        "wkid": <wkid>
                    },
                    "features": [
                        {
                            "geometry": {
                                <point>
                            },
                            "attributes": {
                                "id": 1,
                                "title": "<title>",
                                "summary": "<summary>",
                                "description": "<description>",
                                "tags": "[\"<tag1>\,\"<tag2>\"]",
                                "type": "MapServer",
                                "thumbnail": "<thumbnailUrl>",
                                "xmin": <xmin>,
                                "ymin": <ymin>,
                                "xmax": <xmax>,
                                "ymax": <ymax>,
                                "accessInformation": "<accessInformation>",
                                "licenseInfo": "<licenseInfo>",
                                "credits": "<credits>",
                                "link": "<serviceResourceLink>",
                                "arcgisJslink": "<View in JSAPI Link>"
                            }
                        }
                    ]
                },
                "popupInfo": {
                    "title": "{title} ({type})",
                    "fieldInfos": [
                        {
                            "fieldName": "id",
                            "label": "ID",
                            "visible": false
                        },
                        {
                            "fieldName": "title",
                            "label": "Title",
                            "visible": true
                        },
                        {
                            "fieldName": "summary",
                            "label": "Summary",
                            "visible": true
                        },
                        {
                            "fieldName": "description",
                            "label": "Description",
                            "visible": true
                        },
                        {
                            "fieldName": "tags",
                            "label": "Tags",
                            "visible": true
                        },
                        {
                            "fieldName": "type",
                            "label": "Type",
                            "visible": true
                        },
                        {
                            "fieldName": "thumbnail",
                            "label": "Thumbnail",
                            "visible": false
                        },
                        {
                            "fieldName": "xmin",
                            "label": "xmin",
                            "format": {
                                "places": 2,
                                "digitSeparator": false
                            },
                            "visible": false
                        },
                        {
                            "fieldName": "ymin",
                            "label": "ymin",
                            "format": {
                                "places": 2,
                                "digitSeparator": false
                            },
                            "visible": false
                        },
                        {
                            "fieldName": "xmax",
                            "label": "xmax",
                            "format": {
                                "places": 2,
                                "digitSeparator": false
                            },
                            "visible": false
                        },
                        {
                            "fieldName": "ymax",
                            "label": "ymax",
                            "format": {
                                "places": 2,
                                "digitSeparator": false
                            },
                            "visible": false
                        },
                        {
                            "fieldName": "accessInformation",
                            "label": "Access Information",
                            "visible": true
                        },
                        {
                            "fieldName": "licenseInfo",
                            "label": "License Information",
                            "visible": true
                        },
                        {
                            "fieldName": "credits",
                            "label": "Credits",
                            "visible": true
                        },
                        {
                            "fieldName": "link",
                            "label": "Link",
                            "visible": true
                        }
                    ],
                    "description": null,
                    "showAttachments": false,
                    "mediaInfos": [
                        {
                            "type": "image",
                            "caption": "Initial Extent: [{xmin}, {ymin}] - [{xmax}, {ymax}]",
                            "value": {
                                "sourceURL": "{thumbnail}",
                                "linkURL": "{arcgisJslink}"
                            }
                        }
                    ]
                }
            }
        ]
    }
}

JSON response example

{
    "featureCollection":{
        "layers":[{
                "layerDefinition":{
                    "type":"Feature Layer",
                    "geometryType":"esriGeometryPoint",
                    "extent":{"xmin":-4254455.8606807785,"ymin":-1273247.593581636,"xmax":-3967497.083911836,"ymax":-1127922.6881048125,"spatialReference":{"wkid":102100}},
                    
                    "objectIdField":"id",
                    "displayFieldName":"Maps/BrazilMapServer",
                    "drawingInfo":{
                        "renderer":{
                            "type":"simple",
                            "label":"Maps/Brazil",
                            "description":"",
                            "symbol":{
                                "height":24,
                                "xoffset":0,
                                "yoffset":0,
                                "width":24,
                                "contentType":"image/png",
                                "type":"esriPMS",
                                "imageData":"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",
                                "url":"https://sampleserver/arcgis/rest/static/images/BlueShinyPin.png"
                            }
                        }
                    },
 "fields": [
                  {
                      "name": "id",
                      "alias": "ID",
                      "type": "esriFieldTypeOID"
                  },
                  {
                      "name": "title",
                      "alias": "Title",
                      "type": "esriFieldTypeString"
                  },
                  {
                      "name": "summary",
                      "alias": "Summary",
                      "type": "esriFieldTypeString"
                  },
                  {
                      "name": "description",
                      "alias": "Description",
                      "type": "esriFieldTypeString"
                  },
                  {
                      "name": "tags",
                      "alias": "Tags",
                      "type": "esriFieldTypeString"
                  },
                  {
                      "name": "type",
                      "alias": "Type",
                      "type": "esriFieldTypeString"
                  },
                  {
                      "name": "thumbnail",
                      "alias": "Thumbnail",
                      "type": "esriFieldTypeString"
                  },
                  {
                      "name": "xmin",
                      "alias": "xmin",
                      "type": "esriFieldTypeDouble"
                  },
                  {
                      "name": "ymin",
                      "alias": "ymin",
                      "type": "esriFieldTypeDouble"
                  },
                  {
                      "name": "xmax",
                      "alias": "xmax",
                      "type": "esriFieldTypeDouble"
                  },
                  {
                      "name": "ymax",
                      "alias": "ymax",
                      "type": "esriFieldTypeDouble"
                  },
                  {
                      "name": "accessInformation",
                      "alias": "Access Information",
                      "type": "esriFieldTypeString"
                  },
                  {
                      "name": "licenseInfo",
                      "alias": "License Information",
                      "type": "esriFieldTypeString"
                  },
                  {
                      "name": "credits",
                      "alias": "Credits",
                      "type": "esriFieldTypeString"
                  },
                  {
                      "name": "link",
                      "alias": "Link",
                      "type": "esriFieldTypeString"
                  },
                  {
                      "name": "arcgisJslink",
                      "alias": "ArcgisJsLink",
                      "type": "esriFieldTypeString"
                  }                  
                ]

                },
                "featureSet":{
                    "geometryType":"esriGeometryPoint",
                    "spatialReference":{
                        "wkid":102100
                    },
                    "features":[{
                            "geometry":{
                                "x":-4110976.4722963073,
                                "y":-1200585.1408432242
                            },
                            "attributes":{
                                "id": 1,
                        "title": "Maps/Brazil",
                        "summary": "",
                        "description": "",
                        "tags": "[\"Brazil\"]",
                        "type": "MapServer",
                        "thumbnail": "https://sampleserver/arcgis/rest/services/Maps/Brazil/MapServer/info/thumbnail",
                        "xmin": -4254455.8606807785,
                        "ymin": -1273247.593581636,
                        "xmax": -3967497.083911836,
                        "ymax": -1127922.6881048125,
                        "accessInformation": "",
                        "licenseInfo": "",
                        "credits": "",
                        "link": "https://sampleserver/arcgis/rest/services/Maps/Brazil/MapServer",
                        "arcgisJslink": "https://sampleserver/arcgis/rest/services/Maps/Brazil/MapServer?f=jsapi"
                                
                            }
                        }
                    ]
                },
                "popupInfo":{
                "title": "{title} ({type})",
                "fieldInfos": [
                  {
                      "fieldName": "id",
                      "label": "ID",
                      "visible": false
                  },
                  {
                      "fieldName": "title",
                      "label": "Title",
                      "visible": true
                  },
                  {
                      "fieldName": "summary",
                      "label": "Summary",
                      "visible": true
                  },
                  {
                      "fieldName": "description",
                      "label": "Description",
                      "visible": true
                  },
                  {
                      "fieldName": "tags",
                      "label": "Tags",
                      "visible": true
                  },
                  {
                      "fieldName": "type",
                      "label": "Type",
                      "visible": true
                  },
                  {
                      "fieldName": "thumbnail",
                      "label": "Thumbnail",
                      "visible": false
                  },
                  {
                      "fieldName": "xmin",
                      "label": "xmin",
                      "format": {
                        "places": 2,
                        "digitSeparator":  false
                      },
                      "visible": false
                  },
                  {
                      "fieldName": "ymin",
                      "label": "ymin",
                      "format": {
                        "places": 2,
                        "digitSeparator":  false
                      },
                      "visible": false
                  },
                  {
                      "fieldName": "xmax",
                      "label": "xmax",
                      "format": {
                        "places": 2,
                        "digitSeparator":  false
                      },
                      "visible": false
                  },
                  {
                      "fieldName": "ymax",
                      "label": "ymax",
                      "format": {
                        "places": 2,
                        "digitSeparator":  false
                      },
                      "visible": false
                  },
                  {
                      "fieldName": "accessInformation",
                      "label": "Access Information",
                      "visible": true
                  },
                  {
                      "fieldName": "licenseInfo",
                      "label": "License Information",
                      "visible": true
                  },
                  {
                      "fieldName": "credits",
                      "label": "Credits",
                      "visible": true
                  },
                  {
                      "fieldName": "link",
                      "label": "Link",
                      "visible": true
                  }
                ],
                "description": null,
                "showAttachments": false,
                "mediaInfos": [
                  {
                    "type": "image",
                    "caption": "Initial Extent: [{xmin}, {ymin}] - [{xmax}, {ymax}]",
                    "value": {
                      "sourceURL": "{thumbnail}",
                      "linkURL": "{arcgisJslink}"
                    }
                  }
                ]
            }
            }
        ]
    }
}