ipstack drop-in replacement
ipstack's standard lookup and check endpoints answer at ipstack.mygeocode.com with the same top-level fields and location object, over HTTPS on every plan.
Change one hostname
| Original host |
|
|---|---|
| Use instead | ipstack.mygeocode.com |
| Key parameter | access_key (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 "http://api.ipstack.com/8.8.8.8?access_key=YOUR_IPSTACK_KEY"curl "https://ipstack.mygeocode.com/8.8.8.8?access_key=YOUR_MYGEOCODE_KEY"Why people move
ipstack's free plan is HTTP only and capped at 100 a month. Here every account gets 2,500 a day over HTTPS.
Same free allowance, key or not. Requests to ipstack.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 ipstack.mygeocode.com | What it does | Backed by |
|---|---|---|
/{ip} | Standard lookup | IPv4 lookup |
/check | Lookup the caller | IPv4 lookup |
/{ip},{ip},{ip} | Bulk lookup | IPv4 lookup |
Example response
This is what the request above returns. Field names, nesting and types follow ipstack. Only the data behind them is ours.
{
"ip": "8.8.8.8",
"type": "ipv4",
"continent_code": "NA",
"continent_name": "North America",
"country_code": "US",
"country_name": "United States",
"region_code": "CA",
"region_name": "California",
"city": "Mountain View",
"zip": "94043",
"latitude": 37.3860513423541,
"longitude": -122.0838495895254,
"msa": null,
"dma": null,
"radius": null,
"ip_routing_type": null,
"connection_type": null,
"location": {
"geoname_id": 5375480,
"capital": "Washington",
"languages": [
{
"code": "en",
"name": "English",
"native": "English"
},
{
"code": "es",
"name": "Spanish",
"native": "español"
},
{
"code": "fr",
"name": "French",
"native": "français"
}
],
"country_flag": "https://www.mygeocode.com/assets/img/flags/us.svg",
"country_flag_emoji": "🇺🇸",
"country_flag_emoji_unicode": "U+1F1FA U+1F1F8",
"calling_code": "1",
"is_eu": false
},
"time_zone": {
"id": "America/Los_Angeles",
"current_time": "2026-10-04T00:11:48-07:00",
"gmt_offset": -25200,
"code": "PDT",
"is_daylight_saving": true
},
"currency": {
"code": "USD",
"name": "United States Dollar",
"plural": null,
"symbol": "$",
"symbol_native": "$"
},
"connection": {
"asn": 15169,
"isp": "Google LLC"
}
}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 ipstack key went: the access_key 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 ipstack returns and nothing else, so a response can be dropped into code that already parses ipstack. Our additional data (ground elevation and a bogon flag for reserved ranges) is available on request: add mg_extras=1 to the query or send X-MG-Extras: 1.
- The
time_zoneblock is filled in: id, current local time, offset, abbreviation and whether summer time is in effect. - A wrong key answers error 101
invalid_access_key. A missing key answers 101missing_access_keyonly when requests without a key are switched off. region_codeis a short code for the United States, Canada and Australia; elsewhere the dataset only has the full name.- Bulk lookups take up to 50 comma separated addresses, as ipstack does (more answers
302 too_many_ips), and each address counts as one request, as ipstack counts them. output=xmlanswers in ipstack’s XML.location.capital,location.languagesandlocation.calling_codeare filled in.- The
securityblock is sent when the request hassecurity=1, as ipstack sends it. Itsis_crawler,crawler_nameandcrawler_typecome from the address ranges search engines and AI crawlers publish, andlocation.geoname_idfrom GeoNames.
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
- Geoapify
- TomTom
- MapQuest
- Geocodio
- PositionStack
- ip-api
- ipinfo
- Open-Elevation
How the drop-ins work, the overview, and the JavaScript library drop-ins.