Our Bulk Screenshot API allows you to capture screenshots of multiple webpages simultaneously, saving you time and effort. Instead of manually capturing each page one by one, you can batch process URLs and receive high-quality screenshots in the format you choose.
Whether you need to capture multiple pages for testing, monitoring, or content sharing, our API makes it simple, efficient and on the go.
No loops. No files. Just give us your URLs and configure the response that you need. The API handles every page individually in the background, then returns each screenshot’s output link. With this tool, you can capture up to 50 pages at once.
By configuration, it means setting Device simulation, Custom browser width/height, Inject CSS or JavaScript and selecting to Block ads or cookie banners.With this bunch of features, you take screenshots in bulk with minimal effort and the highest precision.
For every URL you submit, you’ll get back a separate screenshot URL. Easy to reference, easy to download, easy to map to your original inputs.
$ pip install requests
Send a POST request with a JSON body containing a urls
array—each object defines a webpage and its screenshot settings. This enables bulk screenshot capture with consistent quality and reduced manual effort
For complete documentation of each Request Parameter, Click here
POST curl --location 'https://api.apifreaks.com/v1.0/screenshot'--header 'Content-Type: application/json'--header 'X-apiKey: API_KEY'--data '{ "urls": [ { "url": "https://whoisfreaks.com/", "file_type": "gif", "width": 3840, "height": 2160, "fresh": true, "image_quality": 100, "scrolling_screenshot": true, "duration": 10 } ] }'
For a comprehensive view of the API response structure and detailed field descriptions, explore the interactive Response Table by clicking here.
HTTP Status | Reasons |
---|---|
400 | (1) Invalid parameter combination: For example, passing 'sizes' without enabling 'multiple_screenshot', or enabling 'multiple_screenshot' without specifying 'sizes'.
(2) Invalid request body: Please provide data in required format in request body. |
413 | Payload too large: Maximum request body size limit exceeded. |
First of all, you need to paste your URLs and then configure regular screenshot settings (like scroll, size, and injection). Set custom parameters for each URL, including file format, dimensions, image quality, and additional options like blocking ads or removing elements. Tailor each screenshot to fit your specific needs.
POST curl --location 'https://api.apifreaks.com/v1.0/screenshot'--header 'Content-Type: application/json'--header 'X-apiKey: API_KEY'--data '{ "urls": [ { "url": "https://ipgeolocation.io/", "file_type": "jpg", "width": 3840, "height": 2160, "fresh": true, "image_quality": 100 }, { "url": "https://apifreaks.com/", "extract_html": true, "file_type": "png", "width": 3840, "height": 2160, "fresh": true, "image_quality": 100 } ] }' #Response { "status": "success", "meta_data": { "total_urls": 3, "successful_urls": 2, "failed_urls": 1 }, "results": [ { "url": { "screenshot": "https://s3.eu-central-2.wasabisys.com/w.storage.apifreaks.com/ipgeolocation_io__03a9ef85d3a5.jpeg", "url": "https://ipgeolocation.io/", "created_at": "2025-06-20T13:52:58.517Z", "file_type": "jpg", "width": 3840, "height": 2160, "fresh": true, "image_quality": 100, "output": "json", "ttl": "2025-07-20T13:52:54.775Z", "sizes": null }, "status": "fulfilled", "error_message": null }, { "url": { "screenshot": "https://s3.eu-central-2.wasabisys.com/w.storage.apifreaks.com/apifreaks_com__7a3cb4d8abf6.png", "extracted_html": "https://s3.eu-central-2.wasabisys.com/w.storage.apifreaks.com/apifreaks_com__7a3cb4d8abf6.html", "url": "https://apifreaks.com/", "created_at": "2025-06-20T13:52:59.712Z", "extract_html": true, "file_type": "png", "width": 3840, "height": 2160, "fresh": true, "image_quality": 100, "output": "json", "ttl": "2025-07-20T13:52:54.801Z", "sizes": null }, "status": "fulfilled", "error_message": null } ] }
To use the Screenshot API, API credits are required. Charges apply only for successful queries, defined by a 2xx status code. If a request results in a 4xx or 5xx status code, no credits will be deducted, and any credits already charged will be refunded.
For each successful request, 35 credit will be charged per requested domain.
Utilize the Credits Usage API to efficiently monitor your recent consumption of both one-off and subscription credits. This API provides a streamlined way to track and manage your credit usage, ensuring you stay informed about your remaining balance and can optimize your resource allocation effectively.