# `Perplexed.Scraper.Firecrawl`
[🔗](https://github.com/agoodway/perplexed/blob/v0.2.0/lib/perplexed/scraper/firecrawl.ex#L1)

Firecrawl v2 scrape as a `Perplexed.Scraper`.

Firecrawl renders JavaScript and handles many protected sites, at one
credit per HTML page, priced by `credit_usd/0` (the `firecrawl_credit_usd`
setting). Accepts a cached copy up to a day old (`:max_age_ms`).

Firecrawl also reads PDFs, at one credit per PDF page. A ladder hands it a
PDF the free tiers could not convert (no `Perplexed.PdfConverter`
configured) only with `firecrawl_pdf: true` in the settings; otherwise a
PDF ends the climb unread rather than billing per page. With a local
converter configured, PDFs never reach Firecrawl.

Needs `config :perplexed, firecrawl_api_key:`.

# `credit_usd`

```elixir
@spec credit_usd() :: float()
```

USD per Firecrawl credit: the `firecrawl_credit_usd` setting, else
9.9e-4 (the Standard plan's $99 for 100,000). Set it to
what your plan pays, for example 0.0038 on Hobby, or about 0.0025 for
credits bought past a Standard allowance (all as of 2026-11-10). A
scraped page is one credit, a PDF one per page; a search is two (see
`Perplexed.Search.Firecrawl`).

---

*Consult [api-reference.md](api-reference.md) for complete listing*
