Firecrawl web_fetch Migration

Move Firecrawl fetch settings to plugin-owned config paths

Page scope (Firecrawl migration niche): This page covers only Firecrawl web_fetch migration details. For general upgrade flow use Upgrading / Migrating. For release history use Releases.

What changed in v2026.4.2

Legacy keys under tools.web.fetch.firecrawl.* moved to plugins.entries.firecrawl.config.webFetch.*. The fetch fallback path was also routed through a provider boundary, so legacy-only configuration may no longer behave as expected.

Migration steps

  1. Run openclaw doctor --fix.
  2. Verify old tools.web.fetch.firecrawl.* keys are removed.
  3. Confirm new keys under plugins.entries.firecrawl.config.webFetch.*.
  4. Restart gateway and test a web_fetch action.

Key mapping (legacy → new)

After openclaw doctor --fix, settings should live under the Firecrawl plugin entry—not scattered under tools.web.fetch.

  • tools.web.fetch.firecrawl.apiKey → plugins.entries.firecrawl.config.webFetch.apiKey
  • tools.web.fetch.firecrawl.baseUrl → plugins.entries.firecrawl.config.webFetch.baseUrl
  • tools.web.fetch.firecrawl.enabled → plugins.entries.firecrawl.config.webFetch.enabled

Exact key names can vary by release—run openclaw doctor and compare with official docs.

Quick verification

Commands
openclaw doctor --fix
openclaw doctor
openclaw gateway restart

If fetch tools still fail, check Troubleshooting and latest breaking changes.

Verify after migration

  1. Run one agent prompt that fetches a known public URL.
  2. Confirm billing/quotas on your Firecrawl dashboard.
  3. Remove legacy web-fetch env vars so secrets do not linger in shell profiles.

Quotas and errors

Firecrawl bills per scrape; agent loops can burn quota fast. Cache stable URLs in workspace memory and cap fetch tools in busy channels. HTTP 402/429 usually means dashboard limits—not an OpenClaw bug.