Small, self-contained web apps that illustrate capabilities and recent additions of the ArcGIS Geocoding service.
Each sample focuses on one parameter or capability, has a UI designed for that specific idea, links to the Esri blog post that explains it, and ships saved service responses so you can see the result without issuing new requests.
Everything is static: no build step, no server. The samples are published with GitHub Pages.
| Sample | Capability | Blog post |
|---|---|---|
| street-address-interpolation | interpolatePointAddress — interpolate a location between adjacent rooftop addresses instead of falling back to a street-segment match (Addr_type = PointAddressInt) |
June 2026 updates |
The samples need a static server: they load their saved responses with fetch(), which browsers
block for file:// URLs, and their basemap key is restricted by referrer, which file:// does not
send.
No key is stored in this repository. Copy config.local.example.js to config.local.js inside the
sample folder and paste your own — that file is git-ignored, and the published site gets its key
from the ARCGIS_API_KEY repository secret instead (see Deployment).
The key should be authorized for the hostname arcgis-samples.localhost rather than plain
localhost, so it cannot be reused by any other project running on the same machine. Anything under .localhost
resolves to the loopback address without configuration on macOS and in Chromium-based browsers; if
your setup does not resolve it, add it to your hosts file once:
echo "127.0.0.1 arcgis-samples.localhost" | sudo tee -a /etc/hostsServe the repository root and browse through that hostname:
npm run dev # http://arcgis-samples.localhost:8123/ — opens the browser for youThat runs scripts/dev-server.mjs, a dependency-free static server (plain Node, no npm install);
PORT=3000 npm run dev changes the port. python3 -m http.server 8123 works just as well as long as
you browse through the same hostname.
VS Code's Live Server is preconfigured for it in .vscode/settings.json, but that setting is
window-scoped: in a multi-root workspace VS Code ignores it and serves 127.0.0.1 instead, so copy
those entries into your .code-workspace file — or just use npm run dev.
.github/workflows/deploy.yml publishes the repository to GitHub Pages on every push to main.
Before the artifact is uploaded, .github/scripts/inject-key.py replaces the __ARCGIS_API_KEY__
placeholder in every examples/*/config.js with the ARCGIS_API_KEY repository secret, so the key
reaches the published site without ever being committed.
One-time setup: add the ARCGIS_API_KEY secret (Settings → Secrets and variables → Actions) and set
Pages to build from GitHub Actions (Settings → Pages → Source: GitHub Actions).
By default the samples read the JSON files under each sample's data/ folder — no credentials
needed. Where a sample offers a live mode, you supply your own
API key
or OAuth 2.0 access token at runtime; it is never stored in this repository.
Geocoding requests are billable and subject to the
ArcGIS Location Platform terms;
in particular, storing results requires forStorage=true.
index.html landing page listing the samples
examples/<capability>/ one folder per sample
index.html entry point
README.md what it shows, blog link, requests used
data/ saved service responses
postman/ optional Postman collection
- Create
examples/<capability-name>/(kebab-case, named after the parameter or capability). - Capture the service responses you need into
data/, stripping anytokenfrom the request URLs, and document the exact requests in the sample README. - Build a static UI shaped around what the capability actually shows.
- Link the blog post, and the Postman request if there is one.
- Add a row to the table above.