NewMCP server live

Screenshot API for any website.

Capture any URL as a PNG, JPEG, or WebP image. Full page or a single element, desktop or mobile, without most ads and cookie banners.

Get a free API key
4.9average across
G2 — 4.8 out of 5Google — 4.9 out of 5Product Hunt — 5.0 out of 5
  • 500 free credits every month
  • No card to start
  • Failed requests cost nothing

Try it on your own URL

Try:
Trusted by teams at
PfizerNBCUniversalTCSHostingerKissflowLookoutPlivoClearSaleSparkianCBSplitOmreon
PfizerNBCUniversalTCSHostingerKissflowLookoutPlivoClearSaleSparkianCBSplitOmreon

Screenshots that look like the real page.

No browser fleet to run and no cleanup scripts. Every request renders in a real browser and returns a clean image.

Full page or one element

Capture the entire page from top to bottom, just the viewport, or target a specific element with a CSS selector.

fullPage: true

Clean captures

Block most ads, hide cookie banners by default, and skip CAPTCHAs where possible so you get a clean image.

hideCookie: true

Any device or viewport

Emulate desktop or mobile devices, set viewports from 320 to 3,840 pixels, and boost scale factors for sharp, high-DPI images.

device: mobile

Dark mode and timing

Render in light or dark theme, wait up to 10 seconds for delayed content to load, and turn off animations for consistent output.

theme: dark

PNG, JPEG or WebP

Control format and compression quality. Get a hosted image URL back, or stream inline Base64 directly to AI agents.

type: webp

Global proxies

Route requests through proxies in specific countries to capture localized pricing, regional layouts, and localized content.

proxyCountry: gb

What customers say.

Read all reviews
“Finally found a screenshot API that handles full-page captures correctly. Most others mess up the rendering of dynamic elements. Geekflare API captures the whole thing.”
Dinny RobersonDeveloper
“Geekflare screenshot API has been solid so far. I like how consistently it handles dynamic content and modern websites. Team feature is a plus, I can get my team members to get API key and request logs.”
Michael TSoftware Engineer
“Great API and even better customer support. They went above and beyond to help me fix a rendering issue. Fast response times and effective solutions. 5 stars!”
Kham Nguyen DinhDeveloper

What a DIY screenshot service takes.

Headless Chrome gets you a first screenshot in an afternoon. Making every capture look right on every site takes much longer.

  • Rendering

    In-house

    Run and scale a headless browser fleet, and watch memory and cold starts.

    With Geekflare
    Real browser, per request
  • Cookie banners and ads

    In-house

    Maintain selectors to close consent popups and block ad networks, site by site.

    With Geekflare
    Cookie banners and most ads removed by default
  • Full-page captures

    In-house

    Scroll, wait for late content, and deal with sticky headers breaking the image.

    With Geekflare
    fullPage: true
  • Devices and viewports

    In-house

    Keep device profiles, viewport sizes and pixel ratios up to date.

    With Geekflare
    device: "mobile"
  • Blocked sites

    In-house

    Buy proxies for sites that block bot traffic, in every country you need.

    With Geekflare
    proxyCountry: "de"
  • Storing images

    In-house

    Upload to storage, generate links and clean up old files.

    With Geekflare
    Hosted URL

See the page each country sees.

Prices, languages, promotions, and cookie notices vary by location. Pass a country code to route your request through a local proxy and capture what local visitors see.

  • proxyCountry captures through any of 194 countries
  • Check regional pricing, ads and compliance banners
0
Countries
4 credits
Added only when you pick a country
POST/screenshot{ "url": "apple.com", "proxyCountry": "us" }from United States

The parameters you'll use most.

What each one does and what it costs.

  • urlstring—

    The page to capture. Any public URL.

  • fullPagebooleanIncluded

    Capture the whole page instead of just the viewport. Defaults to false.

  • selectorstringIncluded

    Capture only the element that matches a CSS selector, such as ".hero".

  • devicestringIncluded

    desktop or mobile. Defaults to desktop.

  • viewportWidthnumberIncluded

    Viewport width from 320 to 3840 pixels. viewportHeight sets the height.

  • typestringIncluded

    png, jpeg or webp. Defaults to png. Set quality for jpeg and webp.

  • themestringIncluded

    light, dark or auto. Defaults to auto.

  • delaynumberIncluded

    Seconds to wait before capturing, up to 10.

  • inlinebooleanIncluded

    Also return the image as Base64 and a data URI in the response.

  • proxyCountrystring+4

    Capture through a proxy in this country, e.g. "de".

