Every developer needs to detect public IP addresses at some point. Whether you're building a "What's my IP" feature, logging user locations, or configuring servers — you need a reliable, free IP API.
Most options either require signup (ipinfo), have strict rate limits (ip-api), or only return the IP with no context (ipify).
Here's one that does it all — no API key, no signup, no account required:
curl https://agent-gateway-kappa.vercel.app/ip
That's it. Returns your IP address as plain text. Let me show you what else it can do.
Three Endpoints, Zero Authentication
1. Get Your IP (Plain Text)
curl https://agent-gateway-kappa.vercel.app/ip
# → 203.0.113.42
Perfect for scripts where you just need the IP string:
MY_IP=$(curl -s https://agent-gateway-kappa.vercel.app/ip)
echo "Server IP: $MY_IP"
2. Get Your IP + Geolocation (JSON)
curl https://agent-gateway-kappa.vercel.app/ip/json
Returns:
{
"ip": "203.0.113.42",
"country": "United States",
"countryCode": "US",
"region": "California",
"city": "San Francisco",
"lat": 37.7749,
"lon": -122.4194,
"timezone": "America/Los_Angeles",
"isp": "Cloudflare Inc",
"org": "Cloudflare"
}
One request gives you everything — IP, country, city, coordinates, timezone, and ISP.
3. Look Up Any IP Address
curl https://agent-gateway-kappa.vercel.app/ip/geo/8.8.8.8
Pass any IP address and get full geolocation data back.
Code Examples
JavaScript (Node.js)
// Get your own IP
const res = await fetch('https://agent-gateway-kappa.vercel.app/ip/json');
const data = await res.json();
console.log(`You're in ${data.city}, ${data.country}`);
// Look up any IP
const lookup = await fetch('https://agent-gateway-kappa.vercel.app/ip/geo/1.1.1.1');
const info = await lookup.json();
console.log(`1.1.1.1 is in ${info.country}`);
Python
import requests
# Your IP + location
data = requests.get('https://agent-gateway-kappa.vercel.app/ip/json').json()
print(f"IP: {data['ip']}, Location: {data['city']}, {data['country']}")
# Bulk lookup
ips = ['8.8.8.8', '1.1.1.1', '208.67.222.222']
for ip in ips:
info = requests.get(f'https://agent-gateway-kappa.vercel.app/ip/geo/{ip}').json()
print(f"{ip}: {info.get('city', 'N/A')}, {info.get('country', 'N/A')}")
Go
resp, _ := http.Get("https://agent-gateway-kappa.vercel.app/ip")
body, _ := io.ReadAll(resp.Body)
fmt.Println("My IP:", string(body))
Browser (Frontend)
// Works from any website — CORS enabled
fetch('https://agent-gateway-kappa.vercel.app/ip/json')
.then(r => r.json())
.then(data => {
document.getElementById('ip').textContent = data.ip;
document.getElementById('location').textContent =
`${data.city}, ${data.country}`;
});
Comparison: Frostbyte vs ipify vs ip-api vs ipinfo
| Feature | Frostbyte | ipify | ip-api | ipinfo |
|---|---|---|---|---|
| Plain text IP | Yes | Yes | No | No |
| Geolocation (free) | Yes | No | Yes | Limited |
| API key required | No | No | No | Yes (for geo) |
| Rate limit | 120/min | Unlimited | 45/min | 50k/month |
| HTTPS (free) | Yes | Yes | No (paid only) | Yes |
| Lookup any IP | Yes | No | Yes | Yes |
| ISP/Org data | Yes | No | Yes | Yes |
Frostbyte gives you the best of all worlds: plain text like ipify, geolocation like ip-api, and HTTPS like ipinfo — all without requiring a key.
Use Cases
DevOps / Server Setup:
# Add your server's IP to a firewall allow list
SERVER_IP=$(curl -s https://agent-gateway-kappa.vercel.app/ip)
ufw allow from $SERVER_IP
Dynamic DNS:
# Update DNS record when IP changes
CURRENT_IP=$(curl -s https://agent-gateway-kappa.vercel.app/ip)
if [ "$CURRENT_IP" != "$LAST_IP" ]; then
# Update your DNS provider
echo "IP changed to $CURRENT_IP"
fi
Geo-Personalization:
const { country, timezone } = await fetch(
'https://agent-gateway-kappa.vercel.app/ip/json'
).then(r => r.json());
// Show local currency, language, or time
const localTime = new Date().toLocaleString('en-US', { timeZone: timezone });
API Rate Limiting by Region:
geo = requests.get(f'https://agent-gateway-kappa.vercel.app/ip/geo/{client_ip}').json()
if geo.get('countryCode') in ['US', 'GB', 'DE']:
rate_limit = 100 # Higher limit for target markets
else:
rate_limit = 30
Need More? Get an API Key
The public endpoints handle most use cases. But if you need:
- Higher rate limits (300 req/min vs 120)
- Access to 40+ additional APIs (DNS, screenshots, web scraping, crypto prices, code execution)
- Usage analytics and credit tracking
Create a free API key — no email required:
curl -X POST https://agent-gateway-kappa.vercel.app/api/keys/create
You get 200 free credits immediately. Each API call costs 1 credit.
Full API catalog: api-catalog-three.vercel.app
Try it right now — open your terminal and run:
curl https://agent-gateway-kappa.vercel.app/ip/json
No signup. No API key. Just your IP and location, instantly.
Top comments (2)
Nice work, the plaintext endpoint with no key is exactly right for curl workflows.
I went down a similar rabbit hole with whatsmy.fyi: I run it on Cloudflare Workers, so all the geo data (city, ASN, timezone) comes straight from the request's cf object, zero external lookups, zero maintained databases, and nothing to log. Different trade-off than MaxMind: a bit less detail, but there's literally no data pipeline to babysit.
Curious how you're handling the "no rate limits" promise at scale, what does the abuse story look like?
Some comments may only be visible to logged-in visitors. Sign in to view all comments.