✨ 100 free screenshots every month — no credit card needed

Beautiful screenshots.
One API call.

Capture any website as a stunning, device-framed screenshot. Perfect for OG images, documentation, marketing, and more.

100 free screenshots/month. No credit card needed.

Try it live — no signup needed

Paste any URL and hit Capture

3 free demos per hour — no account needed

See the quality difference

Real screenshots captured by GrabShot — one API call each

Browser frame screenshot of Stripe
🌐 Browser Frame

Clean macOS-style window chrome. Perfect for landing pages & docs.

frame=browser
iPhone frame screenshot of GitHub
📱 iPhone Frame

Realistic device mockup with Dynamic Island & safe area.

frame=iphone&orientation=portrait
MacBook frame screenshot of Vercel
💻 MacBook Frame

Full laptop mockup with keyboard & trackpad. Presentation-ready.

frame=macbook

Everything you need for perfect screenshots

📐

Custom Dimensions

Set exact width, height, or go full-page. Retina support for crystal-clear 2x renders.

📱

Device Frames

Wrap screenshots in beautiful browser, iPhone, and MacBook frames automatically.

🌙

Dark Mode

Capture websites in dark mode with a single parameter. Perfect for showcasing both themes.

🎯

Element Selector

Screenshot specific elements with CSS selectors. Capture just the hero, pricing table, or any component.

Blazing Fast

Browser pool with smart reuse. Most screenshots complete in under 3 seconds.

🛡️

Ad Blocking

Automatically block ads and trackers for clean, professional screenshots every time.

Pro & Business

Dynamic OG Images for Any Page

Use GrabShot as your og:image source. No API key exposed — use a safe public key instead. First request generates a screenshot, then it's cached and served in under 50ms. Auto-refreshes every 12 hours.

Add to your HTML

index.html
<!-- In your <head> -->
<meta property="og:image"
  content="https://grabshot.dev/v1/screenshot
    ?url=https://yoursite.com
    &og=ogk_your_public_key
    &frame=browser"
/>

<!-- No API key exposed. Get your public key from the dashboard. -->

How your links look when shared

OG preview
Telegram
GrabShot — Screenshot API
Turn any URL into a pixel-perfect screenshot with a simple API call.
grabshot.dev
OG preview
Slack
GrabShot — Screenshot API
Turn any URL into a pixel-perfect screenshot with a simple API call.
OG preview
𝕏 · grabshot.dev
GrabShot — Screenshot API
Turn any URL into a pixel-perfect screenshot with a simple API call.
↓ try yours here ↓

Try it live

Enter any URL and see the result instantly

Choose your plan

Start free. Scale as you grow. Cancel anytime.

🚀 100 free screenshots/month — No credit card required
🏆 Product Hunt Launch Special

Use code PH10OFF for 10% off your first 3 months

Free

Free

$0

100 screenshots/month

Perfect for trying out

  • All screenshot options
  • Device frames
  • 3 requests/min
  • Community support
  • No AI cleanup
  • No OG images
  • Small watermark
Starter

Starter

$9/mo

1,000 screenshots/month

$0.009 per screenshot

  • Everything in Free
  • No watermarks
  • AI cleanup (remove popups)
  • 20 requests/min
  • No OG images
  • Email support
Most Popular

Pro

$29/mo

10,000 screenshots/month

$0.003 per screenshot — Save 67%

  • Everything in Starter
  • 60 requests/min
  • Dynamic OG images
  • Webhook callbacks
  • Priority rendering
  • Phone + email support
Enterprise

Business

$79/mo

50,000 screenshots/month

$0.0016 per screenshot — Save 82%

  • Everything in Pro
  • 120 requests/min
  • Dynamic OG images
  • Custom device frames
  • Dedicated support
  • Volume discounts

Need more volume?

For teams processing 10,000+ screenshots per month, we offer custom plans with dedicated support, SLAs, and volume pricing.

Talk to sales

All plans include SSL, CORS support, multiple formats, ad blocking, dark mode, and more.

Free plan available No setup fees Cancel anytime

API Documentation

Simple REST API. Get started in minutes.

Endpoint

GET https://grabshot.dev/v1/screenshot?url={url}&apiKey={key}

Parameters

Param Type Default Description
urlstringrequiredURL to screenshot
apiKeystringrequiredYour API key
widthnumber1280Viewport width in pixels
heightnumber800Viewport height in pixels
formatstringpngpng, jpeg, or webp
qualitynumber80Image quality (jpeg/webp only, 1-100)
fullPagebooleanfalseCapture the full scrollable page
devicestringdesktopdesktop or mobile
darkModebooleanfalseEnable dark mode
delaynumber0Wait ms before capture (max 10000)
selectorstringCSS selector to screenshot specific element
framestringnonenone, browser, iphone, macbook
retinabooleanfalse2x resolution for retina displays
blockAdsbooleanfalseBlock ads and trackers
jsonbooleanfalseReturn JSON with base64 image instead of binary
ogstringOG public key (Pro/Business). Enables caching for <50ms responses. Get your key from the dashboard.

Code Examples

cURL
curl "https://grabshot.dev/v1/screenshot?url=https://github.com&frame=browser&apiKey=YOUR_API_KEY" -o screenshot.png
Node.js
const response = await fetch(
  `https://grabshot.dev/v1/screenshot?url=https://github.com&frame=browser`,
  { headers: { 'Authorization': 'Bearer gs_your_key' } }
);
const buffer = await response.arrayBuffer();
fs.writeFileSync('screenshot.png', Buffer.from(buffer));
Python
import requests

response = requests.get(
    "https://grabshot.dev/v1/screenshot",
    params={"url": "https://github.com", "frame": "browser"},
    headers={"Authorization": "Bearer gs_your_key"}
)
with open("screenshot.png", "wb") as f:
    f.write(response.content)

Frequently Asked Questions

Is there a free plan?

Yes! The free plan includes 100 screenshots per month with no credit card required. It includes all core features like full-page capture and custom viewports.

What formats are supported?

GrabShot supports PNG, JPEG, and WebP output formats. You can also add device frames (browser, phone, tablet) and adjust quality settings.

How does AI cleanup work?

AI cleanup uses Gemini to automatically remove cookie banners, popups, and overlays from your screenshots. It's available on paid plans and produces cleaner results for marketing materials and documentation.

Can I capture full-page screenshots?

Yes. Set fullPage=true to capture the entire scrollable page. You can also use CSS selectors to capture specific elements, or set custom viewport dimensions.

Is there an SDK or library?

Yes! We have official SDKs for Node.js (grabshot-sdk on npm) and Python (grabshot on PyPI), plus GitHub Actions for CI/CD integration and an MCP server for AI assistants.