Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use Firecrawl’s v2 Scrape API: send a POST request to https://api.firecrawl.dev/v2/scrape, include your bearer key, and add a screenshot object to formats. Set fullPage to true for the entire rendered page or false for the requested viewport. Firecrawl returns the capture URL in data.screenshot; the same request can also return Markdown, HTML and links.

Minimal Firecrawl screenshot request

This is the smallest useful request for a full-page image. Replace the example URL and API key with your values.

curl -X POST https://api.firecrawl.dev/v2/scrape 
  -H 'Content-Type: application/json' 
  -H 'Authorization: Bearer fc-YOUR-API-KEY' 
  -d '{
    "url": "https://example.com",
    "formats": [
      {
        "type": "screenshot",
        "fullPage": true,
        "quality": 80,
        "viewport": {"width": 1280, "height": 800}
      }
    ]
  }'

The request asks Firecrawl to render https://example.com, capture the complete page, use a 1,280 by 800 CSS-pixel viewport, and encode the image at quality 80. Read the resulting URL from data.screenshot in the JSON response.

What to put in the request

Endpoint and authentication

Use the v2 Scrape endpoint, POST https://api.firecrawl.dev/v2/scrape. Send JSON with Content-Type: application/json and authenticate with Authorization: Bearer fc-YOUR-API-KEY. Keep the key on your server or in an environment variable; do not place it in browser JavaScript sent to visitors.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.

The URL and formats array

url is the page Firecrawl should render. formats is an array, so you can request a screenshot by itself or alongside extracted formats. A screenshot entry has type: "screenshot". The API schema describes the resulting image URL as data.screenshot; it can be null, so your code must check it before saving or publishing the URL.

Full-page versus viewport capture

Setting Result Use it when
fullPage: true The complete rendered page, including content below the initial viewport. You need an archive, visual regression reference, documentation image or long-page preview.
fullPage: false A screenshot limited to the configured viewport. You are testing the above-the-fold layout, a hero section or a fixed-size embed.

Set viewport.width and viewport.height when reproducible dimensions matter. Without an explicit size, your result depends on the service’s browser defaults, which can make visual comparisons harder.

Quality and image dimensions

quality controls the requested image quality in the screenshot format. The example uses 80; choose a value appropriate for your storage and visual requirements. Firecrawl’s documentation does not establish a universal file-size or rendering-time relationship, so measure your own pages if those limits are important.

Copy-and-run examples

cURL

export FIRECRAWL_API_KEY='fc-YOUR-API-KEY'

curl -sS -X POST https://api.firecrawl.dev/v2/scrape 
  -H 'Content-Type: application/json' 
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" 
  -d '{
    "url": "https://example.com/pricing",
    "formats": [
      {"type": "screenshot", "fullPage": true, "quality": 80,
       "viewport": {"width": 1280, "height": 800}}
    ]
  }'

Use -sS so cURL keeps the JSON response readable while still reporting transport errors. Parse the response and verify both the top-level success field and data.screenshot.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.

Python with requests

import os
import requests

api_key = os.environ["FIRECRAWL_API_KEY"]
payload = {
    "url": "https://example.com/pricing",
    "formats": [{
        "type": "screenshot",
        "fullPage": True,
        "quality": 80,
        "viewport": {"width": 1280, "height": 800},
    }],
}

response = requests.post(
    "https://api.firecrawl.dev/v2/scrape",
    headers={
        "Content-Type": "application/json",
        "Authorization": f"Bearer {api_key}",
    },
    json=payload,
    timeout=90,
)
response.raise_for_status()
result = response.json()
if not result.get("success"):
    raise RuntimeError(f"Firecrawl did not succeed: {result}")

screenshot_url = result.get("data", {}).get("screenshot")
if not screenshot_url:
    raise RuntimeError("Firecrawl returned no screenshot URL")
print(screenshot_url)

Node.js using fetch

const apiKey = process.env.FIRECRAWL_API_KEY;

