One API for every agent tool.
Routed to the cheapest, fastest, or best.

OpenRouter for the tool layer. Web search, scraping, document parsing, image generation, and code sandboxes behind a single endpoint — routed across providers with automatic failover.

# Same request. You pick the dimension; we pick the provider.
curl https://api.route.tools/v1/tools/search \
  -H "Authorization: Bearer rt_live_..." \
  -d '{
    "query": "cloudflare durable objects pricing",
    "routing": { "sort": "price" }   # or "latency" or "quality"
  }'

Why a tool router?

Stop overpaying for commodity calls

Search APIs vary 30× in price for near-identical results. Send each call to the cheapest provider that meets the bar — automatically.

Failover built in

Scraper blocked? Provider down? Rate-limited? The call retries through the next provider before your agent ever notices. No more single-vendor risk.

One key, one schema, one bill

Normalized request/response per category. Prepaid credits across every provider. Swap providers without touching your code.

Tools & pricing

CategoryPrice rangePerProviders
Web search $1.20 – $8.40 1k searches Serper · Brave Search · You.com · Exa
Web scrape $0.36 – $1.92 1k pages Jina Reader · Spider · Firecrawl · Browserbase Fetch
Doc parsing $1.50 – $2.40 1k pages Mistral OCR · LlamaParse · Reducto
Image gen $0.03 – $0.06 image fal.ai · Replicate · OpenAI Images
Code sandbox $0.0000 – $0.0000 vCPU-second E2B · Daytona · Modal

Pay only for what you use. Prepaid credits, $2 free on signup.

Two lines to integrate

# npm install route-tools
import { RouteTools } from 'route-tools';

const rt = new RouteTools({ apiKey: process.env.ROUTE_TOOLS_API_KEY });
const { result, provider, usage } = await rt.search({
  query: 'best vector databases 2026',
  routing: { sort: 'price' },
});

Works everywhere MCP does

# Add the routed toolset to any MCP client (Claude, Cursor, ...)
{
  "mcpServers": {
    "route-tools": {
      "url": "https://api.route.tools/mcp",
      "headers": { "Authorization": "Bearer rt_live_..." }
    }
  }
}