myip as an ip-api.com Alternative

A sourced ip-api.com free/Pro limits table, a real field-by-field migration snippet from ip-api's 25-field JSON response to myip's, and an honest look at where ip-api is genuinely ahead — not just a sales pitch.

If you're already calling ip-api.com and evaluating alternatives: its free endpoint is a comparatively generous 45 requests per minute per IP address, with no separate daily or monthly cap published — but commercial use of that free endpoint is explicitly disallowed, and its only paid plan is sold on an annual EUR commitment rather than a monthly USD subscription. Where myip differs is a per-unique-IP-per-day metered API bundling RDAP registry data (fetched from the registry and cached) with geolocation and privacy/threat/fraud signals in one call, priced monthly. The comparison below is meant to help you pick correctly, including away from us.

ip-api.com data retrieved on 2026-07-28 from ip-api's own JSON API docs and its Pro member portal. Prices and limits change without notice — verify against those pages before relying on a figure.

ip-api.com free & Pro limits

Reproduced from ip-api's own site, JSON API docs and Pro member portal. Note the shape: a per-MINUTE rate limit rather than a per-day/month cap, and a single Pro plan priced on an annual EUR commitment — kept exactly as printed, not converted to another currency or period.

Field Free endpoint Pro
Price Free €13.3 per month, when paying for 12 months
Request volume 45 requests per minute per IP address Unlimited requests
Commercial use Not allowed Allowed
SSL / HTTPS access Not retrieved on 2026-07-28 — see vendor page. Listed as a Pro-plan benefit
SLA – 99.9% SLA

Both the free endpoint and Pro are API-only — ip-api's own site was checked for a downloadable database product and none was found.

Not published anywhere on ip-api's site or docs: a month-to-month (non-annual) Pro price, any per-second/burst limit on Pro beyond "Unlimited requests", and whether the free and Pro endpoints differ in which response fields they return.

For reference: myip's own numbers (live)

Free tier
Cheapest paid plan

Migrating from ip-api.com's JSON endpoint

ip-api's own docs document the 25 fields below by name and description, but the docs page doesn't publish a full verbatim example response. The JSON below is illustrative — built strictly from those documented field names with example values, not a copied vendor example — so re-open ip-api's own docs before depending on an exact value shape. "message" is included only when status is "fail" and is omitted from this success-path example.

ip-api.com JSON response — illustrative shape
{
  "status": "success",
  "continent": "North America",
  "continentCode": "NA",
  "country": "United States",
  "countryCode": "US",
  "region": "VA",
  "regionName": "Virginia",
  "city": "Example City",
  "district": "",
  "zip": "20149",
  "lat": 39.0481,
  "lon": -77.4728,
  "timezone": "America/New_York",
  "offset": -14400,
  "currency": "USD",
  "isp": "Example ISP",
  "org": "Example Org",
  "as": "AS64500 Example Org",
  "asname": "EXAMPLE-AS",
  "reverse": "",
  "mobile": false,
  "proxy": false,
  "hosting": true,
  "query": "203.0.113.7"
}

Field by field, the closest myip v2 equivalents:

