Skip to content
InternetData

Know which company each sign-up is from.

A sign-up form gets an email and an address. One lookup says which company's network it came from, where it is and whether it hides behind a VPN or a proxy, and a domain lookup whether the email is a throwaway.

Unlimited lookups, no key needed · Sign up to try every field, no card
New sign-ups
Example
  • Trial sign-up
    198.51.100.7
    CompanyExample CorpTo sales
  • Trial sign-up
    203.0.113.24
    VPNSurfsharkCard first
  • Sign-up
    free.tier@mailbin.example
    DisposableRefused
  • New workspace
    192.0.2.140
    Frankfurt, GermanyEU region

Turn every sign-up into something you can act on.

  • Account enrichment

    A sign-up arrives from a personal email with no company name. Read the company behind its network, and route business sign-ups to sales.

    Answered bycompanycompany.type
  • Free-trial abuse

    One person opens trial after trial from VPN exits and new inboxes. Ask for a card when the address or the email is disposable.

    Answered byis_vpnis_disposable
  • Data residency

    Customers in the EU expect their data to stay there. Put each new workspace in the region its sign-up came from.

    Answered bylocation.countrylocation.continent
  • API key farming

    Free API keys get farmed from hosting servers to pool quotas. Hold keys created from hosting networks for review.

    Answered byis_hostingasn

Company, place and abuse signals in one answer.

The company, the country and continent, Tor, relays and an email domain's records answer with no key and no daily or monthly cap. VPN, proxy and hosting flags, the company's type and the disposable flag come with every paid plan, and Pricing lists every field by plan.

  • company
    The organization using the address, by name and domain.Unlimited
  • company.type, country
    What kind of organization it is, and its country.Paid plans
  • location.country, continent
    The country and continent, for where a workspace's data lives.Unlimited
  • is_vpn, is_resproxy
    VPN exits and residential proxies, each with its provider.Paid plans
  • is_hosting
    A hosting or cloud server, where scripted sign-ups run.Paid plans
  • has_mx
    Whether a sign-up's email domain publishes a mail server.Unlimited
  • is_disposable
    A disposable email domain, with the providers behind it.Paid plans

Check each sign-up before it costs you anything.

  1. 01

    On the sign-up form

    Look up the address and the email's domain before the account exists. A disposable inbox or a VPN asks for a card, and everyone else goes straight in.

  2. 02

    In the CRM

    Attach the company and its type to each new account. Sales sees which sign-ups come from a business network before anyone reaches out.

  3. 03

    When a workspace is created

    Place it in the region its sign-up came from, by country or continent. Keep the customer's own choice when they make one.

Start free, then add every field.

The same code runs with no key and with one: without a key it answers the free fields, and an upgrade adds the rest with no change to the code.

  1. 1

    Call it with no key

    Unlimited

    Run the code on this page as it is, with no account.

  2. 2

    Sign up for a key

    No card

    Your account's first 100 lookups each day answer every field, so you can try the VPN check and the company's type on real sign-ups.

  3. 3

    Upgrade for every lookup

    From $39 a month

    Every paid plan answers every field on every lookup, and takes up to 1,000 lookups in one request.

import { InternetData } from "@internetdata/internetdata";
// No key needed. With one, every field answers.
const client = new InternetData({ apiKey: process.env.INTERNETDATA_API_KEY });
export async function onSignup(req, email) {
const [r, d] = await Promise.all([
client.lookup(req.ip),
client.lookupDomain(email.split("@")[1]),
]);
// VPNs, hosting and disposable domains answer on a paid plan.
if (d.isDisposable || r.isVpn || (r.isHosting && !r.isRelay)) {
return askForCard(req);
}
return createAccount(req, { company: r.company.name, type: r.company.type });
}
signup.mjsnpm install @internetdata/internetdata

Also available for Web, .NET, Ruby, Rust, Swift, Erlang, Perl and Zig. See all on GitHub →

On this page

Does company name the person's employer?

It names the organization using the address. On an office or campus network that's the employer or the university; on a home or mobile line it's the ISP.

00 · Unlimited

Unlimited lookups, no sign-up.

Paste it into a terminal. Any address answers with its country, network, company and hostname, with no key and no daily or monthly cap. ASes and domains answer too.

curl https://api.internetdata.io/8.8.8.8
{
"ip": "8.8.8.8",
"is_bogon": false,
"is_tor": false,
"is_relay": false,
"is_anycast": true,
"is_carrier": false,
"is_satellite": false,
"is_ssh": false,
"is_smtp": false,
"is_web": true,
"is_dns_resolver": true,
"is_bittorrent": false,
"hostname": "dns.google",
"location": {
"continent": "NA",
"continent_name": "North America",
"country": "US",
"country_name": "United States",
"timezone": "America/Los_Angeles",
"currency_code": "USD",
"currency_name": "Dollar",
"currency_symbol": "$",
"flag_emoji": "🇺🇸",
"flag_unicode": "U+1F1FA U+1F1F8"
},
"asn": {
"asn": 15169,
"name": "Google LLC",
"domain": "google.com",
"type": "hosting",
"prefix": "8.8.8.0/24"
},
"company": {
"name": "Google LLC",
"domain": "google.com"
},
"tor": {},
"relay": {},
"abuse": {
"email": "network-abuse@google.com"
}
}
01 · Every field

All of the data on a paid plan.

VPN, proxy, hosting and CDN flags, each naming the operator.
Location to the city, with coordinates and an accuracy radius.
WHOIS records, the whole abuse contact and the services an address runs.
Up to 1,000 addresses, ASes and domains in one request.

A free API key answers every field for its first 100 lookups each day, with no card.