# ScreenshotOne

ScreenshotOne is a screenshot API for developers, enabling the rendering of website screenshots through simple API calls without managing browser clusters.

- **Category:** developer tools
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 5
- **Triggers:** 0
- **Slug:** `SCREENSHOTONE`
- **Version:** 20260316_00

## Tools

### Get Usage

**Slug:** `SCREENSHOTONE_GET_USAGE`

Tool to retrieve current API plan usage information. Returns total requests allowed, available requests remaining, used requests count, and concurrency limits for the current billing period.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Devices

**Slug:** `SCREENSHOTONE_LIST_DEVICES`

Tool to retrieve the list of supported devices for viewport emulation. Use when you need to get available device IDs and their viewport configurations for device emulation in screenshot operations.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Take Animated Screenshot

**Slug:** `SCREENSHOTONE_TAKE_ANIMATED_SCREENSHOT`

This tool captures an animated screenshot (video or GIF) of a given website URL. It allows customization of the animation format, duration, viewport dimensions, and animation scenario (e.g., scrolling).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | The URL of the website to capture. |
| `delay` | integer | No | Delay before taking the screenshot in milliseconds. Set non-zero to allow heavy or complex pages to fully render before capture begins. |
| `width` | integer | No | Width of the output animation. If specified, height must also be specified. Defaults to viewport width. Unset or misconfigured viewport_width/viewport_height can cause cropping or distortion when width is not explicitly set. |
| `clip_x` | integer | No | X-coordinate for clipping the video. Only for GIF format. |
| `clip_y` | integer | No | Y-coordinate for clipping the video. Only for GIF format. |
| `format` | string ("mp4" | "mov" | "avi" | "webm" | "gif") | No | The format of the animated screenshot. |
| `height` | integer | No | Height of the output animation. If specified, width must also be specified. Defaults to viewport height. |
| `duration` | integer | No | Duration of the animation in seconds. Minimum 1, maximum 30. |
| `scenario` | string ("default" | "scroll") | No | Defines the animation behavior. `default` records the site as it appears after loading. `scroll` simulates scrolling. |
| `block_ads` | boolean | No | Block ads. |
| `full_page` | boolean | No | Capture the full scrollable page (Note: for animated, this might interact with scenario). Very long pages produce extremely tall output that may cause downstream display or storage issues. |
| `scroll_by` | integer | No | Pixels to scroll per step. Applicable if scenario is 'scroll'. |
| `clip_width` | integer | No | Width for clipping the video. Only for GIF format. |
| `clip_height` | integer | No | Height for clipping the video. Only for GIF format. |
| `scroll_back` | boolean | No | Scroll back to the top after reaching the bottom. Applicable if scenario is 'scroll'. |
| `aspect_ratio` | string | No | Aspect ratio for the animation (e.g., '16:9'). If specified, width and height are ignored. |
| `scroll_delay` | integer | No | Delay in milliseconds between scrolls. Applicable if scenario is 'scroll'. |
| `scroll_easing` | string ("linear" | "ease_in_quad" | "ease_out_quad" | "ease_in_out_quad" | "ease_in_cubic" | "ease_out_cubic" | "ease_in_out_cubic" | "ease_in_quart" | "ease_out_quart" | "ease_in_out_quart" | "ease_in_quint" | "ease_out_quint" | "ease_in_out_quint") | No | Scrolling easing effect. Applicable if scenario is 'scroll'. |
| `viewport_width` | integer | No | Viewport width. |
| `omit_background` | boolean | No | Omit background (only for MOV format). |
| `scroll_complete` | boolean | No | Stop recording animation when full scrolling is completed. Applicable if scenario is 'scroll'. |
| `scroll_duration` | integer | No | Duration in milliseconds of one scroll. Applicable if scenario is 'scroll'. |
| `viewport_height` | integer | No | Viewport height. |
| `scroll_start_delay` | integer | No | Wait time in milliseconds before starting scrolling. Applicable if scenario is 'scroll'. |
| `device_scale_factor` | number | No | Device scale factor. |
| `scroll_to_end_after` | integer | No | Scroll to the end after the specified duration in milliseconds with the specified easing in one scroll. Applicable if scenario is 'scroll'. |
| `scroll_try_navigate` | boolean | No | Navigate while scrolling and record the new opened page. Applicable if scenario is 'scroll'. |
| `block_cookie_banners` | boolean | No | Block cookie banners. |
| `scroll_till_selector` | string | No | Scroll till the CSS selector is visible. Applicable if scenario is 'scroll'. |
| `scroll_back_algorithm` | string ("once" | "repeat") | No | Algorithm for scrolling back (`once` or `repeat`). Applicable if scenario is 'scroll'. |
| `scroll_navigate_after` | integer | No | Navigate after duration in milliseconds (default is half of the duration). Applicable if scenario is 'scroll'. |
| `scroll_navigate_to_url` | string | No | URL to navigate to. Applicable if scenario is 'scroll'. |
| `scroll_start_immediately` | boolean | No | Scroll immediately or wait for scroll_delay. Applicable if scenario is 'scroll'. |
| `scroll_back_after_duration` | integer | No | Scroll back after the specified duration in milliseconds. Applicable if scenario is 'scroll'. |
| `scroll_navigate_link_hints` | array | No | Hints for links to use for navigation if scroll_navigate_to_url is not specified. E.g. ['pricing', 'about']. Applicable if scenario is 'scroll'. |
| `scroll_stop_after_duration` | integer | No | Stop scrolling after the specified duration in milliseconds. Use with scroll_complete=false and scroll_back=false. Applicable if scenario is 'scroll'. |
| `scroll_till_selector_adjust_top` | integer | No | Adjust the top position of the selector in the viewport. Applicable if scenario is 'scroll'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Take Bulk Screenshots

