#firecrawl config with hidden token
1 messages · Page 1 of 1 (latest)
For v2026.5.20, use the plugin-owned config path. Firecrawl cloud is already the default (https://api.firecrawl.dev), but you can set it explicitly.
Put the key in the gateway env, usually:
# ~/.openclaw/.env
FIRECRAWL_API_KEY=fc-your-key-here
Then config, for Firecrawl as web_fetch fallback / scrape:
{
tools: {
web: {
fetch: {
enabled: true,
provider: "firecrawl",
},
},
},
plugins: {
entries: {
firecrawl: {
enabled: true,
config: {
webFetch: {
apiKey: { source: "env", provider: "default", id: "FIRECRAWL_API_KEY" },
baseUrl: "https://api.firecrawl.dev",
},
},
},
},
},
}
If you also want Firecrawl as web_search:
{
tools: {
web: {
search: {
enabled: true,
provider: "firecrawl",
},
},
},
plugins: {
entries: {
firecrawl: {
enabled: true,
config: {
webSearch: {
apiKey: { source: "env", provider: "default", id: "FIRECRAWL_API_KEY" },
baseUrl: "https://api.firecrawl.dev",
},
},
},
},
},
}
You can also omit apiKey entirely and OpenClaw will fall back to FIRECRAWL_API_KEY, but I prefer the SecretRef form above because it makes the dependency explicit without storing the token in config.
After editing ~/.openclaw/.env, restart the gateway so the daemon picks it up. Docs: https://docs.openclaw.ai/tools/firecrawl and https://docs.openclaw.ai/tools/web-fetch
I only want to use it for web_fetch fallback. What does that config look like?
For only web_fetch fallback, keep it to this:
{
tools: {
web: {
fetch: {
enabled: true,
provider: "firecrawl",
},
},
},
plugins: {
entries: {
firecrawl: {
enabled: true,
config: {
webFetch: {
apiKey: { source: "env", provider: "default", id: "FIRECRAWL_API_KEY" },
baseUrl: "https://api.firecrawl.dev",
onlyMainContent: true,
maxAgeMs: 172800000,
timeoutSeconds: 60,
},
},
},
},
},
}
And in ~/.openclaw/.env:
FIRECRAWL_API_KEY=fc-your-key-here
Then restart the gateway. You do not need tools.web.search or plugins.entries.firecrawl.config.webSearch for this use case.
Tiny note: baseUrl is optional because that cloud URL is the default, and apiKey can also be omitted because FIRECRAWL_API_KEY is a fallback. I’d still keep the SecretRef line because it documents exactly where the hidden token comes from.
where are "onlyMainContent", "maxAgeMs" and "timeoutSeconds" documented?
They’re in two places:
- Firecrawl tool docs, under “Configure Firecrawl scrape + web_fetch fallback”: https://docs.openclaw.ai/tools/firecrawl
- Web fetch docs, in the Firecrawl fallback config example: https://docs.openclaw.ai/tools/web-fetch
The generated config reference also lists the defaults under plugins.entries.firecrawl.config.webFetch: https://docs.openclaw.ai/gateway/configuration-reference
Current meanings/defaults:
onlyMainContent: extract only main page content, defaulttruemaxAgeMs: max Firecrawl cache age in milliseconds, default172800000/ 2 daystimeoutSeconds: Firecrawl scrape request timeout, default60
So for a minimal config you can leave those three out and just keep the provider + env SecretRef.