Geoapify drop-in replacement
Geoapify's geocoding endpoints return GeoJSON FeatureCollections with a flat properties object. geoapify.mygeocode.com returns the same, including the rank and datasource blocks, plus its IP info endpoint.
Change one hostname
| Original host |
|
|---|---|
| Use instead | geoapify.mygeocode.com |
| Key parameter | apiKey (optional: any address gets 2,500 requests a day with no key; put your My Geocode key here for credit, packages and a usage history) |
curl "https://api.geoapify.com/v1/geocode/search?text=Dam+1+Amsterdam&apiKey=YOUR_GEOAPIFY_KEY"curl "https://geoapify.mygeocode.com/v1/geocode/search?text=Dam+1+Amsterdam&apiKey=YOUR_MYGEOCODE_KEY"Why people move
Geoapify's free plan is 3,000 credits a day with attribution required. Here it is 2,500 requests a day per account with no attribution requirement, and paid usage has no monthly tier to outgrow.
Same free allowance, key or not. Requests to geoapify.mygeocode.com count toward the same 2,500 free requests a day your address, or your key, gets on our own endpoints. Above that, prepaid credit at €0.0001 per request, or €50 a month for an Unlimited key. Signing up takes a name and an email address, and no card.
Endpoints
| Path on geoapify.mygeocode.com | What it does | Backed by |
|---|---|---|
/v1/geocode/search?text=... | Forward geocoding | Forward geocoding |
/v1/geocode/reverse?lat=...&lon=... | Reverse geocoding | Reverse geocoding |
/v1/geocode/autocomplete?text=... | Autocomplete | Address autocomplete |
/v1/ipinfo?ip=... | IP geolocation | IPv4 lookup |
/v1/batch/geocode/search (POST, JSON array) | Batch forward geocoding | Forward geocoding |
/v1/batch/geocode/reverse (POST, JSON array) | Batch reverse geocoding | Reverse geocoding |
Example response
This is what the request above returns. Field names, nesting and types follow Geoapify. Only the data behind them is ours.
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"datasource": {
"sourcename": "mygeocode",
"attribution": "My Geocode",
"license": "https://www.mygeocode.com/terms/"
},
"country": "The Netherlands",
"country_code": "nl",
"city": "Amsterdam",
"postcode": "1012 JS",
"street": "Dam",
"housenumber": "1",
"lon": 4.8937159,
"lat": 52.3732944,
"result_type": "building",
"formatted": "Dam 1, 1012 JS Amsterdam, The Netherlands",
"address_line1": "1 Dam",
"address_line2": "Dam 1, 1012 JS Amsterdam, The Netherlands",
"timezone": {
"name": "Europe/Amsterdam",
"offset_STD": "+01:00",
"offset_STD_seconds": 3600,
"offset_DST": "+02:00",
"offset_DST_seconds": 7200,
"abbreviation_STD": "CET",
"abbreviation_DST": "CEST"
},
"plus_code": "9F469VFV+8F",
"plus_code_short": "9VFV+8F Amsterdam, The Netherlands",
"rank": {
"confidence": 0.89,
"match_type": "full_match"
},
"place_id": "2d6e5550336450303239514c723756327945526e5f763352556c5f774c53636c5851"
},
"geometry": {
"type": "Point",
"coordinates": [4.8937159, 52.3732944]
}
}
],
"query": {
"text": "Dam 1 Amsterdam",
"parsed": {}
}
}Details and differences
No key is needed for the first 2,500 requests a day. To use a My Geocode key, put it where your Geoapify key went: the apiKey query parameter. The X-API-Key header, Authorization: Bearer and HTTP Basic authentication (the key as the user name) work on every host too, so client libraries that authenticate their own way keep working unchanged.
Answers carry the fields Geoapify returns and nothing else, so a response can be dropped into code that already parses Geoapify. Our additional data for IP lookups (ground elevation and threat detail) is available on request: add mg_extras=1 to the query or send X-MG-Extras: 1.
Copyright lines, licence names, terms and privacy links in the response are ours rather than the original provider’s. Everything else keeps the original shape.
- The IP endpoint returns Geoapify’s own object shape.
- Batch geocoding works as Geoapify’s does:
POST /v1/batch/geocode/searchor/reversewith a JSON array of up to 1,000 items answers 202 with a jobidandurl, and a GET on that url returns one row per item with itsquery. Each address counts as one request; the fetch counts nothing. - Every result carries
timezone(standard and summer offsets and abbreviations),plus_codeandplus_code_short, as Geoapify’s results do. format=xmlanswers thejsonform written as XML.
If your client depends on a field or behaviour that is not listed here, tell us. Compatibility gaps get fixed quickly because they are usually small.
Other drop-in hosts
- Google Maps
- Bing Maps
- HERE
- Mapbox
- Geocode.Farm
- Nominatim (OSM)
- OpenCage
- LocationIQ
- TomTom
- MapQuest
- Geocodio
- PositionStack
- ip-api
- ipinfo
- ipstack
- Open-Elevation
How the drop-ins work, the overview, and the JavaScript library drop-ins.