LAYER3 INTEL
Intel API

Paid API

The paid /v1 API adds live residential proxy data and attribution to every answer. Send your key as a Bearer token; lookups use credits.

The paid API (/v1) returns the open answer plus live residential proxy data and the companies that run, sell and lease the address space, with the latest data on every call.

curl -H "Authorization: Bearer $KEY" https://api.layer3intel.com/v1/104.164.205.119
{
  "ip": "104.164.205.119",
  "type": "datacenter_proxy",
  "risk": {
    "score": 95,
    "level": "critical",
    "reasons": ["drop_listed", "datacenter_proxy", "recent_reassignment"]
  },
  "flags": {
    "anonymizer": true,
    "proxy": true,
    "residential_proxy": false,
    "vpn": false,
    "tor": false,
    "relay": false,
    "hosting": true
  },
  "privacy": {
    "operators": [
      { "name": "ProxyLine", "kind": "proxy-seller", "group": "proxy", "role": "operator" }
    ],
    "leased_from": [{ "name": "EGIHosting", "kind": "lessor" }]
  },
  "location": {
    "country": "NL",
    "region": "North Holland",
    "city": "Amsterdam",
    "latitude": 52.374,
    "longitude": 4.8897,
    "timezone": "Europe/Amsterdam",
    "confidence": "high"
  },
  "network": {
    "asn": 44559,
    "name": "IT Hostline Ltd",
    "type": "proxy_network",
    "prefix": "104.164.205.0/24",
    "registered": "2026-06-06",
    "rpki": "valid",
    "abuse_email": "abuse@iwihost.net",
    "drop_listed": true,
    "company": "Iwihost Net"
  },
  "routing": {
    "shape": "rotating",
    "first_seen": "2023-10-02",
    "origins": 3,
    "current_since": "2026-05-31"
  },
  "proxy_map": { "exits_24": 0, "always_on_24": 0 }
}

What the paid API adds

AddedWhere
Whether the address is a residential proxy exit nowflags.residential_proxy, and residential_proxy in risk.reasons
The exit's score, last sighting, days seen and providersresidential_proxy
Proxy, VPN and Tor operatorsprivacy.operators (addresses), operators (prefixes, ASNs)
The lessors and brokers behind the spaceprivacy.leased_from (addresses), leased_from (prefixes, ASNs)
Every prefix of an ASN/v1/AS{n}?include=prefixes

Get a key

Sign up at layer3intel.com and copy your API key from the dashboard. Every new account receives 10,000 free credits. Plans and prices are on the pricing page.

Send the key

  • Header (recommended): Authorization: Bearer YOUR_API_KEY. URLs end up in logs.
  • Query string: ?key=YOUR_API_KEY.

A key is 16 characters, letters and digits. A missing, malformed or unknown key gets 401 unauthorized. A key with no credits left gets 402 credits_exhausted.

/v1 is for server-to-server use. It sends no CORS headers, so browsers won't let a web page call it directly. Keep your key on your server. For lookups from a web page, use the Open API.

// On your server
const response = await fetch(`https://api.layer3intel.com/v1/${ip}`, {
  headers: { Authorization: `Bearer ${process.env.LAYER3_API_KEY}` },
});
const answer = await response.json();

if (answer.flags?.residential_proxy || answer.flags?.anonymizer) {
  // Residential proxy exit, ISP or datacenter proxy, VPN or Tor exit
}

Credits

LookupCost
/v1/{ip}, a public IPv4 address1 credit, always. flags.residential_proxy answers the question either way.
/v1/{cidr}, /v1/AS{n}1 credit when the answer names someone the open answer doesn't: any leased_from, or an operator outside the relay and corporate_proxy groups. Otherwise free: the answer is the open one.
?include=prefixesFree
/v1/balanceFree

When credits run out

Every /v1 lookup then gets 402 credits_exhausted, including prefix and ASN lookups that would have been free. /v1/balance keeps answering.

Check your balance

curl -H "Authorization: Bearer $KEY" https://api.layer3intel.com/v1/balance
{ "used": 1532, "limit": 10000, "remaining": 8468 }
FieldTypeDescription
usedintegerCredits the key has used.
limitinteger or nullThe key's credit limit. null for a key with no limit.
remaininginteger or nullCredits left. null for a key with no limit.

On this page