What you can build with the Screenshot API.

A dated record of any page

Capture full-page screenshots with timestamp for compliance records, legal evidence, or audit logs.

  • Full page, top to bottom
  • Timestamp watermark on the image
  • Schedule captures to track changes
Typical request
POST /screenshot
{
  "url": "https://stripe.com/pricing",
  "fullPage": true,
  "addTimestamp": true
}
What comes back
dataimage URL
hosted PNG, full page
meta.fullPagetrue
meta.addTimestamptrue

Your first screenshot, in a few lines.

quickstart.pyofficial SDK
# pip install geekflare-api
from geekflare_api.client import GeekflareClient
from geekflare_api.models import ScreenshotDto

with GeekflareClient(api_key="<api-key>") as client:
    result = client.screenshot(
        ScreenshotDto(
            url="https://example.com"
        )
    )
    print(result)

One API. Every stack.

One account works from an agent, a workflow builder, an SDK or your own service.

MCP server

Sign in once and Claude, ChatGPT, Cursor or Codex can use Geekflare's tools directly, with no glue code to write.

ClaudeChatGPTCursorCodexAny MCP client
Set up the MCP server

LLM & agent pipelines

LLM-ready Markdown straight into a retrieval pipeline, with the boilerplate stripped so you spend context on content, not navigation.

RAGAgentsClean MarkdownGrounded search
See the solutions

Workflow builders

Run any endpoint as a step in a visual scenario. Useful when the person who needs the data does not write code.

ZapierMaken8n
Browse integrations

SDKs & REST

First-party typed SDKs for Python and Node. Everything else talks plain REST, from any language.

PythonNode.jsPostman
Open the API reference

How many screenshots each plan covers.

Every capture costs the same, whatever the page size or format. Failed requests cost nothing.

2 months free
  • Free
    $0/mo
    No card
    Credits a month
    500
    Screenshots5 credits
    100
    Requests per second
    1
  • Starter
    $19/mo
    Credits a month
    20,000
    Screenshots5 credits
    4,000
    Requests per second
    5
  • GrowthMost popular
    $69/mo
    Credits a month
    100,000
    Screenshots5 credits
    20,000
    Requests per second
    10
  • Business 500K
    $299/mo
    Credits a month
    500,000
    Screenshots5 credits
    100,000
    Requests per second
    25
  • Business 1M
    $499/mo
    Credits a month
    1,000,000
    Screenshots5 credits
    200,000
    Requests per second
    25
Start freeCompare plans and credit packsEvery account starts free. Upgrade when you need more, or buy a credit pack from $10.

Before you integrate screenshots.

Everything else is in the endpoint docs, and our support team replies to every email.

Open the endpoint docs

A screenshot costs 5 credits, whatever the page size or format. Capturing through a proxy with proxyCountry adds 4 credits. Failed requests cost nothing.

Yes. Set fullPage: true to capture the whole page from top to bottom instead of just the viewport.

PNG, JPEG and WebP. Set type, and quality from 10 to 100 for JPEG and WebP. Add inline: true to also get the image as Base64 in the response.

Yes. Pass a CSS selector to capture a single element, or set viewportWidth and viewportHeight for an exact size. fallbackToFullPage returns the full page if the selector isn't found.

Yes, and they are on by default. blockAds blocks most ads (a site's own sponsor slots can still show), hideCookie hides cookie popups and skipCaptcha tries to get past CAPTCHAs.

Image URLs are hosted on the Geekflare CDN for 30 days and then deleted automatically. Use inline: true if you'd rather store the image yourself.

Some sites block automated traffic with WAFs or IP rate limits. Adding proxyCountry routes the capture through a proxy in that country, which often gets past these blocks.

Yes. Take screenshots in the dashboard playground, use it from Zapier, Make or n8n, or let AI agents call it through our MCP server.

Ask AI about Geekflare

Open the question in the assistant you already use.

100 screenshots a month, free.

No card needed, and it renews every month. Capture a page you care about and see how it looks.