DEV Community

Ozor
Ozor

Posted on

I Replaced 5 Paid APIs with Free Alternatives — Here's the Code

Most developer API services hook you with a free tier, then charge $50-200/month once you're locked in. I went looking for genuinely free alternatives — and found them.

Here are 5 paid APIs I replaced with free alternatives, with working code for each migration.

1. IP Geolocation: ipinfo.io ($99/mo) → Frostbyte Geo (free)

ipinfo.io charges $99/month for 150K lookups. For most projects, you don't need that volume.

Before (ipinfo.io):

const res = await fetch('https://ipinfo.io/8.8.8.8?token=YOUR_TOKEN');
const data = await res.json();
// { ip, city, region, country, loc, org, postal, timezone }
Enter fullscreen mode Exit fullscreen mode

After (free):

const res = await fetch('https://agent-gateway-kappa.vercel.app/api/geo/8.8.8.8', {
  headers: { 'X-API-Key': 'YOUR_FREE_KEY' }
});
const data = await res.json();
// { ip, city, region, country, latitude, longitude, timezone, isp, org }
Enter fullscreen mode Exit fullscreen mode

What you get for free: 200 API credits, same data fields (city, region, country, coordinates, ISP, timezone). No credit card required.

# Get a free key in one command
curl -X POST https://agent-gateway-kappa.vercel.app/api/keys/create
Enter fullscreen mode Exit fullscreen mode

2. Website Screenshots: ScreenshotAPI ($29/mo) → Frostbyte Screenshots (free)

Paid screenshot APIs charge $29-79/month for what's essentially a headless browser behind an endpoint.

Before (ScreenshotAPI):

const url = `https://shot.screenshotapi.net/screenshot?token=TOKEN&url=https://example.com&width=1280&height=720&output=image`;
Enter fullscreen mode Exit fullscreen mode

After (free):

const res = await fetch('https://agent-gateway-kappa.vercel.app/api/screenshot', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'YOUR_FREE_KEY'
  },
  body: JSON.stringify({
    url: 'https://example.com',
    width: 1280,
    height: 720,
    format: 'png'
  })
});
const { screenshot } = await res.json(); // base64 image
Enter fullscreen mode Exit fullscreen mode

What you get: Full-page screenshots, custom viewport sizes, PNG/JPEG output, mobile emulation. Same features, no monthly bill.


3. DNS Lookups: SecurityTrails ($50/mo) → Frostbyte DNS (free)

SecurityTrails is great for deep DNS intelligence, but if you just need to resolve records programmatically:

Before (SecurityTrails):

const res = await fetch('https://api.securitytrails.com/v1/domain/example.com', {
  headers: { 'APIKEY': 'YOUR_KEY' }
});
Enter fullscreen mode Exit fullscreen mode

After (free):

const res = await fetch(
  'https://agent-gateway-kappa.vercel.app/api/resolve/example.com?type=A',
  { headers: { 'X-API-Key': 'YOUR_FREE_KEY' } }
);
const data = await res.json();
// { records: [{ type: "A", value: "93.184.216.34", ttl: 3600 }] }
Enter fullscreen mode Exit fullscreen mode

Supported record types: A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, SRV. Query any record type with a single parameter.


4. Web Scraping: ScrapingBee ($49/mo) → Frostbyte Scraper (free)

ScrapingBee charges per-request after the free tier. For basic content extraction, you don't need a $49/month subscription:

Before (ScrapingBee):

const res = await fetch(
  `https://app.scrapingbee.com/api/v1/?api_key=KEY&url=https://example.com`
);
Enter fullscreen mode Exit fullscreen mode

After (free):

const res = await fetch('https://agent-gateway-kappa.vercel.app/api/scrape', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'YOUR_FREE_KEY'
  },
  body: JSON.stringify({
    url: 'https://example.com',
    selectors: { title: 'h1', content: 'article' }
  })
});
const { data } = await res.json();
Enter fullscreen mode Exit fullscreen mode

What you get: HTML extraction, CSS selector support, metadata parsing, text content extraction. Handles JavaScript-rendered pages.


