PHP code example of helgesverre / firecrawl-php-sdk
1. Go to this page and download the library: Download helgesverre/firecrawl-php-sdk library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
helgesverre / firecrawl-php-sdk example snippets
elgeSverre\Firecrawl\FirecrawlClient;
use HelgeSverre\Firecrawl\Enums\Format;
// Initialize the client
$client = new FirecrawlClient(
apiKey: 'your-api-key-here'
);
// Scrape a single URL
$document = $client->scrape('https://example.com');
echo $document->markdown;
// Option 1: Pass API key directly
$client = new FirecrawlClient(apiKey: 'fc-...');
// Option 2: Use environment variable
// Set FIRECRAWL_API_KEY environment variable
$client = new FirecrawlClient();
// Option 3: Full configuration
$client = new FirecrawlClient(
apiKey: 'fc-...',
apiUrl: 'https://api.firecrawl.dev', // Optional, default 'https://api.firecrawl.dev/'
timeoutMs: 90000, // Optional, default 60000
maxRetries: 5, // Optional, default 3
backoffFactor: 1.0 // Optional, default 0.5
);
use HelgeSverre\Firecrawl\FirecrawlClient;
$client = new FirecrawlClient();
$document = $client->scrape('https://example.com');
// Access different formats
echo $document->markdown;
echo $document->html;
echo $document->metadata?->title;
use HelgeSverre\Firecrawl\DTO\ScrapeOptions;
use HelgeSverre\Firecrawl\Enums\Format;
$options = new ScrapeOptions(
formats: [Format::Markdown, Format::Html, Format::Links],
onlyMainContent: true
);
$document = $client->scrape('https://example.com', $options);
use HelgeSverre\Firecrawl\Builders\ScrapeOptionsBuilder;
use HelgeSverre\Firecrawl\Enums\Format;
use HelgeSverre\Firecrawl\Enums\ProxyType;
$options = ScrapeOptionsBuilder::create()
->formats([Format::Markdown, Format::Screenshot])
->onlyMainContent(true)
->mobile(true)
->proxy(ProxyType::Stealth)
->blockAds(true)
->build();
$document = $client->scrape('https://example.com', $options);
use HelgeSverre\Firecrawl\DTO\Actions\ClickAction;
use HelgeSverre\Firecrawl\DTO\Actions\WaitAction;
use HelgeSverre\Firecrawl\DTO\Actions\ScreenshotAction;
use HelgeSverre\Firecrawl\DTO\ScrapeOptions;
use HelgeSverre\Firecrawl\Enums\Format;
$options = new ScrapeOptions(
formats: [Format::Markdown, Format::Screenshot],
actions: [
new WaitAction(milliseconds: 2000),
new ClickAction(selector: 'button.load-more'),
new WaitAction(selector: '.content-loaded'),
new ScreenshotAction(fullPage: true),
]
);
$document = $client->scrape('https://example.com', $options);
use HelgeSverre\Firecrawl\DTO\CrawlOptions;
$options = new CrawlOptions(
limit: 100,
maxDiscoveryDepth: 3,
excludePaths: ['admin/*', 'login'],
use HelgeSverre\Firecrawl\DTO\CrawlOptions;
$options = new CrawlOptions(
prompt: "Find all product pages with pricing information"
);
$job = $client->crawl('https://example-store.com', $options);
use HelgeSverre\Firecrawl\DTO\BatchScrapeOptions;
use HelgeSverre\Firecrawl\DTO\ScrapeOptions;
use HelgeSverre\Firecrawl\Enums\Format;
$urls = [
'https://example.com/page1',
'https://example.com/page2',
'https://example.com/page3',
];
$scrapeOptions = new ScrapeOptions(
formats: [Format::Markdown]
);
$batchOptions = new BatchScrapeOptions(
options: $scrapeOptions,
maxConcurrency: 5
);
$response = $client->startBatchScrape($urls, $batchOptions);
echo "Batch scrape started: {$response->id}\n";
use HelgeSverre\Firecrawl\DTO\LocationConfig;
use HelgeSverre\Firecrawl\DTO\ScrapeOptions;
$location = new LocationConfig(
country: 'US',
languages: ['en-US', 'en']
);
$options = new ScrapeOptions(location: $location);
$document = $client->scrape('https://example.com', $options);
use HelgeSverre\Firecrawl\DTO\Actions\*;
use HelgeSverre\Firecrawl\DTO\ScrapeOptions;
use HelgeSverre\Firecrawl\Enums\ScrollDirection;
$options = new ScrapeOptions(
actions: [
new ClickAction(selector: '#accept-cookies'),
new WaitAction(milliseconds: 1000),
new WriteAction(text: 'search query'),
new PressAction(key: 'Enter'),
new WaitAction(selector: '.results'),
new ScrollAction(direction: ScrollDirection::Down),
new ExecuteJavascriptAction(script: 'window.scrollTo(0, document.body.scrollHeight)'),
new ScreenshotAction(fullPage: true),
]
);
$document = $client->scrape('https://example.com', $options);
bash
composer
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.