@urbankitstudio/atlas
v0.3.0
Published
JS SDK for the UrbanKit County Parcel REST API Atlas — public ArcGIS REST endpoints for US county parcel data, with searchable field metadata, sample queries, and license info.
Maintainers
Readme
@urbankitstudio/atlas
JS SDK for the UrbanKit County Parcel REST API Atlas — a curated index of public ArcGIS REST endpoints for US county parcel data, with searchable field metadata, sample queries, and license info.
Use it to:
- Look up the parcel REST endpoint for a given US county (e.g. Kane County, IL).
- Discover which fields are searchable on each endpoint (PIN, owner name, address).
- Build deep-links into the UrbanKit parcel lookup tool.
The data is the same set powering urbankitstudio.com/parcel-atlas, bundled offline so your code does not need to make a runtime network request.
Install
npm i @urbankitstudio/atlasWorks in Node.js (>=18) and modern bundlers (Vite, webpack, esbuild, Rollup, Next.js, Remix). Ships ESM + CJS with full TypeScript types. No runtime dependencies. sideEffects: false.
Quick start
1. List populated states
import { listStates } from "@urbankitstudio/atlas";
const populated = listStates().filter((s) => s.populated);
// [{ slug: "arizona", name: "Arizona", abbrev: "AZ", countyCount: 1, ... }, ...]2. Look up a county by slug
import { findCounty } from "@urbankitstudio/atlas";
const kane = findCounty("illinois", "kane-county");
if (kane) {
console.log(kane.endpoints[0].url);
// → https://gis.kanecountyil.gov/...
const pin = kane.endpoints[0].searchFields.find((f) => f.name === "PIN");
console.log(pin?.label);
// → "Parcel Identification Number (PIN)"
}3. Build a parcel-lookup deep-link
import { findCounty, buildParcelLookupDeepLink } from "@urbankitstudio/atlas";
const kane = findCounty("illinois", "kane-county")!;
const link = buildParcelLookupDeepLink(kane.endpoints[0]);
// → https://urbankitstudio.com/tools/parcel-lookup?endpoint=https%3A%2F%2F...&fieldHint=TaxNameAPI
| Function | Returns |
|---|---|
| listStates() | StateIndexEntry[] — all 50 states + populated flag |
| findState(stateSlug) | StateFile \| undefined |
| findCounty(stateSlug, countySlug) | CountyRecord \| undefined |
| listCountiesByState(stateSlug) | CountyRecord[] |
| buildParcelLookupDeepLink(endpoint) | URL string into the UrbanKit lookup tool |
| slugify(s), countySlugFromName(s) | string helpers matching the atlas slug convention |
| statePath(slug), countyPath(state, county) | URL paths under /parcel-atlas |
The full typed root is also exported as atlas:
import { atlas } from "@urbankitstudio/atlas";
atlas.version; // string
atlas.lastUpdated; // ISO date
atlas.totals; // { states, counties, endpoints }
atlas.byStateSlug; // Map<stateSlug, StateFile>Coverage today
The atlas currently bundles 15 populated states (Arizona, California, Colorado, Florida, Georgia, Illinois, Minnesota, Nevada, New York, North Carolina, Ohio, Pennsylvania, Texas, Virginia, Washington) covering the largest counties in each. The remaining states are listed in the index with populated: false.
Counties are added as their public REST endpoints are verified. Package versions bump when data refreshes — pin to a minor range (^0.x) to receive new counties without breaking changes.
The live, browseable atlas lives at urbankitstudio.com/parcel-atlas.
License
MIT — see LICENSE.
