Cities

Search 200k+ cities by name, country, or region. Filter by population, sort, paginate, and get multilingual names in one request.

Countries & Regions

Full country metadata — ISO codes, telephone codes, driving side, head of state — plus administrative regions per country.

Multilingual

Pass preferredLanguages=fr,es,en to get localized city, country, and region names back in your preferred language.

What is Geomelon?

Geomelon is a read-only REST API for geographic reference data. It is built for apps that need accurate, structured location information without managing their own database.

GET /cities/search?name=Barcelona&preferredLanguages=ca,es,en
GET /countries?name=Espa&preferredLanguages=es
GET /cities/byCoordinates/closest?lat=48.8566&lon=2.3522

All responses are JSON. Identifiers are stable UUIDs. The API is hosted on RapidAPI.

Quick start

import { GeomelonClient } from "geomelon";

const client = new GeomelonClient({ apiKey: "YOUR_RAPIDAPI_KEY" });

const cities = await client.cities.search({
  name: "Barcelona",
  preferredLanguages: "ca,es,en",
});

Install via npm: npm install geomelon

See the Libraries page for the full TypeScript client, MCP server, and n8n community node.

Free Autocomplete API

Need city autocomplete without an API key? Geomelon provides a free static-file endpoint — no auth required:

GET https://oneshot.geomelon.dev/{country}/{lang}/{prefix}
// User types "Bar" in a city field scoped to Spain
const res = await fetch("https://oneshot.geomelon.dev/es/es/bar");
const cities = await res.json();
// → [{ name: "Barcelona", population: 1636762, emoji: "🇪🇸", en: "Barcelona" }, ...]

Covers 203 countries and 50 languages — 2,497 country–language pairs served as pre-built JSON files. See the full coverage table and API details.