The parsers option (and everything under it) is documented only on the Parse page, under a heading called "PDF options". But it is a shared scrape option, and works identically on /v2/scrape.
Result: anyone reading the Scrape docs has no way to discover pages, blocks, pageMarkers, mode, maxPages, or parsers: []. The Scrape page never mentions parsers at all.
Verified against the live API:
curl -X POST https://api.firecrawl.dev/v2/scrape \
-H "Authorization: Bearer fc-YOUR-KEY" \
-H 'Content-Type: application/json' \
-d '{"url":"https://example.com/report.pdf","formats":["markdown"],
"parsers":[{"type":"pdf","pages":true,"blocks":true,"pageMarkers":true}]}'
returns pages and blocks alongside markdown, exactly as /v2/parse does. The JS SDK agrees: ScrapeOptions.parsers?: Array<string | PDFParser>, and the response type declares pages / blocks with the comment "present only when parsers[].pages is true".
maxPages is the one that costs people money to not know about. On a 184-page PDF:
| request |
numPages |
creditsUsed |
parsers: [{type:"pdf", maxPages:1}] |
1 |
1 |
parsers: [{type:"pdf"}] |
184 |
184 |
Same URL, 184x cost difference, and the option is invisible to a Scrape reader.
Suggested fix
Add a parsers section to the Scrape page (or a short "Document options" section linking to the Parse reference), so the option is discoverable from the endpoint most people use for PDFs. Renaming the Parse page's "PDF options" to something endpoint-neutral would also help, since it currently reads as parse-only.
The
parsersoption (and everything under it) is documented only on the Parse page, under a heading called "PDF options". But it is a shared scrape option, and works identically on/v2/scrape.Result: anyone reading the Scrape docs has no way to discover
pages,blocks,pageMarkers,mode,maxPages, orparsers: []. The Scrape page never mentionsparsersat all.Verified against the live API:
returns
pagesandblocksalongsidemarkdown, exactly as/v2/parsedoes. The JS SDK agrees:ScrapeOptions.parsers?: Array<string | PDFParser>, and the response type declarespages/blockswith the comment "present only whenparsers[].pagesis true".maxPagesis the one that costs people money to not know about. On a 184-page PDF:parsers: [{type:"pdf", maxPages:1}]parsers: [{type:"pdf"}]Same URL, 184x cost difference, and the option is invisible to a Scrape reader.
Suggested fix
Add a
parserssection to the Scrape page (or a short "Document options" section linking to the Parse reference), so the option is discoverable from the endpoint most people use for PDFs. Renaming the Parse page's "PDF options" to something endpoint-neutral would also help, since it currently reads as parse-only.