Introduction

GroundRoute is one search API across every major engine — Serper, Brave, Exa, Tavily, Perplexity, and Firecrawl. You call a single endpoint; GroundRoute picks the cheapest engine that meets the query's quality and latency bar, caches what is safe to reuse, and records the cost, routing decision, and cache outcome for every call.

What it does

  • One integration, six engines. Send a query to POST /v1/search and get back ranked results, an optional synthesized answer, and citations — in one normalized shape, regardless of which engine served it.
  • Price-led routing. Each query is classified (web, news, academic, answer, page) and routed to the cheapest eligible engine for that class. If the first engine fails, GroundRoute fails over automatically.
  • Caching. Results are cached per-tenant (exact and semantic) and, where safe, in a cross-customer pooled cache. A cache hit costs you nothing from the engine.
  • Governance built in. Every call is metered with its cost, engine, cache tier, and key source. Spend caps, per-tier rate limits, and a full audit trail come standard.
  • Gain-share pricing. You pay nothing on a cache miss (your engine cost, or pass-through for managed). On a cache hit you pay 50% of what the cache saved you — so you are never charged more than going direct. See Pricing.

Who it's for

  • AI agents and coding tools that need reliable web search as a tool — drop in over MCP or an OpenAI/Tavily-compatible shim.
  • Application developers who want one search dependency instead of six engine integrations, with failover and cost visibility.
  • Teams that need to see, cap, and audit what their agents search and what it costs.

How requests are served

client → POST /v1/search → auth → rate-limit → cache lookup
                                         │
                              hit ───────┘ (return cached, $ avoided)
                              miss → classify → route to cheapest engine
                                         │
                              engine fails → failover → engine
                                         │
                              return results + routing_meta + cache_meta + usage_meta

Base URLs

SurfaceURL
REST APIhttps://api.groundroute.ai
MCP serverhttps://api.groundroute.ai/mcp
Console / websitehttps://groundroute.ai

API keys look like gr_live_… and are sent as a Bearer token on every request.

Next steps