DEV Community

Ozor
Ozor

Posted on

5 Free APIs Every Developer Should Bookmark in 2026

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"
Enter fullscreen mode Exit fullscreen mode
{
  "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"
}
Enter fullscreen mode Exit fullscreen mode

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
}
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode
{
  "BTC": { "usd": 94521.00, "change_24h": 2.1 },
  "ETH": { "usd": 2547.30, "change_24h": -0.8 },
  "SOL": { "usd": 178.45, "change_24h": 5.2 }
}
Enter fullscreen mode Exit fullscreen mode

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?")
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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);
}
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode
{
  "domain": "google.com",
  "type": "MX",
  "records": [
    { "priority": 10, "exchange": "smtp.google.com" },
    { "priority": 20, "exchange": "smtp2.google.com" }
  ]
}
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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}\")"
  }'
Enter fullscreen mode Exit fullscreen mode
{
  "output": "Pi to 10 decimal places: 3.1415926536\n",
  "exitCode": 0,
  "executionTime": "0.045s"
}
Enter fullscreen mode Exit fullscreen mode

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 };
}
Enter fullscreen mode Exit fullscreen mode

Getting a Free API Key

One call. No email. No signup form.

curl -X POST "https://agent-gateway-kappa.vercel.app/api/keys/create"
Enter fullscreen mode Exit fullscreen mode
{
  "key": "ag_xxxxxxxxxxxx",
  "credits": 200,
  "message": "Store this key - it cannot be recovered"
}
Enter fullscreen mode Exit fullscreen mode

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)