Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the IP99 IP risk and geolocation API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fip99.com%2Fip99" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fip99.com%2Fip99" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with IP99 IP risk and geolocation API.
Check whether an IP address is a proxy, VPN, dial-up pool, cloud phone, or datacenter address
Read evidence_state before risk.score to tell no evidence from stale evidence
Get the network ASN and usage_type plus city, region, and timezone for an IP
Pull per-evidence detail with freshness and captured_at on the professional tier
GET STARTED
Replay an IP's verdict as of a past moment with the at parameter
Check the current tier, remaining quota, and reset time for your key
Patterns agents use IP99 IP risk and geolocation API for, with concrete tasks.
★ AI fraud-review agent screening signups
A developer's agent connected through Jentic finds the IP99 lookup by intent and calls it with the key injected at execution time when one is configured. For each new signup it reads evidence_state first, then risk.level and risk.signals, and flags accounts created from VPN, proxy, or datacenter addresses for manual review, without the key entering the agent's context.
Call GET /v1/ip/{ip} for the signup IP 203.0.113.7, and if evidence_state is not none and risk.level indicates risk, report the signals that fired
Location and network context for a session
Support and security tools often need to know where a session comes from and what kind of network it is on. The lookup returns geo fields including country, region, city, tz, lat, and lon, and network fields asn and usage_type, so a reviewer can see that a login moved from a residential ISP to a hosting provider.
Call GET /v1/ip/{ip} for two login IPs and compare their country, city, and usage_type
Investigating a past incident
Risk verdicts change as evidence ages, so an incident review needs the verdict as it stood at the time. On the professional tier the pulse lookup accepts an at timestamp in RFC 3339 and returns the score, evidence list, and sharing tier relative to that moment.
Call GET /pulse/v1/ip/{ip} with at '2026-10-01T09:00:00Z' and list each evidence item's risk_type and freshness
3 endpoints — the ip99 ip risk and geolocation api tells you whether an ip address is currently proxy, vpn, dial-up pool, cloud phone, or datacenter infrastructure, how fresh that evidence is, and which network and location it belongs to.
METHOD
PATH
DESCRIPTION
/v1/ip/{ip}
Risk verdict, network, and location for an IP
/pulse/v1/ip/{ip}
Professional verdict with per-evidence detail
/v1/me
Current tier and remaining quota
/v1/ip/{ip}
Risk verdict, network, and location for an IP
/pulse/v1/ip/{ip}
Professional verdict with per-evidence detail
/v1/me
Current tier and remaining quota
What agents get from Jentic-routed access to this vendor.
Setup
Wiring IP99 by hand means choosing between the X-API-Key header and bearer form, keeping the key out of the query string where it is rejected, and knowing which lookups need a professional-tier key. Through Jentic you install once, import IP99 from the API Directory, store the key once, and your agent calls it.
Permission scoping
IP99 is a read-only lookup API with the address in the URL path (/v1/ip/{ip}), so a rule can bound your agent to the standard lookup operation. You choose the operations it may call, so the professional pulse lookup and the account quota read are not included unless you add them.
Credential isolation
Your IP99 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.
Intent-based discovery
Agents search Jentic by intent such as 'check if an IP is a VPN' or 'locate an IP address', and Jentic returns the matching IP99 operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using IP99 IP risk and geolocation API through Jentic.
What authentication does the IP99 API use?
Per its OpenAPI spec, IP99 accepts an API key either in the `X-API-Key` header or as `Authorization: Bearer` with the same key, and never in the query string. GET /v1/ip/{ip} also works without a key at the free allowance, while GET /v1/me and the professional GET /pulse/v1/ip/{ip} require a key. Through Jentic the key is stored by your own instance and attached at call time.
What are the rate limits for the IP99 API?
The OpenAPI spec states that GET /v1/ip/{ip} without a key allows 1000 lookups per day per client IP and 60 per minute, and that a free account raises the daily allowance. GET /v1/me returns your key's per_min and per_day limits, used_today, and remaining quota.
Does a risk score of 0 mean an IP is safe?
No. The spec says to read evidence_state before risk.score: a score of 0 with evidence_state none means there is no evidence, not that the address is safe, and stale means evidence existed and expired. The score measures the freshness and strength of verifiable evidence, not a probability, so query at decision time rather than caching verdicts.
Is there an IP99 MCP server?
You don't need an MCP server to give your agent IP99. Jentic connects it directly from the API Directory: import it, store your API key once, and your agent calls the lookup operations it needs, discovered on demand rather than loaded into its context.
Can I limit what my agent is allowed to do with IP99?
Yes. For example, write a rule that allows only GET /v1/ip/{ip}, so the agent can run standard lookups but cannot call the professional pulse lookup or read your account quota, and every call it makes is logged.
How do I check an IP for VPN use through Jentic?
Import IP99 from the Jentic API Directory and store your API key once. Your agent searches for 'check if an IP is a VPN or proxy', gets GET /v1/ip/{ip} with its schema, and reads evidence_state and risk from the response. To run it on your own infrastructure, install Jentic One from its GitHub repo.
For Agents
Check an IP address for proxy, VPN, datacenter, dial-up pool, or cloud phone use, read how fresh the evidence is, and get its ASN and city-level location.
Use for: Check whether this signup IP is a VPN or proxy, Get the city and ASN for an IP address, Find out if a login came from datacenter infrastructure, Retrieve the risk verdict for an IP as it was last Tuesday
Not supported: Does not handle blocking traffic, firewall rules, or email and phone reputation. Use for IP risk verdicts and IP geolocation lookups only.
The IP99 IP risk and geolocation API tells you whether an IP address is currently proxy, VPN, dial-up pool, cloud phone, or datacenter infrastructure, how fresh that evidence is, and which network and location it belongs to. Each lookup returns a risk object with score, level, and the signals that fired, an evidence_state that separates no evidence from expired evidence, the network's ASN and usage_type, and geolocation at city level for every country and down to the district for addresses in China. A professional-tier lookup adds per-evidence detail, a sharing tier, and resource pools, and can return the verdict as it stood at a past moment.
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.
Base layer of spec validity and structural soundness.
Aggregated quality score from linter diagnostics, weighted by severity.
Percentage of `$ref` references that resolve successfully.
Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).
Structural correctness score based on schema issues using logarithmic dampening.
Clarity, completeness, and ingestion readiness for developers and tooling.
How richly the API is illustrated with examples.
Percentage of examples that conform to their schemas.
Percentage of operations with complete response definitions (success, client error, server error).
Health of API ingestion, bundling, and resolution within Jentic pipelines.
Semantic breadth, depth, and agent comprehension for AI systems.
Coverage of descriptions across API elements.
Coverage of RFC 9457 Problem Details for error responses.
Coverage, uniqueness, and casing consistency of operationIds for AI inference.
Coverage of summaries across operations/tags/info.
Functional utility, complexity comfort, and AI orchestration readiness.
Agent comfort level based on API operational and structural complexity.
Trust, risk posture, and security compliance.
Average quality of security schemes based on authentication method strength (weakest link for OAuth2).
Findability, semantic richness, and reasoning readiness.
Clarity and depth of descriptions across API elements.
Score it yourself
Every API in the directory is allowlisted, so you can re-score it with no key required.
npx @jentic/api-scorecard-cli score <openapi-url>