ip-api field myip v2 field Note
status – No 1:1 myip field — myip signals failure via its own top-level errors array instead of a status string.
message – Only present when status is "fail" on ip-api's side; myip's failure detail lives in its errors array instead.
continent – No myip field carries the continent's display name — only its 2-letter code, see continentCode below.
continentCode geo.continent Direct match, same 2-letter code.
country geo.countryName Direct match.
countryCode geo.countryCode Direct match, same ISO 3166-1 alpha-2 code.
region – No myip equivalent — myip has no short region/state code field, only the full name (see regionName below).
regionName geo.region Direct match, full region/state name.
city geo.city Direct match.
district – No myip equivalent — myip's geo data has no city-subdivision/district granularity.
zip geo.postal Field exists but is always empty on myip today — its geo source carries no postal data yet.
lat / lon geo.lat / geo.lon Direct match; both nullable on myip's side when unknown.
timezone geo.timezone Direct match, IANA zone name.
offset – No myip equivalent — myip exposes only the IANA zone name, not a numeric UTC offset in seconds; derive it client-side from geo.timezone if you need one.
currency – No myip equivalent — myip's response has no national-currency field.
isp network.asnOrg myip has one offline org-name field; populated only when the network group is requested and your tier includes it.
org network.asnOrg Same myip field as isp above — ip-api's isp/org distinction collapses to myip's single asnOrg string.
as network.asn + network.asName ip-api concatenates the AS number and org name into one string; myip already returns them split — treat "as" as a hint to parse, not a value to copy verbatim.
asname network.asName Direct match, the AS holder name.
reverse dns.ptr Direct match, reverse-DNS hostname; empty string on both sides when none resolved.
mobile / hosting network.classification.type No matching booleans — myip folds both signals into one classification string with a larger, non-exhaustive value set (hosting/datacenter/mobile/isp/home/business/private, or empty when undetermined); test for equality against the specific value, not a flag.
proxy privacy.isProxy / privacy.isVpn / privacy.isTor ip-api folds proxy/VPN/Tor into one boolean; myip reports isProxy/isVpn/isTor as three separate best-effort signals instead of one merged flag.
query ip Same address string, top level on both.
JavaScript — mapping function
// ip-api.com JSON response -> myip v2 field shape.
// ip-api's response is a flat object; myip's is grouped into geo/network/
// dns/privacy blocks. Fields with no myip equivalent (continent/region
// display names, district, numeric UTC offset, national currency) are
// dropped; "as" is a raw hint since myip already returns the AS number and
// org name split, and "proxy" is a raw hint since myip splits it into three
// separate isProxy/isVpn/isTor signals instead of one merged flag.
function mapIpApiToMyip(ipapi) {
  return {
    ip: ipapi.query,
    geo: {
      countryCode: ipapi.countryCode,
      countryName: ipapi.country,
      continent: ipapi.continentCode,
      region: ipapi.regionName,
      city: ipapi.city,
      postal: ipapi.zip,
      timezone: ipapi.timezone,
      lat: ipapi.lat,
      lon: ipapi.lon,
    },
    network: {
      // ip-api's "as" is a single "AS " string; parse it
      // yourself if you need myip's separate asn/asName fields.
      asRawHint: ipapi.as,
      asName: ipapi.asname,
      asnOrg: ipapi.isp,
    },
    dns: {
      ptr: ipapi.reverse,
    },
    privacy: {
      // ip-api's one "proxy" boolean folds Tor/VPN/proxy together; myip's
      // isProxy/isVpn/isTor are separate signals — don't assume equivalence.
      isProxyHint: ipapi.proxy,
    },
  };
}

Where ip-api.com has the edge

To be fair about our own limits

See myip's current numbers for yourself

Frequently asked questions

What is ip-api.com's free-tier rate limit?
45 HTTP requests per minute from an IP address, per ip-api's own site and API docs. Going over it gets your requests throttled with an HTTP 429 until the window resets. No separate daily or monthly cap is published alongside it.
Does ip-api.com's free endpoint allow commercial use?
No — ip-api states plainly that it does not allow commercial use of the free endpoint, and points to its Pro service for commercial use instead. Pro explicitly allows commercial use.
How is ip-api.com's Pro plan priced?
€13.3 per month, when paying for 12 months — ip-api's own published figure, in euros, on an annual commitment. Only that 12-month-term rate is published; no separate month-to-month price is available on the fetched page.
Does ip-api.com offer a downloadable IP database?
No — ip-api's own site was checked for a downloadable database product and none was found. It is an API-only service, on both the free endpoint and Pro.
How current are the ip-api.com figures on this page?
Retrieved from ip-api.com's own site and docs on 2026-07-28 and not re-verified live by this page — check the linked vendor pages for the current figure before relying on it. myip's own numbers above are the exception: fetched live on every page load, so they never go stale.