Developer & Agent API
Programmatically route to the cheapest operational LLM, read exclusive per-model price history, check provider status, and subscribe to price-cut alerts โ over MCP, plain HTTP, or pay-per-call x402.
Three ways to call
| Surface | Auth | Best for |
|---|---|---|
| x402 (pay-per-call) | None โ USDC on Base | Autonomous agents; no signup |
MCP /mcp | Optional key; x402 for premium | LLM tool-use clients |
HTTP /v1/* | x-api-key (free tier keyless) | Servers & scripts |
MCP tools
| Tool | Tier | Does |
|---|---|---|
cheapest_model | x402 $0.01 (free preview) | Ranked cheapest models meeting a task/context constraint, with live blended cost + status. |
price_history | x402 $0.01 (free preview) | Full dated $/M-token time-series for a model โ the moat. |
status | free | Operational status for one/all providers. |
price_change_alerts | free | Subscribe a webhook to price changes, or read recent changes. |
HTTP examples
# Cheapest operational model with โฅ128K context
curl "https://aiapi.dropwatchhq.com/v1/cheapest?min_context=128000&operational_only=true"
# Provider status hub
curl "https://aiapi.dropwatchhq.com/v1/status"
# Full current board (all providers, all models)
curl "https://aiapi.dropwatchhq.com/v1/board"
# Mint a free self-serve key
curl -X POST "https://aiapi.dropwatchhq.com/v1/signup" -d '{"email":"you@co.com"}'
# Price history (paid tier or x402; free tier returns current only)
curl "https://aiapi.dropwatchhq.com/v1/price_history?model=anthropic--claude-opus-4-8" -H "x-api-key: aik_..."
# Subscribe to price-cut alerts (paid tier)
curl -X POST "https://aiapi.dropwatchhq.com/v1/alerts" -H "x-api-key: aik_..." \
-d '{"webhook":"https://you.dev/hook","direction":"cut"}'
MCP example (cheapest_model)
POST https://aiapi.dropwatchhq.com/mcp
{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"cheapest_model","arguments":{"min_context":200000,"operational_only":true}}}
# -> free preview + x402 challenge; resend with X-PAYMENT header to unlock full ranking.
Agent routing pattern: on each request, call
cheapest_model(min_context, operational_only=true), take ranked[0], and dispatch to that provider. Re-poll periodically (or subscribe to price_change_alerts) to follow the price war automatically.