DEV Community

Ozor
Ozor

Posted on

Give Your AI Agent Real Tools — 40 APIs Behind One Key

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

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

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

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

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

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)