5. Crypto Prices: CoinGecko Pro ($129/mo) → Frostbyte Crypto (free)

CoinGecko's free tier has aggressive rate limiting (30 calls/min). Their Pro tier starts at $129/month.

Before (CoinGecko):

const res = await fetch(
  'https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum&vs_currencies=usd'
);
Enter fullscreen mode Exit fullscreen mode

After (free):

const res = await fetch(
  'https://agent-gateway-kappa.vercel.app/api/prices?symbols=BTC,ETH,SOL',
  { headers: { 'X-API-Key': 'YOUR_FREE_KEY' } }
);
const data = await res.json();
// [{ symbol: "BTC", price: 97234.56, change24h: 2.3 }, ...]
Enter fullscreen mode Exit fullscreen mode

What you get: Real-time prices for major cryptocurrencies, 24h change data, no aggressive rate limiting on the free tier.


The Migration Script

Here's a complete script that demonstrates all 5 APIs working together:

const API_BASE = 'https://agent-gateway-kappa.vercel.app';

// Step 1: Get your free API key
const keyRes = await fetch(`${API_BASE}/api/keys/create`, { method: 'POST' });
const { key } = await keyRes.json();
console.log('Your API key:', key);

const headers = { 'X-API-Key': key, 'Content-Type': 'application/json' };

// Step 2: Look up an IP
const geo = await fetch(`${API_BASE}/api/geo/8.8.8.8`, { headers }).then(r => r.json());
console.log(`IP Location: ${geo.city}, ${geo.country}`);

// Step 3: Resolve DNS
const dns = await fetch(`${API_BASE}/api/resolve/github.com?type=A`, { headers }).then(r => r.json());
console.log(`DNS Records:`, dns.records);

// Step 4: Get crypto prices
const prices = await fetch(`${API_BASE}/api/prices?symbols=BTC,ETH`, { headers }).then(r => r.json());
console.log(`BTC: $${prices[0]?.price}`);

// Step 5: Scrape a page
const scrape = await fetch(`${API_BASE}/api/scrape`, {
  method: 'POST', headers,
  body: JSON.stringify({ url: 'https://example.com' })
}).then(r => r.json());
console.log(`Page title: ${scrape.data?.title}`);

// Step 6: Take a screenshot
const shot = await fetch(`${API_BASE}/api/screenshot`, {
  method: 'POST', headers,
  body: JSON.stringify({ url: 'https://example.com', width: 1280, height: 720 })
}).then(r => r.json());
console.log(`Screenshot: ${shot.screenshot?.substring(0, 50)}...`);
Enter fullscreen mode Exit fullscreen mode

Cost Comparison

Service Paid Alternative Monthly Cost Free Alternative
IP Geolocation ipinfo.io $99/mo ✅ Free (200 credits)
Screenshots ScreenshotAPI $29/mo ✅ Free (200 credits)
DNS Lookups SecurityTrails $50/mo ✅ Free (200 credits)
Web Scraping ScrapingBee $49/mo ✅ Free (200 credits)
Crypto Prices CoinGecko Pro $129/mo ✅ Free (200 credits)
Total $356/mo $0

When to Use Paid vs Free

Be honest — the paid services are more mature. Use them when you need:

  • Enterprise SLAs and guaranteed uptime
  • Massive volume (millions of requests/month)
  • Advanced features like historical data, bulk lookups, or compliance certifications

Use the free alternatives when:

  • You're prototyping or building MVPs
  • You're a solo developer or small team
  • You need occasional lookups, not high-volume production
  • You want to test an idea before committing to a paid service

Get Started

All 5 APIs are available through a single gateway with one API key:

# Create your free key (no signup, no email, no credit card)
curl -X POST https://agent-gateway-kappa.vercel.app/api/keys/create

# Full docs
# https://api-catalog-three.vercel.app/docs
Enter fullscreen mode Exit fullscreen mode

200 free credits. No strings attached. No "free trial" that auto-charges you.


What paid APIs have you replaced with free alternatives? Drop your recommendations in the comments.

Top comments (0)