Integrations
Swap your existing web-search or retriever dependency to GroundRoute, usually with a one-line change. Every integration targets POST /v1/search (or the /v1/search/compat drop-in) and authenticates with Authorization: Bearer $GROUNDROUTE_API_KEY.
export GROUNDROUTE_API_KEY=gr_live_...
export GROUNDROUTE_BASE_URL=https://api.groundroute.ai
MCP
The hosted MCP server lets any MCP client use search as a native tool. Point it at https://api.groundroute.ai/mcp with your Bearer key:
{
"mcpServers": {
"groundroute": {
"type": "http",
"url": "https://api.groundroute.ai/mcp",
"headers": { "Authorization": "Bearer gr_live_YOUR_KEY" }
}
}
}
Full reference: MCP server.
OpenAI / Tavily-compatible shim
Already calling Tavily, Exa, or an OpenAI-style web-search tool? Point the base URL at GroundRoute's compatibility endpoint POST /v1/search/compat. It accepts common SDK body shapes and returns a Tavily/OpenAI-style body — change only the URL and key, not your request structure.
It maps common fields to the native request:
query/q/search_query/input→querymax_results/num_results/count/k→max_results(clamped ≤ 50)search_depth/mode/topic→modeinclude_domains/domains→domains,exclude_domains→exclude_domainsdays/time_range/ recency present →freshness: fresh
Unknown fields are ignored — a drop-in caller is never rejected with 422.
import httpx
httpx.post(
"https://api.groundroute.ai/v1/search/compat", # only the URL + key change
headers={"Authorization": f"Bearer {GROUNDROUTE_KEY}"},
json={"query": "pgvector vs qdrant benchmark", "max_results": 5},
).json() # → {"answer": ..., "results": [...]}
GroundRoute's routing_meta / cache_meta are omitted from the compat body to stay byte-compatible with the original SDK shape. To see them, call the native /v1/search.
Framework helpers
Thin helpers wrap the native API for popular frameworks so you can swap a retriever or tool in one line:
| Framework | Swap |
|---|---|
| LangChain | GroundRouteRetriever(k=5) — same .invoke(query) → List[Document] as a Tavily/Exa retriever |
| LlamaIndex | groundroute_tool() — a FunctionTool, same agent wiring |
| Vercel AI SDK | groundrouteSearch() — a standard AI-SDK tool() |
# LangChain — before:
# from langchain_community.retrievers import TavilySearchAPIRetriever
# retriever = TavilySearchAPIRetriever(k=5)
from groundroute_langchain import GroundRouteRetriever
retriever = GroundRouteRetriever(k=5)
// Vercel AI SDK — before:
// const tools = { search: tavilySearchTool(...) };
import { groundrouteSearch } from "./groundroute";
const tools = { search: groundrouteSearch() };
These helpers live in the integrations/ directory of the GroundRoute repository and import their framework dependency lazily, so pulling one in never forces a framework you don't use. A native SDK package and one-click MCP registry listing are on the roadmap.