Quickstart
Get from zero to your first search in under five minutes.
1. Sign up
Create an account at groundroute.ai. A free account is BYOK-only (you bring your own engine keys) and is capped and rate-limited — enough to build and test against. To run managed searches (GroundRoute holds the engine keys), add a payment method or credits in the console. See Pricing.
2. Create an API key
In the console, open API keys and create a key. The plaintext key — it looks like gr_live_… — is shown once. Store it in a secret manager; GroundRoute only ever stores its hash and can never show it again.
export GROUNDROUTE_API_KEY="gr_live_xxxxxxxxxxxxxxxxxxxx"
3. Your first search
Send the key as a Bearer token to POST /v1/search:
curl -s https://api.groundroute.ai/v1/search \
-H "Authorization: Bearer $GROUNDROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "pgvector vs qdrant benchmark", "mode": "auto", "max_results": 5}'
You get back a normalized response — results plus the meta blocks that make GroundRoute a control plane, not just a proxy:
{
"request_id": "8f1c…",
"tenant_id": "…",
"results": [
{
"url": "https://example.com/...",
"title": "pgvector vs Qdrant: a benchmark",
"snippet": "…",
"source_engine": "serper",
"rank": 0
}
],
"answer": null,
"citations": [],
"degraded": false,
"routing_meta": { "strategy": "price_led", "chosen_engine": "serper", "cost_usd": 0.001 },
"cache_meta": { "cache_tier": "miss", "cost_avoided_usd": 0.0 },
"quality_meta": { "quality_score": null },
"usage_meta": { "cost_usd": 0.001, "provider_key_source": "platform", "billable": true }
}
Response headers also carry X-Request-Id, X-Cache-Tier, and X-Degraded. Full reference: Search API.
Same call in Python
import os, httpx
resp = httpx.post(
"https://api.groundroute.ai/v1/search",
headers={"Authorization": f"Bearer {os.environ['GROUNDROUTE_API_KEY']}"},
json={"query": "pgvector vs qdrant benchmark", "mode": "auto", "max_results": 5},
timeout=15,
)
resp.raise_for_status()
data = resp.json()
for r in data["results"]:
print(r["rank"], r["title"], r["url"])
print("engine:", data["routing_meta"]["chosen_engine"], "| cache:", data["cache_meta"]["cache_tier"])
4. Add it to an agent over MCP
GroundRoute ships an MCP server, so an agent can call search as a native tool. Point any MCP client at https://api.groundroute.ai/mcp with the same Bearer key.
Claude Desktop / Cursor (mcp.json):
{
"mcpServers": {
"groundroute": {
"type": "http",
"url": "https://api.groundroute.ai/mcp",
"headers": { "Authorization": "Bearer gr_live_YOUR_KEY" }
}
}
}
Restart the client and the search tool is available. Full reference: MCP server.
Next
- Authentication — create, rotate, and revoke keys.
- Routing and policies — how the engine is chosen.
- Caching — the cache tiers and what they save.