Ultimate Screenshot avatar
Ultimate Screenshot

Pricing

$4.99/month + usage

Go to Store
Ultimate Screenshot

Ultimate Screenshot

Developed by

dz_omar

dz_omar

Maintained by Community

πŸš€ Capture ANY website as HD screenshots, videos, or PDFs! πŸ“Έ 100+ device presets (iPhone, Android, tablets). Perfect for web scraping, monitoring, testing & marketing. Export as PNG/JPEG/PDF/MP4/GIF. Fast, reliable, proxy-ready. Try FREE now!

5.0 (6)

Pricing

$4.99/month + usage

16

87

37

Last modified

18 days ago

You can access the Ultimate Screenshot programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in Integrations settings in Apify Console.

{
"openapi": "3.0.1",
"info": {
"version": "0.2",
"x-build-id": "6dLTNTTbOKXyLMvT6"
},
"servers": [
{
"url": "https://api.apify.com/v2"
}
],
"paths": {
"/acts/dz_omar~ultimate-screenshot/run-sync-get-dataset-items": {
"post": {
"operationId": "run-sync-get-dataset-items-dz_omar-ultimate-screenshot",
"x-openai-isConsequential": false,
"summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
"tags": [
"Run Actor"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inputSchema"
}
}
}
},
"parameters": [
{
"name": "token",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Enter your Apify token here"
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/acts/dz_omar~ultimate-screenshot/runs": {
"post": {
"operationId": "runs-sync-dz_omar-ultimate-screenshot",
"x-openai-isConsequential": false,
"summary": "Executes an Actor and returns information about the initiated run in response.",
"tags": [
"Run Actor"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inputSchema"
}
}
}
},
"parameters": [
{
"name": "token",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Enter your Apify token here"
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/runsResponseSchema"
}
}
}
}
}
}
},
"/acts/dz_omar~ultimate-screenshot/run-sync": {
"post": {
"operationId": "run-sync-dz_omar-ultimate-screenshot",
"x-openai-isConsequential": false,
"summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
"tags": [
"Run Actor"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inputSchema"
}
}
}
},
"parameters": [
{
"name": "token",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Enter your Apify token here"
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
}
},
"components": {
"schemas": {
"inputSchema": {
"type": "object",
"required": [
"linkUrls"
],
"properties": {
"fullPage": {
"title": "πŸ–ΌοΈ Full Page Screenshot",
"type": "boolean",
"description": "Capture the entire page length by scrolling through the full content. When enabled with video formats (MP4/GIF), creates a smooth scrolling animation effect that captures the entire page from top to bottom. Essential for long pages with dynamic content loading.",
"default": false
},
"enableSSL": {
"title": "πŸ”’ SSL Certificate Validation",
"type": "boolean",
"description": "Enable strict SSL certificate checking for secure HTTPS connections. Disable this option if you encounter certificate errors with trusted sites or need to capture pages with self-signed certificates. Recommended to keep enabled for security.",
"default": true
},
"linkUrls": {
"title": "🌐 Target URLs",
"type": "array",
"description": "List of web pages to capture screenshots, videos, or PDFs from. Supports multiple URLs for batch processing. Each URL will be processed sequentially with the same configuration settings. URLs must include the protocol (http:// or https://).",
"default": [
"https://apify.com",
"http://ipwho.is/"
],
"items": {
"type": "string"
}
},
"outputFormat": {
"title": "πŸ’Ύ Output Format",
"enum": [
"jpeg",
"png",
"pdf",
"gif",
"mp4"
],
"type": "string",
"description": "Select your preferred output file format. JPEG offers smaller file sizes with good quality, PNG provides lossless compression, PDF creates document-style captures, GIF generates animated loops (max 5 seconds), and MP4 creates high-quality video recordings with smooth playback.",
"default": "jpeg"
},
"waitUntil": {
"title": "⏱️ Page Load Condition",
"enum": [
"load",
"domcontentloaded",
"networkidle0",
"networkidle2"
],
"type": "string",
"description": "Determines when the page is considered fully loaded before capturing. 'networkidle0' waits until no network requests remain (recommended for dynamic sites), 'load' waits for all resources, 'domcontentloaded' waits for HTML parsing, 'networkidle2' allows up to 2 ongoing connections.",
"default": "networkidle0"
},
"timeouT": {
"title": "⏳ Page Load Timeout",
"minimum": 1,
"maximum": 300,
"type": "integer",
"description": "Maximum wait time in seconds for the page to load before timing out and moving to the next URL. Increase this value for slower websites or complex single-page applications. The actor will retry failed URLs based on maxRetries setting.",
"default": 15
},
"maxRetries": {
"title": "πŸ”„ Maximum Retries",
"minimum": 0,
"maximum": 10,
"type": "integer",
"description": "Number of automatic retry attempts if a page fails to load due to network issues, timeouts, or other temporary errors. Failed URLs are retried with the same configuration. Set to 0 to disable retries and fail fast.",
"default": 3
},
"delayBeforeScreenshot": {
"title": "⏸️ Pre-Capture Delay",
"minimum": 0,
"maximum": 10000,
"type": "integer",
"description": "Additional wait time in milliseconds after the page loads and before capturing begins. Essential for waiting on lazy-loaded images, animations to complete, or dynamic content to fully render. Increase for complex interactive sites.",
"default": 1500
},
"infiniteScroll": {
"title": "∞ Infinite Scroll Capture",
"type": "boolean",
"description": "Continue scrolling indefinitely for infinite-scroll pages like social media feeds. When enabled, ignores timefullPagE duration and continues capturing until frameCounT is reached. Useful for social media sites and news feeds with endless content.",
"default": false
},
"timefullPagE": {
"title": "πŸ•’ Max Scroll Duration",
"minimum": 1,
"maximum": 300,
"type": "integer",
"description": "Maximum time in seconds to spend capturing full-page scrolling content. Only applies when infiniteScroll is disabled. Controls the total recording length for video output. Longer durations create more comprehensive captures but larger files.",
"default": 10
},
"frameCounT": {
"title": "πŸ“· Total Frames",
"minimum": 1,
"maximum": 1000,
"type": "integer",
"description": "Total number of frames to capture for video/GIF output. More frames create longer videos and smoother animations but increase processing time and file size. For GIFs, frames are captured at 10fps with 5-second maximum duration.",
"default": 15
},
"frameIntervaL": {
"title": "⏱️ Frame Interval",
"type": "integer",
"description": "Milliseconds to wait between each frame capture. Lower values create smoother animations but increase processing time and file size. Higher values create faster capture but choppier motion. Optimal range: 100-1000ms for smooth results.",
"default": 10
},
"frame": {
"title": "🎞️ Frames Per Second (FPS)",
"minimum": 1,
"maximum": 120,
"type": "integer",
"description": "Playback frame rate for final video/GIF output. Standard values: 10 (smooth), 24 (cinematic), 30 (web standard), 60 (ultra-smooth). Higher FPS creates smoother playback but larger file sizes. Note: GIFs are automatically set to 10fps regardless of this setting.",
"default": 10
},
"scrollSteP": {
"title": "πŸ–±οΈ Scroll Step Size",
"minimum": 10,
"maximum": 1000,
"type": "integer",
"description": "Number of pixels to scroll between each frame capture when Full Page Screenshot is enabled. Smaller values (100-200px) create smoother scrolling animations, larger values (400-800px) create faster transitions. Only affects video/GIF output with fullPage enabled.",
"default": 300
},
"printBackground": {
"title": "🎨 Print Backgrounds",
"type": "boolean",
"description": "Include background colors, images, and CSS background properties in the generated PDF. Enable for visually rich documents that preserve the original design. Disable for text-focused, printer-friendly documents with reduced ink usage.",
"default": true
},
"formaT": {
"title": "πŸ“ Paper Size",
"enum": [
"A4",
"LETTER",
"LEGAL",
"TABLOID",
"LEDGER",
"A0",
"A1",
"A2",
"A3",
"A5",
"A6"
],
"type": "string",
"description": "Select standard paper size for PDF generation. A4 is international standard (210Γ—297mm), Letter is US standard (8.5Γ—11in). Other sizes available for specific printing needs. This setting is ignored if custom margins are specified (all margin values > 0).",
"default": "A4"
},
"toP": {
"title": "⬆️ Top Margin",
"minimum": 0,
"maximum": 100,
"type": "integer",
"description": "PDF top margin in millimeters. When any margin value is greater than 0, custom margins override the standard paper format. Set all margins to 0 to use the selected paper format (formaT) instead. Useful for precise print layouts.",
"default": 0
},
"righT": {
"title": "➑️ Right Margin",
"minimum": 0,
"maximum": 100,
"type": "integer",
"description": "PDF right margin in millimeters. Part of custom margin settings that override standard paper formats when any margin value is non-zero. Ensures content doesn't extend to the page edge for better printability.",
"default": 0
},
"bottoM": {
"title": "⬇️ Bottom Margin",
"minimum": 0,
"maximum": 100,
"type": "integer",
"description": "PDF bottom margin in millimeters. Custom margin setting that provides space at the bottom of the page for printing considerations. Works with other margin settings to create precise page layouts.",
"default": 0
},
"lefT": {
"title": "⬅️ Left Margin",
"minimum": 0,
"maximum": 100,
"type": "integer",
"description": "PDF left margin in millimeters. Creates space on the left side of the page, useful for binding or hole-punching considerations. When combined with other margins, overrides the standard format setting.",
"default": 0
},
"device": {
"title": "πŸ“± Device Preset",
"enum": [
"Blackberry PlayBook",
"Blackberry PlayBook landscape",
"BlackBerry Z30",
"BlackBerry Z30 landscape",
"Galaxy Note 3",
"Galaxy Note 3 landscape",
"Galaxy Note II",
"Galaxy Note II landscape",
"Galaxy S III",
"Galaxy S III landscape",
"Galaxy S5",
"Galaxy S5 landscape",
"Galaxy S8",
"Galaxy S8 landscape",
"Galaxy S9+",
"Galaxy S9+ landscape",
"Galaxy Tab S4",
"Galaxy Tab S4 landscape",
"iPad",
"iPad landscape",
"iPad (gen 6)",
"iPad (gen 6) landscape",
"iPad (gen 7)",
"iPad (gen 7) landscape",
"iPad Mini",
"iPad Mini landscape",
"iPad Pro",
"iPad Pro landscape",
"iPad Pro 11",
"iPad Pro 11 landscape",
"iPhone 4",
"iPhone 4 landscape",
"iPhone 5",
"iPhone 5 landscape",
"iPhone 6",
"iPhone 6 landscape",
"iPhone 6 Plus",
"iPhone 6 Plus landscape",
"iPhone 7",
"iPhone 7 landscape",
"iPhone 7 Plus",
"iPhone 7 Plus landscape",
"iPhone 8",
"iPhone 8 landscape",
"iPhone 8 Plus",
"iPhone 8 Plus landscape",
"iPhone SE",
"iPhone SE landscape",
"iPhone X",
"iPhone X landscape",
"iPhone XR",
"iPhone XR landscape",
"iPhone 11",
"iPhone 11 landscape",
"iPhone 11 Pro",
"iPhone 11 Pro landscape",
"iPhone 11 Pro Max",
"iPhone 11 Pro Max landscape",
"iPhone 12",
"iPhone 12 landscape",
"iPhone 12 Pro",
"iPhone 12 Pro landscape",
"iPhone 12 Pro Max",
"iPhone 12 Pro Max landscape",
"iPhone 12 Mini",
"iPhone 12 Mini landscape",
"iPhone 13",
"iPhone 13 landscape",
"iPhone 13 Pro",
"iPhone 13 Pro landscape",
"iPhone 13 Pro Max",
"iPhone 13 Pro Max landscape",
"iPhone 13 Mini",
"iPhone 13 Mini landscape",
"iPhone 14",
"iPhone 14 landscape",
"iPhone 14 Plus",
"iPhone 14 Plus landscape",
"iPhone 14 Pro",
"iPhone 14 Pro landscape",
"iPhone 14 Pro Max",
"iPhone 14 Pro Max landscape",
"iPhone 15",
"iPhone 15 landscape",
"iPhone 15 Plus",
"iPhone 15 Plus landscape",
"iPhone 15 Pro",
"iPhone 15 Pro landscape",
"iPhone 15 Pro Max",
"iPhone 15 Pro Max landscape",
"JioPhone 2",
"JioPhone 2 landscape",
"Kindle Fire HDX",
"Kindle Fire HDX landscape",
"LG Optimus L70",
"LG Optimus L70 landscape",
"Microsoft Lumia 550",
"Microsoft Lumia 950",
"Microsoft Lumia 950 landscape",
"Nexus 10",
"Nexus 10 landscape",
"Nexus 4",
"Nexus 4 landscape",
"Nexus 5",
"Nexus 5 landscape",
"Nexus 5X",
"Nexus 5X landscape",
"Nexus 6",
"Nexus 6 landscape",
"Nexus 6P",
"Nexus 6P landscape",
"Nexus 7",
"Nexus 7 landscape",
"Nokia Lumia 520",
"Nokia Lumia 520 landscape",
"Nokia N9",
"Nokia N9 landscape",
"Pixel 2",
"Pixel 2 landscape",
"Pixel 2 XL",
"Pixel 2 XL landscape",
"Pixel 3",
"Pixel 3 landscape",
"Pixel 4",
"Pixel 4 landscape",
"Pixel 4a (5G)",
"Pixel 4a (5G) landscape",
"Pixel 5",
"Pixel 5 landscape",
"Moto G4",
"Moto G4 landscape"
],
"type": "string",
"description": "Emulate specific mobile devices or tablets with accurate viewport dimensions, user agents, and device characteristics. Leave unselected to use custom width/height settings below. Device presets override custom dimensions and provide the most accurate mobile simulation."
},
"window_Width": {
"title": "πŸ“ Custom Width",
"minimum": 100,
"maximum": 5000,
"type": "integer",
"description": "Browser viewport width in pixels when no device preset is selected. Standard desktop width is 1920px, mobile widths typically range from 320-414px. For responsive testing, try common breakpoints: 320, 768, 1024, 1920px. This setting is ignored if a device preset is selected.",
"default": 1920
},
"window_Height": {
"title": "πŸ“ Custom Height",
"minimum": 100,
"maximum": 5000,
"type": "integer",
"description": "Browser viewport height in pixels when no device preset is selected. Standard desktop height is 1080px, mobile heights typically range from 568-926px. Note: when fullPage is enabled, this only affects the initial viewport before scrolling begins. Ignored if device preset is selected.",
"default": 1080
},
"scrollToBottom": {
"title": "πŸ‘‡ Auto-Scroll to Bottom",
"type": "boolean",
"description": "Automatically scroll to the bottom of the page before capturing to trigger lazy-loading of images and content. Essential for infinite-scroll pages, news feeds, and e-commerce sites. The tool will scroll gradually to ensure all content loads properly.",
"default": false
},
"delayAfterScrolling": {
"title": "⏸️ Post-Scroll Delay",
"minimum": 0,
"maximum": 10000,
"type": "integer",
"description": "Milliseconds to wait after auto-scrolling completes before taking the screenshot. Allows time for lazy-loaded images, animations, and dynamic content to fully render after scrolling. Increase for sites with heavy content loading.",
"default": 300
},
"cookies": {
"title": "πŸͺ Custom Cookies",
"type": "array",
"description": "Add custom cookies to maintain logged-in sessions, bypass paywalls, or access user-specific content. Each cookie should include name, value, and domain. Example: [{\"name\":\"session_id\",\"value\":\"abc123\",\"domain\":\"example.com\"}]. Cookies persist for the entire capture session.",
"default": []
},
"proxyConfig": {
"title": "πŸ”— Proxy Configuration",
"type": "object",
"description": "Configure proxy servers to route requests through different IP addresses and locations. Helps bypass geo-restrictions, avoid rate limits, and access region-specific content. Use Apify's built-in proxy service or provide custom proxy URLs. Essential for large-scale operations.",
"default": {
"useApifyProxy": false
}
}
}
},
"runsResponseSchema": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"actId": {
"type": "string"
},
"userId": {
"type": "string"
},
"startedAt": {
"type": "string",
"format": "date-time",
"example": "2025-01-08T00:00:00.000Z"
},
"finishedAt": {
"type": "string",
"format": "date-time",
"example": "2025-01-08T00:00:00.000Z"
},
"status": {
"type": "string",
"example": "READY"
},
"meta": {
"type": "object",
"properties": {
"origin": {
"type": "string",
"example": "API"
},
"userAgent": {
"type": "string"
}
}
},
"stats": {
"type": "object",
"properties": {
"inputBodyLen": {
"type": "integer",
"example": 2000
},
"rebootCount": {
"type": "integer",
"example": 0
},
"restartCount": {
"type": "integer",
"example": 0
},
"resurrectCount": {
"type": "integer",
"example": 0
},
"computeUnits": {
"type": "integer",
"example": 0
}
}
},
"options": {
"type": "object",
"properties": {
"build": {
"type": "string",
"example": "latest"
},
"timeoutSecs": {
"type": "integer",
"example": 300
},
"memoryMbytes": {
"type": "integer",
"example": 1024
},
"diskMbytes": {
"type": "integer",
"example": 2048
}
}
},
"buildId": {
"type": "string"
},
"defaultKeyValueStoreId": {
"type": "string"
},
"defaultDatasetId": {
"type": "string"
},
"defaultRequestQueueId": {
"type": "string"
},
"buildNumber": {
"type": "string",
"example": "1.0.0"
},
"containerUrl": {
"type": "string"
},
"usage": {
"type": "object",
"properties": {
"ACTOR_COMPUTE_UNITS": {
"type": "integer",
"example": 0
},
"DATASET_READS": {
"type": "integer",
"example": 0
},
"DATASET_WRITES": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_READS": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_WRITES": {
"type": "integer",
"example": 1
},
"KEY_VALUE_STORE_LISTS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_READS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_WRITES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_INTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_EXTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_SERPS": {
"type": "integer",
"example": 0
}
}
},
"usageTotalUsd": {
"type": "number",
"example": 0.00005
},
"usageUsd": {
"type": "object",
"properties": {
"ACTOR_COMPUTE_UNITS": {
"type": "integer",
"example": 0
},
"DATASET_READS": {
"type": "integer",
"example": 0
},
"DATASET_WRITES": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_READS": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_WRITES": {
"type": "number",
"example": 0.00005
},
"KEY_VALUE_STORE_LISTS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_READS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_WRITES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_INTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_EXTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_SERPS": {
"type": "integer",
"example": 0
}
}
}
}
}
}
}
}
}
}

Website Screenshot Tool - Mobile & Desktop Capture OpenAPI definition

OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.

OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.

By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.

You can download the OpenAPI definitions for Ultimate Screenshot from the options below:

If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.

You can also check out our other API clients: