← Docs

IP Address API

Where an IP is from, country, ASN, network.

Look up where an IP is coming from. Country, continent, ASN, and network name come back in the core response. IPv4 and IPv6.

On paid plans, ?deep=true adds datacenter, relay, and Tor flags, plus state and city where the network operator publishes them.

Lookup

GET
api.parseapi.com/ip/{ip}
Country, continent, ASN. Paid deep adds geo depth and flags
Explore
Parameters 3
ipstring · path · required

IPv4 or IPv6 address

langstring · query · optional

Display language as one BCP 47 tag, such as fr or zh-Hant. Changes supported display labels only; IDs, codes, native names, facts, parsing and deep access stay unchanged. Omit for the original response. Unsupported regions use the supported language base; unsupported languages or scripts use English. Missing labels retain their source value. Accept-Language is not read automatically. Available on the current API contract; frozen 1.0.0 is unchanged.

Length: 2 to 64 characters

deepboolean · query · optional

When true, include optional detail in deep. Access depends on the endpoint: pooled detail, an included paid-plan profile, or a metered check. Core values stay unchanged.

Run uses the free demo on API 2.0.0. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.ip("8.8.8.8");
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

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

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

Your IP

GET /ip returns the IP that made the request. No key needed.

GET
api.parseapi.com/ip
Same lookup, using the caller's address. No key needed
Explore
Parameters 2
langstring · query · optional

Display language as one BCP 47 tag, such as fr or zh-Hant. Changes supported display labels only; IDs, codes, native names, facts, parsing and deep access stay unchanged. Omit for the original response. Unsupported regions use the supported language base; unsupported languages or scripts use English. Missing labels retain their source value. Accept-Language is not read automatically. Available on the current API contract; frozen 1.0.0 is unchanged.

Length: 2 to 64 characters

deepboolean · query · optional

When true, include optional detail in deep. Access depends on the endpoint: pooled detail, an included paid-plan profile, or a metered check. Core values stay unchanged.

Live API 2.0.0 lookup from your browser. No API key needed.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.ip.self();
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

SDK calls include your API key. Choose HTTP for the request without a key.

Example response
{
  "ip": "203.0.113.10",
  "country": "US",
  "country_name": "United States",
  "continent": "NA",
  "asn": "AS15169",
  "asn_name": "Google LLC"
}

Deep

Paid. State and city are included where known. The flags identify cloud or CDN address space (datacenter), privacy relay egress (relay), and known Tor exits (tor). A false flag is not proof of a residential connection.

Run this Deep example with your own key. Check this API's access requirements and pricing before running.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.ip("52.94.76.10", { deep: true });
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "ip": "52.94.76.10",
  "country": "US",
  "country_name": "United States",
  "continent": "NA",
  "asn": "AS16509",
  "asn_name": "Amazon.com, Inc.",
  "deep": {
    "state": "OR",
    "city": "Boardman",
    "registry": "arin",
    "datacenter": true,
    "relay": false,
    "tor": false,
    "vpn": false,
    "provider": "aws"
  }
}

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)

Display language

Pass lang with a language tag such as fr, pt-BR, or zh-Hant. Existing country_name. IP addresses, network names and source city text stay unchanged.

Omitting lang preserves the original response. Codes, IDs, numeric facts and native-name fields stay unchanged. Missing translations keep their existing source value; unknown values stay null. A preserved name_local may equal the translated name.

Send a chosen browser preference explicitly, for example { lang: navigator.language } in your JavaScript SDK options. The API does not read Accept-Language automatically. Unsupported regions fall back to their supported base language; unsupported languages or scripts use English. Empty, invalid or repeated tags return 400.

Content-Language identifies languages used in translated display fields and known English fallbacks. This option follows the current API contract. Requests selecting frozen 1.0.0 retain that contract. Select API 2.0.0 to use display language.

41 display language choices
Language tagLanguage
enAmerican English
zh-Hans简体中文
frfrançais (France)
deDeutsch
ititaliano
ja日本語
ko한국어
esespañol de España
arالعربية
bgбългарски
cacatalà
hrhrvatski
csčeština
dadansk
nlNederlands
fisuomi
elΕλληνικά
heעברית
hiहिन्दी
humagyar
idIndonesia
kkқазақ тілі
msMelayu
nbnorsk bokmål
plpolski
ptportuguês (Brasil)
roromână
ruрусский
skslovenčina
svsvenska
thไทย
trTürkçe
ukукраїнська
viTiếng Việt
zh-Hant繁體中文
en-AUAustralian English
en-GBBritish English
fr-CAfrançais canadien
es-419español latinoamericano
pt-PTportuguês europeu
zh-Hant-HK繁體中文(中國香港特別行政區)

Build with IP

All tutorials →

Questions? Email