The IPinfo connector lets your AI agent act in each user's IPinfo account. Each user connects their own IPinfo access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 13 tools.
- Tools
- 13
- What they doRead · write · destructive
- 12 · 1 · 012 read1 write0 destructive
- Users sign in with
- Access token
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the IPinfo connection
In AgentKit > Connections, create an IPinfo connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'ipinfo'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize IPinfo:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'ipinfo_get_token_info',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "ipinfo"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize IPinfo:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="ipinfo_get_token_info",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their IPinfo credentials there. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolipinfo_get_abuse_contactGet the abuse contact registered for the network that holds an IP address.Read-onlyGet Abuse Contact
Get the abuse contact registered for the network that holds an IP address. Returns the contact's name, email, phone, address, country and the network (CIDR) it covers. Use this to find where to report malicious traffic from an address. Needs an IPinfo plan with Abuse Contact API access.
Inputs
ipstringrequired- The IPv4 or IPv6 address to look up. Always pass the address you want details for. Never pass "me" or an empty value: IPinfo would then describe the caller's own address, which is the Scalekit server, not your user. Example: 1.1.1.1
ipinfo_get_asnGet details of an autonomous system (ASN) from IPinfo.Read-onlyGet ASN Details
Get details of an autonomous system (ASN) from IPinfo. Returns the ASN, organization name, country, allocation date, registry, domain, number of IPs, type (isp, hosting, business, education), announced IPv4 and IPv6 prefixes, and peer, upstream and downstream ASNs. Use this to see who operates a network and which ranges it announces. Use ipinfo_get_ip_ranges to find the ranges of a company by domain, and ipinfo_lookup_ip to find the ASN of an address. Needs an IPinfo plan with ASN API access.
Inputs
asnstringrequired- The autonomous system number, digits only, without the AS prefix. Example: 15169
ipinfo_get_carrierGet the mobile carrier that an IP address belongs to, if it is on a mobile network.Read-onlyGet Mobile Carrier
Get the mobile carrier that an IP address belongs to, if it is on a mobile network. Returns the carrier name, mobile country code (mcc) and mobile network code (mnc); an address that is not on a mobile carrier network returns no carrier data. Use this to tell mobile users apart from fixed-line ones. Use ipinfo_lookup_ip on a Plus or Max token to get carrier data together with geolocation. Needs an IPinfo plan with Carrier API access.
Inputs
ipstringrequired- The IPv4 or IPv6 address to look up. Always pass the address you want details for. Never pass "me" or an empty value: IPinfo would then describe the caller's own address, which is the Scalekit server, not your user. Example: 66.87.125.72
ipinfo_get_companyGet the company that operates or is assigned an IP address.Read-onlyGet Company for IP
Get the company that operates or is assigned an IP address. Returns the company name, domain and type (isp, business, education, government or hosting). Use this to identify the organization behind traffic, for example for B2B lead enrichment. Use ipinfo_get_asn for the network operator of a whole ASN. Needs an IPinfo plan with IP to Company API access.
Inputs
ipstringrequired- The IPv4 or IPv6 address to look up. Always pass the address you want details for. Never pass "me" or an empty value: IPinfo would then describe the caller's own address, which is the Scalekit server, not your user. Example: 8.8.8.8
ipinfo_get_ip_rangesList the IP address ranges assigned to or operated by the company behind a domain.Read-onlyGet IP Ranges for Domain
List the IP address ranges assigned to or operated by the company behind a domain. Returns the domain, redirects_to (the company domain it resolved to, or null), num_ranges and the IPv4 and IPv6 ranges in CIDR notation. Use this to map a company's network from its domain. Use ipinfo_get_asn for the prefixes one ASN announces. Needs an IPinfo plan with IP Ranges API access.
Inputs
domainstringrequired- The company's domain name, without protocol or path. A domain that redirects resolves to the company domain, reported in redirects_to. Example: nytimes.com
ipinfo_get_placeGet the physical venue, such as a hotel, airport, museum or stadium, whose Wi-Fi network uses an IP address.Read-onlyGet Place for IP
Get the physical venue, such as a hotel, airport, museum or stadium, whose Wi-Fi network uses an IP address. Returns ip, name (venue name), category (one of 58 place types such as hotel or airport), ssid (the venue Wi-Fi network name), latitude and longitude. Use this for building-level location of venue Wi-Fi traffic. Use ipinfo_lookup_ip for ordinary city-level geolocation. Needs an IPinfo plan with Places API access.
Inputs
ipstringrequired- The IPv4 or IPv6 address to look up. Always pass the address you want details for. Never pass "me" or an empty value: IPinfo would then describe the caller's own address, which is the Scalekit server, not your user. Example: 65.144.40.106
ipinfo_get_privacyCheck whether an IP address is a VPN, proxy, Tor exit node, relay or hosting provider.Read-onlyGet Privacy Detection
Check whether an IP address is a VPN, proxy, Tor exit node, relay or hosting provider. Returns vpn, proxy, tor, relay and hosting booleans and service (the VPN or proxy name, if known); a Privacy Extended plan adds confidence, coverage, first_seen, last_seen and detection-method fields. Use this for anonymous-traffic and fraud checks on one address. Use ipinfo_get_residential_proxy for residential proxy networks, and ipinfo_lookup_ip on a Plus or Max token to get these signals with geolocation in one call. Needs an IPinfo plan with Privacy Detection API access.
Inputs
ipstringrequired- The IPv4 or IPv6 address to look up. Always pass the address you want details for. Never pass "me" or an empty value: IPinfo would then describe the caller's own address, which is the Scalekit server, not your user. Example: 193.42.96.221
ipinfo_get_residential_proxyCheck whether an IP address has been seen in a residential, mobile or datacenter proxy network.Read-onlyGet Residential Proxy Detection
Check whether an IP address has been seen in a residential, mobile or datacenter proxy network. Returns ip, last_seen (date the address was last seen as a proxy), percent_days_seen (share of the last 7 days it was active) and service (proxy provider name, suffixed _mobile or _datacenter for those networks); an address never seen as a residential proxy returns no proxy data. Use this to catch residential proxy traffic that ordinary VPN checks miss. Use ipinfo_get_privacy for VPN, Tor, relay and hosting detection. Needs an IPinfo plan with Residential Proxy API access.
Inputs
ipstringrequired- The IPv4 or IPv6 address to look up. Always pass the address you want details for. Never pass "me" or an empty value: IPinfo would then describe the caller's own address, which is the Scalekit server, not your user. Example: 175.107.211.204
ipinfo_get_token_infoGet the request limits, usage and API access of the connected IPinfo token.Read-onlyGet Token Usage and Limits
Get the request limits, usage and API access of the connected IPinfo token. Returns token, requests (day, month, limit, remaining) and features (daily and monthly limits for each API the token can call, such as core, asn, abuse, ranges, carrier, company and domains). Use this to check remaining quota or which IPinfo APIs this connection can call before using them.
Inputs
This tool takes no inputs.
ipinfo_list_hosted_domainsList the domains hosted on an IP address (reverse IP lookup).Read-onlyList Hosted Domains
List the domains hosted on an IP address (reverse IP lookup). Returns ip, total (the number of hosted domains found), page when requested, and a domains array of up to limit names. Use this to see which websites share a server. Page through results with page and limit. Needs an IPinfo plan with Hosted Domains API access.
Inputs
ipstringrequired- The IPv4 or IPv6 address to look up. Always pass the address you want details for. Never pass "me" or an empty value: IPinfo would then describe the caller's own address, which is the Scalekit server, not your user. Example: 198.35.26.96
limitinteger- Number of domains per page, from 1 to 1000. IPinfo uses 100 when empty. Example: 100
pageinteger- Zero-based page of results to return. Leave empty for the first page. Example: 1
ipinfo_lookup_ipLook up the geolocation and network details of one IP address with IPinfo's Core, Plus or Max API.Read-onlyLook Up IP Address
Look up the geolocation and network details of one IP address with IPinfo's Core, Plus or Max API. Returns the IP, hostname, geo (city, region, country, continent, latitude, longitude, time zone, postal code), as (ASN, name, domain, type) and is_anonymous, is_anycast, is_hosting, is_mobile and is_satellite flags; Plus and Max tokens also get mobile carrier, anonymous (VPN, proxy, Tor, relay) and place details. Use this for full IP geolocation on a paid Core, Plus or Max token. Use ipinfo_lookup_ip_lite on a free token, and ipinfo_batch_lookup for many addresses at once or for a token on an older IPinfo plan (endpoint batch/legacy).
Inputs
ipstringrequired- The IPv4 or IPv6 address to look up. Always pass the address you want details for. Never pass "me" or an empty value: IPinfo would then describe the caller's own address, which is the Scalekit server, not your user. Example: 8.8.8.8
ipinfo_lookup_ip_liteLook up the country and ASN of one IP address with IPinfo's free Lite API.Read-onlyLook Up IP Address (Lite)
Look up the country and ASN of one IP address with IPinfo's free Lite API. Returns ip, asn, as_name, as_domain, country_code, country, continent_code and continent; a private or reserved address returns only ip and bogon: true. Use this on a free IPinfo token or when country-level location is enough. Use ipinfo_lookup_ip for city, coordinates, time zone and network flags on a paid token.
Inputs
ipstringrequired- The IPv4 or IPv6 address to look up. Always pass the address you want details for. Never pass "me" or an empty value: IPinfo would then describe the caller's own address, which is the Scalekit server, not your user. Example: 8.8.8.8
ipinfo_batch_lookupLook up as many as 1,000 IP addresses or IPinfo lookup paths in one request.WriteBatch Look Up IP Addresses
Look up as many as 1,000 IP addresses or IPinfo lookup paths in one request. Returns one JSON object keyed by each input string, whose value is that lookup's result: a full record, a sub-object such as geo or anonymous, or a single value such as a country name. Use this instead of repeated single lookups. Choose the endpoint that matches the token: batch (Core, Plus or Max), batch/lite (free tokens) or batch/legacy (older plans and Privacy Extended data). Entries can also be paths like 8.8.8.8/geo, lite/8.8.8.8/country, AS15169, ranges/nytimes.com, domains/1.1.1.1 or resproxy/1.1.1.1, each billed as one request.
Inputs
ipsarrayrequired- The IP addresses or IPinfo lookup paths to resolve, 1 to 1,000 entries. A bare address uses the endpoint's default lookup. A path adds a field or another API: 8.8.8.8/geo, 8.8.8.8/as/asn, lite/8.8.8.8/country_code, AS15169, ranges/nytimes.com, domains/1.1.1.1, resproxy/1.1.1.1, places/65.144.40.106. Every entry must contain an IP address or an ASN (or be a ranges/<domain> lookup); entries such as "me", "lite/me" or a bare field name like "city" are rejected, because IPinfo would describe the Scalekit server's own address. Example: ["8.8.8.8", "1.1.1.1/geo", "AS15169"]
endpointstring- Which batch endpoint to call. batch (default) runs bare addresses through the Core, Plus or Max lookup and needs a paid token. batch/lite runs them through the free Lite API, so use it with a free token. batch/legacy uses the older ipinfo.io response shape and is the only one that returns Privacy Extended fields. Example: batch/liteone of
batchbatch/litebatch/legacydefaultbatch filterinteger- Set to 1 to drop entries that have no result (null) from the response, for example addresses with no hostname. Leave empty to keep every entry. Example: 1one of
1
No tools match.