Agent skill · Audited from source
firecrawl-scrape
skill · firecrawl/cliLicence not declaredAudited 28 Oct 2026 · source ca9cfb73adc1
Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit ca9cfb73adc1 and found no filesystem, network or shell access and no hard-coded secrets. What it does: Read a known webpage or execute a discovered workflow or data-provider capability. Use for page content or structured results once the URL or tool is selected.
Cite
Cite this page
ModelsAtlas. “firecrawl-scrape (firecrawl/cli)”. Retrieved 28 Oct 2026. https://modelsatlas.com/skills/firecrawl/firecrawl-scrape
Trust audit
Audit 0.4.1 · source read 28 Oct 2026
SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 16,667 of 17,602 audited skills.
What the source does
- FilesystemNone observedNo reads or writes in the source
- NetworkNone observedNo outbound calls in the source
- ShellNone observedNo commands run in the source
- DependenciesPinnedNothing floats
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | PASS | 1 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | NA | 0 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 0 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass, no license.
Findings (1)
LOWInventory / provenanceinv.no_license
- Why
- no LICENSE file and no repo licence
- Fix
- add a licence
Audit 0.4.1 · source sha ca9cfb73adc1 · 28 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- Publisherfirecrawl GitHub organizationOwner of the repository this skill is read from
- Source folderfirecrawl/cli/skills/firecrawl-scrapeThe exact folder we audited
- LicenceNot declaredAs the repository states it
- Commit pinned for this verdictca9cfb73adc1A new audit runs when the source changes
- Repository statusNot archivedLast push 1 day ago
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: Read a known webpage or execute a discovered workflow or data-provider capability. Use for page content or structured results once the URL or tool is selected.
---
name: firecrawl-scrape
description: Read a known webpage or execute a discovered workflow or data-provider capability. Use for page content or structured results once the URL or tool is selected.
allowed-tools:
- Bash(firecrawl *)
- Bash(npx firecrawl-cli *)
---
# firecrawl scrape
Read a URL for page content, or execute a selected provider tool for structured data. Discover tools with `search` and inspect their inputs with `list` before execution. Multiple URLs can be scraped concurrently.
For structured datasets, first check for a suitable workflow or data provider using the [search skill](../firecrawl-search/SKILL.md). Read a known page directly; reuse a selected contract instead of repeating discovery.
## Quick start
```bash
# Basic markdown extraction
firecrawl scrape "<url>" -o .firecrawl/page.md
# Main content only, no nav/footer
firecrawl scrape "<url>" --only-main-content -o .firecrawl/page.md
# Wait for JS to render, then scrape
firecrawl scrape "<url>" --wait-for 3000 -o .firecrawl/page.md
# A few URLs (markdown only; each saved to .firecrawl/; -o is ignored)
firecrawl scrape https://example.com https://example.com/blog https://example.com/docs
# Get markdown and links together
firecrawl scrape "<url>" --format markdown,links -o .firecrawl/page.json
# Ask a question about the page
firecrawl scrape "https://example.com/pricing" --query "What is the enterprise plan price?"
```
Run `firecrawl scrape --help` for the full option list.
**Done when:** the page content or provider result has been checked for errors and inspected in bounded sections to answer the request. Preserve source links and disclose partial results.
## Structured JSON from a page
Pass a JSON schema with the `json` format to get typed fields instead of markdown:
```bash
firecrawl scrape "<url>" --format json \
--schema '{"type":"object","properties":{"plan":{"type":"string"},"price":{"type":"string"}},"required":["plan"]}' \
-o .firecrawl/pricing.json
# Large schemas: keep them in a file
firecrawl scrape "<url>" --format json --schema-file schema.json -o .firecrawl/page.json
```
The result is under `.json` in the output. `--schema` only applies when `json` is in `--format`; add other formats with commas (`--format markdown,json`). For the same schema across many URLs, use `batch-scrape --schema` below.
## Many known URLs
Use `firecrawl batch-scrape` for a list of known URLs when you need formats other than markdown, JSON extraction, a webhook, or a job you can check later. Keep the multi-URL `scrape` above for a few pages of markdown.
```bash
# Start a job (prints a job ID), then check it later
firecrawl batch-scrape https://example.com/a https://example.com/b
firecrawl batch-scrape <job-id>
# Wait and save every document as JSON (urls.txt: one URL per line, # comments ok)
firecrawl batch-scrape --urls-file urls.txt --format markdown,links --wait -o .firecrawl/batch.json
# Same extraction for every URL (--schema or --prompt adds the json format)
firecrawl batch-scrape --urls-file urls.txt --wait \
--schema '{"type":"object","properties":{"title":{"type":"string"}}}' -o .firecrawl/batch.json
```
Results are in `.data[]`, one document per URL with `metadata.sourceURL`. Add `--webhook <url>` to get notified, `--ignore-invalid-urls` to skip bad entries, and `--cancel` with a job ID to stop a job. Run `firecrawl batch-scrape --help` for all options.
## Find tools, inspect inputs, and get help
Use the CLI help to check supported options rather than guessing:
```bash
firecrawl search --help
firecrawl list --help
firecrawl scrape --help
```
Domain discovery with `--domain-tools` returns tool summaries by default. Add `--tool-detail full` for contracts upfront, or inspect one selected tool with `list` as shown below. Use `--tool-detail compact` for only provider, capability and description; inspect by those two IDs with `list`. Summary remains the default. Prefer full when several related contracts will be needed immediately.
For structured data, search for the task, inspect a matching tool's contract, then execute with the exact input fields it declares:
```bash
# Web + domain matching + semantic tools
firecrawl search '<user question>'
# Semantic tools only
firecrawl search alexandria '<user question>'
# Categories → providers → tools → contract
firecrawl list
firecrawl list <category-id> --category
firecrawl list <provider-id>
firecrawl list <provider-id> <capability-id> --pretty
# Execute a tool
firecrawl scrape <provider-id>/<capability-id> --options '<JSON matching the selected contract>'
```
Normal search includes web results and tool matches; `search alexandria` searches tools only. `list <provider> <capability> --pretty` shows the selected contract; use `--json` for machine-readable output. To browse progressively, use `list`, then `list <category> --category`, then `list <provider>`. Search and list do not execute the selected provider tool. Read only the contracts needed for the task; use returned identifiers rather than guessing them.
Read the expanded contract before building inputs or parsing results:
- `required: true` requires that input; each `requiresOneOf` group requires at least one member, not all of them.
- Selected-contract inspection already requests examples. Read the singular `example.request` and `example.response` when present; an empty request can be valid for tools with optional inputs.
- `response.key` identifies the records field inside `data.alexandria[i].data`; an empty key means that data object itself. Do not assume every provider returns `records`.
- Provider pagination differs from catalogue `next`: use the contract's continuation input and the returned page/cursor, preserve filters, and stop at its exhaustion signal. `paginated: true` alone does not specify that mapping.
## Execution and large results
URL scraping does not execute provider tools automatically. Use exact discovered input fields and resolve record IDs with lookup tools Excerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit ca9cfb7
git clone https://github.com/firecrawl/cli git -C cli checkout ca9cfb73adc1
The author documents no install command, so this uses the repository directly. Our verdict covers commit ca9cfb73adc1 only.
Works in which agents?
What its own text says, not a test
| Agent | Status | More |
|---|---|---|
| Cursor | Mentioned in its text, not tested | Skills for Cursor · About Cursor |
Audit history
Every audit, every source change
- ✓SAFE B 89 / 100
first audit · source
ca9cfb73adc1
README badge
For maintainers · shows the latest audit
[](https://modelsatlas.com/skills/firecrawl/firecrawl-scrape/)
The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.
Similar skills
firecrawl/cli
Find web sources with query-relevant page excerpts and optional full-page content, and discover workflows, data APIs, and indexes. Use for web research or finding structured records, listings, transcripts, and datasets.…
firecrawl/cli
Convert a local file (PDF, DOCX, XLSX, HTML, ...) to markdown, or answer questions about its content. Use whenever the input is a file path, not a URL.
firecrawl/cli
Drive a live browser on a scraped page: click, fill forms, log in, paginate, infinite-scroll. Use when content requires interaction or a scrape failed or returned incomplete content.
firecrawl/cli
Discover and list a site's URLs, with search filtering. Use for "map the site" or "find the URL for" requests — when the user knows the site but not the exact page, or wants site structure.
firecrawl/cli
Alert by webhook/email on web changes — use for "monitor/watch/track/alert me when": recurring checks on known URLs (prefer over repeated one-off scrapes) or web-wide watches for new results (queries + goal).
firecrawl/cli
Save a site or section as local files (markdown, screenshots). Use for "download the site", offline docs, or a local copy for reference.
Add this badge to your README
[](https://modelsatlas.com/skills/firecrawl/firecrawl-scrape/)
<a href="https://modelsatlas.com/skills/firecrawl/firecrawl-scrape/"><img src="https://modelsatlas.com/skills/firecrawl/firecrawl-scrape/badge.svg" alt="ModelsAtlas: SAFE B"></a>
Questions about firecrawl-scrape
What does the firecrawl-scrape skill do?
Is firecrawl-scrape safe to install?
What can firecrawl-scrape access on my machine?
Which assistants does firecrawl-scrape work with?
How current is this page?
Sources
- github.com/firecrawl/cli/tree/main/skills/firecrawl-scrape — the audited source at commit ca9cfb73adc1 and every finding aboveObserved · 28 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the firecrawl-scrape skill do?
- Is firecrawl-scrape safe to install?
- What can firecrawl-scrape access on my machine?