Walks an ArcGIS Server Rest API and returns all services

Usage no npm install needed!

<script type="module">
  import agsWalk from '';



Walk the folders of an ArcGIS Server Rest API and return all the services as an array


ArcGIS Server is GIS software used by many federal, state, and municipal governments and organizations to publish web-enabled GIS data. ArcGIS Server uses the GeoServices API. This module walks the services and folders of the root GeoServices API for a given URL and returns all services and service types in an array. This could be used to create a repository of dataset names from one or more ArcGIS Server REST URLs.

Links to each dataset URL can be made by concatenating the root GeoServices URL with the dataset item and dataset type. For example, if the root URL is and one of the datasets in the array is { name: '911CallsHotspot', type: 'MapServer' } the full URL to the service is

command line

With Node v8.2.0+ it is not necessary to install ags-walk. You can run:

npx ags-walk <server-url> [options]

See example and available options by entering

npx ags-walk -h


To use as a dependency in a Node.js library you can install ags-walk by running:

npm i ags-walk

then include

var agsWalk = require('ags-walk')

in your script file.

For the browser include the tag: <script src=""></script> and agsWalk() is added as a global function.



Walk the folders of an ArcGIS Server Rest API and return all the services as an array


  • url string the base url of an ArcGIS Server Rest API
  • opts Object? options for the module
    • opts.limit number the maximum number of folders to index at the same time (optional, default 5)
  • cb Function the callback function to run after results have been returned


// returns [{ name: 'Elevation/earthquakedemoelevation, type: 'MapServer'}...]
agsWalk('', function(err, services) {
 if (err) throw err
 return services

Returns Array<Object>


Copyright 2017 Nick Peihl

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.