Open world location data

Country.State.City.

World location data with a visible source, a stable package, and no mystery between the map and your code.

npm install @tansuasici/country-state-city
location.resolveJSON
{  "name": "Türkiye",  "iso2": "TR",  "region": "Asia"}
01250Countries
024,963States
03147,739Cities
Explore datasetOpen the interactive map

Trust the record

Open data, without the black box.

SourcesDocumented

Every published layer keeps its license, attribution, and provenance visible.

QualityAutomated

Schema, identity, parent relationships, coordinates, and artifacts pass release gates.

BoundariesTürkiye pilot

Verified province and district polygons ship separately from global center points.

Inspect quality and provenance

One connected workflow

From a name to usable data.

One location moves through search, hierarchy, code, and map without changing identity.
Natural-language lookup01 / 03

Find the place people mean.

Search local names, ISO codes, aliases, and parent regions from the same index.

search.ts
const result = searchLocations("Kadıköy");// result[0].path → "Türkiye / Istanbul / Kadıköy"

Built for developers

One dataset.Every surface.

Search it in an application, load it in Node, explore it on a map, or query it through MCP.
01

One typed API

Country, state, and city lookups with TypeScript definitions for browser and Node.

02

Four export formats

Move the same records through JSON, CSV, XML, or YAML without a second dataset.

03

Natural-language access

Use the included MCP server from compatible AI assistants and developer tools.

Quick start

From install to first lookup in three lines.

The same dataset powers typed APIs, raw JSON exports, and country shards.Read the API reference
location.tsTypeScript
import { CountryStateCity }  from '@tansuasici/country-state-city';const turkey = CountryStateCity  .getCountryByIso2('TR');const states = CountryStateCity  .getStatesByCountryId(turkey.id);

Open data. Clear provenance.

Put the world in your next build.