Your AI agent can write poetry and explain quantum physics. But can it take a screenshot? Check a crypto price? Run a Python script? Look up a DNS record?
Probably not. Because connecting an LLM to real-world tools is annoying:
- Find 10 different APIs
- Sign up for 10 different accounts
- Manage 10 different API keys
- Handle 10 different rate limits and auth schemes
What if you could give your agent 40 real tools with one API call?
One API Key, 40+ Tools
curl -X POST https://agent-gateway-kappa.vercel.app/api/keys/create
That returns an API key with 200 free credits. No email, no signup form, no credit card. Now your agent can:
import requests
API_KEY = "gw_your_key_here"
BASE = "https://agent-gateway-kappa.vercel.app/v1"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
# Take a screenshot of any website
r = requests.post(f"{BASE}/agent-screenshot/api/screenshot",
headers=HEADERS,
json={"url": "https://news.ycombinator.com", "viewport": "desktop"})
screenshot_url = r.json()["url"]
# Look up an IP address
r = requests.get(f"{BASE}/agent-geo/api/geo/8.8.8.8", headers=HEADERS)
location = r.json() # country, city, timezone, coordinates
# Check crypto prices
r = requests.get(f"{BASE}/crypto-feeds/api/price/BTC", headers=HEADERS)
btc_price = r.json()["price"]
# Execute Python code in a sandbox
r = requests.post(f"{BASE}/agent-coderunner/api/execute",
headers=HEADERS,
json={"language": "python", "code": "print(2**256)"})
output = r.json()["output"]
# Scrape a webpage to markdown
r = requests.post(f"{BASE}/agent-scraper/api/scrape",
headers=HEADERS,
json={"url": "https://example.com", "format": "markdown"})
content = r.json()["content"]
Five different capabilities. One API key. One base URL. Same auth header everywhere.
The Full Tool List
Here's what your agent gets access to:
Data & Research
- IP Geolocation — country, city, timezone, ISP for any IP
- Web Scraper — extract content as markdown, HTML, or plain text
- Web Search — DuckDuckGo-powered search results
- Crypto Price Feeds — 500+ tickers from Binance, real-time
- DNS Lookup — resolve records, WHOIS, domain availability
- On-Chain Analytics — trending tokens, gas prices, wallet data
Actions
- Screenshot — render any URL to PNG (desktop/mobile/tablet)
- Code Runner — execute Python, JavaScript, TypeScript, Bash
- PDF Generator — HTML/Markdown to PDF
- Email Sender — send emails with templates
- URL Shortener — create tracked short links
- QR Code Generator — generate QR codes from text
Infrastructure
- File Storage — upload/download with expiring links
- Task Queue — submit and process background jobs
- Scheduler — cron jobs and one-time tasks
- Event Bus — pub/sub messaging
- Webhook Relay — receive, inspect, and forward webhooks
- Key-Value Store — persist data between agent runs
- Vector Store — semantic search over documents
- Log Drain — centralized logging
Blockchain
- Multi-Chain Wallet — 9 blockchains, balance checks, swaps
- Contract Deployer — deploy Solidity contracts
- Token Launchpad — create ERC-20 tokens
- DeFi Trading — 275+ perpetual futures markets
Building a Simple AI Agent
Here's a minimal agent that uses tools based on natural language:
import requests
import json
API_KEY = "gw_your_key_here"
BASE = "https://agent-gateway-kappa.vercel.app/v1"
H = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
def tool_screenshot(url):
r = requests.post(f"{BASE}/agent-screenshot/api/screenshot",
headers=H, json={"url": url})
return r.json().get("url", "Failed")
def tool_geoip(ip):
r = requests.get(f"{BASE}/agent-geo/api/geo/{ip}", headers=H)
d = r.json()
return f"{d.get('city','?')}, {d.get('country','?')} ({d.get('timezone','?')})"
def tool_crypto_price(symbol):
r = requests.get(f"{BASE}/crypto-feeds/api/price/{symbol}", headers=H)
return f"${r.json().get('price', '?')}"
def tool_dns(domain):
r = requests.get(f"{BASE}/agent-dns/api/resolve/{domain}", headers=H)
return json.dumps(r.json().get("answers", []), indent=2)
def tool_scrape(url):
r = requests.post(f"{BASE}/agent-scraper/api/scrape",
headers=H, json={"url": url, "format": "markdown"})
return r.json().get("content", "Failed")[:2000]
# Map tool names to functions
TOOLS = {
"screenshot": tool_screenshot,
"geoip": tool_geoip,
"crypto": tool_crypto_price,
"dns": tool_dns,
"scrape": tool_scrape,
}
# Simple dispatcher
def run_tool(name, arg):
if name in TOOLS:
return TOOLS[name](arg)
return f"Unknown tool: {name}"
# Example: an agent loop
tasks = [
("screenshot", "https://news.ycombinator.com"),
("geoip", "8.8.8.8"),
("crypto", "ETH"),
("dns", "github.com"),
]
for tool_name, arg in tasks:
result = run_tool(tool_name, arg)
print(f"[{tool_name}] {arg} → {result}")
What It Costs
- 200 free credits on signup (1 credit = 1 API call)
- No expiration pressure — use them whenever
- Need more? $1 USDC = 500 additional credits
- Pay with USDC on Base or XMR — no credit card needed
Check your balance anytime:
curl -H "Authorization: Bearer YOUR_KEY" \
https://agent-gateway-kappa.vercel.app/api/keys/balance
Try It Now
Get your key and start building:
# 1. Get your API key
curl -s -X POST https://agent-gateway-kappa.vercel.app/api/keys/create | python3 -m json.tool
# 2. Take a screenshot (replace YOUR_KEY)
curl -s -X POST https://agent-gateway-kappa.vercel.app/v1/agent-screenshot/api/screenshot \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}' | python3 -m json.tool
# 3. Check your remaining credits
curl -s -H "Authorization: Bearer YOUR_KEY" \
https://agent-gateway-kappa.vercel.app/api/keys/balance | python3 -m json.tool
Every response includes X-Credits-Remaining in the headers so your agent always knows how many calls it has left.
Full API docs + Postman collection: api-catalog-three.vercel.app
Starter templates (Python + Node.js): github.com/OzorOwn/ai-agent-starter
Top comments (0)