Search with Brave
Brave searches its own independent index of the web. Pin a query to Brave with one field, and its results come back in the same shape as every other provider’s.
Results from Brave
-
1
Dog Off-Leash Areas & Map - Parks | seattle.gov seattle.gov
-
2
Off-Leash Dog Parks in Seattle, WA - BringFido bringfido.com
- 3
- 4
-
5
Best Dog-Friendly Parks and Trails in Queen Anne for Walks and Playdates — Comfy Critter LLC comfycritterseattle.com
Recorded from live searches on 8 October 2026.
Pin a query to Brave
- Over HTTP, send
"requested_provider": "brave"with the query. - In an agent connected over MCP, ask it to search with Brave.
Results come back in the same shape for every provider, as the docs describe. Leave the field out, and Grounder routes each query to the provider most likely to answer it well.
search.shShell
curl https://api.grounder.net/v1/search \
-H "Authorization: Bearer $GROUNDER_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "dog-friendly parks in Seattle",
"top_k": 5,
"requested_provider": "brave"
}'
import os
import httpx
KEY = os.environ["GROUNDER_KEY"]
r = httpx.post(
"https://api.grounder.net/v1/search",
headers={"Authorization": f"Bearer {KEY}"},
json={
"query": "dog-friendly parks in Seattle",
"top_k": 5,
"requested_provider": "brave",
},
timeout=30,
).json()
for hit in r["results"]:
print(hit["rank"], hit["title"], hit["url"])
const res = await fetch("https://api.grounder.net/v1/search", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.GROUNDER_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
query: "dog-friendly parks in Seattle",
top_k: 5,
requested_provider: "brave",
}),
})
const { results } = await res.json()
claude mcp add --transport http grounder \
https://api.grounder.net/mcp
# then /mcp, grounder, Authenticate
Filters Brave applies
Set them under filters. A filter a provider can’t apply returns 400 unsupported_filter.
| Filter | Keeps |
|---|---|
domains | Only these sites, or with "mode": "exclude", none of them. |
recency | The last so many days, or a range of dates. |
language | One language, by its code. |
request.jsonJSON
{
"query": "dog-friendly parks in Seattle",
"top_k": 5,
"requested_provider": "brave",
"filters": {
"domains": { "values": ["seattle.gov"] }
}
}
Already calling Brave?
Swap the base URL and key; keep your code. This endpoint takes Brave’s request and returns Brave’s response shape, but Grounder routes each query, so any provider may answer it.
base URLDiff
- https://api.search.brave.com/res/v1/web/search
+ https://api.grounder.net/compat/brave/res/v1/web/search