const response = await fetch('https://api.firecrawl.dev/v2/scrape', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${apiKey}`
  },
  body: JSON.stringify({
    url: 'https://example.com/pricing',
    formats: [{
      type: 'screenshot',
      fullPage: true,
      quality: 80,
      viewport: { width: 1280, height: 800 }
    }]
  })
});

if (!response.ok) {
  throw new Error(`HTTP ${response.status}: ${await response.text()}`);
}
const result = await response.json();
if (!result.success || !result.data?.screenshot) {
  throw new Error('Firecrawl returned no usable screenshot URL');
}
console.log(result.data.screenshot);

First-party Python SDK

The Firecrawl glossary also shows the firecrawl-py pattern:

from firecrawl import FirecrawlApp

firecrawl = FirecrawlApp(api_key="fc-YOUR-API-KEY")
doc = firecrawl.scrape("https://example.com", formats=["screenshot"])
print(doc.screenshot)

SDK method names and parameter casing can change. Pin and verify the version installed in your project against the current Firecrawl documentation before deploying this form; the raw HTTP request above exposes the v2 fields directly.

Capture mobile layouts reliably

Set a mobile viewport when you want responsive behavior rather than a desktop screenshot:

{
  "url": "https://example.com",
  "formats": [{
    "type": "screenshot",
    "fullPage": true,
    "viewport": {"width": 390, "height": 844},
    "mobile": true
  }]
}

Firecrawl’s guide demonstrates a 390×844 mobile emulation and optional location settings such as country and language. If the site still serves desktop markup, provide a mobile User-Agent in the request’s headers object. A narrow viewport alone does not guarantee that a server will select its mobile template.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.

Wait for JavaScript and interact before the shot

Single-page applications, lazy images and consent dialogs often need an action sequence. Firecrawl supports a top-level waitFor delay and a wait action that can wait for milliseconds or a selector. Actions execute in order, so click, wait and screenshot can be composed into one scrape.

{
  "url": "https://example.com/catalog",
  "waitFor": 1500,
  "actions": [
    {"type": "click", "selector": "button.load-more"},
    {"type": "wait", "selector": ".product-grid img"},
    {"type": "screenshot", "fullPage": true}
  ],
  "formats": [{"type": "screenshot", "fullPage": true}]
}

Other documented actions include scroll, write, press, scrape, executeJavascript and pdf. Use a selector wait when a known element signals readiness; use a fixed delay when the page has no reliable marker. Combined time spent in wait actions and waitFor must not exceed 60 seconds, and selector waits time out after 30 seconds under the documented behavior. Treat these limits as version-sensitive and verify them before building long workflows.

Return a screenshot and extracted content together

A screenshot does not replace machine-readable extraction. Request several formats in the same scrape when you want a visual record beside content for indexing, review or auditing:

{
  "url": "https://example.com/article",
  "formats": [
    "markdown",
    "links",
    "html",
    "rawHtml",
    {"type": "screenshot", "fullPage": true}
  ]
}

The response places the extracted fields and screenshot URL under data. If you use screenshot actions, action results are documented under data.actions.screenshots. Check success, test for a non-null screenshot value, and only then persist the URL or download the image.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft

Handling failures and inconsistent captures

Authentication or request errors

  • 401 or authorization failure: confirm the key includes the fc- prefix and that the Authorization header is exactly Bearer followed by a space and the key.
  • 400-level validation error: validate JSON syntax, use formats as an array, and ensure screenshot options are nested in an object with type: "screenshot".
  • Non-2xx response: log the response body without exposing your API key, then retry only errors that your application classifies as transient.

Null or missing screenshot

data.screenshot is nullable. Do not treat a successful HTTP response as proof that an image exists. Record the complete response for diagnosis, confirm the requested format, and handle a missing value as a failed capture in your pipeline.

Blank, partial or pre-JavaScript pages

  • Increase a fixed waitFor only when the page has no dependable readiness selector.
  • Prefer a selector wait for the element that proves the application finished rendering.
  • Use scroll before capture when lazy-loaded content appears only after entering the viewport.
  • Set viewport and mobile options explicitly so a responsive breakpoint is reproducible.
  • If a click is required to reveal content, perform it as an action before the screenshot action.

Selector wait timeouts

A selector that never appears consumes the selector-wait timeout. Check that the selector is valid in the rendered DOM, that the click did not open a different state, and that your total wait budget stays within the documented 60-second combined limit.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Performance, reliability and cost considerations

Full-page images contain more pixels than viewport captures and may take longer to render or transfer. Use the smallest viewport and quality that meet your visual requirement, and avoid requesting formats you will not store. For repeatable visual tests, keep URL, viewport, mobile setting, waits and action order constant.

Firecrawl’s cited material describes request fields and wait limits, but it does not establish a universal throughput, rate-limit, uptime or price figure. Treat those as account- and plan-specific operational details and check the current Firecrawl service terms before committing to a high-volume capture schedule. Implement timeouts, response validation, bounded retries and idempotent storage regardless of expected availability.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.

Firecrawl or Playwright?

Decision point Firecrawl Scrape API Playwright
Browser infrastructure Managed browser service accessed over HTTP. You install and operate the browser, dependencies and lifecycle.
Output handling Returns a hosted screenshot URL alongside extraction formats. Typically gives your process a local buffer or file to manage.
Extraction Built-in Markdown, links, HTML, raw HTML and screenshot formats. Fine-grained browser control; you build extraction and storage around it.
Interactions Documented click, scroll, write, press, JavaScript, waits and related actions. Fine-grained control over browser interactions and local files.
Best fit Hosted, API-driven capture plus structured page data. Teams needing precise automation, custom browser logic or local file access.

Firecrawl’s own glossary describes Playwright as the right choice for fine-grained browser control, custom viewports, precise interactions and local file access. Choose based on who should operate the browser and where the resulting bytes must live, not only on the screenshot command itself.

Or skip the browser setup

ScreenshotNeo is the first alternative to try when you want a dedicated screenshot API: it removes common consent banners, newsletter popups and chat widgets before capture, and bills only clean shots.

One GET request returns an image or PDF:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp

See the ScreenshotNeo API documentation for the full option set. It supports full-page captures with lazy images loaded, CSS-selector element shots, dark mode, 12 device presets plus custom viewports, retina scale, PDF paper and page controls, custom CSS and JavaScript, clicks, selector or network-idle waits, ad/tracker/request blocking, headers, cookies, user agents, Authorization, timezone, geolocation, transparent backgrounds, resizing, configurable-TTL caching, signed image links, asynchronous jobs with signed webhooks, bulk capture of up to 100 URLs per call, a usage API and an OpenAPI specification. Parameter names used by other screenshot APIs also work, which can simplify migration.

Bot checks or CAPTCHAs, blank pages, timeouts, failed loads and cache hits are not billed, and each response identifies the page verdict and billing status with X-Page-Verdict and X-Billed headers. An MCP server provides take_screenshot, get_page_info and capture_pdf tools for Claude, Cursor and other MCP clients.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The Free plan includes 1,000 shots per month with no card. Paid plans start at $5 for 3,000 shots; Growth is $15 for 15,000, Pro $39 for 60,000, Scale $99 for 250,000 and Business $249 for 1,000,000. Yearly billing gives two months free, and every feature is included on every plan. Use the free ScreenshotNeo sign-up to start without a card.

Recommended implementation checklist

  1. Store the Firecrawl key in a server-side secret.
  2. Choose fullPage or viewport capture and set dimensions explicitly.
  3. Add mobile emulation and a mobile User-Agent when responsive server behavior requires it.
  4. Use selector waits and actions for dynamic content instead of guessing with long delays.
  5. Keep total waits within 60 seconds and selector waits within 30 seconds.
  6. Request Markdown, HTML or links alongside the screenshot when your workflow needs both visual and structured data.
  7. Validate success and the non-null screenshot URL before persisting results.
  8. Record the request settings with each image so later visual differences are explainable.

Frequently Asked Questions

Can I request a PDF in the same Firecrawl workflow as a screenshot?

Yes. Firecrawl documents a pdf action alongside screenshot and extraction actions; include it in the action sequence when you need both artifacts.

What should I store when a capture is used for visual regression?

Store the page URL together with viewport dimensions, mobile and User-Agent settings, quality, waits and action order so a later run reproduces the same rendering conditions.

Is a hosted screenshot URL the same as a downloaded image file?

No. Firecrawl’s scrape response provides a screenshot URL. Your application must decide whether to fetch it into durable storage, cache the URL, or pass it directly to another service.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.