FeatureServer vs MapServer: Which ArcGIS REST Endpoint Should You Use?

By · Last updated May 16, 2026 · 9 min read

A FeatureServer exposes vector geographic features with full read and write/edit/query capabilities. A MapServer renders cartographic map images and is primarily read-and-display, with newer versions also exposing queryable feature layers. For new development against county parcel data, you almost always want the FeatureServer endpoint — but about half the county GIS servers you'll encounter in the wild only publish MapServer, and the good news is that MapServer with supportsQuery: true handles attribute lookups just fine.

FeatureServer vs MapServer: Quick Comparison

Dimension FeatureServer MapServer
Service purpose Vector feature access and editing Map image rendering and display
Read support Yes Yes (images always; attributes when supportsQuery: true)
Edit/write support Yes, when the service owner enables it No
Output format Feature attributes + geometry as JSON Rendered PNG/JPEG tiles; JSON attributes only on queryable layers
Query support Native on all layers Only on layers where supportsQuery: true
URL pattern /rest/services/<name>/FeatureServer/<layerId> /rest/services/<name>/MapServer/<layerId>
Performance for attribute queries Better — no render step Competitive when tile cache is warm; slower on cache miss
Primary use cases Web apps, mobile clients, GeoServices integrations, data editing Pre-rendered basemap tiles, legacy ArcMap/ArcGIS Desktop, print services
Esri's recommendation Preferred for new development per Esri docs Legacy deployments and map image workflows
License/cost to consume Free if the service is public Free if the service is public

What Each Service Type Actually Does

The ArcGIS REST API surfaces two distinct service types at the root of every service directory. FeatureServer, documented by Esri as the Feature Service, stores and serves actual geographic features as discrete objects. Each feature has a geometry and a set of attributes, and the service exposes endpoints to query, filter, and (when enabled) create or modify those features.

MapServer, documented as the Map Service, was designed for a different job: take a map document, render it as an image, and serve that image to a client. ArcGIS Desktop built its entire display pipeline on this model. The server does the rendering; the client gets a PNG or JPEG. MapServer added query support later, so now a MapServer layer with supportsQuery: true can return JSON attributes — but the rendering roots are still there, and the service type distinction still matters for edit workflows and some client libraries.

FeatureServer /FeatureServer/0/query → JSON: features + geometry → /applyEdits (if enabled) MapServer /MapServer/export → PNG/JPEG rendered tile → /query (if supportsQuery) both consume the same ArcGIS REST API

When to Use FeatureServer

  • Building a web map with Leaflet, MapLibre, or deck.gl. These libraries work directly with GeoJSON; a FeatureServer query returns exactly that format. No conversion layer needed.
  • Querying by attribute. Owner name, parcel number, address — FeatureServer handles these natively and consistently across all layers.
  • Syncing to mobile clients. Esri's offline editing and sync workflows (geodatabase replication, ArcGIS Runtime sync) require FeatureServer.
  • Editing data. Only FeatureServer exposes write endpoints. If your app lets field staff update features, FeatureServer is the only option.
  • Starting fresh with a county's GIS data. If a county publishes both types, prefer FeatureServer. It's what Esri builds toward.

When to Use MapServer

  • The county only publishes MapServer. This is common for older deployments. If supportsQuery: true is set on the layer, you can still run attribute queries — the workflow is identical to FeatureServer for read-only use.
  • You need pre-rendered basemap tiles. MapServer tile caches are fast for display-only workflows. If you're building a print service or a static background map, MapServer image exports can be the right call.
  • Your ArcGIS Desktop workflow depends on it. ArcMap and older ArcGIS Pro configurations sometimes have MapServer hardcoded in layer files. Don't break what works.
  • Working with cached services. Some agencies publish carefully tuned MapServer caches at fixed zoom levels. Switching to FeatureServer for display would lose that caching benefit.

Real Examples from the UrbanKit Atlas

The UrbanKit Parcel Atlas tracks verified REST endpoints for county GIS layers across the US. Here are four live examples showing both service types side by side. Full query parameters are shown; you can paste these directly into a browser.

Kane County, IL — MapServer with supportsQuery

Kane County's parcel layer is a MapServer endpoint. It supports full attribute queries — including owner name via TaxName — despite the MapServer type. This is the pattern that trips up most developers: MapServer does not mean read-image-only.

Service root:

https://gistech.countyofkane.org/arcgis/rest/services/KanePINList/MapServer/0

Sample query (owner name search):

https://gistech.countyofkane.org/arcgis/rest/services/KanePINList/MapServer/0/query
  ?where=UPPER(TaxName)+LIKE+UPPER('%25SMITH%25')
  &outFields=PIN,TaxName,SiteAddress,SiteCity
  &returnGeometry=false
  &f=json
  &resultRecordCount=5

San Bernardino County, CA — FeatureServer on ArcGIS Online

San Bernardino publishes through ArcGIS Online's hosted feature service infrastructure. The URL pattern (services.arcgis.com/<orgId>) is the ArcGIS Online FeatureServer signature.

Service root:

https://services.arcgis.com/aA3snZwJfFkVyDuP/arcgis/rest/services/Parcels_for_San_Bernardino_County/FeatureServer/0

Sample query (parcel number lookup):

https://services.arcgis.com/aA3snZwJfFkVyDuP/arcgis/rest/services/Parcels_for_San_Bernardino_County/FeatureServer/0/query
  ?where=ParcelNumber+LIKE+'%25033406%25'
  &outFields=ParcelNumber,LandValue,Zoning,Acreage
  &returnGeometry=false
  &f=json
  &resultRecordCount=5

