Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time

npm version gzip bundle size Coverage Status apache 2.0 licensed


compact, modular JavaScript wrappers for the ArcGIS REST API that run in Node.js and modern browsers.

Table of Contents


import { request } from "@esri/arcgis-rest-request";

const url =

request(url).then((response) => {
  console.log(response); // WebMap JSON

API Reference

The documentation is published at (source code here).


You can install dependencies by cloning the repository and running:

npm install

Afterward, for a list of all available commands run npm run.

For all packages

  • npm run build - builds all distributions of every package with ultra, inside each package builds are done in parallel with npm-run-all. Output is errors only.
  • npm run build:esm, npm run build:cjs, npm run build:bundled - as as the above but only one of our target distributions.
  • npm run dev:esm, npm run dev:cjs, npm run dev:bundled - runs the appropriate watch command in all packages.

For a specific package

  • npm run build -w @esri/arcgis-rest-request - run all builds in a specific workspace
  • npm run dev -w @esri/arcgis-rest-request - run all dev commands in a specific workspace
  • npm run build:esm -w @esri/arcgis-rest-request - run the esm build in a specific workspace
  • npm run dev:esm -w @esri/arcgis-rest-request - run the esm dev command in a specific workspace
  • npm run build:cjs -w @esri/arcgis-rest-request - run the common js build in a specific workspace
  • npm run dev:cjs -w @esri/arcgis-rest-request - run the common js dev command in a specific workspace
  • npm run build:bundled -w @esri/arcgis-rest-request - run the rollup build in a specific workspace
  • npm run dev:bundled -w @esri/arcgis-rest-request - run the rollup dev command in a specific workspace

How to add a new package

  • In /packages, create a new folder with your desired new package name
  • Each package will have it’s own local package.json and tsconfig.json if using typescript
  • Create a folder in your new package called src in which your code will be defined
  • After creating your custom package, go to the root package.json, under the property workspaces, add the title of your custom package
  • Run npm build:esm
  • Check in the root node_modules/@esri that your new custom package has been added
  • Go into /demos, create a new folder and title what you want to call your demo
  • Add a local package.json in your new demo folder. Add your custom package name as a dependency and be sure to have at least these properties in your package.json, dependency, name, version, - description, license, type, main, scripts, and author.
  • Add a .gitignore in the root level of your demo folder that ignore node_modules. Be sure to ignore an env file as well if your demo is using any personal keys or tokens.
  • Run mpm install within the /demos directory and make sure your demo folder has it's own local node_modules.
  • In your demo/index, import your custom package.
  • To run your demo be sure to have script that has a property start in your demo directory and your script is pointing to the correct index file.
  • Run npm run start while being in your /demos/custom-demo directory.
  • Add a readme describing your demo.



If something isn't working the way you expected, please take a look at previously logged issues first. Have you found a new bug? Want to request a new feature? We'd love to hear from you.

If you're looking for help you can also post issues on Stack Overflow with the esri-oss tag.


For transparency into the release cycle and in striving to maintain backward compatibility, @esri/arcgis-rest-js is maintained under Semantic Versioning guidelines and will adhere to these rules whenever possible.

For more information on SemVer, please visit


Esri welcomes contributions from anyone and everyone. Please see our guidelines for contributing.


Copyright © 2017-2022 Esri

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.

A copy of the license is available in the repository's LICENSE file.