canonical: https://jentic.com/apis/ipscanner.io/ipscanner

# IPScanner API

The IPScanner API classifies the network behind an IP address as VPN, residential proxy, Tor, hosting, mobile, or residential, and returns a purity score, geolocation, ASN ownership, and WHOIS in one combined lookup. It also verifies whether an address is really the crawler its user agent claims to be, classifies an inbound request as human, AI agent, verified crawler, or impostor, and writes hash-chained location attestation records against a claimed jurisdiction. A signup email check covers syntax, throwaway domains, MX records, and role mailboxes, and a keyless demo endpoint returns the same body as the keyed lookup.

## For AI agents

Check whether an IP is a VPN, proxy, Tor exit, or datacenter, verify crawler and AI-agent traffic, geolocate addresses, read ASN and WHOIS data, and screen signup emails.

## Scope

Does not block traffic, run a firewall, or probe email mailboxes. Use for IP, crawler, and signup risk checks only.

## Capabilities

- Run a combined lookup on an IP, CIDR range, hostname, or URL for network class, purity score, VPN, proxy and Tor flags, geolocation, and ASN
- Detect whether an address is an anonymising VPN, residential proxy, or Tor exit through the isVpn and isProxy verdicts
- Verify a crawler claim against forward-confirmed reverse DNS, the operator's published egress ranges, and its ASN
- Classify one inbound request as human, AI agent, verified crawler, or impostor from its ip, user_agent, and headers
- Write a hash-chained location attestation for an ip against a claimed_jurisdiction
- Screen a signup email for syntax, throwaway domains, MX records, webmail typos, and role mailboxes

## Use cases

### Agent-run signup fraud screening

An AI agent reviewing new signups needs to flag anonymised traffic and disposable email before an account is approved. Through Jentic the agent searches for 'check if an IP is a VPN', loads the IPScanner combined lookup, and reads networkClass and the purity score, then runs the email check on the address. The bearer key is attached at call time, so the agent works from the verdicts without handling the credential.

Example prompt: Call POST `/v1/ip/lookup` with target 203.0.113.7 and POST `/v1/email/check` with email new.user@example.com, then flag the signup if networkClass is vpn, residential_proxy, or tor or the email domain is throwaway

### Crawler and AI-agent traffic verification

A site operator wants to let real search crawlers through while blocking scrapers that spoof their user agents. The crawler verification read checks reverse DNS, the operator's published ranges, and the ASN for a claimed bot, and the Agentscan check classifies a request as human, AI agent, verified crawler, or impostor with a recommended action.

Example prompt: Call POST `/v1/crawlers/verify` with ip 66.249.66.1 and bot googlebot, then call POST `/v1/agentscan/check` with the same ip and the request's user_agent and report both verdicts

### Location attestation for compliance

A service that must prove where a connection came from records a verdict at the time of access. The provenance check takes an ip and a claimed_jurisdiction such as DE, applies the jurisdiction policy, and returns an attestation id backed by a hash-chained record for later export.

Example prompt: Call POST `/v1/provenance/check` with ip 8.8.8.8 and claimed_jurisdiction DE and store the returned attestation id

### Network ownership research

A security analyst investigating an address wants its owner and the size of its network. The ASN directory searches autonomous systems by organisation name or number, and the directory entry returns prefix counts, network type, and how many prefixes sit inside known VPN and datacenter range lists.

Example prompt: Call GET `/v1/asn/directory` with q comcast, then GET `/v1/asn/directory/{asn}` for the top match and summarise its prefixes and network type

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/v1/ip/lookup` | Combined IP, hostname, or URL lookup |
| GET | `/v1/vpn/{ip}` | VPN detection |
| GET | `/v1/geo/{ip}` | Geolocation |
| GET | `/v1/whois/{domain}` | WHOIS lookup |
| POST | `/v1/crawlers/verify` | Verify a crawler claim |
| POST | `/v1/agentscan/check` | Classify a request as human or agent |
| POST | `/v1/provenance/check` | Location attestation |
| POST | `/v1/email/check` | Email check |

## Key resources

- **IP detection** — Combined lookup plus separate VPN, proxy, geolocation, and ASN reads by IP
- **WHOIS** — Domain WHOIS records
- **Crawler and Agentscan** — Crawler claim verification and human, AI agent, crawler, or impostor classification
- **Provenance** — Jurisdiction checks with hash-chained attestation records
- **Email check** — Signup email screening by POST body or query string
- **ASN directory** — Search autonomous systems and read one network's details

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 70 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 100 / 100
  - Developer Experience & Jentic Compatibility: 82 / 100
  - AI-Readiness & Agent Experience: 48 / 100
  - Agent Usability: 94 / 100
  - Security: 60 / 100
  - AI Discoverability: 73 / 100
- **View full report:** https://jentic.com/apis/ipscanner.io/ipscanner/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring IPScanner by hand means sending the bearer key on keyed routes, knowing which five routes are keyless with their own per-IP limits, and handling camelCase and snake_case bodies on different surfaces. Through Jentic you install once, import IPScanner from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** IPScanner carries lookup targets in the path or request body, so rules bound which operations your agent may call, such as the combined lookup and email check, not which address. You choose the operations it may call, so attestation writes like POST `/v1/provenance/check` are not included unless you add them.
- **Credential handling:** Your IPScanner API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'check if an IP is a VPN' or 'verify a crawler', and Jentic returns the matching IPScanner operation with its input schema so the agent calls the right endpoint.

## Related APIs

- **IP2Proxy** — Proxy, VPN, and Tor detection by IP from a separate dataset
- **MaxMind GeoIP Web Services** — GeoIP country, city, and insights lookups for IP addresses
- **Fingerprint** — Browser and device identification to pair with network-level IP verdicts

## FAQ

### What authentication does the IPScanner API use?

Per its OpenAPI spec, keyed routes take a bearer token: Authorization: Bearer with your API key. Five operations need no key: the demo lookup, GET `/v1/myip`, crawler verification, and the two ASN directory reads. Through Jentic the key is stored by your own instance and attached at call time, so the agent never sees it.

### What are the rate limits for the IPScanner API?

The spec states the free tier is 30,000 requests a month, up to 1,000 a day and 100 an hour, and that paid plans have no daily cap. Keyless routes have their own per-IP limits, such as 100 requests per 24 hours on the demo lookup. GET `/v1/user/limits` returns your current usage and reset date.

### Can the IPScanner API tell a cloud server from a VPN?

Yes. GET `/v1/vpn/{ip}` returns a networkClass and risk score, and isVpn is true only for the anonymising classes vpn, residential_proxy, and tor. A cloud or hosting address reports networkClass hosting with isVpn false.

### Is there an IPScanner MCP server?

You don't need an MCP server to give your agent IPScanner. Jentic connects it directly from the API Directory: import it, store your key once, and your agent calls the lookup, crawler, and email operations it needs without loading another server's tool definitions into its context.

### Can I limit what my agent is allowed to do with the IPScanner API?

Yes. Write a rule that allows only POST `/v1/ip/lookup` and the email check, for example, and the agent can screen signups but cannot write provenance attestations or run Agentscan checks against your allowance. Every call it makes is logged.

### How do I check an IP address through Jentic?

Search Jentic for 'check if an IP is a VPN', load the POST `/v1/ip/lookup` operation, and execute it with a target such as an IP, CIDR range, hostname, or URL. Failed sub-lookups are named in degraded instead of failing the call. To run it on your own infrastructure, install Jentic One from its GitHub repo.
