Skip to content
LR Defender
Book a demo

IP DATA API

Swap the base URL, keep your parser.

Migrating off ip-api, ipwho.is, or ip2location.io usually means rewriting the pipeline that reads them. Ours answers with their exact field names, so the migration is a URL change and a key, not a project.

IP data API / migrationExample data

The base URL your client calls

Base URLapi.ipwho.example
The base URL changes from api.ipwho.example to api.lrdefender.lightningresearch.ai/ipwho.

Fields your parser reads

same names, same places
  • Address
  • Continent
  • Country
  • Region
  • City
  • Postal code
  • Network: ASN, organization, ISP
  • Time zone

The full shape adds

  • VPN
  • Proxy
  • Tor
  • Datacenter

WHAT YOU GET

Drop-in paths, declared gaps, honest fields.

The risk in changing IP data vendors is not downtime, it is the parser. A missing field does not error, it flows downstream as a blank, and a changed field name flows downstream as a wrong join.

  • Verbatim migration paths

    Existing ip-api and ipwho.is integrations keep their paths under /json and /ipwho. Canonical /geo/compact, /geo/standard, and /geo/full answer in the ip-api, ipwho.is, and ip2location.io shapes without vendor branding.

  • Declared unavailable fields

    Any field we cannot source is listed in the X-LR-Field-Unavailable header on every lookup response across the compact, standard, and full shapes. Your pipeline can tell a data gap from an empty value, which is the difference between a null and a lie.

  • Keys travel in headers

    Authentication is X-API-Key or Authorization Bearer on every documented path. The one exception is the root lookup, which accepts key= in the ip2location.io request form and answers in our own shape; every other surface refuses a credential in a URL.

  • Batch keeps addresses out of logs

    POST a list of addresses in the request body instead of one per URL. The addresses you look up never appear in an access log, ours or anyone's in between.

  • Per-account rate limiting

    Limits attach to your account, not your egress IP, so a fleet behind one NAT does not share a per-IP bucket, and adding servers does not change your quota.

  • Full country and network context

    The full shape carries about ninety fields: geolocation, timezone, country facts, ASN and network operator, usage type, and VPN, proxy, Tor, and datacenter verdicts. Anything we cannot source is declared, never guessed.

HOW IT WORKS

Three steps, one URL change.

  1. 01

    Point your client at us

    Change the base URL. Your existing parser keeps working because the response shape is the one it already reads.
  2. 02

    Verify on your own traffic

    Run both providers side by side on live lookups and diff the responses. The structural gaps, missing or unsourceable fields, are the ones we declare in the response headers.
  3. 03

    Cut over and monitor

    Watch the X-LR-Field-Unavailable header, the X-LR-Units cost header, and your account usage in the dashboard as your volume moves.

Run the diff before you decide.

Send us a sample of your own addresses and compare our responses against your current provider, field by field. We will tell you which fields we cannot source before you sign, not after.