The Screenshot API for Production
Screenshot API: One Call, Any Page, Any Format
Turn any URL into a pixel-perfect PNG, PDF, HTML source, or video recording with a single API call. Full browser rendering from 80+ countries, ad blocking, page interactions, and zero infrastructure to manage.
Real API demo: geolocated capture across 80+ countries.
Country and region routing
Run captures from distributed browsers across countries to validate localization, pricing, and content delivery behavior.
Page interactions
Use steps for click, type, wait, and targeted screenshots to capture dynamic experiences.
Ads and popup blocking
Hide ads and cookie banners for cleaner QA, monitoring, and reporting outputs.
Output variants
Generate screenshots plus HTML, PDF, video, and optimized thumbnails from one API pipeline.
Integrations
Connect to Slack, Google Drive, Dropbox, S3-compatible storage, Zapier, and webhooks.
Batch screenshots
Submit a URL list and capture thousands of pages in one job — with retries, progress tracking, and direct cloud storage delivery.
Website crawl
Point at a URL and automatically discover and screenshot every page on the domain — no URL list needed.
See the Screenshot API in Action
What one API request produces
PNG HTML
Screenshot API Integrations
Pipe screenshot API output directly to cloud storage, messaging, and workflow platforms. No manual file handling — screenshots flow from the API into your stack automatically.
Storage
Replace Puppeteer scripts with one API call
Stop managing headless browsers. Use the screenshot API for monitoring, compliance snapshots, ecommerce automation, social preview images, SEO audits, and reporting pipelines.
Screenshot API Comparisons
See how ScreenshotCenter compares
Official SDKs
Screenshot API libraries for every language
Python
Screenshots, PDFs, and authenticated pages from Django, Flask, or scripts.
JavaScript / Node.js
Capture from Express, Next.js, serverless functions, or CLI tools.
Java
Spring Boot, Micronaut, or standalone services.
Go
Idiomatic, concurrent-safe captures for Go services.
PHP
Laravel, Symfony, WordPress, or plain PHP.
C# / .NET
ASP.NET Core, Blazor, Azure Functions.
Ruby
Rails, Sinatra, Sidekiq, or standalone scripts.
All SDKs & docs
Browse all libraries and API documentation.
Use Cases
What teams build with the screenshot API
Authenticated screenshot API
Log into portals before capture.
Batch screenshot API
Capture thousands of URLs in one call.
Website crawl screenshots
Crawl and capture every page on a site.
Visual website backup
Archive screenshots and PDFs on a schedule.
SEO audit screenshots
Verify SERP snippets and OG images from 80+ countries.
Compliance screenshots
Timestamped evidence for legal and regulatory audits.
Ecommerce price monitoring
Track competitor pricing with localized captures.
Social preview image automation
Generate OG images and social cards automatically.
Screenshot API Pricing
Free to start, predictable at scale
Test the screenshot API with a free account. Move to paid plans for production volume, then negotiate dedicated capacity when you need it.
Trial
500 screenshots/month
Free
- ✓ Block ads and cookie banners
- ✓ PNG, JPEG and WebP
- ✓ Save HTML
- ✓ Full page screenshots
- ✓ 2 countries: United States + 1 of your choice
- ✓ Apps & Integrations
- ✓ Batches
Starter
2,000 screenshots/month
$15 / month
- ✓ Block ads and cookie banners
- + Render PDFs, HTML
- ✓ PNG, JPEG and WebP
- ✓ Full page screenshots
- ✓ 3 countries: United States, UK + 1 of your choice
- ✓ Apps & Integrations
- ✓ Batches
Most Popular
Plus
5,000 screenshots/month
$35 / month
- ✓ Block ads and cookie banners
- ✓ Render PDFs, HTML
- ✓ PNG, JPEG and WebP
- ✓ Full page screenshots
- + 5 countries: United States, UK, India, Australia + 1 of your choice
- ✓ Apps & Integrations
- ✓ Batches
Business
10,000 screenshots/month
$70 / month
- ✓ Block ads and cookie banners
- ✓ Render PDFs, HTML
- ✓ PNG, JPEG and WebP
- + Generate Videos
- ✓ Full page screenshots
- + 80+ countries
- ✓ Apps & Integrations
- ✓ Batches
- + Priority support
Enterprise
50,000 screenshots/month
$250 / month
- + Enterprise SSO: Okta, Ping Identity and more
- + Team management
- ✓ Block ads and cookie banners
- ✓ Render PDFs, HTML
- ✓ PNG, JPEG and WebP
- ✓ Generate Videos
- ✓ Full page screenshots
- ✓ 80+ countries
- ✓ Apps & Integrations
- ✓ Batches
- ✓ Priority support
On-Premise
Custom volume
Custom
- ✓ Run browsers on-premise or in your cloud
- ✓ Deploy SaaS on-premise or in your cloud
Plan comparison
| Plan | Price | Monthly volume | Highlights |
|---|---|---|---|
| Trial | Free | 500 screenshots/month | Block ads and cookie banners · PNG, JPEG and WebP |
| Starter | $15 / month | 2,000 screenshots/month | Block ads and cookie banners · Render PDFs, HTML |
| Plus | $35 / month | 5,000 screenshots/month | Block ads and cookie banners · Render PDFs, HTML |
| Business | $70 / month | 10,000 screenshots/month | Block ads and cookie banners · Render PDFs, HTML |
| Enterprise | $250 / month | 50,000 screenshots/month | Enterprise SSO: Okta, Ping Identity and more · Team management |
| On-Premise | Custom | Custom volume | Run browsers on-premise or in your cloud · Deploy SaaS on-premise or in your cloud |
Screenshot API pricing FAQ
Can I start free and upgrade later?
Yes. Start on the free Trial plan to validate your workflow, then upgrade to Starter or higher when you need more volume, additional countries, or PDF/HTML/video output.
Do PDF/video outputs change pricing?
Plans are designed around workload profile. Heavier rendering workflows generally map to Business or Enterprise tiers.
Do you offer annual contracts?
Yes for larger deployments. Contact sales to discuss annual terms and committed usage.
Can I get custom limits and support?
Yes. Enterprise and On-Premise plans can include dedicated capacity, custom limits, and support expectations.
Try the screenshot API now
Create a free account and make your first API call in under a minute. No credit card required.
Country routing demo
Automation steps demo
Output formats — one request, four outputs
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Browser Automation Screenshot API - Interact Before Capture</title><meta name="description" content="Automate interactions before capture: click, type, wait, scroll, target element screenshot, dark mode, ads/popup blocking, and video recording."><link rel="canonical" href="https://screenshotcenter.com/automation/"><meta property="og:title" content="Browser Automation Screenshot API - Interact Before Capture"><meta property="og:description" content="Automate interactions before capture: click, type, wait, scroll, target element screenshot, dark mode, ads/popup blocking, and video recording."><meta property="og:type" content="website"><meta property="og:url" content="https://screenshotcenter.com/automation/"><meta property="og:image" content="https://screenshotcenter.com/assets/logos/screenshotcenter-square.svg"><meta name="twitter:card" content="summary_large_image"><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="shortcut icon" href="/favicon.ico"><link rel="manifest" href="/site.webmanifest"><script src="https://cdn.tailwindcss.com"></script><script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: {
50: '#eff6ff',
100: '#dbeafe',
200: '#bfdbfe',
500: '#3b82f6',
600: '#146aea',
700: '#0f54bb',
900: '#0f172a'
}
}
}
}
}
</script><link rel="stylesheet" href="/assets/css/site.css"><script defer="" src="https://cdnjs.cloudflare.com/ajax/libs/flowbite/2.3.0/flowbite.min.js"></script><style>.code-card pre{margin:0;border-radius:0;font-size:.8125rem;line-height:1.65;padding:1.25rem 1.5rem!important;overflow-x:auto}.copy-btn.copied{background-color:#166534!important;color:#bbf7d0!important}
</style><style>*, ::before, ::after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/* ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com */*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}::after,::before{--tw-content:''}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.sticky{position:sticky}.top-0{top:0px}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.-mb-px{margin-bottom:-1px}.mr-3{margin-right:0.75rem}.mt-10{margin-top:2.5rem}.mt-14{margin-top:3.5rem}.mt-2{margin-top:0.5rem}.mt-3{margin-top:0.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-3\.5{height:0.875rem}.h-7{height:1.75rem}.h-\[54px\]{height:54px}.w-3\.5{width:0.875rem}.w-auto{width:auto}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-7xl{max-width:80rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1\.5{gap:0.375rem}.gap-3{gap:0.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-2 > :not([hidden]) ~ :not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.5rem * var(--tw-space-y-reverse))}.space-y-3 > :not([hidden]) ~ :not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.75rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:0.25rem}.rounded-2xl{border-radius:1rem}.rounded-lg{border-radius:0.5rem}.rounded-xl{border-radius:0.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-t{border-top-width:1px}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-slate-700{--tw-border-opacity:1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-primary-600{--tw-bg-opacity:1;background-color:rgb(20 106 234 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-700{--tw-bg-opacity:1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/90{background-color:rgb(255 255 255 / 0.9)}.object-cover{object-fit:cover}.p-6{padding:1.5rem}.px-1{padding-left:0.25rem;padding-right:0.25rem}.px-2{padding-left:0.5rem;padding-right:0.5rem}.px-3{padding-left:0.75rem;padding-right:0.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:0.125rem;padding-bottom:0.125rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:0.5rem;padding-bottom:0.5rem}.py-2\.5{padding-top:0.625rem;padding-bottom:0.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pt-6{padding-top:1.5rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-sm{font-size:0.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:0.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tracking-wide{letter-spacing:0.025em}.text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.text-primary-600{--tw-text-opacity:1;color:rgb(20 106 234 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow-sm{--tw-shadow:0 1px 2px 0 rgb(0 0 0 / 0.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color, background-color, border-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-text-decoration-color, -webkit-backdrop-filter;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.transition-colors{transition-property:color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.hover\:bg-primary-700:hover{--tw-bg-opacity:1;background-color:rgb(15 84 187 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-600:hover{--tw-bg-opacity:1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.hover\:text-primary-600:hover{--tw-text-opacity:1;color:rgb(20 106 234 / var(--tw-text-opacity, 1))}.hover\:text-primary-700:hover{--tw-text-opacity:1;color:rgb(15 84 187 / var(--tw-text-opacity, 1))}.hover\:text-slate-200:hover{--tw-text-opacity:1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media (min-width: 768px){.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media (min-width: 1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}}</style></head> <body class="bg-white antialiased"> <header class="border-b border-slate-200 bg-white/90 backdrop-blur sticky top-0 z-50"> <nav class="mx-auto max-w-7xl px-6 py-4"> <div class="flex items-center justify-between gap-6"> <a href="/" class="flex items-center gap-3"> <img src="/assets/logos/screenshotcenter-full.svg" alt="ScreenshotCenter" class="h-[54px] w-auto"> </a> <button type="button" class="md:hidden rounded-lg border border-slate-300 px-3 py-2 text-slate-700" data-mobile-toggle="">Menu</button> <div class="hidden md:flex items-center gap-6 text-sm text-slate-700"> <a data-nav-link="" href="/pricing/">Pricing</a><a data-nav-link="" href="/features/">Features</a><a data-nav-link="" href="/automation/" class="text-primary-600 font-semibold">Automation</a><a data-nav-link="" href="/apps/">Apps</a><a data-nav-link="" href="/countries/">Countries</a><a data-nav-link="" href="/libraries/">Libraries</a><a data-nav-link="" href="/help/">Help</a> <a href="https://app.screenshotcenter.com/signup" class="rounded-lg bg-primary-600 px-4 py-2 font-semibold text-white hover:bg-primary-700">Start Free</a> </div> </div> <div class="hidden mt-4 space-y-3 md:hidden" data-mobile-menu=""> <a class="block" data-nav-link="" href="/pricing/">Pricing</a><a class="block" data-nav-link="" href="/features/">Features</a><a class="block text-primary-600 font-semibold" data-nav-link="" href="/automation/">Automation</a><a class="block" data-nav-link="" href="/apps/">Apps</a><a class="block" data-nav-link="" href="/countries/">Countries</a><a class="block" data-nav-link="" href="/libraries/">Libraries</a><a class="block" data-nav-link="" href="/help/">Help</a> <a class="block rounded-lg bg-primary-600 px-4 py-2 font-semibold text-white text-center" href="https://app.screenshotcenter.com/signup">Start Free</a> </div> </nav> </header> <main> <section class="mx-auto max-w-7xl px-6 py-16"><p class="kicker text-primary-600">Automation API</p><h1 class="mt-3 text-4xl font-extrabold">Interact with the page before capturing</h1><p class="mt-4 max-w-3xl text-slate-600">Run scripted interactions to reach dynamic states. Useful for login walls, consent dialogs, JS apps, and modal-driven interfaces.</p><section class="mt-10 grid gap-4 md:grid-cols-2"><article class="feature-panel rounded-2xl p-6"><h2 class="font-bold text-xl">Steps commands</h2><p class="mt-2 text-slate-600">Use step commands like <code>click</code>, <code>type</code>, <code>wait</code>, and <code>screenshot</code> with optional <code>target</code> selectors.</p></article><article class="feature-panel rounded-2xl p-6"><h2 class="font-bold text-xl">Popup and cookie handling</h2><p class="mt-2 text-slate-600"><code>hide_popups=true</code> applies anti-banner methods and filter rules so screenshots focus on content.</p></article><article class="feature-panel rounded-2xl p-6"><h2 class="font-bold text-xl">Ad suppression</h2><p class="mt-2 text-slate-600"><code>hide_ads=true</code> minimizes ad noise in visual regression checks and monitoring snapshots.</p></article><article class="feature-panel rounded-2xl p-6"><h2 class="font-bold text-xl">Video evidence</h2><p class="mt-2 text-slate-600"><code>video=true</code> captures full interaction flow with <code>mp4</code>, <code>webm</code>, or <code>gif</code> format support.</p></article></section><!-- Demo GIF: login automation --><div class="mt-14"><p class="kicker text-primary-600">Live example</p><h2 class="mt-3 text-2xl font-bold">Login to a website, then capture</h2><p class="mt-3 max-w-2xl text-slate-600">
The automation fills the login form, submits it, waits for the dashboard to load, then takes a screenshot — all driven by the steps parameter.
</p><div class="mt-6 overflow-hidden rounded-2xl border border-slate-200 bg-black shadow-sm"><video src="/assets/media/automation-steps.webm" autoplay="" loop="" muted="" playsinline="" class="w-full object-cover"></video></div></div><!-- Demo: page interaction --><div class="mt-14"><p class="kicker text-primary-600">Live example</p><h2 class="mt-3 text-2xl font-bold">Interact with dynamic page elements</h2><p class="mt-3 max-w-2xl text-slate-600">
Trigger chart tooltips, run searches, expand tree nodes, open drawers — any interaction a real user would perform. Capture the exact state you need, not just the initial page load.
</p><div class="mt-6 overflow-hidden rounded-2xl border border-slate-200 bg-black shadow-sm"><video src="/assets/media/automation-site.webm" autoplay="" loop="" muted="" playsinline="" class="w-full object-cover"></video></div></div><!-- Code examples --><div class="mt-14"><p class="kicker text-primary-600">Code example</p><h2 class="mt-3 text-2xl font-bold">Run automation steps in your language of choice</h2><p class="mt-3 max-w-2xl text-slate-600">
Every SDK supports the full <code class="rounded bg-slate-100 px-1 py-0.5 text-sm font-mono">steps</code> parameter. Submit the job and poll or use a webhook to collect the result.
</p><div class="mt-6 code-card rounded-xl border border-slate-700 overflow-hidden bg-slate-900" data-code-group="automation"><div class="flex items-center bg-slate-800 border-b border-slate-700"><div class="flex overflow-x-auto flex-1 -mb-px"><button type="button" data-tab="curl" data-group="automation" class="code-tab flex items-center gap-1.5 px-4 py-2.5 text-xs font-medium whitespace-nowrap border-b-2 transition-colors border-blue-400 text-blue-300"><img src="https://cdn.simpleicons.org/curl/073551" class="h-3.5 w-3.5 flex-shrink-0" alt="" aria-hidden="true">curl</button><button type="button" data-tab="js" data-group="automation" class="code-tab flex items-center gap-1.5 px-4 py-2.5 text-xs font-medium whitespace-nowrap border-b-2 transition-colors border-transparent text-slate-400 hover:text-slate-200"><img src="https://cdn.simpleicons.org/javascript/F7DF1E" class="h-3.5 w-3.5 flex-shrink-0" alt="" aria-hidden="true">JavaScript</button><button type="button" data-tab="python" data-group="automation" class="code-tab flex items-center gap-1.5 px-4 py-2.5 text-xs font-medium whitespace-nowrap border-b-2 transition-colors border-transparent text-slate-400 hover:text-slate-200"><img src="https://cdn.simpleicons.org/python/3776AB" class="h-3.5 w-3.5 flex-shrink-0" alt="" aria-hidden="true">Python</button><button type="button" data-tab="php" data-group="automation" class="code-tab flex items-center gap-1.5 px-4 py-2.5 text-xs font-medium whitespace-nowrap border-b-2 transition-colors border-transparent text-slate-400 hover:text-slate-200"><img src="https://cdn.simpleicons.org/php/777BB4" class="h-3.5 w-3.5 flex-shrink-0" alt="" aria-hidden="true">PHP</button><button type="button" data-tab="go" data-group="automation" class="code-tab flex items-center gap-1.5 px-4 py-2.5 text-xs font-medium whitespace-nowrap border-b-2 transition-colors border-transparent text-slate-400 hover:text-slate-200"><img src="https://cdn.simpleicons.org/go/00ADD8" class="h-3.5 w-3.5 flex-shrink-0" alt="" aria-hidden="true">Go</button><button type="button" data-tab="ruby" data-group="automation" class="code-tab flex items-center gap-1.5 px-4 py-2.5 text-xs font-medium whitespace-nowrap border-b-2 transition-colors border-transparent text-slate-400 hover:text-slate-200"><img src="https://cdn.simpleicons.org/ruby/CC342D" class="h-3.5 w-3.5 flex-shrink-0" alt="" aria-hidden="true">Ruby</button><button type="button" data-tab="java" data-group="automation" class="code-tab flex items-center gap-1.5 px-4 py-2.5 text-xs font-medium whitespace-nowrap border-b-2 transition-colors border-transparent text-slate-400 hover:text-slate-200"><img src="https://cdn.simpleicons.org/openjdk/ED8B00" class="h-3.5 w-3.5 flex-shrink-0" alt="" aria-hidden="true">Java</button><button type="button" data-tab="csharp" data-group="automation" class="code-tab flex items-center gap-1.5 px-4 py-2.5 text-xs font-medium whitespace-nowrap border-b-2 transition-colors border-transparent text-slate-400 hover:text-slate-200"><img src="https://cdn.simpleicons.org/dotnet/512BD4" class="h-3.5 w-3.5 flex-shrink-0" alt="" aria-hidden="true">C#</button></div><button type="button" data-copy-group="automation" class="copy-btn flex-shrink-0 mr-3 text-xs font-medium text-slate-400 hover:text-white bg-slate-700 hover:bg-slate-600 rounded px-2 py-0.5 transition-colors">Copy</button></div><div data-panel="curl" data-group="automation" class="code-panel "><pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="bash"><code><span class="line"><span style="color:#B392F0">curl</span><span style="color:#79B8FF"> -X</span><span style="color:#9ECBFF"> POST</span><span style="color:#9ECBFF"> https://api.screenshotcenter.com/v1/screenshot</span><span style="color:#79B8FF"> \</span></span>
<span class="line"><span style="color:#79B8FF"> -H</span><span style="color:#9ECBFF"> "X-API-KEY: YOUR_API_KEY"</span><span style="color:#79B8FF"> \</span></span>
<span class="line"><span style="color:#79B8FF"> -H</span><span style="color:#9ECBFF"> "Content-Type: application/json"</span><span style="color:#79B8FF"> \</span></span>
<span class="line"><span style="color:#79B8FF"> -d</span><span style="color:#9ECBFF"> '{</span></span>
<span class="line"><span style="color:#9ECBFF"> "url": "https://example.com/dashboard",</span></span>
<span class="line"><span style="color:#9ECBFF"> "country": "us",</span></span>
<span class="line"><span style="color:#9ECBFF"> "steps": [</span></span>
<span class="line"><span style="color:#9ECBFF"> { "command": "click", "selector": "#login-btn" },</span></span>
<span class="line"><span style="color:#9ECBFF"> { "command": "type", "selector": "#email", "value": "user@example.com" },</span></span>
<span class="line"><span style="color:#9ECBFF"> { "command": "type", "selector": "#password", "value": "secret" },</span></span>
<span class="line"><span style="color:#9ECBFF"> { "command": "click", "selector": "button[type=submit]" },</span></span>
<span class="line"><span style="color:#9ECBFF"> { "command": "wait", "value": 1500 },</span></span>
<span class="line"><span style="color:#9ECBFF"> { "command": "screenshot", "target": ".dashboard" }</span></span>
<span class="line"><span style="color:#9ECBFF"> ],</span></span>
<span class="line"><span style="color:#9ECBFF"> "hide_popups": true,</span></span>
<span class="line"><span style="color:#9ECBFF"> "hide_ads": true,</span></span>
<span class="line"><span style="color:#9ECBFF"> "video": true,</span></span>
<span class="line"><span style="color:#9ECBFF"> "video_format": "mp4"</span></span>
<span class="line"><span style="color:#9ECBFF"> }'</span></span></code></pre></div><div data-panel="js" data-group="automation" class="code-panel hidden"><pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="javascript"><code><span class="line"><span style="color:#F97583">import</span><span style="color:#E1E4E8"> { ScreenshotCenterClient } </span><span style="color:#F97583">from</span><span style="color:#9ECBFF"> 'screenshotcenter'</span><span style="color:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#F97583">const</span><span style="color:#79B8FF"> client</span><span style="color:#F97583"> =</span><span style="color:#F97583"> new</span><span style="color:#B392F0"> ScreenshotCenterClient</span><span style="color:#E1E4E8">({ apiKey: </span><span style="color:#9ECBFF">'YOUR_API_KEY'</span><span style="color:#E1E4E8"> });</span></span>
<span class="line"></span>
<span class="line"><span style="color:#F97583">const</span><span style="color:#79B8FF"> screenshot</span><span style="color:#F97583"> =</span><span style="color:#F97583"> await</span><span style="color:#E1E4E8"> client.screenshot.</span><span style="color:#B392F0">create</span><span style="color:#E1E4E8">({</span></span>
<span class="line"><span style="color:#E1E4E8"> url: </span><span style="color:#9ECBFF">'https://example.com/dashboard'</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#E1E4E8"> country: </span><span style="color:#9ECBFF">'us'</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#E1E4E8"> steps: [</span></span>
<span class="line"><span style="color:#E1E4E8"> { command: </span><span style="color:#9ECBFF">'click'</span><span style="color:#E1E4E8">, selector: </span><span style="color:#9ECBFF">'#login-btn'</span><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#E1E4E8"> { command: </span><span style="color:#9ECBFF">'type'</span><span style="color:#E1E4E8">, selector: </span><span style="color:#9ECBFF">'#email'</span><span style="color:#E1E4E8">, value: </span><span style="color:#9ECBFF">'user@example.com'</span><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#E1E4E8"> { command: </span><span style="color:#9ECBFF">'type'</span><span style="color:#E1E4E8">, selector: </span><span style="color:#9ECBFF">'#password'</span><span style="color:#E1E4E8">, value: </span><span style="color:#9ECBFF">'secret'</span><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#E1E4E8"> { command: </span><span style="color:#9ECBFF">'click'</span><span style="color:#E1E4E8">, selector: </span><span style="color:#9ECBFF">'button[type=submit]'</span><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#E1E4E8"> { command: </span><span style="color:#9ECBFF">'wait'</span><span style="color:#E1E4E8">, value: </span><span style="color:#79B8FF">1500</span><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#E1E4E8"> { command: </span><span style="color:#9ECBFF">'screenshot'</span><span style="color:#E1E4E8">, target: </span><span style="color:#9ECBFF">'.dashboard'</span><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#E1E4E8"> ],</span></span>
<span class="line"><span style="color:#E1E4E8"> hide_popups: </span><span style="color:#79B8FF">true</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#E1E4E8"> hide_ads: </span><span style="color:#79B8FF">true</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#E1E4E8"> video: </span><span style="color:#79B8FF">true</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#E1E4E8"> video_format: </span><span style="color:#9ECBFF">'mp4'</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#E1E4E8">});</span></span>
<span class="line"></span>
<span class="line"><span style="color:#F97583">const</span><span style="color:#79B8FF"> result</span><span style="color:#F97583"> =</span><span style="color:#F97583"> await</span><span style="color:#E1E4E8"> client.</span><span style="color:#B392F0">waitFor</span><span style="color:#E1E4E8">(screenshot.id);</span></span>
<span class="line"><span style="color:#E1E4E8">console.</span><span style="color:#B392F0">log</span><span style="color:#E1E4E8">(result.screenshot_url);</span></span></code></pre></div><div data-panel="python" data-group="automation" class="code-panel hidden"><pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="python"><code><span class="line"><span style="color:#F97583">from</span><span style="color:#E1E4E8"> screenshotcenter </span><span style="color:#F97583">import</span><span style="color:#E1E4E8"> ScreenshotCenterClient</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E1E4E8">client </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> ScreenshotCenterClient(</span><span style="color:#FFAB70">api_key</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"YOUR_API_KEY"</span><span style="color:#E1E4E8">)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E1E4E8">shot </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> client.screenshot.create(</span></span>
<span class="line"><span style="color:#FFAB70"> url</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"https://example.com/dashboard"</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#FFAB70"> country</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"us"</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#FFAB70"> steps</span><span style="color:#F97583">=</span><span style="color:#E1E4E8">[</span></span>
<span class="line"><span style="color:#E1E4E8"> {</span><span style="color:#9ECBFF">"command"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"click"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"selector"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"#login-btn"</span><span style="color:#E1E4E8">},</span></span>
<span class="line"><span style="color:#E1E4E8"> {</span><span style="color:#9ECBFF">"command"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"type"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"selector"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"#email"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"value"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"user@example.com"</span><span style="color:#E1E4E8">},</span></span>
<span class="line"><span style="color:#E1E4E8"> {</span><span style="color:#9ECBFF">"command"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"type"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"selector"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"#password"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"value"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"secret"</span><span style="color:#E1E4E8">},</span></span>
<span class="line"><span style="color:#E1E4E8"> {</span><span style="color:#9ECBFF">"command"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"click"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"selector"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"button[type=submit]"</span><span style="color:#E1E4E8">},</span></span>
<span class="line"><span style="color:#E1E4E8"> {</span><span style="color:#9ECBFF">"command"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"wait"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"value"</span><span style="color:#E1E4E8">: </span><span style="color:#79B8FF">1500</span><span style="color:#E1E4E8">},</span></span>
<span class="line"><span style="color:#E1E4E8"> {</span><span style="color:#9ECBFF">"command"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">"screenshot"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"target"</span><span style="color:#E1E4E8">: </span><span style="color:#9ECBFF">".dashboard"</span><span style="color:#E1E4E8">},</span></span>
<span class="line"><span style="color:#E1E4E8"> ],</span></span>
<span class="line"><span style="color:#FFAB70"> hide_popups</span><span style="color:#F97583">=</span><span style="color:#79B8FF">True</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#FFAB70"> hide_ads</span><span style="color:#F97583">=</span><span style="color:#79B8FF">True</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#FFAB70"> video</span><span style="color:#F97583">=</span><span style="color:#79B8FF">True</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#FFAB70"> video_format</span><span style="color:#F97583">=</span><span style="color:#9ECBFF">"mp4"</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#E1E4E8">)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E1E4E8">result </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> client.wait_for(shot[</span><span style="color:#9ECBFF">"id"</span><span style="color:#E1E4E8">])</span></span>
<span class="line"><span style="color:#79B8FF">print</span><span style="color:#E1E4E8">(result[</span><span style="color:#9ECBFF">"screenshot_url"</span><span style="color:#E1E4E8">])</span></span></code></pre></div><div data-panel="php" data-group="automation" class="code-panel hidden"><pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="php"><code><span class="line"><span style="color:#F97583">use</span><span style="color:#79B8FF"> ScreenshotCenter\Client</span><span style="color:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E1E4E8">$client </span><span style="color:#F97583">=</span><span style="color:#F97583"> new</span><span style="color:#79B8FF"> Client</span><span style="color:#E1E4E8">(</span><span style="color:#79B8FF">getenv</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">'SCREENSHOTCENTER_API_KEY'</span><span style="color:#E1E4E8">));</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E1E4E8">$shot </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> $client</span><span style="color:#F97583">-></span><span style="color:#E1E4E8">screenshot</span><span style="color:#F97583">-></span><span style="color:#B392F0">create</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">'https://example.com/dashboard'</span><span style="color:#E1E4E8">, [</span></span>
<span class="line"><span style="color:#9ECBFF"> 'country'</span><span style="color:#F97583"> =></span><span style="color:#9ECBFF"> 'us'</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#9ECBFF"> 'steps'</span><span style="color:#F97583"> =></span><span style="color:#E1E4E8"> [</span></span>
<span class="line"><span style="color:#E1E4E8"> [</span><span style="color:#9ECBFF">'command'</span><span style="color:#F97583"> =></span><span style="color:#9ECBFF"> 'click'</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">'selector'</span><span style="color:#F97583"> =></span><span style="color:#9ECBFF"> '#login-btn'</span><span style="color:#E1E4E8">],</span></span>
<span class="line"><span style="color:#E1E4E8"> [</span><span style="color:#9ECBFF">'command'</span><span style="color:#F97583"> =></span><span style="color:#9ECBFF"> 'type'</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">'selector'</span><span style="color:#F97583"> =></span><span style="color:#9ECBFF"> '#email'</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">'value'</span><span style="color:#F97583"> =></span><span style="color:#9ECBFF"> 'user@example.com'</span><span style="color:#E1E4E8">],</span></span>
<span class="line"><span style="color:#E1E4E8"> [</span><span style="color:#9ECBFF">'command'</span><span style="color:#F97583"> =></span><span style="color:#9ECBFF"> 'type'</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">'selector'</span><span style="color:#F97583"> =></span><span style="color:#9ECBFF"> '#password'</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">'value'</span><span style="color:#F97583"> =></span><span style="color:#9ECBFF"> 'secret'</span><span style="color:#E1E4E8">],</span></span>
<span class="line"><span style="color:#E1E4E8"> [</span><span style="color:#9ECBFF">'command'</span><span style="color:#F97583"> =></span><span style="color:#9ECBFF"> 'click'</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">'selector'</span><span style="color:#F97583"> =></span><span style="color:#9ECBFF"> 'button[type=submit]'</span><span style="color:#E1E4E8">],</span></span>
<span class="line"><span style="color:#E1E4E8"> [</span><span style="color:#9ECBFF">'command'</span><span style="color:#F97583"> =></span><span style="color:#9ECBFF"> 'wait'</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">'value'</span><span style="color:#F97583"> =></span><span style="color:#79B8FF"> 1500</span><span style="color:#E1E4E8">],</span></span>
<span class="line"><span style="color:#E1E4E8"> [</span><span style="color:#9ECBFF">'command'</span><span style="color:#F97583"> =></span><span style="color:#9ECBFF"> 'screenshot'</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">'target'</span><span style="color:#F97583"> =></span><span style="color:#9ECBFF"> '.dashboard'</span><span style="color:#E1E4E8">],</span></span>
<span class="line"><span style="color:#E1E4E8"> ],</span></span>
<span class="line"><span style="color:#9ECBFF"> 'hide_popups'</span><span style="color:#F97583"> =></span><span style="color:#79B8FF"> true</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#9ECBFF"> 'hide_ads'</span><span style="color:#F97583"> =></span><span style="color:#79B8FF"> true</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#9ECBFF"> 'video'</span><span style="color:#F97583"> =></span><span style="color:#79B8FF"> true</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#9ECBFF"> 'video_format'</span><span style="color:#F97583"> =></span><span style="color:#9ECBFF"> 'mp4'</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#E1E4E8">]);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E1E4E8">$result </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> $client</span><span style="color:#F97583">-></span><span style="color:#B392F0">waitFor</span><span style="color:#E1E4E8">($shot[</span><span style="color:#9ECBFF">'id'</span><span style="color:#E1E4E8">]);</span></span>
<span class="line"><span style="color:#79B8FF">echo</span><span style="color:#E1E4E8"> $result[</span><span style="color:#9ECBFF">'screenshot_url'</span><span style="color:#E1E4E8">];</span></span></code></pre></div><div data-panel="go" data-group="automation" class="code-panel hidden"><pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="go"><code><span class="line"><span style="color:#F97583">import</span><span style="color:#E1E4E8"> sc </span><span style="color:#9ECBFF">"</span><span style="color:#B392F0">github.com/juliensobrier/screenshotcenter-go</span><span style="color:#9ECBFF">"</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E1E4E8">client </span><span style="color:#F97583">:=</span><span style="color:#E1E4E8"> sc.</span><span style="color:#B392F0">New</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"YOUR_API_KEY"</span><span style="color:#E1E4E8">)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E1E4E8">videoTrue </span><span style="color:#F97583">:=</span><span style="color:#79B8FF"> true</span></span>
<span class="line"><span style="color:#E1E4E8">shot, err </span><span style="color:#F97583">:=</span><span style="color:#E1E4E8"> client.Screenshot.</span><span style="color:#B392F0">Create</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"https://example.com/dashboard"</span><span style="color:#E1E4E8">, </span><span style="color:#F97583">&</span><span style="color:#B392F0">sc</span><span style="color:#E1E4E8">.</span><span style="color:#B392F0">CreateParams</span><span style="color:#E1E4E8">{</span></span>
<span class="line"><span style="color:#E1E4E8"> Country: </span><span style="color:#9ECBFF">"us"</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#E1E4E8"> Steps: []</span><span style="color:#B392F0">sc</span><span style="color:#E1E4E8">.</span><span style="color:#B392F0">Step</span><span style="color:#E1E4E8">{</span></span>
<span class="line"><span style="color:#E1E4E8"> {Command: </span><span style="color:#9ECBFF">"click"</span><span style="color:#E1E4E8">, Selector: </span><span style="color:#9ECBFF">"#login-btn"</span><span style="color:#E1E4E8">},</span></span>
<span class="line"><span style="color:#E1E4E8"> {Command: </span><span style="color:#9ECBFF">"type"</span><span style="color:#E1E4E8">, Selector: </span><span style="color:#9ECBFF">"#email"</span><span style="color:#E1E4E8">, Value: </span><span style="color:#9ECBFF">"user@example.com"</span><span style="color:#E1E4E8">},</span></span>
<span class="line"><span style="color:#E1E4E8"> {Command: </span><span style="color:#9ECBFF">"type"</span><span style="color:#E1E4E8">, Selector: </span><span style="color:#9ECBFF">"#password"</span><span style="color:#E1E4E8">, Value: </span><span style="color:#9ECBFF">"secret"</span><span style="color:#E1E4E8">},</span></span>
<span class="line"><span style="color:#E1E4E8"> {Command: </span><span style="color:#9ECBFF">"click"</span><span style="color:#E1E4E8">, Selector: </span><span style="color:#9ECBFF">"button[type=submit]"</span><span style="color:#E1E4E8">},</span></span>
<span class="line"><span style="color:#E1E4E8"> {Command: </span><span style="color:#9ECBFF">"wait"</span><span style="color:#E1E4E8">, Value: </span><span style="color:#9ECBFF">"1500"</span><span style="color:#E1E4E8">},</span></span>
<span class="line"><span style="color:#E1E4E8"> {Command: </span><span style="color:#9ECBFF">"screenshot"</span><span style="color:#E1E4E8">, Target: </span><span style="color:#9ECBFF">".dashboard"</span><span style="color:#E1E4E8">},</span></span>
<span class="line"><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#E1E4E8"> HidePopups: </span><span style="color:#79B8FF">true</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#E1E4E8"> HideAds: </span><span style="color:#79B8FF">true</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#E1E4E8"> Video: </span><span style="color:#F97583">&</span><span style="color:#E1E4E8">videoTrue,</span></span>
<span class="line"><span style="color:#E1E4E8"> VideoFormat: </span><span style="color:#9ECBFF">"mp4"</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#E1E4E8">})</span></span>
<span class="line"><span style="color:#F97583">if</span><span style="color:#E1E4E8"> err </span><span style="color:#F97583">!=</span><span style="color:#79B8FF"> nil</span><span style="color:#E1E4E8"> { log.</span><span style="color:#B392F0">Fatal</span><span style="color:#E1E4E8">(err) }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E1E4E8">result, _ </span><span style="color:#F97583">:=</span><span style="color:#E1E4E8"> client.</span><span style="color:#B392F0">WaitFor</span><span style="color:#E1E4E8">(shot.ID, </span><span style="color:#79B8FF">nil</span><span style="color:#E1E4E8">)</span></span>
<span class="line"><span style="color:#E1E4E8">fmt.</span><span style="color:#B392F0">Println</span><span style="color:#E1E4E8">(result.ScreenshotURL)</span></span></code></pre></div><div data-panel="ruby" data-group="automation" class="code-panel hidden"><pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="ruby"><code><span class="line"><span style="color:#F97583">require</span><span style="color:#9ECBFF"> "screenshotcenter"</span></span>
<span class="line"></span>
<span class="line"><span style="color:#FFAB70">client</span><span style="color:#F97583"> =</span><span style="color:#79B8FF"> ScreenshotCenter</span><span style="color:#E1E4E8">::</span><span style="color:#79B8FF">Client</span><span style="color:#E1E4E8">.</span><span style="color:#F97583">new</span><span style="color:#E1E4E8">(</span><span style="color:#79B8FF">ENV</span><span style="color:#E1E4E8">[</span><span style="color:#9ECBFF">"SCREENSHOTCENTER_API_KEY"</span><span style="color:#E1E4E8">])</span></span>
<span class="line"></span>
<span class="line"><span style="color:#FFAB70">shot</span><span style="color:#F97583"> =</span><span style="color:#E1E4E8"> client.</span><span style="color:#B392F0">screenshot</span><span style="color:#E1E4E8">.</span><span style="color:#B392F0">create</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"https://example.com/dashboard"</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#79B8FF"> country:</span><span style="color:#9ECBFF"> "us"</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#79B8FF"> steps:</span><span style="color:#E1E4E8"> [</span></span>
<span class="line"><span style="color:#E1E4E8"> { </span><span style="color:#79B8FF">command:</span><span style="color:#9ECBFF"> "click"</span><span style="color:#E1E4E8">, </span><span style="color:#79B8FF">selector:</span><span style="color:#9ECBFF"> "#login-btn"</span><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#E1E4E8"> { </span><span style="color:#79B8FF">command:</span><span style="color:#9ECBFF"> "type"</span><span style="color:#E1E4E8">, </span><span style="color:#79B8FF">selector:</span><span style="color:#9ECBFF"> "#email"</span><span style="color:#E1E4E8">, </span><span style="color:#79B8FF">value:</span><span style="color:#9ECBFF"> "user@example.com"</span><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#E1E4E8"> { </span><span style="color:#79B8FF">command:</span><span style="color:#9ECBFF"> "type"</span><span style="color:#E1E4E8">, </span><span style="color:#79B8FF">selector:</span><span style="color:#9ECBFF"> "#password"</span><span style="color:#E1E4E8">, </span><span style="color:#79B8FF">value:</span><span style="color:#9ECBFF"> "secret"</span><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#E1E4E8"> { </span><span style="color:#79B8FF">command:</span><span style="color:#9ECBFF"> "click"</span><span style="color:#E1E4E8">, </span><span style="color:#79B8FF">selector:</span><span style="color:#9ECBFF"> "button[type=submit]"</span><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#E1E4E8"> { </span><span style="color:#79B8FF">command:</span><span style="color:#9ECBFF"> "wait"</span><span style="color:#E1E4E8">, </span><span style="color:#79B8FF">value:</span><span style="color:#79B8FF"> 1500</span><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#E1E4E8"> { </span><span style="color:#79B8FF">command:</span><span style="color:#9ECBFF"> "screenshot"</span><span style="color:#E1E4E8">, </span><span style="color:#79B8FF">target:</span><span style="color:#9ECBFF"> ".dashboard"</span><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#E1E4E8"> ],</span></span>
<span class="line"><span style="color:#79B8FF"> hide_popups:</span><span style="color:#79B8FF"> true</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#79B8FF"> hide_ads:</span><span style="color:#79B8FF"> true</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#79B8FF"> video:</span><span style="color:#79B8FF"> true</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#79B8FF"> video_format:</span><span style="color:#9ECBFF"> "mp4"</span></span>
<span class="line"><span style="color:#E1E4E8">)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#FFAB70">result</span><span style="color:#F97583"> =</span><span style="color:#E1E4E8"> client.</span><span style="color:#B392F0">wait_for</span><span style="color:#E1E4E8">(shot[</span><span style="color:#9ECBFF">"id"</span><span style="color:#E1E4E8">])</span></span>
<span class="line"><span style="color:#79B8FF">puts</span><span style="color:#E1E4E8"> result[</span><span style="color:#9ECBFF">"screenshot_url"</span><span style="color:#E1E4E8">]</span></span></code></pre></div><div data-panel="java" data-group="automation" class="code-panel hidden"><pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="java"><code><span class="line"><span style="color:#F97583">import</span><span style="color:#E1E4E8"> com.screenshotcenter.ScreenshotCenterClient;</span></span>
<span class="line"><span style="color:#F97583">import</span><span style="color:#E1E4E8"> java.util.</span><span style="color:#79B8FF">*</span><span style="color:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E1E4E8">ScreenshotCenterClient client </span><span style="color:#F97583">=</span><span style="color:#F97583"> new</span><span style="color:#B392F0"> ScreenshotCenterClient</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"YOUR_API_KEY"</span><span style="color:#E1E4E8">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#F97583">var</span><span style="color:#E1E4E8"> steps </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> List.</span><span style="color:#B392F0">of</span><span style="color:#E1E4E8">(</span></span>
<span class="line"><span style="color:#E1E4E8"> Map.</span><span style="color:#B392F0">of</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"command"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"click"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"selector"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"#login-btn"</span><span style="color:#E1E4E8">),</span></span>
<span class="line"><span style="color:#E1E4E8"> Map.</span><span style="color:#B392F0">of</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"command"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"type"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"selector"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"#email"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"value"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"user@example.com"</span><span style="color:#E1E4E8">),</span></span>
<span class="line"><span style="color:#E1E4E8"> Map.</span><span style="color:#B392F0">of</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"command"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"type"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"selector"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"#password"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"value"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"secret"</span><span style="color:#E1E4E8">),</span></span>
<span class="line"><span style="color:#E1E4E8"> Map.</span><span style="color:#B392F0">of</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"command"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"click"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"selector"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"button[type=submit]"</span><span style="color:#E1E4E8">),</span></span>
<span class="line"><span style="color:#E1E4E8"> Map.</span><span style="color:#B392F0">of</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"command"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"wait"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"value"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"1500"</span><span style="color:#E1E4E8">),</span></span>
<span class="line"><span style="color:#E1E4E8"> Map.</span><span style="color:#B392F0">of</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"command"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"screenshot"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"target"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">".dashboard"</span><span style="color:#E1E4E8">)</span></span>
<span class="line"><span style="color:#E1E4E8">);</span></span>
<span class="line"><span style="color:#F97583">var</span><span style="color:#E1E4E8"> params </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> Map.</span><span style="color:#B392F0">of</span><span style="color:#E1E4E8">(</span></span>
<span class="line"><span style="color:#9ECBFF"> "country"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"us"</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#9ECBFF"> "steps"</span><span style="color:#E1E4E8">, steps,</span></span>
<span class="line"><span style="color:#9ECBFF"> "hide_popups"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"true"</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#9ECBFF"> "hide_ads"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"true"</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#9ECBFF"> "video"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"true"</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#9ECBFF"> "video_format"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"mp4"</span></span>
<span class="line"><span style="color:#E1E4E8">);</span></span>
<span class="line"><span style="color:#F97583">var</span><span style="color:#E1E4E8"> shot </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> client.</span><span style="color:#B392F0">screenshot</span><span style="color:#E1E4E8">().</span><span style="color:#B392F0">create</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"https://example.com/dashboard"</span><span style="color:#E1E4E8">, params);</span></span>
<span class="line"><span style="color:#F97583">var</span><span style="color:#E1E4E8"> result </span><span style="color:#F97583">=</span><span style="color:#E1E4E8"> client.</span><span style="color:#B392F0">waitFor</span><span style="color:#E1E4E8">(shot.</span><span style="color:#B392F0">getLong</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"id"</span><span style="color:#E1E4E8">), </span><span style="color:#79B8FF">null</span><span style="color:#E1E4E8">, </span><span style="color:#79B8FF">null</span><span style="color:#E1E4E8">);</span></span>
<span class="line"><span style="color:#E1E4E8">System.out.</span><span style="color:#B392F0">println</span><span style="color:#E1E4E8">(result.</span><span style="color:#B392F0">getString</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"screenshot_url"</span><span style="color:#E1E4E8">));</span></span></code></pre></div><div data-panel="csharp" data-group="automation" class="code-panel hidden"><pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="csharp"><code><span class="line"><span style="color:#F97583">using</span><span style="color:#B392F0"> ScreenshotCenter</span><span style="color:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#F97583">var</span><span style="color:#B392F0"> client</span><span style="color:#F97583"> =</span><span style="color:#F97583"> new</span><span style="color:#B392F0"> ScreenshotCenterClient</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"YOUR_API_KEY"</span><span style="color:#E1E4E8">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#F97583">var</span><span style="color:#B392F0"> shot</span><span style="color:#F97583"> =</span><span style="color:#F97583"> await</span><span style="color:#E1E4E8"> client.Screenshot.</span><span style="color:#B392F0">CreateAsync</span><span style="color:#E1E4E8">(</span><span style="color:#9ECBFF">"https://example.com/dashboard"</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#F97583"> new</span><span style="color:#B392F0"> Dictionary</span><span style="color:#E1E4E8"><</span><span style="color:#F97583">string</span><span style="color:#E1E4E8">, </span><span style="color:#F97583">object</span><span style="color:#E1E4E8">> {</span></span>
<span class="line"><span style="color:#E1E4E8"> [</span><span style="color:#9ECBFF">"country"</span><span style="color:#E1E4E8">] </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "us"</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#E1E4E8"> [</span><span style="color:#9ECBFF">"steps"</span><span style="color:#E1E4E8">] </span><span style="color:#F97583">=</span><span style="color:#F97583"> new</span><span style="color:#E1E4E8">[] {</span></span>
<span class="line"><span style="color:#F97583"> new</span><span style="color:#E1E4E8"> { command </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "click"</span><span style="color:#E1E4E8">, selector </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "#login-btn"</span><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#F97583"> new</span><span style="color:#E1E4E8"> { command </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "type"</span><span style="color:#E1E4E8">, selector </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "#email"</span><span style="color:#E1E4E8">, value </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "user@example.com"</span><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#F97583"> new</span><span style="color:#E1E4E8"> { command </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "type"</span><span style="color:#E1E4E8">, selector </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "#password"</span><span style="color:#E1E4E8">, value </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "secret"</span><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#F97583"> new</span><span style="color:#E1E4E8"> { command </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "click"</span><span style="color:#E1E4E8">, selector </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "button[type=submit]"</span><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#F97583"> new</span><span style="color:#E1E4E8"> { command </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "wait"</span><span style="color:#E1E4E8">, value </span><span style="color:#F97583">=</span><span style="color:#79B8FF"> 1500</span><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#F97583"> new</span><span style="color:#E1E4E8"> { command </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "screenshot"</span><span style="color:#E1E4E8">, target </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> ".dashboard"</span><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#E1E4E8"> },</span></span>
<span class="line"><span style="color:#E1E4E8"> [</span><span style="color:#9ECBFF">"hide_popups"</span><span style="color:#E1E4E8">] </span><span style="color:#F97583">=</span><span style="color:#79B8FF"> true</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#E1E4E8"> [</span><span style="color:#9ECBFF">"hide_ads"</span><span style="color:#E1E4E8">] </span><span style="color:#F97583">=</span><span style="color:#79B8FF"> true</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#E1E4E8"> [</span><span style="color:#9ECBFF">"video"</span><span style="color:#E1E4E8">] </span><span style="color:#F97583">=</span><span style="color:#79B8FF"> true</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#E1E4E8"> [</span><span style="color:#9ECBFF">"video_format"</span><span style="color:#E1E4E8">] </span><span style="color:#F97583">=</span><span style="color:#9ECBFF"> "mp4"</span><span style="color:#E1E4E8">,</span></span>
<span class="line"><span style="color:#E1E4E8"> });</span></span>
<span class="line"></span>
<span class="line"><span style="color:#F97583">var</span><span style="color:#B392F0"> result</span><span style="color:#F97583"> =</span><span style="color:#F97583"> await</span><span style="color:#E1E4E8"> client.</span><span style="color:#B392F0">WaitForAsync</span><span style="color:#E1E4E8">(shot.Id);</span></span>
<span class="line"><span style="color:#E1E4E8">Console.</span><span style="color:#B392F0">WriteLine</span><span style="color:#E1E4E8">(result.ScreenshotUrl);</span></span></code></pre></div></div><div class="mt-4 flex flex-wrap gap-4 text-sm"><a href="/libraries/" class="text-primary-600 hover:text-primary-700 transition-colors">Browse all SDK docs →</a><a href="/developers/" class="text-primary-600 hover:text-primary-700 transition-colors">Full API reference →</a></div></div></section> </main> <footer class="border-t border-slate-200 bg-white"> <div class="mx-auto max-w-7xl px-6 py-12"> <div class="grid gap-8 sm:grid-cols-2 lg:grid-cols-3"> <section> <h2 class="text-sm font-semibold uppercase tracking-wide text-slate-900">Integrations</h2> <ul class="mt-3 space-y-2"> <li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/apps/google-drive/">Google Drive</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/apps/sharepoint/">Microsoft SharePoint</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/apps/s3/">AWS S3</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/apps/zapier/">Zapier</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/apps/n8n/">n8n</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/apps/">All Integrations →</a> </li> </ul> </section><section> <h2 class="text-sm font-semibold uppercase tracking-wide text-slate-900">Use Cases</h2> <ul class="mt-3 space-y-2"> <li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/use-cases/screenshot-behind-login/">Screenshot Behind a Login</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/use-cases/web-page-data-extraction/">Web Page Data Extraction</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/use-cases/batch-screenshots/">Batch Screenshots</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/use-cases/visual-website-backup/">Visual Website Backup</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/use-cases/">All Use Cases →</a> </li> </ul> </section><section> <h2 class="text-sm font-semibold uppercase tracking-wide text-slate-900">Resources</h2> <ul class="mt-3 space-y-2"> <li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/developers/">API Documentation</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/libraries/">SDK and Code Examples</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/blog/">Blog</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/what-is-screenshot-api/">What is a screenshot API?</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/compare/best-screenshot-api/">The best screenshot API</a> </li> </ul> </section><section> <h2 class="text-sm font-semibold uppercase tracking-wide text-slate-900">Screenshot APIs</h2> <ul class="mt-3 space-y-2"> <li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/libraries/javascript/">Node.js Screenshot API</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/libraries/java/">Java Screenshot API</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/libraries/go/">Go Screenshot API</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/libraries/python/">Python Screenshot API</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/libraries/dotnet/">C# (.NET) Screenshot API</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/libraries/php/">PHP Screenshot API</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/libraries/ruby/">Ruby Screenshot API</a> </li> </ul> </section><section> <h2 class="text-sm font-semibold uppercase tracking-wide text-slate-900">Product</h2> <ul class="mt-3 space-y-2"> <li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/product/video-generation-api/">Video Generation API</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/product/pdf-generation-api/">PDF Generation API</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/product/screenshot-api/">Screenshot API</a> </li> </ul> </section><section> <h2 class="text-sm font-semibold uppercase tracking-wide text-slate-900">Legal</h2> <ul class="mt-3 space-y-2"> <li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/legal/privacy-policy/">Privacy Policy</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/legal/security-compliance/">Security Compliance</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/legal/terms-of-service/">Terms of Service</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/affiliate-program/">Affiliate Program</a> </li><li> <a class="text-sm text-slate-600 transition hover:text-primary-600" href="/status/">Status</a> </li> </ul> </section> </div> <div class="mt-10 border-t border-slate-200 pt-6 text-sm text-slate-600"> <div class="flex flex-wrap items-center justify-between gap-4"> <div class="flex items-center gap-3"> <img src="/assets/logos/screenshotcenter-small.svg" alt="ScreenshotCenter" class="h-7 w-auto"> <span>© <span data-current-year="">2026</span> ScreenshotCenter</span> </div> <div class="flex flex-wrap gap-4"> <a class="hover:text-primary-600" href="/">Home</a> <a class="hover:text-primary-600" href="/features/">Features</a> <a class="hover:text-primary-600" href="/developers/">Developers</a> <a class="hover:text-primary-600" href="https://app.screenshotcenter.com/login">Dashboard</a> </div> </div> </div> </div> </footer> <script src="/assets/js/site.js"></script> <!-- Cloudflare Pages Analytics --><script defer="" src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon="{"token": "92a1399fdaee4ff0b393887fcb799aa6"}"></script><!-- Cloudflare Pages Analytics --> <script type="module">document.querySelectorAll("button.code-tab").forEach(t=>{t.addEventListener("click",()=>{const o=t.dataset.group,a=t.dataset.tab;!o||!a||(document.querySelectorAll(`button.code-tab[data-group="${o}"]`).forEach(e=>{const c=e.dataset.tab===a;e.classList.toggle("border-blue-400",c),e.classList.toggle("text-blue-300",c),e.classList.toggle("border-transparent",!c),e.classList.toggle("text-slate-400",!c)}),document.querySelectorAll(`[data-panel][data-group="${o}"]`).forEach(e=>{e.classList.toggle("hidden",e.dataset.panel!==a)}))})});document.querySelectorAll("button[data-copy-group]").forEach(t=>{t.addEventListener("click",async()=>{const o=t.dataset.copyGroup;if(!o)return;const e=document.querySelector(`[data-panel][data-group="${o}"]:not(.hidden)`)?.querySelector("pre")?.textContent??"";try{await navigator.clipboard.writeText(e),t.textContent="Copied!",t.classList.add("copied"),setTimeout(()=>{t.textContent="Copy",t.classList.remove("copied")},2e3)}catch{t.textContent="Failed",setTimeout(()=>{t.textContent="Copy"},2e3)}})});</script></body></html> All four outputs are generated from a single API request — add format=png, video=1, pdf=1, or html=1 to any screenshot request.