IPinfo
Perform IP geolocation lookups using ipinfo.io API. Convert IP addresses to geographic data including city, region, country, postal code, timezone, and coordinates. Use when geolocating IPs, enriching
Perform IP geolocation lookups using ipinfo.io API. Convert IP addresses to geographic data including city, region, country, postal code, timezone, and coordinates. Use when geolocating IPs, enriching
Real data. Real impact.
Growing
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
Free IP geolocation API. No API key required for basic usage (50k requests/month), optional token for higher limits.
The
IPINFO_TOKEN environment variable is optional - the skill works without it using the free tier. Configure it via the OpenClaw dashboard UI for higher rate limits, or set it manually:
IPINFO_TOKEN in the OpenClaw dashboard (optional)export IPINFO_TOKEN="your-token"?token=YOUR_TOKEN (for one-off requests)Single IP:
curl -s "https://ipinfo.io/8.8.8.8"
Current IP:
curl -s "https://ipinfo.io/json"
With token (optional, from environment):
curl -s "https://ipinfo.io/8.8.8.8?token=${IPINFO_TOKEN}"
Or pass token directly:
curl -s "https://ipinfo.io/8.8.8.8?token=YOUR_TOKEN"
JSON response includes:
ip: IP addresshostname: Reverse DNS hostnamecity: City nameregion: State/regioncountry: Two-letter country code (ISO 3166-1 alpha-2)postal: Postal/ZIP codetimezone: IANA timezoneloc: Coordinates as "latitude,longitude"org: Organization/ASN informationUsing
jq:
curl -s "https://ipinfo.io/8.8.8.8" | jq -r '.city, .country, .loc'
Country only:
curl -s "https://ipinfo.io/8.8.8.8" | jq -r '.country'
Parse coordinates:
curl -s "https://ipinfo.io/8.8.8.8" | jq -r '.loc' | tr ',' '\n'
Process multiple IPs:
for ip in 8.8.8.8 1.1.1.1 208.67.222.222; do if [ -n "$IPINFO_TOKEN" ]; then echo "$ip: $(curl -s "https://ipinfo.io/$ip?token=$IPINFO_TOKEN" | jq -r '.city, .country' | tr '\n' ', ')" else echo "$ip: $(curl -s "https://ipinfo.io/$ip" | jq -r '.city, .country' | tr '\n' ', ')" fi done
import os import requestsWithout token (free tier)
response = requests.get("https://ipinfo.io/8.8.8.8") data = response.json() print(f"{data['city']}, {data['country']}") print(f"Coordinates: {data['loc']}")
With token from environment:
import os import requeststoken = os.getenv("IPINFO_TOKEN") if token: response = requests.get("https://ipinfo.io/8.8.8.8", params={"token": token}) else: response = requests.get("https://ipinfo.io/8.8.8.8") data = response.json()
Or pass token directly:
response = requests.get("https://ipinfo.io/8.8.8.8", params={"token": "YOUR_TOKEN"})
IPINFO_TOKEN via OpenClaw dashboard UI or environment variableNo automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.