GeoNames Places + Postal Codes Scraper
Pricing
from $16.00 / 1,000 result items
GeoNames Places + Postal Codes Scraper
Pull populated places, admin divisions, and postal codes from GeoNames bulk dumps. Returns geonameId, name, lat/lng, population, elevation, timezone, alternate names, admin codes. Three modes: global cities (200K+ ≥1000 pop), full per-country dump, or postal codes per country. No API key needed.
Pricing
from $16.00 / 1,000 result items
Rating
0.0
(0)
Developer
ParseForge
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 hours ago
Last modified
Share

📍 GeoNames Places + Postal Codes Scraper
🚀 Pull populated places, admin divisions, and postal codes from GeoNames: lat/lng, hierarchy, population, timezone, alternate names.
🕒 Last updated: 2026-05-07 · 📊 22 fields per record · 12M+ places · admin1/2/3 hierarchy · stable codes · postal codes · alternate names in 100+ languages
The GeoNames Places + Postal Codes Scraper pulls reference geographic data from GeoNames, the most-cited open gazetteer worldwide. Output includes the geonameId, place name (in the requested language), country, full administrative hierarchy with stable codes, latitude/longitude, population, elevation, timezone, and feature classification.
GeoNames covers 12+ million populated places plus 4M+ alternate names, every official administrative division, and country postal codes. Three modes: search by name, list children of a country/admin division, or pull postal codes by country. Use cases include localized dropdowns, address autocomplete, geo-aware search, and OPAC integrations.
| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Travel platforms, e-commerce checkout, address autocomplete, geo-search, GIS engineers, journalists | Country/state/city dropdowns, postal-code validation, geo-aware search, fact-card population, alt-name disambiguation |
📋 What the GeoNames Places + Postal Codes Scraper does
Five filtering workflows in a single run:
- 🔍 Search by name. Match populated places by name with optional country and feature-class filter.
- 🗺️ Admin hierarchy. List every populated place under a country, with admin1/2/3 codes.
- 📮 Postal codes. Pull every postal code in a country with city + admin attribution.
- 🌐 Multilingual names. Place names in 20+ languages with
langparameter. - 📊 Rich metadata. Population, elevation, timezone, feature class for every record.
💡 Why it matters: clean, server-side filtering and fresh data on every run.
🎬 Full Demo
🚧 Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded dataset.
⚙️ Input
| Input | Type | Default | Behavior |
|---|---|---|---|
maxItems | integer | 10 | Records to return. Free plan caps at 10, paid plan up to 1,000,000. |
mode | string | "cities" | cities (global ≥1000 pop), country (full per-country dump), postalcodes (per country). |
country | string | "" | ISO-2 country code. Required for country and postalcodes modes. |
query | string | "" | Name substring filter (matches name + ASCII + alternate names). |
featureClass | string | "" | P=populated, A=admin, H=hydro, T=terrain, etc. |
minPopulation | integer | 0 | Filter to places with at least this population. |
Example: search London worldwide.
{"maxItems": 50,"mode": "cities","query": "London"}
Example: every postal code in Germany.
{"maxItems": 2000,"mode": "postalcodes","country": "DE"}
📊 Output
Each record contains 22 fields. Download as CSV, Excel, JSON, or XML.
🧾 Schema
| Field | Type | Example |
|---|---|---|
🆔 geonameId | number | 2643743 |
📛 name | string | "London" |
📛 toponymName | string | "London" |
🆔 countryCode | string | "GB" |
🌍 countryName | string | "United Kingdom" |
🗺️ adminCode1 | string | "ENG" |
🗺️ adminName1 | string | "England" |
🌐 lat | number | 51.5074 |
🌐 lng | number | -0.1277 |
👥 population | number | 8961989 |
📐 elevation | number | null |
🕒 timezoneId | string | "Europe/London" |
🏷️ featureClass | string | "P" |
🏷️ featureCode | string | "PPLC" |
🔗 geonamesUrl | string | "https://www.geonames.org/2643743/" |
📮 postalCode | string | null |
📦 Sample records
✨ Why choose this Actor
| Capability | |
|---|---|
| 📚 | 12M+ places. Most cited open gazetteer worldwide. |
| 🌐 | 100+ languages. Place names + alternate names in many languages. |
| 🗺️ | Stable hierarchy. admin1/2/3 codes that join across data sources. |
| 📮 | Postal codes built in. Per-country postal-code lookup. |
| ⚡ | Fast. 100 records in under 30 seconds. |
📈 How it compares to alternatives
| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| ⭐ This Actor | $5 free credit | 12M+ places | Live per run | mode, query, country, feature | ⚡ 2 min |
| Manual geonames.org browse | Free | Manual | Live | Web filters | 🕒 Manual |
| Mapbox / Google Geocoding | $$ | Similar but paid | Live | Yes | 🐢 API key |
| Raw GeoNames CSV dump | Free | All | Monthly | Bulk only | 🐢 ETL pipeline |
🚀 How to use
- 📝 Sign up. Create a free account with $5 credit (takes 2 minutes).
- 🌐 Open the Actor. Find the GeoNames Places + Postal Codes Scraper on the Apify Store.
- 🎯 Set input. Pick filters and
maxItems. - 🚀 Run it. Click Start.
- 📥 Download. Grab results in the Dataset tab as CSV, Excel, JSON, or XML.
⏱️ Total time from signup to dataset: 3-5 minutes. No coding required.
💼 Business use cases
🔌 Automating GeoNames Places + Postal Codes Scraper
Control the scraper programmatically:
- 🟢 Node.js. Install the
apify-clientNPM package. - 🐍 Python. Use the
apify-clientPyPI package. - 📚 See the Apify API documentation for full details.
The Apify Schedules feature lets you trigger this Actor on any cron interval.
🌟 Beyond business use cases
Data like this powers more than commercial workflows.
🤖 Ask an AI assistant about this scraper
Open a ready-to-send prompt in the AI of your choice:
- 💬 ChatGPT
- 🧠 Claude
- 🔍 Perplexity
- 🅒 Copilot
❓ Frequently Asked Questions
🔑 Do I need a GeoNames account?
No. The Actor downloads GeoNames bulk dumps directly (no username, no API key). Bulk dumps are GeoNames' canonical distribution and refresh daily.
🧩 How does it work?
Pick a mode and supply the relevant filters. The Actor calls the GeoNames JSON API and emits one record per place, admin division, or postal code.
📊 How many fields per record?
Up to 22, including geonameId, name, country, admin hierarchy, lat/lng, population, elevation, timezone, feature class/code, and direct GeoNames URL.
🌐 Which languages are supported?
20+ via the language parameter, including English, Spanish, French, German, Italian, Portuguese, Japanese, Chinese, Russian, Arabic.
🏷️ What are feature classes?
GeoNames classifies places by type: P=populated places, A=admin divisions, H=hydrographic, T=terrain, S=spots/buildings, V=vegetation, R=roads, U=undersea, L=parks/areas.
🔁 Can I schedule runs?
Yes. Use Apify Schedules for periodic refreshes.
⚖️ Is this data free?
Yes. GeoNames publishes under Creative Commons Attribution that permits commercial reuse with attribution.
💳 Do I need a paid Apify plan?
No. The free plan covers preview runs.
🆘 What if a run fails?
Apify retries transient errors. Most failures stem from invalid usernames or rate limits — register your own free GeoNames account for reliable runs.
📮 How do postal codes work?
Each postal-code record includes the code, locality, country, admin1/2 codes/names, and lat/lng. Coverage varies by country.
🔌 Integrate with any app
GeoNames Places + Postal Codes Scraper connects to any cloud service via Apify integrations:
- Make - Automate multi-step workflows
- Zapier - Connect with 5,000+ apps
- Slack - Get run notifications
- Airbyte - Pipe data into your warehouse
- GitHub - Trigger runs from commits
- Google Drive - Export datasets to Sheets
🔗 Recommended Actors
- 🌍 REST Countries - Country reference data with capital, currency, flag
- 🌍 Public Holidays Worldwide - Public holidays for 100+ countries
- 🌍 Open-Meteo Weather - Global weather forecasts
- 🌐 Wikidata Entity Search - 100M+ open knowledge-graph entities
- 🗺️ OpenStreetMap Nominatim - Geocode addresses worldwide via OSM
💡 Pro Tip: browse the complete ParseForge collection for more reference-data scrapers.
🆘 Need Help? Open our contact form to request a new scraper, propose a custom data project, or report an issue.
⚠️ Disclaimer: this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by GeoNames or any contributing geographic-data provider. All trademarks mentioned are the property of their respective owners. Only publicly available open data is collected.