No API keys. No accounts. No signup. AI agents pay per request with USDC on Base. 35+ production services from $0.001/request.
Four steps. No accounts. No OAuth. Just HTTP.
Hit any /v1/{service}/* endpoint. First 50 requests/day are free per IP.
When free tier is exhausted, the response includes exactly what to pay, where, and how much.
Agent sends the exact amount (or more) to the recipient address. Standard ERC-20 transfer.
Same request, add X-Payment header. Gateway verifies on-chain and proxies to the service.
Pay exactly what you use. No minimums. No subscriptions. No hidden fees.
| Service | Description | Price/req |
|---|
The internet's unused status code, finally put to work.
No signup flows. No OAuth tokens. No API key management. Your agent just pays and gets compute. The protocol IS the auth.
Pay $0.001 per request. No monthly minimums, no tiers, no enterprise sales calls. Perfect for autonomous agents with dynamic workloads.
Send more USDC than needed? The excess auto-converts to API credits (500 per $1 USDC). A bonus API key is returned in the response header.
Every payment is verified on Base mainnet via RPC. Transfer event logs are parsed. Replay attacks are blocked. Trustless by design.
Built for AI agents, not humans. agent.json for discovery, llms.txt for capabilities, OpenAPI specs on every endpoint. Agents can find and use services autonomously.
Works alongside API keys and free tier. Three auth methods coexist: IP free tier, API key credits, and 402 direct payment. Use whatever fits.
See the 402 flow in action. This hits the real production API.
Add 402 payment support to any agent. Python, Node, or raw curl.
# pip install requests eth-account web3 import requests from web3 import Web3 BASE = "https://agent-gateway-kappa.vercel.app" # Your agent's Base wallet w3 = Web3(Web3.HTTPProvider("https://mainnet.base.org")) def call_api(path): # Step 1: Try the request r = requests.get(f"{BASE}{path}") if r.status_code != 402: return r.json() # Free tier or already paid # Step 2: Parse payment requirements pay = r.json()["payment_required"] # Step 3: Send USDC on Base (your wallet logic here) tx_hash = send_usdc(pay["recipient"], pay["amount"]) # Step 4: Retry with payment proof r2 = requests.get(f"{BASE}{path}", headers={"X-Payment": tx_hash}) return r2.json() # Use it data = call_api("/v1/agent-geo/geo/8.8.8.8") print(data) # {"ip":"8.8.8.8","country":"US",...}
# Step 1: Make a request (free tier: 50/day) curl https://agent-gateway-kappa.vercel.app/v1/agent-geo/geo/8.8.8.8 # Step 2: When you get 402, send USDC to the recipient address # Step 3: Retry with your tx hash curl https://agent-gateway-kappa.vercel.app/v1/agent-geo/geo/8.8.8.8 \ -H "X-Payment: 0xYOUR_TX_HASH"
Agents can discover and use all services programmatically.
agent.jsonStandard agent manifest at /.well-known/agent.json with capabilities, pricing, and endpoints.
llms.txtLLM-readable service documentation. Every endpoint, every parameter, in plain text.
View llms.txt50 free requests per day. No key needed. When you need more, pay with credit card or USDC.