DEV Community

Ozor
Ozor

Posted on

One SDK, 40 APIs: Stop Juggling API Keys

Most projects need multiple APIs. IP geolocation from one provider, crypto prices from another, screenshots from a third. Each one needs its own account, API key, SDK, and rate limit management.

I built a single SDK that wraps 40+ APIs behind one key. Here's how it works.

The Problem

A typical backend might need:

// The old way: 5 providers, 5 keys, 5 SDKs
import MaxMind from '@maxmind/geoip2-node';
import CoinGecko from 'coingecko-api';
import puppeteer from 'puppeteer';
import { Resolver } from 'dns/promises';
import Cheerio from 'cheerio';
Enter fullscreen mode Exit fullscreen mode

That's 5 accounts, 5 API keys, 5 rate limit strategies, and 5 different error formats to handle.

One SDK Instead

import { Frostbyte } from 'frostbyte-api';

// One key, all services
const fb = new Frostbyte('gw_your_key');

const geo = await fb.geo.lookup('8.8.8.8');
const btc = await fb.crypto.price('BTC');
const dns = await fb.dns.resolve('github.com');
const page = await fb.scraper.scrape('https://example.com');
Enter fullscreen mode Exit fullscreen mode

Getting Started

1. Get a Free API Key

No signup form. No email verification. Just one curl:

curl -X POST https://agent-gateway-kappa.vercel.app/api/keys/create
Enter fullscreen mode Exit fullscreen mode

Response:

{
  "key": "gw_abc123...",
  "credits": 200,
  "expires_in": "30 days"
}
Enter fullscreen mode Exit fullscreen mode

200 free credits = 200 API calls across any service.

2. Install the SDK

JavaScript (Node 18+, Bun, or Deno):

npm install github:OzorOwn/frostbyte-api
Enter fullscreen mode Exit fullscreen mode

Python (3.7+, zero dependencies):

pip install git+https://github.com/OzorOwn/frostbyte-api.git
Enter fullscreen mode Exit fullscreen mode

3. Use It

import { Frostbyte } from 'frostbyte-api';

const fb = new Frostbyte('gw_your_key');
Enter fullscreen mode Exit fullscreen mode

That's it. Every service is now available as a method.

What You Can Do

IP Geolocation

const geo = await fb.geo.lookup('203.0.113.50');
console.log(geo);
// { ip: '203.0.113.50', country: 'AU', city: 'Sydney',
//   lat: -33.8688, lon: 151.2093, timezone: 'Australia/Sydney' }
Enter fullscreen mode Exit fullscreen mode

Live Crypto Prices

const btc = await fb.crypto.price('BTC');
console.log(`Bitcoin: $${btc.price.toLocaleString()}`);
// Bitcoin: $97,432

// Or get multiple at once
const prices = await fb.crypto.prices();
// Returns 500+ tokens with price, 24h change, market cap
Enter fullscreen mode Exit fullscreen mode

Website Screenshots

const png = await fb.screenshot.capture('https://github.com', {
  width: 1280,
  height: 720,
  format: 'png'
});
// Returns a PNG buffer — save it, send it, whatever
require('fs').writeFileSync('github.png', png);
Enter fullscreen mode Exit fullscreen mode

Web Scraping

const page = await fb.scraper.scrape('https://news.ycombinator.com');
console.log(page.title);  // 'Hacker News'
console.log(page.links);  // Array of all links on the page
Enter fullscreen mode Exit fullscreen mode

DNS Lookup

const dns = await fb.dns.resolve('example.com', 'MX');
console.log(dns.records);
// [{ priority: 10, value: 'mail.example.com' }]
Enter fullscreen mode Exit fullscreen mode

HD Wallet Generation

const wallet = await fb.wallet.create('ethereum');
console.log(wallet);
// { address: '0x...', privateKey: '0x...', mnemonic: '...' }
// Supports: ethereum, bitcoin, solana, polygon, + 5 more chains
Enter fullscreen mode Exit fullscreen mode

Python Works the Same Way

from frostbyte import Frostbyte

fb = Frostbyte('gw_your_key')

# Geolocation
geo = fb.geo.lookup('8.8.8.8')
print(f"{geo['city']}, {geo['country']}")

# Crypto
btc = fb.crypto.price('BTC')
print(f"BTC: ${btc['price']:,.2f}")

# DNS
dns = fb.dns.resolve('github.com')
for record in dns['records']:
    print(record)
Enter fullscreen mode Exit fullscreen mode

Full Service List

The SDK wraps 14 service categories:

Category What it does Example
geo IP geolocation fb.geo.lookup('1.1.1.1')
crypto Live token prices fb.crypto.price('ETH')
dns DNS record lookup fb.dns.resolve('example.com')
screenshot Website screenshots fb.screenshot.capture(url)
scraper Web page scraping fb.scraper.scrape(url)
wallet HD wallet generation fb.wallet.create('solana')
code Code execution sandbox fb.code.run('python', code)
pdf HTML to PDF conversion fb.pdf.generate(html)
shorturl URL shortener fb.shorturl.create(url)
search Web search fb.search.query('nodejs')
paste Pastebin fb.paste.create(text)
email Email for agents fb.email.createInbox()
transform Text/data transforms fb.transform.markdown(html)
image Image processing fb.image.resize(buffer, opts)

Plus 26 more services accessible via the raw API: fair games, webhooks, task queues, secret storage, event bus, scheduling, and more.

AI Agent Use Case

If you're building AI agents (LangChain, AutoGPT, Claude tools), this SDK gives your agent instant access to real-world capabilities:

import { Frostbyte } from 'frostbyte-api';

const fb = new Frostbyte('gw_your_key');

// Agent tool: "research a company"
async function researchCompany(domain) {
  const [dns, geo, page] = await Promise.all([
    fb.dns.resolve(domain),
    fb.geo.lookup(domain),
    fb.scraper.scrape(`https://${domain}`),
  ]);

  return {
    title: page.title,
    description: page.meta?.description,
    hosting: { ip: geo.ip, country: geo.country, city: geo.city },
    nameservers: dns.records,
  };
}

const info = await researchCompany('stripe.com');
console.log(info);
Enter fullscreen mode Exit fullscreen mode

Three parallel API calls, one SDK, one key.

Pricing

  • Free tier: 200 credits (200 API calls), no signup
  • Paid: $1 USDC = 500 credits ($0.002 per call)
  • No minimum purchase — even $0.01 works

Links

The SDK is MIT licensed, zero dependencies, and works in Node.js 18+, Bun, Deno, and browsers.

Top comments (0)