GeoDB Cities vs GeoSearch

GeoDB Cities and GeoSearch answer the same question — which places match this name, and what do we know about them — and deliver the answer differently. GeoSearch serves every tier from one origin with one header: no RapidAPI proxy on paid plans, the full dataset on the free tier, and one JSON envelope with cursor pagination on every endpoint. The table below compares the two honestly.

Get a free API key

Feature comparison

GeoDB Cities GeoSearch
Hosting Free host direct; paid tiers through the RapidAPI proxy Direct, one origin
Authentication None on free; X-RapidAPI-Key + x-RapidAPI-Host on paid X-API-Key on every tier
API style REST and GraphQL REST
Free tier 86,400 req/day, 1 req/s, 10 results per page, population ≥ 40,000, monthly refresh 5,000 requests/month, 2 req/s, full dataset
Pagination offset / limit Cursor-based, next_cursor / has_next
Beyond cities Cities, regions, countries + postal codes, timezones, IP geolocation, boundary GeoJSON
Self-hosting Yes — $200/month Docker licence Hosted only
Paid plans $20–$120/month (REST and GraphQL priced separately) $29 / $99 / $299 per month

Last verified 2026-09-05 against the GeoDB Cities documentation.

When GeoDB Cities is the right choice

When GeoSearch is the better fit

Migrating from GeoDB Cities

The calls below show the free host, the RapidAPI-proxied paid host, and the pagination model — each beside the one GeoSearch call that replaces all three.

GeoDB Cities free host — curl
# no auth at all; 1 req/s, max 10 results
curl "http://geodb-free-service.wirefreethought.com\
/v1/geo/cities?namePrefix=San%20Fran&limit=5"
GeoSearch — curl, then Python
curl -H "X-API-Key: YOUR_KEY" \
  "https://geosearch.dev/v1/cities\
?name=San+Fran&limit=5"
# pip install git+https://github.com/geosearch-dev/geosearch-python.git
import os
import geosearch

configuration = geosearch.Configuration(
    host="https://geosearch.dev")
configuration.api_key['apiKeyAuth'] = \
    os.environ["GEOSEARCH_API_KEY"]

with geosearch.ApiClient(configuration) as api_client:
    api = geosearch.CitiesApi(api_client)
    page = api.list_cities(name="San Fran",
        limit=5)
GeoDB Cities paid host — curl
# paid tiers route through the RapidAPI
# proxy and carry two headers
curl "https://wft-geo-db.p.rapidapi.com\
/v1/geo/cities?namePrefix=San%20Fran&limit=5" \
  -H 'X-RapidAPI-Key: YOUR_API_KEY' \
  -H 'x-RapidAPI-Host: wft-geo-db.p.rapidapi.com'
GeoSearch — curl, then Python
# the same call on every tier - one
# origin, one header, free or paid
curl -H "X-API-Key: YOUR_KEY" \
  "https://geosearch.dev/v1/cities\
?name=San+Fran&limit=5"
api = geosearch.CitiesApi(api_client)
page = api.list_cities(name="San Fran", limit=5)
GeoDB Cities pagination — curl, then the envelope
# offset/limit; the envelope carries links
curl "http://geodb-free-service.wirefreethought.com\
/v1/geo/cities?namePrefix=San%20Fran\
&offset=0&limit=5"
{"links":[{"rel":"next",
  "href":"/v1/geo/cities?offset=5&limit=5..."}],
 "data":[...],
 "metadata":{"currentOffset":0,"totalCount":19}}
GeoSearch — curl, then Python
curl -H "X-API-Key: YOUR_KEY" \
  "https://geosearch.dev/v1/cities\
?name=San+Fran&limit=5"
# next page: send meta.next_cursor back
# as ?cursor= - the cursor stays stable
# while data changes underneath it
page = api.list_cities(name="San Fran", limit=5)
# page.meta.next_cursor, page.meta.has_next

Common questions

Is GeoSearch a drop-in replacement for GeoDB Cities?

No. The envelope is different and so is the pagination — GeoDB returns links, data and metadata with offset paging; GeoSearch returns data and meta with a cursor. The section above shows how the calls map.

Do you offer GraphQL?

No, REST only. If your stack is built around GraphQL, GeoDB Cities is the better fit — that is the honest answer, and it is the same one the table above gives.

Do I need a credit card for the free tier?

No. The free tier is 5,000 requests a month with no card and no trial clock — sign up with an email address and you get a key.

Try it on your own queries

The free tier has every endpoint — search your own city, reverse-geocode your own coordinates, and read the response envelope yourself.