My IP
The address you are calling from, answered as GET /{ip} would answer it, and charged as
that lookup is.
Authorization (optional)
apiKeyQueryapikey in query
?apikey=<key>. Convenient in a browser; prefer a header elsewhere.
apiKeyHeaderX-Api-Key in header
X-Api-Key: <key>.
bearerAuthbearer token
Authorization: Bearer <key>.
Responses
200application/json
The lookup of your own address.
iprequiredstringThe address looked up, as parsed: ::ffff:a.b.c.d answers as a.b.c.d.
is_bogonrequiredbooleanReserved space, answered from the address alone.
is_vpnbooleanIn VPN IP: a VPN service's server. Paid plans and the trial.
is_torrequiredbooleanIn Tor IP: a Tor exit.
is_relayrequiredbooleanIn Relay IP: an anonymizing relay such as iCloud Private Relay.
is_resproxybooleanIn Residential Proxy IP's 90-day window: a residential proxy exit. Paid plans and the trial.
is_dcproxybooleanIn Datacenter Proxy IP's 90-day window. Paid plans and the trial.
is_mobproxybooleanIn Mobile Proxy IP's 90-day window. Paid plans and the trial.
is_pubproxybooleanIn Public Proxy IP: a public proxy listens here, or its traffic left from here. Paid plans and the trial.
is_hostingbooleanIn Hosting IP: a hosting or cloud network. Paid plans and the trial.
is_cdnbooleanIn CDN IP: a content delivery network. Paid plans and the trial.
is_anycastrequiredbooleanIn Anycast IP: announced from many places at once.
is_carrierrequiredbooleanIn Carrier IP: a mobile carrier's address space.
is_satelliterequiredbooleanIn Satellite IP: a satellite operator's address space.
is_sshrequiredbooleanIn SSH IP: an SSH server answered here.
is_smtprequiredbooleanIn SMTP IP: a mail server answered here.
is_webrequiredbooleanIn Web IP: a web server answered here on port 80 or 443.
is_dns_resolverrequiredbooleanIn DNS Resolver IP: an open DNS resolver answered here.
is_bittorrentrequiredbooleanIn BitTorrent IP: a BitTorrent client was seen here in the last 90 days.
vpnobject
VPN IP's row, {} when is_vpn is false. Paid plans and the trial.
providerstringThe provider's ID in its catalog; empty for an unattributed range, and on Tor.
provider_namestringThe name the catalog gives the provider, empty where it names none.
confidencestringhigh, medium or low: how sure we are the range is what the flag says.
last_seenstringThe last day the range was seen as such.
torrequiredobject
Tor IP's row, {} when is_tor is false.
providerstringThe provider's ID in its catalog; empty for an unattributed range, and on Tor.
provider_namestringThe name the catalog gives the provider, empty where it names none.
confidencestringhigh, medium or low: how sure we are the range is what the flag says.
last_seenstringThe last day the range was seen as such.
relayrequiredobject
Relay IP's row, {} when is_relay is false.
providerstringThe provider's ID in its catalog; empty for an unattributed range, and on Tor.
provider_namestringThe name the catalog gives the provider, empty where it names none.
confidencestringhigh, medium or low: how sure we are the range is what the flag says.
last_seenstringThe last day the range was seen as such.
resproxyobject
{} when is_resproxy is false. Paid plans and the trial.
providerstringThe proxy pool's ID in its catalog, empty where unattributed.
provider_namestringThe name the catalog gives it.
first_seenstringThe first day of the window the address was seen as an exit.
last_seenstringThe last day it was.
hitsintegerHow many times it was seen in the window.
hits_days_pctintegerOn what share of the window's days, in percent.
providers_numintegerHow many pools it was seen in.
dcproxyobject
{} when is_dcproxy is false. Paid plans and the trial.
providerstringThe proxy pool's ID in its catalog, empty where unattributed.
provider_namestringThe name the catalog gives it.
first_seenstringThe first day of the window the address was seen as an exit.
last_seenstringThe last day it was.
hitsintegerHow many times it was seen in the window.
hits_days_pctintegerOn what share of the window's days, in percent.
providers_numintegerHow many pools it was seen in.
mobproxyobject
{} when is_mobproxy is false. Paid plans and the trial.
providerstringThe proxy pool's ID in its catalog, empty where unattributed.
provider_namestringThe name the catalog gives it.
first_seenstringThe first day of the window the address was seen as an exit.
last_seenstringThe last day it was.
hitsintegerHow many times it was seen in the window.
hits_days_pctintegerOn what share of the window's days, in percent.
providers_numintegerHow many pools it was seen in.
pubproxyobject
{} when is_pubproxy is false. Paid plans and the trial.
entrybooleanA public proxy listens here.
exitbooleanPublic proxies' traffic leaves from here.
protocolsarray<string>The protocols at either end, [] when unknown.
num_portsintegerHow many ports a proxy listens on here.
num_proxiesintegerHow many proxies' traffic left from here.
last_seenstringThe last day one was seen.
last_usablestringThe last day one answered a request, empty when none did.
hostingobject
{} when is_hosting is false. Paid plans and the trial.
providerstringThe provider's ID in its catalog; empty for an unattributed range, and on Tor.
provider_namestringThe name the catalog gives the provider, empty where it names none.
confidencestringhigh, medium or low: how sure we are the range is what the flag says.
last_seenstringThe last day the range was seen as such.
cdnobject
{} when is_cdn is false. Paid plans and the trial.
providerstringThe provider's ID in its catalog; empty for an unattributed range, and on Tor.
provider_namestringThe name the catalog gives the provider, empty where it names none.
confidencestringhigh, medium or low: how sure we are the range is what the flag says.
last_seenstringThe last day the range was seen as such.
carrierobject
{} when is_carrier is false. Paid plans and the trial.
namestringThe mobile carrier.
mccstringIts mobile country code.
mncstringIts mobile network code.
countrystringISO 3166 country code.
confidencestringhigh, medium or low.
satelliteobject
{} when is_satellite is false. Paid plans and the trial.
providerstringThe operator's ID in Satellite IP Provider.
provider_namestringThe operator's name.
orbitstringThe orbit: leo, meo or geo.
segmentstringWho the space serves, such as consumer or maritime.
countrystringISO 3166 country code.
asnintegerThe AS the operator announces it from.
confidencestringhigh, medium or low.
sshobject
{} when is_ssh is false. Paid plans and the trial.
portintegerThe port the server answered on.
bannerstringIts banner.
host_key_fpstringIts host key's fingerprint.
session_okbooleanA session was set up.
first_seenstringThe first day it answered.
last_seenstringThe last day it did.
smtpobject
{} when is_smtp is false. Paid plans and the trial.
portintegerThe port the server answered on.
bannerstringIts banner.
session_okbooleanA session was set up.
first_seenstringThe first day it answered.
last_seenstringThe last day it did.
webarray<object>
A row per port that answered, lowest first; [] when is_web is false. Paid plans and the trial.
portrequiredinteger80 or 443.
tls_okrequiredbooleanA TLS handshake completed.
session_okrequiredbooleanAn HTTP response came back.
status_coderequiredintegerIts status, 0 where none came.
serverrequiredstringIts Server header.
locationrequiredstringWhere it redirected.
titlerequiredstringThe page's title.
cert_subject_cnrequiredstringThe certificate's subject common name.
cert_subject_orequiredstringIts subject organization.
cert_issuer_dnrequiredstringIts issuer.
cert_browser_trustedrequiredbooleanBrowsers trust it.
tls_versionrequiredstringThe TLS version negotiated, empty without TLS.
first_seenrequiredstringThe first day the port was open.
last_seenrequiredstringThe last day it was.
dns_resolverobject
{} when is_dns_resolver is false. Paid plans and the trial.
portintegerThe port it answered on.
recursion_availablebooleanIt offered recursion.
rcodeintegerIts answer's response code.
answer_correctbooleanIts answer was right.
first_seenstringThe first day it answered.
last_seenstringThe last day it did.
bittorrentobject
{} when is_bittorrent is false. Paid plans and the trial.
verifiedbooleanA client here answered, or two or more reported it at once.
id_matches_ipbooleanA client here derived its node ID from the address (BEP 42).
first_seenstringThe first day a client was seen here.
last_seenstringThe last day.
last_reachablestringThe last day one answered, empty when none did.
days_seenintegerOn how many days.
num_portsintegerDistinct ports over the window.
peak_num_portsintegerThe most on one day.
indexerbooleanA DHT indexer rather than people.
clientsarray<string>The two-letter codes its clients name themselves by.
locationrequiredobject
Where the address is.
continentrequiredstringContinent code.
continent_namerequiredstringContinent name.
countryrequiredstringISO 3166-1 alpha-2 country code.
country_namerequiredstringCountry name.
timezonerequiredstringIANA timezone.
currency_coderequiredstringISO 4217 code.
currency_namerequiredstringCurrency name.
currency_symbolrequiredstringCurrency symbol.
flag_emojirequiredstringThe country's flag.
flag_unicoderequiredstringIts code points, U+1F1E6 U+1F1F9.
regionstringRegion (state or province). Paid plans and the trial.
region_codestringISO 3166-2 region code. Paid plans and the trial.
citystringCity. Paid plans and the trial.
postal_codestringPostal code. Paid plans and the trial.
latitudenumberLatitude of the city. Paid plans and the trial.
longitudenumberLongitude of the city. Paid plans and the trial.
accuracy_radiusintegerRadius in km holding the true location with 67% confidence. Paid plans and the trial.
geoname_idstringGeoNames ID of the city. Paid plans and the trial.
dma_codestringUS TV market (DMA) code. Paid plans and the trial.
last_changedstringThe day the range's location last changed. Paid plans and the trial.
asnrequiredobject
The network announcing the address, from IP ASN.
asnrequiredintegerThe AS announcing the address, 0 where none does.
namerequiredstringIts operator.
domainrequiredstringIts operator's domain.
typerequiredstringThe kind of network it runs.
prefixrequiredstringThe announced prefix covering the address.
countrystringThe country its registry assigned it to. Paid plans and the trial.
rpki_statusstringThe announcement's RPKI status. Paid plans and the trial.
companyrequiredobject
Who uses the address, from IP Company.
namerequiredstringWho uses the address.
domainrequiredstringTheir domain.
typestringWhat kind of organization: hosting, isp, business, education, government. Paid plans and the trial.
countrystringISO 3166 country code. Paid plans and the trial.
hostnamerequiredstringThe name the address's reverse DNS (PTR) record points to in IP RDNS, empty when it has none.
abuserequiredobject
Where to report abuse, from IP Abuse Contact.
emailrequiredstringWhere to report abuse from the address.
namestringThe contact. Paid plans and the trial.
phonestringIts phone number. Paid plans and the trial.
addressstringIts postal address. Paid plans and the trial.
countrystringISO 3166 country code. Paid plans and the trial.
networkstringThe registry block it was derived from. Paid plans and the trial.
validatedbooleanARIN reports the contact answered its yearly validation. Paid plans and the trial.
unvalidated_sincestringSince when it has not. Paid plans and the trial.
whoisobject
IP Whois's most specific record covering the address. Paid plans and the trial.
idrequiredstringNetwork name of the most specific record covering the address.
namerequiredstringIts holder.
orgrequiredstringThe registry's handle for the holder.
countryrequiredstringISO 3166 country code.
statusrequiredstringThe registry's assignment status.
sourcerequiredstringThe registry, or rwhois.
domainrequiredstringThe holder's domain.
abuse_emailrequiredstringThe record's abuse contact.
asnrequiredintegerThe AS announcing the record's start address.
rwhoisobject
IP RWHOIS's most specific network covering the address. Paid plans and the trial.
idrequiredstringThe network's identifier on the operator's RWHOIS server.
namerequiredstringIts assignee.
countryrequiredstringISO 3166 country code.
sourcerequiredstringThe operator that published it.
domainrequiredstringThe contact emails' domain.
abuse_emailrequiredstringIts abuse contact.
hosted_domainsobject
From IP Hosted Domains: a count, never the list. Paid plans and the trial.
totalrequiredintegerHow many registered domains resolve to the address.
trial_expiredbooleanOn every answer to a key on the free plan, and on no other: false while the day's trial of every field lasts, true once the answer has Unlimited's fields.
TypeScript type
{
ip: string;
is_bogon: boolean;
is_vpn?: boolean;
is_tor: boolean;
is_relay: boolean;
is_resproxy?: boolean;
is_dcproxy?: boolean;
is_mobproxy?: boolean;
is_pubproxy?: boolean;
is_hosting?: boolean;
is_cdn?: boolean;
is_anycast: boolean;
is_carrier: boolean;
is_satellite: boolean;
is_ssh: boolean;
is_smtp: boolean;
is_web: boolean;
is_dns_resolver: boolean;
is_bittorrent: boolean;
vpn?: {
provider?: string;
provider_name?: string;
confidence?: string;
last_seen?: string;
};
tor: {
provider?: string;
provider_name?: string;
confidence?: string;
last_seen?: string;
};
relay: {
provider?: string;
provider_name?: string;
confidence?: string;
last_seen?: string;
};
resproxy?: {
provider?: string;
provider_name?: string;
first_seen?: string;
last_seen?: string;
hits?: number;
hits_days_pct?: number;
providers_num?: number;
};
dcproxy?: {
provider?: string;
provider_name?: string;
first_seen?: string;
last_seen?: string;
hits?: number;
hits_days_pct?: number;
providers_num?: number;
};
mobproxy?: {
provider?: string;
provider_name?: string;
first_seen?: string;
last_seen?: string;
hits?: number;
hits_days_pct?: number;
providers_num?: number;
};
pubproxy?: {
entry?: boolean;
exit?: boolean;
protocols?: string[];
num_ports?: number;
num_proxies?: number;
last_seen?: string;
last_usable?: string;
};
hosting?: {
provider?: string;
provider_name?: string;
confidence?: string;
last_seen?: string;
};
cdn?: {
provider?: string;
provider_name?: string;
confidence?: string;
last_seen?: string;
};
carrier?: {
name?: string;
mcc?: string;
mnc?: string;
country?: string;
confidence?: string;
};
satellite?: {
provider?: string;
provider_name?: string;
orbit?: string;
segment?: string;
country?: string;
asn?: number;
confidence?: string;
};
ssh?: {
port?: number;
banner?: string;
host_key_fp?: string;
session_ok?: boolean;
first_seen?: string;
last_seen?: string;
};
smtp?: {
port?: number;
banner?: string;
session_ok?: boolean;
first_seen?: string;
last_seen?: string;
};
web?: {
port: number;
tls_ok: boolean;
session_ok: boolean;
status_code: number;
server: string;
location: string;
title: string;
cert_subject_cn: string;
cert_subject_o: string;
cert_issuer_dn: string;
cert_browser_trusted: boolean;
tls_version: string;
first_seen: string;
last_seen: string;
}[];
dns_resolver?: {
port?: number;
recursion_available?: boolean;
rcode?: number;
answer_correct?: boolean;
first_seen?: string;
last_seen?: string;
};
bittorrent?: {
verified?: boolean;
id_matches_ip?: boolean;
first_seen?: string;
last_seen?: string;
last_reachable?: string;
days_seen?: number;
num_ports?: number;
peak_num_ports?: number;
indexer?: boolean;
clients?: string[];
};
location: {
continent: string;
continent_name: string;
country: string;
country_name: string;
timezone: string;
currency_code: string;
currency_name: string;
currency_symbol: string;
flag_emoji: string;
flag_unicode: string;
region?: string;
region_code?: string;
city?: string;
postal_code?: string;
latitude?: number;
longitude?: number;
accuracy_radius?: number;
geoname_id?: string;
dma_code?: string;
last_changed?: string;
};
asn: {
asn: number;
name: string;
domain: string;
type: string;
prefix: string;
country?: string;
rpki_status?: string;
};
company: {
name: string;
domain: string;
type?: string;
country?: string;
};
hostname: string;
abuse: {
email: string;
name?: string;
phone?: string;
address?: string;
country?: string;
network?: string;
validated?: boolean;
unvalidated_since?: string;
};
whois?: {
id: string;
name: string;
org: string;
country: string;
status: string;
source: string;
domain: string;
abuse_email: string;
asn: number;
};
rwhois?: {
id: string;
name: string;
country: string;
source: string;
domain: string;
abuse_email: string;
};
hosted_domains?: {
total: number;
};
trial_expired?: boolean;
}401application/json
The key is not one, or no longer works.
errorrequiredstringWhat went wrong.
TypeScript type
{
error: string;
}403application/json
The key may not be used from this address, lacks the ip.lookup scope (Lookups, in the
console's API keys), or was sent over plain HTTP.
errorrequiredstringWhat went wrong.
TypeScript type
{
error: string;
}429application/json
A rate limit, with Retry-After (this API protecting itself, or Unlimited's per-minute
limit), or, with none, a paid plan's overage cap.
errorrequiredstringWhat went wrong.
TypeScript type
{
error: string;
}500application/json
Our data could not be read. Retry; nothing was charged.
errorrequiredstringWhat went wrong.
TypeScript type
{
error: string;
}