IPinfo
/install ipinfo
IPinfo Geolocation
Free IP geolocation API. No API key required for basic usage (50k requests/month), optional token for higher limits.
Configuration
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:
- Dashboard UI: Configure
IPINFO_TOKENin the OpenClaw dashboard (optional) - Environment variable:
export IPINFO_TOKEN="your-token" - Query parameter:
?token=YOUR_TOKEN(for one-off requests)
Quick Lookup
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"
Response Format
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 information
Extract Specific Fields
Using 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 ',' '\
'
Batch Processing
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 '\
' ', ')"
else
echo "$ip: $(curl -s "https://ipinfo.io/$ip" | jq -r '.city, .country' | tr '\
' ', ')"
fi
done
Python Usage
import os
import requests
# Without 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 requests
token = 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"})
Rate Limits
- Free tier: 50,000 requests/month, ~1 req/sec
- With token: Higher limits based on plan
- Configure
IPINFO_TOKENvia OpenClaw dashboard UI or environment variable
Common Use Cases
- Geolocate IP addresses
- Enrich IP lists with location data
- Filter IPs by country
- Calculate distances between IPs using coordinates
- Timezone detection for IPs
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install ipinfo - After installation, invoke the skill by name or use
/ipinfo - Provide required inputs per the skill's parameter spec and get structured output
What is 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 IP data, or analyzing geographic distribution. It is an AI Agent Skill for Claude Code / OpenClaw, with 2190 downloads so far.
How do I install IPinfo?
Run "/install ipinfo" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is IPinfo free?
Yes, IPinfo is completely free (open-source). You can download, install and use it at no cost.
Which platforms does IPinfo support?
IPinfo is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created IPinfo?
It is built and maintained by Tiago Martins (@tiagom101); the current version is v1.0.0.