Every side project needs APIs — for geo data, prices, screenshots, DNS lookups, or running untrusted code. Most API providers make you jump through hoops: email verification, credit cards, OAuth flows, rate limit walls.
Here are 5 APIs I've been using that give you a free key instantly (one curl call, no signup) and actually work.
1. IP Geolocation API
Turn any IP address into a location — city, country, coordinates, timezone, ISP.
curl "https://agent-gateway-kappa.vercel.app/api/geo/8.8.8.8" \
-H "X-API-Key: YOUR_KEY"
{
"ip": "8.8.8.8",
"city": "Mountain View",
"region": "California",
"country": "US",
"loc": "37.4056,-122.0775",
"org": "AS15169 Google LLC",
"timezone": "America/Los_Angeles"
}
Use cases: visitor analytics, fraud detection, content localization, access control by country.
// Detect visitor country and redirect
const res = await fetch(`https://agent-gateway-kappa.vercel.app/api/geo/${userIP}`, {
headers: { "X-API-Key": API_KEY }
});
const { country } = await res.json();
if (country === "DE") {
redirect("/de"); // German version
}
2. Real-Time Crypto Prices
Live prices for 50+ cryptocurrencies. One call, no WebSocket setup required.
curl "https://agent-gateway-kappa.vercel.app/api/prices" \
-H "X-API-Key: YOUR_KEY"
{
"BTC": { "usd": 94521.00, "change_24h": 2.1 },
"ETH": { "usd": 2547.30, "change_24h": -0.8 },
"SOL": { "usd": 178.45, "change_24h": 5.2 }
}
Use cases: portfolio trackers, price alert bots, trading dashboards, crypto widgets.
import requests
API_KEY = "your_key"
url = "https://agent-gateway-kappa.vercel.app/api/prices"
prices = requests.get(url, headers={"X-API-Key": API_KEY}).json()
# Alert if Bitcoin drops below threshold
if prices["BTC"]["usd"] < 90000:
send_alert(f"BTC at ${prices['BTC']['usd']:,.0f} - buy signal?")
3. Website Screenshot API
Capture a full-page screenshot of any URL. Returns a PNG image.
curl "https://agent-gateway-kappa.vercel.app/api/screenshot?url=https://github.com" \
-H "X-API-Key: YOUR_KEY" \
--output github.png
No Puppeteer to install. No Chrome binary to manage. No headless browser configuration. Just a URL in, image out.
Use cases: link previews, social cards, visual regression testing, archiving web pages.
// Generate social preview card for any URL
async function getPreview(url) {
const res = await fetch(
`https://agent-gateway-kappa.vercel.app/api/screenshot?url=${encodeURIComponent(url)}`,
{ headers: { "X-API-Key": API_KEY } }
);
const blob = await res.blob();
return URL.createObjectURL(blob);
}
4. DNS Lookup API
Resolve any domain — get A, MX, TXT, NS, CNAME records without installing dig.
curl "https://agent-gateway-kappa.vercel.app/api/dns/lookup?domain=google.com&type=MX" \
-H "X-API-Key: YOUR_KEY"
{
"domain": "google.com",
"type": "MX",
"records": [
{ "priority": 10, "exchange": "smtp.google.com" },
{ "priority": 20, "exchange": "smtp2.google.com" }
]
}
Use cases: email validation (check MX records), domain monitoring, SPF/DKIM verification, network diagnostics.
import requests
def validate_email_domain(email):
domain = email.split("@")[1]
res = requests.get(
f"https://agent-gateway-kappa.vercel.app/api/dns/lookup?domain={domain}&type=MX",
headers={"X-API-Key": API_KEY}
)
records = res.json().get("records", [])
return len(records) > 0 # Has mail servers = probably real
validate_email_domain("user@gmail.com") # True
validate_email_domain("user@fakexyz.com") # False
5. Code Runner API
Execute Python, JavaScript, TypeScript, or Bash in a sandboxed environment. Send code, get output.
curl -X POST "https://agent-gateway-kappa.vercel.app/api/code/run" \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"language": "python",
"code": "import math\nprint(f\"Pi to 10 decimal places: {math.pi:.10f}\")"
}'
{
"output": "Pi to 10 decimal places: 3.1415926536\n",
"exitCode": 0,
"executionTime": "0.045s"
}
Use cases: online code playgrounds, automated grading systems, chatbot code execution, CI/CD script testing.
// Build a "Run Code" button for your docs
async function runSnippet(code, language = "javascript") {
const res = await fetch("https://agent-gateway-kappa.vercel.app/api/code/run", {
method: "POST",
headers: {
"X-API-Key": API_KEY,
"Content-Type": "application/json"
},
body: JSON.stringify({ language, code })
});
const { output, exitCode } = await res.json();
return { output, success: exitCode === 0 };
}
Getting a Free API Key
One call. No email. No signup form.
curl -X POST "https://agent-gateway-kappa.vercel.app/api/keys/create"
{
"key": "ag_xxxxxxxxxxxx",
"credits": 200,
"message": "Store this key - it cannot be recovered"
}
You get 200 free credits. Each API call costs 1 credit. That's 200 requests across any combination of these APIs.
All five APIs go through a single gateway with one API key — no juggling multiple accounts.
Full docs: API Catalog
What APIs are you using for your side projects? Drop them in the comments — always looking for new tools.
Top comments (0)