OzorI got tired of managing dozens of API keys across different services. So I built an API gateway that...
I got tired of managing dozens of API keys across different services. So I built an API gateway that wraps 39 services behind a single key.
No signups. No credit cards. No OAuth flows. You create a key with one POST request and start calling APIs immediately.
Here's what's available and how to use it.
curl -X POST https://agent-gateway-kappa.vercel.app/api/keys/create
Response:
{
"key": "gw_abc123...",
"credits": 200,
"expires_in": "30 days",
"note": "200 free credits (expires in 30 days). Top up with USDC on Base to get more."
}
That's it. 200 free API calls, no email required.
Every service lives under /v1/{service-name}/. Here are the ones I use most:
curl "https://agent-gateway-kappa.vercel.app/v1/agent-geo/geo/8.8.8.8" \
-H "Authorization: Bearer YOUR_KEY"
Returns country, city, ISP, timezone, lat/lng. Works with any IP.
curl "https://agent-gateway-kappa.vercel.app/v1/defi-trading/prices" \
-H "Authorization: Bearer YOUR_KEY"
Real-time prices for BTC, ETH, SOL, and 500+ tokens from multiple DEXes.
curl -X POST "https://agent-gateway-kappa.vercel.app/v1/agent-screenshot/screenshot" \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "viewport": "desktop"}'
Renders any URL in a real browser and returns a screenshot. Supports desktop, tablet, and mobile viewports.
curl "https://agent-gateway-kappa.vercel.app/v1/agent-dns/resolve/google.com" \
-H "Authorization: Bearer YOUR_KEY"
A, AAAA, MX, TXT, NS records — everything you need.
curl -X POST "https://agent-gateway-kappa.vercel.app/v1/agent-coderunner/execute" \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"language": "python", "code": "print(sum(range(100)))"}'
Sandboxed execution for Python, JavaScript, and more. Great for AI agents that need to run code.
curl -X POST "https://agent-gateway-kappa.vercel.app/v1/agent-scraper/scrape" \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://news.ycombinator.com", "format": "markdown"}'
Extracts content from any webpage. Returns clean markdown, HTML, or JSON.
curl -X POST "https://agent-gateway-kappa.vercel.app/v1/agent-pdfgen/generate" \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"html": "<h1>Invoice #001</h1><p>Total: $100</p>"}'
Render HTML to PDF. Works with CSS, images, and full page layouts.
curl -X POST "https://agent-gateway-kappa.vercel.app/v1/agent-shorturl/shorten" \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/very/long/url"}'
The full list: crypto wallets (9 chains), on-chain analytics, DeFi data, smart contract deployment, secret management, event bus, file storage, webhook testing, image processing, email sending, task scheduling, AI/LLM proxy, text transformation, identity verification, and more.
Browse all 39: API Catalog
Check your balance anytime:
curl "https://agent-gateway-kappa.vercel.app/api/keys/balance" \
-H "Authorization: Bearer YOUR_KEY"
Here's a minimal Python agent that can answer questions using web scraping and code execution:
import requests
API = "https://agent-gateway-kappa.vercel.app"
KEY = "gw_your_key_here"
headers = {"Authorization": f"Bearer {KEY}"}
def scrape(url):
"""Fetch and extract content from any URL"""
r = requests.post(f"{API}/v1/agent-scraper/scrape",
headers=headers,
json={"url": url, "format": "markdown"})
return r.json()
def run_code(code, lang="python"):
"""Execute code in a sandbox"""
r = requests.post(f"{API}/v1/agent-coderunner/execute",
headers=headers,
json={"language": lang, "code": code})
return r.json()
def get_price(token):
"""Get live crypto price"""
r = requests.get(f"{API}/v1/defi-trading/price/{token}",
headers=headers)
return r.json()
# Example: scrape HN, then analyze with code
hn = scrape("https://news.ycombinator.com")
analysis = run_code(f"""
data = '''{hn.get('content', '')[:2000]}'''
lines = [l for l in data.split('\\n') if l.strip()]
print(f'Found {len(lines)} content lines')
print('First 5 items:')
for line in lines[:5]:
print(f' - {line[:80]}')
""")
print(analysis)
The gateway is a Fastify server that proxies requests to 39 microservices running on the same machine. Each service has its own port, its own logic, and its own health check. The gateway handles:
All services are independently deployable. If one goes down, the other 38 keep working.
If you try it out, I'd love to hear which services are most useful to you. Happy to take feature requests too.