Search with Firecrawl
Firecrawl searches the live web and news. Pin a query to Firecrawl with one field, and its results come back in the same shape as every other provider’s.
Results from Firecrawl
-
1
S&P 500 (^GSPC) Charts, Data & News - Yahoo Finance finance.yahoo.com
- 2
-
3
.SPX - S&P 500 INDEX | Quotes from Fidelity Investments digital.fidelity.com
-
4
S&P 500 INDEX TODAY | INX LIVE TICKER - Markets Insider markets.businessinsider.com
- 5
Recorded from live searches on 9 October 2026.
Pin a query to Firecrawl
- Over HTTP, send
"requested_provider": "firecrawl"with the query. - In an agent connected over MCP, ask it to search with Firecrawl.
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": "S&P 500 today",
"top_k": 5,
"requested_provider": "firecrawl"
}'
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": "S&P 500 today",
"top_k": 5,
"requested_provider": "firecrawl",
},
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: "S&P 500 today",
top_k: 5,
requested_provider: "firecrawl",
}),
})
const { results } = await res.json()
claude mcp add --transport http grounder \
https://api.grounder.net/mcp
# then /mcp, grounder, Authenticate
Filters Firecrawl 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. |
request.jsonJSON
{
"query": "S&P 500 today",
"top_k": 5,
"requested_provider": "firecrawl",
"filters": {
"domains": { "values": ["finance.yahoo.com"] }
}
}