For Paid Users Only

Hashtag
Bulk Screenshots

Our bulk screenshot feature streamlines the process of capturing screenshots for multiple URLs in a single operation. You can choose between two methods:

Hashtag
Features

  • Pause: You can pause the bulk screenshot process at any time by clicking the designated pause button.

  • Resume: To continue the bulk screenshot process, simply click the provided resume button.

  • Cancel: To terminate the bulk screenshot process at any point, simply click the cancel button to halt the operation immediately.

  • Notification: You don’t need to monitor the progress. We will email you a link to download the processed files once all screenshots are ready.

Hashtag
Bulk API

With our JSON-Based bulk API, you can capture bulk screenshots by sending a JSON payload containing the list of URLs and optional configurations.

  • Send aPOSTrequest to our API with a JSON payload.

  • The JSON must include an array of URLs and optional parameters like file format, viewport size, injected CSS, delay, and custom headers.

  • Once processed, you will receive urls to access the screenshots.

const axios = require("axios");
let data = JSON.stringify({"token": "{token}","urls": [	{		"url": "https://whoisfreaks.com/"		"file_type": "png"		"width": 1440		"height": 900		"fresh": true	},	{		"url": "https://ipgeolocation.io/"		"file_type": "png"		"width": 1280		"height": 900		"fresh": true	},	{		"url": "https://apifreaks.com/"		"file_type": "png"		"width": 1024		"height": 720		"fresh": true	},]});
let config = {	method: 'post',	maxBodyLength: Infinity,	url: `https://api.screenshotapi.net/v1/bulk/json?token=${data.token}`,	headers: {
		'Content-Type': 'application/json'
	}	data: data
axios.request(config).then((response) => {	console.log(JSON.stringify(response.data));}).catch((error) => {	console.log(error);});

Hashtag
Bulk [CSV file]

You can also capture bulk screenshots by uploading a CSV file. This can be done through:

  • Website Dashboard – Upload a CSV file directly through our user interface.

  • RESTful API – Programmatically upload a CSV file through our API endpoint.

const axios = require("axios");const FormData = require("form-data");const fs = require("fs");
let data = new FormData();data.append('csv', fs.createReadStream('{csvPath}'));
let config = {	method: 'post',	maxBodyLength: Infinity,	url: `https://api.screenshotapi.net/v1/bulk/csv?token={token}`,	headers: {
		...data.getHeaders(): 
	}	data: data
axios.request(config).then((response) => {	console.log(JSON.stringify(response.data));}).catch((error) => {	console.log(error);});

Hashtag
Bulk Input File

To submit your bulk screenshot requests, you can either upload a CSV file directly via the Website Dashboard for manual processing, or integrate programmatically using our API endpoint for automated workflows.

Hashtag
Essential Column

  • URL: The uploaded CSV file must contain a column labeled url. Each entry in this column must include a valid and fully qualified URL starting with the protocolhttps://. Incorrect or incomplete URLs will result in processing errors.

Hashtag
Optional Column

You can include additional columns in the CSV to customize the screenshots. Some of the optional inputs include:

  • File Type: Specify the output format for the screenshots (e.g., PNG, JPG, or PDF).

  • Viewport Dimensions: Customize the width and height of the browser viewport during the rendering process.

  • Injected CSS: Add CSS styles that will be applied during the rendering of the screenshot.

  • Delay: Introduce a delay (in milliseconds) before capturing the screenshot, useful for dynamic content.

  • Headers: Add custom HTTP headers to the requests, such as authentication tokens or user-agent strings.

Download
url , file_type , width , height , freshhttps://google.com , png , 1200 , 800 , truehttps://apple.com , jpg , 1920 , 1080 , truehttps://www.mongodb.com , jpg , 1366 , 768 , truehttps://www.dell.com/en-us , pdf , 1440 , 900 , falsehttps://www.hp.com/us-en/home.html , png , 1024 , 768 , false

For more details, please visit Render a screenshot, which provides an exhaustive list of valid headers and their supported values. From advanced options like geolocation and custom headers to basic configurations like file type and delay settings, all request options available for single screenshots are equally applicable for bulk processing. This ensures that the functionality is both comprehensive and user-friendly, empowering you to handle large-scale screenshot tasks effortlessly while maintaining complete control over the output.

Hashtag
Result File Status

You can monitor the progress of your bulk screenshot operation in real time. The system provides detailed insights into how many URLs have been processed, how many remain in the queue, and whether there are any errors or failures.

  • Website Dashboard: View real-time updates on your bulk dashboard, including completed and pending URLs, directly on the dashboard.

  • RESTful API: Programmatically check the status using following endpoint to retrieve information such as percent_complete, successful_urls, and failed_urls.

const axios = require("axios");
let config = {	method: "get",	maxBodyLength: Infinity,	url: "https://api.screenshotapi.net/v1/bulk/csv/status?token={token}&uuid={given_uuid}",	headers: { }};
axios.request(config).then((response) => {	console.log(JSON.stringify(response.data));}.catch((error) => {	console.log(error);});

Hashtag
Download Output File

Once the CSV file is uploaded and the processing starts, our system generates screenshots for each URL specified. The processing time depends on the number of URLs and the complexity of the specified configurations.

  • Time to Completion: Large batches may take time to complete.

  • Download Processed Files: Once processing is complete, you can retrieve your screenshots through:

    • Website Dashboard: Access and download the processed CSV file directly from your account dashboard.

    • RESTful API: Fetch the CSV file programmatically using our API endpoints for seamless integration into your workflow.

const axios = require("axios");
let config = {	method: "get",	maxBodyLength: Infinity,	url: "https://api.screenshotapi.net/v1/bulk/csv/download?token={token}&uuid={given_uuid}",	headers: { }};
axios.request(config).then((response) => {	console.log(JSON.stringify(response.data));}.catch((error) => {	console.log(error);});

You will receive an email notification with a direct link to the download CSV file once all screenshots are ready.

Download
url , status , screenshot , error_messagehttps://google.com , success , https://storage.screenshotapi.net/google_com_0b052723123a.png , https://apple.com , success , https://storage.screenshotapi.net/apple_com_aa25f3869ade.jpeg , https://www.hp.com/us-en/home.html , success , https://storage.screenshotapi.net/www_hp_com_us_en_home_html_b052723123a3.png , https://www.mongodb.com , success , https://storage.screenshotapi.net/www_mongodb_com_a25f3869ade7.jpeg , https://www.dell.com/en-us , success , https://storage.screenshotapi.net/www_dell_com_en_us_4d57fb6627ed.pdf , 

©2025 ScreenshotAPI. All Rights Reserved.