Cook County, IL — MapServer, enterprise ArcGIS Server

Cook County runs its own ArcGIS Server. The URL structure (gis12.cookcountyil.gov/traditional/rest/services) is a self-hosted deployment, not ArcGIS Online. The layer is MapServer.

Service root:

https://gis12.cookcountyil.gov/traditional/rest/services/CookViewer3Parcels/MapServer/0

The /0 at the end is the layer index. Without it, the URL points to the service root, which returns metadata about the service — not queryable feature data. Always include the layer index when querying.

Common Gotchas

MapServer with supportsQuery looks like FeatureServer for reads

Check the layer's root JSON for "supportsQuery": true. If it's there, your query URL works identically to a FeatureServer query — same parameters, same response shape. The UrbanKit Atlas flags this on every entry. This is why the service type label alone doesn't tell you whether attribute queries work.

FeatureServer capabilities vary by deployment

A FeatureServer endpoint does not automatically mean editable. The service owner configures which capabilities to expose. Most public-sector FeatureServer endpoints expose only Query. Fetch the service root (?f=json) and look at the capabilities field. A read-only public county layer will typically show "capabilities": "Query". An editable one shows "capabilities": "Create,Delete,Query,Update,Editing".

The trailing layer index is required

A URL ending in /FeatureServer or /MapServer is the service root — it returns service metadata and a list of layers. To query actual features, append the layer index: /FeatureServer/0 or /MapServer/0. Queries against the service root return an error. This trips up developers building dynamic endpoint discovery.

CORS varies by host

ArcGIS Online FeatureServer endpoints (services.arcgis.com) have CORS enabled by default. Self-hosted ArcGIS Server deployments — county government servers — often do not. If you're building a browser app that calls a county MapServer directly, expect to proxy the request server-side. The Parcel Lookup tool handles this transparently.

Query Syntax Reference

For read operations, the query parameters are the same on both service types. The difference is that FeatureServer also exposes write endpoints.

Parameter Purpose Example
where SQL WHERE clause for filtering where=PIN='12345'
outFields Comma-separated field names to return outFields=PIN,OWNER,ADDRESS
returnGeometry Include polygon/point geometry in response returnGeometry=false
f Response format f=json or f=geojson
resultRecordCount Max features returned (server may cap lower) resultRecordCount=10
outSR Output spatial reference (WKID) outSR=4326 for WGS 84

FeatureServer-only write endpoints (POST):

  • /applyEdits — batch create, update, delete
  • /addFeatures — create new features
  • /updateFeatures — modify existing features
  • /deleteFeatures — remove features

MapServer has no equivalent. If your workflow needs write access, MapServer is not the path regardless of what else the layer supports.

How to Identify Which Type You Have

The URL path is the fastest signal. Look for /FeatureServer/ or /MapServer/ in the path. If you have a service root URL and aren't sure, append ?f=json and check the type field in the response.

For county parcel endpoints specifically, the ArcGIS Parcel Layer URL guide walks through finding the right endpoint from scratch, including how to navigate the services directory tree and identify which layers have parcel data. The Parcel Atlas has pre-verified endpoints for dozens of counties with the service type and supportsQuery flag already resolved.

Frequently Asked Questions

Can I edit data through a FeatureServer?

Only if the service owner configured editing capabilities. Most public-sector FeatureServer endpoints are read-only — they support queries but block create, update, and delete operations. Check the service's capabilities list at the root URL (e.g., /FeatureServer?f=json) for a Create, Update, or Delete entry.

Is FeatureServer faster than MapServer?

For attribute queries and small feature sets, FeatureServer is generally faster because it returns raw vector data without rendering overhead. MapServer wins when pre-rendered tile caches are in play — serving a PNG tile from a disk cache beats any query. If tiles aren't cached, MapServer has to render on the fly, which is slower than a FeatureServer query returning JSON.

Can MapServer return JSON feature attributes?

Yes, if the layer has supportsQuery set to true. You can call /MapServer/0/query?where=1=1&outFields=*&f=json and get back feature attributes and geometry, just like a FeatureServer. Many county GIS layers are MapServer endpoints with full query support — the distinction matters mainly for editing and client library compatibility.

How do I tell if an endpoint is FeatureServer or MapServer?

Look at the URL path. A FeatureServer URL contains /FeatureServer/ and a MapServer URL contains /MapServer/. For example: /rest/services/Parcels/FeatureServer/0 versus /rest/services/Parcels/MapServer/0. The service root — the URL without the layer index — also returns a JSON metadata object that includes the service type field.

Does ArcGIS Online use FeatureServer or MapServer?

ArcGIS Online publishes new hosted layers as FeatureServer services (plus Vector Tile services for basemaps). MapServer still exists on ArcGIS Online for legacy content and for publishing from ArcGIS Server, but Esri's current guidance directs new hosted feature layer creation toward FeatureServer.

What is the query syntax difference between FeatureServer and MapServer?

For read queries (GET /query), the syntax is identical. Both accept where, outFields, returnGeometry, f, and resultRecordCount parameters. The difference is in write operations: FeatureServer exposes /applyEdits, /addFeatures, /updateFeatures, and /deleteFeatures endpoints via POST. MapServer has no equivalent write endpoints.

Which endpoint type does Esri recommend for new development?

Esri recommends FeatureServer for new web and mobile development. The ArcGIS REST API documentation describes FeatureServer as the service type for feature access and editing, while MapServer is positioned for map image rendering and legacy desktop workflows.