**Slug:** `SCREENSHOTONE_TAKE_BULK_SCREENSHOTS`

Tool to take multiple screenshots in a single request with shared defaults and individual overrides. Use when you need to capture screenshots of multiple URLs or the same URL with different parameters. Supports lazy loading (default) where screenshots are taken on download, or immediate execution with execute=true.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `execute` | boolean | No | Execute all screenshot requests immediately instead of lazy loading. When false (default), screenshots are taken when downloaded. When true, screenshots are taken immediately. |
| `options` | object | No | Default options applied to all screenshot requests in the bulk operation. |
| `optimize` | boolean | No | Optimize bulk screenshots for same URLs with different parameters. Only works when execute=true. Improves performance when taking multiple screenshots of the same site. |
| `requests` | array | Yes | Array of individual screenshot requests. Maximum 20 requests per bulk call. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Take Screenshot

**Slug:** `SCREENSHOTONE_TAKE_SCREENSHOT`

Tool to generate a screenshot or PDF of a website, render HTML, or Markdown using POST request. Use when you need to capture webpage content in various formats (PNG, JPEG, WebP, PDF, HTML). Supports both returning binary content directly or getting a cached URL via JSON response.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | No | URL of the website to screenshot. Either url, html, or markdown must be provided. |
| `html` | string | No | HTML content to render. Either url, html, or markdown must be provided. |
| `cache` | boolean | No | Set to true to get cached screenshot URL when response_type is 'json'. The response will include a cache_url field. |
| `delay` | integer | No | Delay in seconds to wait before rendering the screenshot. Must be between 0 and 30 seconds. |
| `format` | string ("png" | "jpeg" | "webp" | "pdf" | "html") | No | Output format for the screenshot. |
| `markdown` | string | No | Markdown content to render. Either url, html, or markdown must be provided. |
| `block_ads` | boolean | No | Block ads on the page. |
| `dark_mode` | boolean | No | Enable dark mode for rendering the page. |
| `block_chats` | boolean | No | Block chat widgets on the page. |
| `response_type` | string ("by_format" | "json" | "empty") | No | Response type for the screenshot. |
| `viewport_width` | integer | No | Viewport width of the browser in pixels. |
| `viewport_height` | integer | No | Viewport height of the browser in pixels. |
| `device_scale_factor` | integer | No | Device scale factor of the viewport. Must be between 1 and 5. |
| `block_cookie_banners` | boolean | No | Block cookie banners on the page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
