GET /ip/{ip}

IP geolocation API

See where an IP comes from. Country, ASN, and network name.

Try it

Example response/ip/8.8.8.8
{
  "ip": "8.8.8.8",
  "country": "US",
  "country_name": "United States",
  "continent": "NA",
  "asn": "AS15169",
  "asn_name": "Google LLC",
  ?deep=true
}

1M requests · $20/mo.

Get started

What comes back.

country

ISO 3166-1 alpha-2 code

continent

Continent code

asn

Autonomous system number

asn_name

Network operator / organization name

deep.city

City (operator-published geofeed)

deep.datacenter

Cloud or CDN address space (AWS, GCP, Azure, Oracle, Cloudflare, Fastly, DigitalOcean, Linode, Vultr)

deep.relay

Privacy relay egress (Apple iCloud Private Relay)

deep.tor

Known Tor exit node

deep.vpn

Published egress of a commercial VPN provider we track. false means not on our list, never proof of a home connection

1

Pass an IP

IPv4, IPv6, or me for the address that made the request.

2

Get the network

Country, continent, ASN, and the name on the range.

3

Deep adds the place

Datacenter, relay, Tor, VPN, plus state and city on paid.

Make your first request.

One key works across the APIs. Copy a request in your language and get JSON back.

curl "https://api.parseapi.com/ip/8.8.8.8" \
  -H "X-API-Key: YOUR_API_KEY"
// Example response · 200
{
  "ip": "8.8.8.8",
  "country": "US",
  "country_name": "United States",
  "continent": "NA",
  "asn": "AS15169",
  "asn_name": "Google LLC"
}

API referenceSDKsKeys and authentication

Every response field

Response fields

ipstring
Queried IP address
countrystring or null
ISO 3166-1 alpha-2 code
country_namestring or null
Country name
continentstring or null
Continent code
asnstring or null
Autonomous system number
asn_namestring or null
Network operator / organization name

Deep fields

deep.statestring or null
State / province code from geofeed (ISO 3166-2 cleaned to ADM1)
deep.citystring or null
City (operator-published geofeed)
deep.registrystring or null
Regional internet registry (arin, ripencc, apnic, lacnic, afrinic)
deep.datacenterboolean
Cloud or CDN address space (AWS, GCP, Azure, Oracle, Cloudflare, Fastly, DigitalOcean, Linode, Vultr)
deep.relayboolean
Privacy relay egress (Apple iCloud Private Relay)
deep.torboolean
Known Tor exit node
deep.vpnboolean
Published egress of a commercial VPN provider we track. false means not on our list, never proof of a home connection
deep.providerstring or null
Provider behind the flag (aws, gcp, azure, oracle, cloudflare, fastly, digitalocean, linode, vultr, apple, mullvad, nordvpn, pia)

Build with IP

All tutorials →

QUESTIONS

What is an ASN?
The network's number on the internet. AS15169 is Google. asn_name is the operator. Country and continent come back too. Same JSON for IPv4 and IPv6.
What does deep add?
Whether the address is cloud or CDN space, a privacy relay like iCloud Private Relay, a Tor exit, or a known VPN egress, plus state and city. Deep ships on paid plans.
What is a relay?
A privacy relay hides the real address. iCloud Private Relay is one. deep.relay is true when the IP is an egress for a service like that.
What is Tor?
A Tor exit is where hidden traffic reaches the open internet. deep.tor is true when the address is a known exit.
How does VPN detection work?
deep.vpn is true when the address is a published egress of a commercial VPN provider we track, taken from server lists the providers publish themselves and refreshed daily. false means the address is not on our list. It is never proof of a home connection, and we never guess from network ownership alone.
Do I need a key for my own IP?
GET /ip with no path returns the address that made the request. No key.
Can I run a list?
Drop a CSV or Excel file on /bulk/ip. Unique addresses are billed. Duplicates are free.

Use What is my IP? for your own address or bulk IP lookup for a CSV of addresses.