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.
Paste any URL and hit Capture
3 free demos per hour — no account needed
🚀 Get 100 free screenshots/month — no credit card:
Real screenshots captured by GrabShot — one API call each
Clean macOS-style window chrome. Perfect for landing pages & docs.
frame=browser
Realistic device mockup with Dynamic Island & safe area.
frame=iphone&orientation=portrait
Full laptop mockup with keyboard & trackpad. Presentation-ready.
frame=macbook
Set exact width, height, or go full-page. Retina support for crystal-clear 2x renders.
Wrap screenshots in beautiful browser, iPhone, and MacBook frames automatically.
Capture websites in dark mode with a single parameter. Perfect for showcasing both themes.
Screenshot specific elements with CSS selectors. Capture just the hero, pricing table, or any component.
Browser pool with smart reuse. Most screenshots complete in under 3 seconds.
Automatically block ads and trackers for clean, professional screenshots every time.
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
<!-- 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
Enter any URL and see the result instantly
Start free. Scale as you grow. Cancel anytime.
Use code PH10OFF for 10% off your first 3 months
100 screenshots/month
Perfect for trying out
1,000 screenshots/month
$0.009 per screenshot
10,000 screenshots/month
$0.003 per screenshot — Save 67%
50,000 screenshots/month
$0.0016 per screenshot — Save 82%
For teams processing 10,000+ screenshots per month, we offer custom plans with dedicated support, SLAs, and volume pricing.
Talk to salesAll plans include SSL, CORS support, multiple formats, ad blocking, dark mode, and more.
✓ Free plan available ✓ No setup fees ✓ Cancel anytime
Simple REST API. Get started in minutes.
GET https://grabshot.dev/v1/screenshot?url={url}&apiKey={key}
| Param | Type | Default | Description |
|---|---|---|---|
| url | string | required | URL to screenshot |
| apiKey | string | required | Your API key |
| width | number | 1280 | Viewport width in pixels |
| height | number | 800 | Viewport height in pixels |
| format | string | png | png, jpeg, or webp |
| quality | number | 80 | Image quality (jpeg/webp only, 1-100) |
| fullPage | boolean | false | Capture the full scrollable page |
| device | string | desktop | desktop or mobile |
| darkMode | boolean | false | Enable dark mode |
| delay | number | 0 | Wait ms before capture (max 10000) |
| selector | string | — | CSS selector to screenshot specific element |
| frame | string | none | none, browser, iphone, macbook |
| retina | boolean | false | 2x resolution for retina displays |
| blockAds | boolean | false | Block ads and trackers |
| json | boolean | false | Return JSON with base64 image instead of binary |
| og | string | — | OG public key (Pro/Business). Enables caching for <50ms responses. Get your key from the dashboard. |
curl "https://grabshot.dev/v1/screenshot?url=https://github.com&frame=browser&apiKey=YOUR_API_KEY" -o screenshot.png
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));
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)
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.
GrabShot supports PNG, JPEG, and WebP output formats. You can also add device frames (browser, phone, tablet) and adjust quality settings.
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.
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.
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.