GeoNames Places Scraper avatar

GeoNames Places Scraper

Pricing

from $16.00 / 1,000 result items

Go to Apify Store
GeoNames Places Scraper

GeoNames Places Scraper

Scrapes GeoNames places, postal codes, and country dumps. Returns each place as a flat row with name, coordinates, feature class, population, and country code.

Pricing

from $16.00 / 1,000 result items

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

3 days ago

Last modified

Share

ParseForge

GeoNames Places Scraper

Scrape GeoNames places, postal codes, and country dumps, up to a million records per run. Every place comes with its name, coordinates, feature class, population, and country code. No API key or rate limits. Export to CSV, JSON, Excel, or XML.

GeoNames is the world's largest free geographical database, but its API limits you to 30,000 credits per day and 2,000 per hour. This Actor reads the public data dumps directly, so you can pull global cities, every place in a country, or postal codes without a key or quota. Filter by name, feature class, or minimum population and get a flat row per place.

Who uses itWhat they scrape GeoNames for
Logistics and e-commerce teamsValidate shipping addresses and normalize place names
Market researchersBuild a list of cities or populated places for a region
Data engineersEnrich internal datasets with coordinates and feature classes
GIS analystsGet a clean base layer of places for mapping projects
Travel and hospitality appsSeed a location database with cities and postal codes

What it does

This Actor collects GeoNames places by global cities, full country dump, or postal codes per country, and returns each one as a flat row.

  • 🌍 Three modes: global cities with population 1000 or more, a full per-country dump of all places, or postal codes for one country.
  • 🔎 Name filter: case-insensitive substring match on name, ASCII name, and alternate names.
  • 🏷️ Feature class filter: pick populated places, admin divisions, hydrographic, terrain, roads, spots, vegetation, undersea, or parks.
  • 👥 Population filter: keep only places above a minimum population.
  • 📦 Flat output: one row per place, ready for CSV, JSON, Excel, or XML.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with GeoNames data

📦 Validate shipping addresses.

An e-commerce team pulls all postal codes for a country and cross-checks customer entries before dispatch.

🗺️ Build a city list for a region.

A market researcher runs the cities mode with a country filter to get every populated place over 1000 people.

🧹 Normalize place names in a CRM.

A data engineer scrapes the full country dump and matches alternate names to clean messy location fields.

📍 Enrich coordinates for mapping.

A GIS analyst pulls all places with feature class P and minimum population 5000 to create a base layer.

✈️ Seed a travel app database.

A developer runs the cities mode for multiple countries and imports the flat rows into their backend.

Why choose this scraper

What you get
No API key or rate limitsReads the public GeoNames data dumps directly, so no registration or daily credit cap.
Up to 1,000,000 places per runSet maxItems to pull a small sample or the full dataset.
Three modes, one schemaCities, country dumps, and postal codes all return the same flat row shape.
Filter before you downloadName, feature class, and population filters cut the data to what you need.
Export anywhereCSV, JSON, Excel, or XML, ready for your pipeline or spreadsheet.

How it compares

This Actor reads the public GeoNames data dumps directly, while Geonames Global Places uses the free GeoNames API with its rate limits and credit system.

FeatureParseForgeGeonames Global Places
Bulk data dumps without API limitsYesNot listed
Postal codes per countryYesYes
Full country dump of all placesYesNot listed
Filter by feature classYesNot listed
Filter by minimum populationYesNot listed
Timezones and nearby placesNot listedYes

Configure the run

Drive the Actor from a mode, an optional country, a name query, a feature class, and a minimum population. Filters run as each place is read, so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
"maxItems": 10,
"mode": "cities",
"country": "US",
"minPopulation": 0
}

A larger pull:

{
"maxItems": 200,
"mode": "cities",
"country": "US",
"minPopulation": 0
}

Pricing

Pay-per-result: $0.02133 per result collected. You pay only for the results written to your dataset.

Results collectedApproximate cost
100 results$2.13
1,000 results$21.33
10,000 results$213.30

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the GeoNames Places Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to GeoNames through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/geonames-places-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check your filters. The name query is a substring match, and the feature class and population filters can exclude everything. Try clearing filters and running again.

Why is the run slow?

Large country dumps or high maxItems take longer. Reduce maxItems or add filters to limit the data.

Why do I get an error about country?

Country mode and postal codes mode require a country. Select one from the dropdown. Cities mode treats country as optional.

Can I get all countries at once?

No. Country and postal codes modes work per country. Use cities mode for global data, or run the Actor multiple times.

Why are some places missing?

The data comes from GeoNames dumps. If a place is not in the dump, it will not appear. Check the GeoNames website for coverage.

FAQ

QuestionAnswer
Do I need a GeoNames API key?No. This Actor reads the public data dumps, so there is no key, no registration, and no daily credit limit.
What is the difference between the three modes?Cities mode returns global populated places with population 1000 or more. Country mode returns every place in one country. Postal codes mode returns postal codes for one country.
Can I filter by country in cities mode?Yes. The country field is optional for cities mode and acts as a filter. For country and postal codes modes, it is required.
How many places can I get in one run?You can set maxItems up to 1,000,000. The actual number depends on the mode and filters.
What does the name filter match?It does a case-insensitive substring match on the place name, the ASCII name, and alternate names.
What are feature classes?GeoNames groups places into classes like P for populated places, A for admin divisions, H for hydrographic, T for terrain, and more. You can filter by one class.
Can I filter by population?Yes. Set a minimum population and only places at or above that number are returned.
What format is the output?Each place is a flat row. You can export to CSV, JSON, Excel, or XML from the Apify dataset.
Is the data up to date?The Actor reads the latest public GeoNames data dumps, which are updated regularly by GeoNames.
Can I get postal codes for multiple countries?Postal codes mode works per country. Run the Actor once per country or use multiple runs.
Does this include alternate names?The name filter checks alternate names, and the output includes the primary name and ASCII name. Alternate names are not returned as a separate field.
What is the maximum number of places?You can set maxItems up to 1,000,000. The global cities mode has about 200,000 records, and country dumps vary.

Browse the full ParseForge collection for more scrapers.

🆘 Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by GeoNames. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.