FI

firecrawl-hello-world

Provides starter code for Firecrawl's scrape, crawl, map, and extract APIs.

Install

mkdir -p .claude/skills/firecrawl-hello-world && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/3828" && unzip -o skill.zip -d .claude/skills/firecrawl-hello-world && rm skill.zip

Installs to .claude/skills/firecrawl-hello-world

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Create a minimal working Firecrawl example that scrapes a page to markdown.
75 charsno explicit “when” trigger
Beginner

Key capabilities

  • Scrape a single web page to markdown, HTML, metadata, and links
  • Crawl multiple web pages recursively while respecting robots.txt
  • Discover all URLs on a site using sitemap and SERP
  • Extract structured data from a page using an LLM and JSON schema
  • Scrape multiple URLs concurrently in a batch operation

How it works

The skill uses the Firecrawl API to perform web scraping, crawling, URL discovery, and structured data extraction. It provides code snippets for each core endpoint: scrape, crawl, map, and extract.

Inputs & outputs

You give it
A URL or a list of URLs to scrape or crawl, with optional formats and extraction schemas.
You get back
Markdown, HTML, metadata, links, discovered URLs, or structured JSON data.

When to use firecrawl-hello-world

  • Scraping single pages to markdown
  • Crawling multiple pages recursively
  • Extracting structured data from websites
  • Testing Firecrawl API connectivity

About this skill

Firecrawl Hello World

Overview

Four minimal examples covering Firecrawl's core endpoints: scrape (single page), crawl (multi-page), map (URL discovery), and extract (LLM structured data). Each is a standalone snippet you can run immediately.

Prerequisites

  • @mendable/firecrawl-js installed (npm install @mendable/firecrawl-js)
  • FIRECRAWL_API_KEY environment variable set

Instructions

Step 1: Single-Page Scrape

import FirecrawlApp from "@mendable/firecrawl-js";

const firecrawl = new FirecrawlApp({
  apiKey: process.env.FIRECRAWL_API_KEY!,
});

// Scrape one page — returns markdown, HTML, metadata, links
const result = await firecrawl.scrapeUrl("https://docs.firecrawl.dev", {
  formats: ["markdown"],
});

console.log("Title:", result.metadata?.title);
console.log("Markdown:", result.markdown?.substring(0, 500));

Step 2: Multi-Page Crawl

// Crawl a site recursively — follows links, respects robots.txt
const crawlResult = await firecrawl.crawlUrl("https://docs.firecrawl.dev", {
  limit: 10,  // max 10 pages (saves credits)
  scrapeOptions: {
    formats: ["markdown"],
  },
});

console.log(`Crawled ${crawlResult.data?.length} pages`);
for (const page of crawlResult.data || []) {
  console.log(`  ${page.metadata?.title} — ${page.metadata?.sourceURL}`);
}

Step 3: Map a Site (URL Discovery)

// Discover all URLs on a site in ~2-3 seconds (uses sitemap + SERP)
const mapResult = await firecrawl.mapUrl("https://docs.firecrawl.dev");

console.log(`Found ${mapResult.links?.length} URLs`);
mapResult.links?.slice(0, 10).forEach(url => console.log(`  ${url}`));

Step 4: LLM Extract (Structured Data)

// Extract structured data from a page using an LLM + JSON schema
const extracted = await firecrawl.scrapeUrl("https://firecrawl.dev/pricing", {
  formats: ["extract"],
  extract: {
    schema: {
      type: "object",
      properties: {
        plans: {
          type: "array",
          items: {
            type: "object",
            properties: {
              name: { type: "string" },
              price: { type: "string" },
              credits: { type: "number" },
            },
          },
        },
      },
    },
  },
});

console.log("Pricing plans:", JSON.stringify(extracted.extract, null, 2));

Output

  • Single-page markdown scraped from a live URL
  • Multi-page crawl results with titles and source URLs
  • Site map with all discovered URLs
  • Structured JSON extracted by LLM from page content

Error Handling

ErrorCauseSolution
Cannot find moduleSDK not installednpm install @mendable/firecrawl-js
401 UnauthorizedMissing or invalid API keyCheck FIRECRAWL_API_KEY env var
429 Too Many RequestsRate limit exceededWait and retry with backoff
Empty markdownJS-heavy page not renderedAdd waitFor: 5000 to scrape options
402 Payment RequiredCredits exhaustedCheck balance at firecrawl.dev/app

Examples

Python Hello World

from firecrawl import FirecrawlApp

firecrawl = FirecrawlApp(api_key="fc-YOUR_API_KEY")

# Scrape
result = firecrawl.scrape_url("https://example.com", params={
    "formats": ["markdown"]
})
print(result["markdown"][:500])

# Map
urls = firecrawl.map_url("https://example.com")
print(f"Found {len(urls.get('links', []))} URLs")

Batch Scrape Multiple URLs

