Place search (public, no key)
curl 'https://api.astroway.info/v1/public/geo/search?q=Kiev&lang=uk&limit=1'The same answer as GET /geo/search without a key, for a birthplace field in a widget or a static page: candidates with coordinates, IANA zone, population and names in our 21 languages. Costs 1 unit of the public bucket (30 an hour per address without a key), so search after the visitor pauses typing rather than on every key. Cache-Control: public, max-age=86400. Attribution is in the body: displaying the data carries the GeoNames CC BY 4.0 credit. Reverse lookup and the offset on a date stay keyed (GET /geo/reverse, GET /geo/timezone).
Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Example
KievPlace name or its beginning, in any of our languages and scripts. Case, accents and punctuation are ignored. Text after the first comma narrows by region or country instead: Springfield, Illinois, Springfield, MA, Paris, US.
Example
ukLanguage for name, admin1 and country. Where GeoNames has no name in it, the GeoNames name stays. Matching always covers every language.
Example
5How many candidates to return.
Example
UA,PLRestrict to these ISO 3166-1 alpha-2 codes, comma separated, up to 20.
Comma-separated dotted paths, relative to data, to keep in the response. A path is applied to every element of an array, so planets.name means the name of each planet. Paths that match nothing come back in _fields_unmatched; a list where nothing matches at all is a 400, because an empty object would be a confident wrong answer.
Example
planets.name,planets.longitudeRound every non-integer number in the response to this many decimal places. Integers are left alone, because an id is not a measurement. Ecliptic longitudes ship with fourteen decimals by default; 2 is about a tenth of an arcminute.
Example
4Responses
Section titled “ Responses ”OK
object
object
object
object
object
Free-tier watermark, present on every public response. Keys on a paid plan do not receive it.
Example
{ "ok": true, "data": { "query": "Kiev", "lang": "uk", "count": 1, "results": [ { "id": 703448, "name": "Київ", "originalName": "Kyiv", "admin1": "Місто Київ", "admin1Code": "12", "countryCode": "UA", "country": "Україна", "latitude": 50.4547, "longitude": 30.5238, "timezone": "Europe/Kyiv", "population": 2952301, "featureCode": "PPLC", "matchedName": "Kiev", "exact": true } ], "note": "Populated places of 1000 people or more and administrative seats. A smaller place is absent, not misspelled.", "dataset": { "source": "GeoNames cities1000", "url": "https://download.geonames.org/export/dump/cities1000.zip", "namesUrl": "https://download.geonames.org/export/dump/alternateNamesV2.zip", "licence": "CC BY 4.0", "downloaded": "2026-11-07", "count": 171800 }, "attribution": { "source": "GeoNames", "sourceUrl": "https://www.geonames.org/", "licence": "CC BY 4.0", "licenceUrl": "https://creativecommons.org/licenses/by/4.0/", "notice": "Place names, coordinates and populations from the GeoNames geographical database, used under CC BY 4.0. Displaying this data requires carrying the same credit." } }, "_footer": "Powered by astroway.api - get your own key at https://api.astroway.info"}Invalid sign or date
Example
{ "ok": false, "error": { "code": "INVALID_SIGN", "message": "sign must be one of the 12 zodiac signs" }}