Page Inspect
Internal Links
40
External Links
12
Images
13
Headings
16
Page Content
Title:The Screenshot API for developers
Description:ScreenshotOne is the best screenshot rendering platform for developers.
HTML Size:146 KB
Markdown Size:11 KB
Fetched At:November 18, 2025
Page Structure
h1The screenshot API for developers
h2Take clean screenshots
h2Render precisely as you need
h2Take screenshots for any screen size
h2Use the language you love
h2No-code integrations
h2Automate website screenshots
h2Footer
h3Integrations
h3Resources
h3Screenshot Tools
h3Product
h3Use Cases
h3Customers
h3Compare
h3Legal
Markdown Content
The Screenshot API for developers
Scrolling Screenshots Pricing Customers Docs Blog Changelog
Sign In Dashboard Sign Up Book a demo
Toggle menu
Scrolling Screenshots Pricing Customers Docs Blog Changelog
* * *
Sign in Sign up Book a demo Dashboard
What's new Featured on Cloudflare Featured in the Cloudflare "Built With" series
# The screenshot API for developers
Render screenshots in one simple API call, instead of managing browser clusters, and handling all the corner cases.
Start rendering for free → Book a demo
No credit card required.
https://api.screenshotone.com/take? url=https://stripe.com
"Great support."
**Guillaume Barillot,** CTO at Deepidoo
"Great company, great founder!"
**Mike Roberts,** Founder at SpyFu
"ScreenshotOne is the way to go."
**Lukas Hermann,** Co-Founder of Stagetimer
Looks great
## Take clean screenshots
Remove annoying banners easily. ScreenshotOne can block complex GDPR and cookie consent forms. Most cases are covered.
Remove ads
You only specify one parameter to blocks, and we do all the hard work of blocking ads for you.
Block cookie banners
Always up-to-date database of 50,000+ rules and heuristics to block cookie banners on any site.
Hide chat widgets
Our blocking engine not only blocks ads, cookie banners, and other pop-ups but also social media and support chats.
Get started for free →
100 free screenshots per month.
https://api.screenshotone.com/take?url=https://cookiebot.com
&
https://api.screenshotone.com/take
?url=https://cookiebot.com
&
Used by
2,600+
Active developers
Proudly serving companies from small to large every day.
No less than
98.677%
Uptime
Reliability you can count on is one of our core priorities.
last 30 days
5.3M+
Screenshots rendered
Renders the growing screenshot number every day. The API is performant and proven to handle scale.
Customize everything
## Render precisely as you need
Our **screenshot API** supports a large variety of options for customizing website screenshot rendering. No need to write custom code and logic anymore.
Render in the dark mode
Reduce animations, request dark mode theme, or whatever customization you need.
Hide selectors and click on elements
Most common screenshot automations are included as simple options.
Add custom JavaScript and CSS
Our screenshot API covers the most use cases might need. But if something is lacking? You can quickly script it.
Start rendering →
No credit card required.
https://api.screenshotone.com/take?url=https://tailwindcss.com
&
https://api.screenshotone.com/take
?url=https://tailwindcss.com
&
Pixel-perfect quality
## Take screenshots for any screen size
Your customers will be pleasantly surprised by the quality of screenshots.
Render for Apple's Retina Display
Reduce animations, request dark mode theme, or whatever customization you need.
Any custom screen size or predefined by device
Most common screenshot automations are included as simple options.
Take full-page screenshots with lazy loaded images
We will scroll and trigger lazy loaded images, scripts and other resources for you to make sure that you get a perfect screenshot containing all the content.
Integrate now →
100 free screenshots per month.
https://api.screenshotone.com/take?url=https://ktool.io
&
https://api.screenshotone.com/take
?url=https://ktool.io
&
Integrate today
## Use the language you love
Send simple HTTP requests or use native libraries for your language of choice.
Java Go Node.js PHP Python Ruby C# (.NET)
1// add com.screenshotone.jsdk:screenshotone-api-jsdk:[1.0.0,2.0.0)2// to your `pom.xml` or `build.gradle`3
4import com.screenshotone.jsdk.Client;5import com.screenshotone.jsdk.TakeOptions;6
7import java.io.File;8import java.nio.file.Files;9
10public class App {11 public static void main(String[] args) throws Exception {12 final Client client = Client.withKeys("<access key>", "<secret key>");13 TakeOptions takeOptions = TakeOptions.url("https://example.com")14 .fullPage(true)15 .deviceScaleFactor(1)16 .viewportHeight(1200)17 .viewportWidth(1200)18 .format("png")19 .omitBackground(true);20 final String url = client.generateTakeUrl(takeOptions);21
22 System.out.println(url);23 // Output: https://api.screenshotone.com/take?url=...24
25 // or download the screenshot26 final byte[] image = client.take(takeOptions);27
28 Files.write(new File("./example.png").toPath(), image);29 // the screenshot is stored in the example.png file30 }31}
1// go get github.com/screenshotone/gosdk2
3import screenshots "github.com/screenshotone/gosdk"4
5client, err := screenshots.NewClient("<access key>", "<secret key>")6// check err7
8options := screenshots.NewTakeOptions("https://example.com").9 Format("png").10 FullPage(true).11 DeviceScaleFactor(2).12 BlockAds(true).13 BlockTrackers(true)14
15u, err := client.GenerateTakeURL(options)16// check err17
18fmt.Println(u.String())19// Output: https://api.screenshotone.com/take?url=...20
21// or download the screenshot22image, err := client.Take(context.TODO(), options)23// check err24
25defer image.Close()26out, err := os.Create("example.png")27// check err28
29defer out.Close()30io.Copy(out, image)31// the screenshot is stored in the example.png file
1// $ npm install screenshotone-api-sdk --save2
3import * as fs from 'fs';4import * as screenshotone from 'screenshotone-api-sdk';5
6// create API client7const client = new screenshotone.Client("<access key>", "<secret key>");8
9// set up options10const options = screenshotone.TakeOptions11 .url("https://example.com")12 .delay(3)13 .blockAds(true);14
15// generate URL16const url = client.generateTakeURL(options);17console.log(url);18// expected output: https://api.screenshotone.com/take?url=...19
20// or download the screenshot21const imageBlob = await client.take(options);22const buffer = Buffer.from(await imageBlob.arrayBuffer());23fs.writeFileSync("example.png", buffer)24// the screenshot is stored in the example.png file
1<?php2
3// composer require screenshotone/sdk:^1.04
5use ScreenshotOneSdkClient;6use ScreenshotOneSdkTakeOptions;7
8$client = new Client("<access key>", "<secret key>");9
10$options = TakeOptions::url("https://example.com")11 ->fullPage(true)12 ->delay(2)13 ->geolocationLatitude(48.857648)14 ->geolocationLongitude(2.294677)15 ->geolocationAccuracy(50);16
17$url = $client->generateTakeUrl($options);18echo $url.PHP_EOL;19// expected output: https://api.screenshotone.com/take?url=https%3A%2F%2Fexample.com...20
21$image = $client->take($options);22file_put_contents('example.png', $image);23// the screenshot is stored in the example.png file
1# pip install screenshotone2
3import shutil4from screenshotone import Client, TakeOptions5
6# create API client7client = Client('<access key>', '<secret key>')8
9# set up options10options = (TakeOptions.url('https://screenshotone.com')11 .format("png")12 .viewport_width(1024)13 .viewport_height(768)14 .block_cookie_banners(True)15 .block_chats(True))16
17# generate the screenshot URL and share it with a user18url = client.generate_take_url(options)19# expected output: https://api.screenshotone.com/take?url=https%3A%2F%2Fscreenshotone.com&viewport_width=1024&viewport_height=768&block_cookie_banners=True&block_chats=True&access_key=&signature=6afc9417a523788580fa01a9f668ea82c78a9d2b41441d2a696010bf2743170f20
21# or render a screenshot and download the image as stream22image = client.take(options)23
24# store the screenshot the example.png file25with open('example.png', 'wb') as result_file:26 shutil.copyfileobj(image, result_file)
1# Add this gem to your Gemfile:2# gem 'screenshotone'3
4# If you don't need to add a signature5client = ScreenshotOne::Client.new('<access key>')6
7# Or ff you do need to add a signature8client = ScreenshotOne::Client.new('<access key>', '<secret key>')9
10# You can set any available option, in a camel_case format, for example:11options = ScreenshotOne::TakeOptions.new(url: 'https://example.com').12 full_page(true).13 delay(2).14 geolocation_latitude(48.857648).15 geolocation_longitude(2.294677).16 geolocation_accuracy(50)17
18# Verify all the parameters are valid (we will validate the parameters that should be19# numeric, booleans or that accept only certain values)20options.valid?21=> true22
23# To simply get the final url:24client.generate_take_url(options)25=> "https://api.screenshotone.com/take?url=https%3A%2F%2Fexample.com..."26
27# To actually get the image (the response body of a request to the previous url)28client.take(options)29=> "\xFF\xD8\xFF\xE0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xFF\..."
1// Add the library via nuget using the package manager console: PM> Install-Package ScreenshotOne.dotnetsdk2// Or from the .NET CLI as: dotnet add package ScreenshotOne.dotnetsdk3
4// And generate a screenshot URL without executing request:5var client = new Client("<access key>", "<secret key>");6var options = TakeOptions.Url("https://www.amazon.com")7 .FullPage(true)8 .Format(Format.PNG)9 .BlockCookieBanners(true);10
11var url = client.GenerateTakeUrl(options);12// url = https://api.screenshotone.com/take?url=https%3A%2F%2Fwww.amazon.com&full_page=true&format=png&block_cookie_banners=true&access_key=_OzqMIjpCw-ARQ&signature=8a08e62d13a5c3490fda0734b6707791d3decc9ab9ba41e8cc045288a39db50213
14// Or take a screenshot and save the image in the file:15var client = new Client("<access key>", "<secret key>");16var options = TakeOptions.Url("https://www.google.com")17 .FullPage(true)18 .Format(Format.PNG)19 .BlockCookieBanners(true);20
21var bytes = await client.Take(options);22
23File.WriteAllBytes(@"c:\temp\example.png", bytes);
Mike Roberts
Founder, SpyFu
> ScreenshotOne is the best product on the market - and that's before you take into account how responsive and easy Dmytro is to work with.
>
> Any time we've found a rare edge case, it's been resolved in hours.
>
> Great company, great founder - can't say enough!
Without writing a line of code
## No-code integrations
Quickly render website screenshots with Zapier, Airtable, Make and other popular no-code platforms of your choice.
## Automate website screenshots
Exhaustive documentation, ready SDKs, no-code tools, and other automation to help you render website screenshots and outsource all the boring work related to that to us.
Start rendering → Book a demo
## Footer
ScreenshotOne is a screenshot rendering platform for your business.
X Product Hunt GitHub LinkedIn
### Integrations
- Zapier
- Make
- n8n
- SDK and Code Examples
- Upload to Amazon S3
- RapidAPI Hub
- Plugin for Sanity
- Signed Links
- FlowMattic
- Google Sheets
### Resources
- Documentation
- Changelog
- Blog
- What is a screenshot API?
### Screenshot Tools
- Website Screenshots
- Full Page Screenshots
- Scrolling Screenshots
- All Tools →
### Product
- Scrolling Screenshots
- PDF Generation API
- Screenshot API
- Product Updates
- About
- Roadmap
- Status
- Affiliate Program
### Use Cases
- AI Vision Web Page Analysis
- Visual Regression Testing
- Website Bookmarking and Archival
- All Use Cases →
### Customers
- Testimonials
- Customer Stories
### Compare
- The best screenshot API
- The best Puppeteer alternative
- The best Playwright alternative
### Legal
- Privacy Policy
- Security Compliance
- Terms of Service
© 2022-2025 ScreenshotOne.com. All rights reserved.