// Scrape many URLs at once — more efficient than individual scrapes
const batchResult = await firecrawl.batchScrapeUrls(
  [
    "https://docs.firecrawl.dev/features/scrape",
    "https://docs.firecrawl.dev/features/crawl",
    "https://docs.firecrawl.dev/features/extract",
  ],
  { formats: ["markdown"] }
);

for (const page of batchResult.data || []) {
  console.log(`${page.metadata?.title}: ${page.markdown?.length} chars`);
}

Resources

Next Steps

Proceed to firecrawl-local-dev-loop for development workflow setup.

When not to use it

  • When the page is JS-heavy and requires rendering time, without adding a wait option
  • When the API key is missing or invalid, resulting in a 401 Unauthorized error
  • When the rate limit is exceeded, causing a 429 Too Many Requests error

Prerequisites

`@mendable/firecrawl-js` installed`FIRECRAWL_API_KEY` environment variable set

Limitations

  • The crawl limit is set to a maximum of 10 pages to save credits
  • Empty markdown can occur if a JS-heavy page is not rendered with a wait option
  • A 402 Payment Required error indicates exhausted credits

How it compares

This skill provides runnable code examples for specific Firecrawl API functions, unlike manually constructing API requests for each task.

Compared to similar skills

firecrawl-hello-world side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
firecrawl-hello-world (this skill)126dReviewBeginner
chrome-devtools417moReviewIntermediate
dependency-upgrade265moReviewIntermediate
playwright-browser-automation297moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

More by jeremylongshore

View all by jeremylongshore

analyzing-logs

jeremylongshore

Analyze application logs to detect performance issues, identify error patterns, and improve stability by extracting key insights.

14123

ollama-setup

jeremylongshore

Configure auto-configure Ollama when user needs local LLM deployment, free AI alternatives, or wants to eliminate hosted API costs. Trigger phrases: "install ollama", "local AI", "free LLM", "self-hosted AI", "replace OpenAI", "no API costs". Use when appropriate context detected. Trigger with relevant phrases based on skill purpose.

1167

backtesting-trading-strategies

jeremylongshore

Backtest crypto and traditional trading strategies against historical data. Calculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves, and optimizes strategy parameters. Use when user wants to test a trading strategy, validate signals, or compare approaches. Trigger with phrases like "backtest strategy", "test trading strategy", "historical performance", "simulate trades", "optimize parameters", or "validate signals".

1071

generating-database-seed-data

jeremylongshore

Process this skill enables AI assistant to generate realistic test data and database seed scripts for development and testing environments. it uses faker libraries to create realistic data, maintains relational integrity, and allows configurable data volumes. u... Use when working with databases or data models. Trigger with phrases like 'database', 'query', or 'schema'.

1033

cursor-codebase-indexing

jeremylongshore

Execute set up and optimize Cursor codebase indexing. Triggers on "cursor index setup", "codebase indexing", "index codebase", "cursor semantic search". Use when working with cursor codebase indexing functionality. Trigger with phrases like "cursor codebase indexing", "cursor indexing", "cursor".

885

testing-mobile-apps

jeremylongshore

Execute mobile app testing on iOS and Android devices/simulators. Use when performing specialized testing. Trigger with phrases like "test mobile app", "run iOS tests", or "validate Android functionality".

810

You might also like

chrome-devtools

mrgoonie

Browser automation, debugging, and performance analysis using Puppeteer CLI scripts. Use for automating browsers, taking screenshots, analyzing performance, monitoring network traffic, web scraping, form automation, and JavaScript debugging.

41157

dependency-upgrade

wshobson

Manage major dependency version upgrades with compatibility analysis, staged rollout, and comprehensive testing. Use when upgrading framework versions, updating major dependencies, or managing breaking changes in libraries.

26240

playwright-browser-automation

lackeyjb

Complete browser automation with Playwright. Auto-detects dev servers, writes clean test scripts to /tmp. Test pages, fill forms, take screenshots, check responsive design, validate UX, test login flows, check links, automate any browser task. Use when user wants to test websites, automate browser interactions, validate web functionality, or perform any browser-based testing.

29146

nestjs-expert

davila7

Nest.js framework expert specializing in module architecture, dependency injection, middleware, guards, interceptors, testing with Jest/Supertest, TypeORM/Mongoose integration, and Passport.js authentication. Use PROACTIVELY for any Nest.js application issues including architecture decisions, testing strategies, performance optimization, or debugging complex dependency injection problems. If a specialized expert is a better fit, I will recommend switching and stop.

3758

zod-4

prowler-cloud

Zod 4 schema validation patterns. Trigger: When creating or updating Zod v4 schemas for validation/parsing (forms, request payloads, adapters), including v3 -> v4 migration patterns.

1260

develop-ai-functions-example

vercel

Develop examples for AI SDK functions. Use when creating, running, or modifying examples under examples/ai-functions/src to validate provider support, demonstrate features, or create test fixtures.

536

Search skills

Search the agent skills registry