# Shotstack

Shotstack is a cloud-based platform that enables developers, marketers, and designers to automate the generation of videos, images, and audio at scale using a RESTful API.

- **Category:** video & audio
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 24
- **Triggers:** 0
- **Slug:** `SHOTSTACK`
- **Version:** 20260316_00

## Tools

### Create Template

**Slug:** `SHOTSTACK_CREATE_TEMPLATE`

Tool to create a new template for video editing. Use when you want to save a reusable timeline configuration as a template. Template changes do not retroactively affect past renders.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | A unique id for the template. |
| `name` | string | Yes | A name for the template (required by the API). |
| `output` | object | Yes | Output settings for video generation. Mismatched `format`, `aspectRatio`, or `resolution` relative to source media dimensions can cause letterboxing or playback issues. |
| `template` | boolean | No | Flag to save as template. Defaults to true. |
| `timeline` | object | Yes | Timeline definition describing the video sequence and all assets. Must conform to Shotstack's JSON schema (valid tracks, clips, asset types); malformed structures cause rejection. All asset source URLs must be publicly reachable and non-expiring. |
| `description` | string | No | A short description of the template. |

#### 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 |

### Create Template (v2)

**Slug:** `SHOTSTACK_CREATE_TEMPLATE2`

Tool to save an Edit as a re-usable template. Templates can be retrieved and modified before rendering. Use when you want to create a template with merge fields for dynamic content.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The template name |
| `version` | string ("stage" | "v1") | No | API environment version: 'stage' for sandbox testing or 'v1' for production |
| `template` | object | Yes | Template definition containing timeline and output configuration |

#### 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 |

### Delete Ingested Media

**Slug:** `SHOTSTACK_DELETE_INGESTED_MEDIA`

Tool to delete an ingested media asset. Use when you've confirmed the ingest ID and need to remove the file from Shotstack storage.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the ingested media asset to delete. |

#### 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 |

### Delete Template

**Slug:** `SHOTSTACK_DELETE_TEMPLATE2`

Tool to delete a specific Shotstack template by its ID. Use when you need to remove a template permanently.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the template to delete in UUID format |

#### 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 |

### Delete Shotstack Workflow

**Slug:** `SHOTSTACK_DELETE_WORKFLOW`

Tool to delete a specific Shotstack workflow. Use when you need to permanently remove a workflow after confirming its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `workflowId` | string | Yes | Unique identifier of the workflow to delete |

#### 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 |

### Fetch Source

**Slug:** `SHOTSTACK_FETCH_SOURCE`

Tool to fetch a remote media file and store it as a source asset. Operation is asynchronous — poll SHOTSTACK_GET_INGEST_STATUS or SHOTSTACK_INSPECT_MEDIA until the asset is ready before passing it to SHOTSTACK_RENDER_VIDEO or other downstream tools. Use when you need to ingest a file before rendering.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | Publicly accessible URL of the media file to fetch |
| `type` | string ("video" | "image" | "audio") | No | Type of the asset (optional, not sent to API) |
| `storage` | string | No | Optional storage location, e.g., 'local' or 's3' |
| `metadata` | object | No | Optional custom metadata for the asset |

#### 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 |

### Get Asset

**Slug:** `SHOTSTACK_GET_ASSETS`

Tool to fetch details of a hosted asset by its unique identifier. Use when you need to retrieve information about videos, images, audio files, thumbnails, or poster images hosted on Shotstack's CDN.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier (UUID) of the asset to retrieve. Can be the asset ID, render ID, source ID, or rendition ID. |

#### 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 |

### Get Assets by Render ID

**Slug:** `SHOTSTACK_GET_ASSETS_RENDER`

Tool to retrieve hosted assets by render ID. Use when you need to fetch one or more files (video, thumbnail, poster image) generated by a specific render job.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier (UUID) of the render job to retrieve associated assets for. |

#### 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 |

### Get Ingest Status (Deprecated)

**Slug:** `SHOTSTACK_GET_INGEST_STATUS`

DEPRECATED: Use SHOTSTACK_GET_SOURCE instead. Tool to retrieve the status and details of an ingested media asset. Poll until the asset status is 'ready' before using it in SHOTSTACK_RENDER_VIDEO; rendering against an unprocessed asset causes missing clips or failed renders.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ingestId` | string | Yes | The unique identifier of the ingest asset to retrieve. |

#### 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 |

### Get Render Callback

**Slug:** `SHOTSTACK_GET_RENDER_CALLBACK`

Tool to retrieve the webhook/callback URL configuration for a specific render job. Returns only callback settings (URL, method, headers), not render status or output URLs — use a separate render-status check to obtain final results.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `renderId` | string | Yes | The unique identifier of the render process. |

#### 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 |

### Get Render Status

**Slug:** `SHOTSTACK_GET_RENDER_STATUS`

Tool to retrieve the current status and details of a Shotstack render job by render ID. Use when polling a render until done or failed, typically after creating a render with SHOTSTACK_RENDER_VIDEO.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier (UUID) of the render job to retrieve status for. |
| `data` | boolean | No | Include the original timeline and output settings in the response. Default is false (will be deprecated to false soon). |
| `merged` | boolean | No | When used with data=true, shows merge fields merged into the data response. |
| `version` | string | No | API version to use. Use 'stage' for sandbox/testing or 'v1' for production. |

#### 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 |

### Get Source Details

**Slug:** `SHOTSTACK_GET_SOURCE`

Tool to fetch the details of a specific source asset. Use when you need to inspect a source after uploading, check its status, or diagnose ingest/render failures—such as unsupported codecs, corrupt files, or bad URLs—before retrying.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the source asset to retrieve. |

#### 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 |

### Get Template

**Slug:** `SHOTSTACK_GET_TEMPLATE`

Tool to retrieve details of a specific template. Use when you have the ID of an existing template and need its metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `templateId` | string | Yes | The unique identifier of the template to retrieve. |

#### 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 |

### Get Template By Version

**Slug:** `SHOTSTACK_GET_TEMPLATE_BY_VERSION`

Tool to retrieve a template by template id and API version. Use when you need to fetch template details from a specific Edit API version.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The id of the template in UUID format |
| `version` | string | No | The version of the Edit API to use. Common values: 'v1', 'stage'. |

#### 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 |

### Get Upload URL

**Slug:** `SHOTSTACK_GET_UPLOAD_URL`

Tool to request a signed URL for direct file upload to Shotstack. Use when you need to upload a file to Shotstack storage. The response returns a signed URL that you use to upload the file using a PUT request with the binary file.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `version` | string | No | API version - use 'stage' for sandbox or 'v1' for production |

#### 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 |

### Inspect Media

**Slug:** `SHOTSTACK_INSPECT_MEDIA`

Tool to inspect media metadata. Use before rendering to retrieve duration, resolution, frame rate, and format of an online media file — clip timecodes, trim points, and audio sync calculations depend on these values. Mixing assets without prior inspection can cause letterboxing, jitter, or audio sync issues in the final output.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | The URL of the media file to inspect. Will be URL-encoded automatically. Must be publicly accessible and stable — private, geo-blocked, or expiring URLs will cause inspection to fail. |

#### 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 Sources

**Slug:** `SHOTSTACK_LIST_SOURCES`

Tool to list all source assets. Use when you need to retrieve source entries with optional pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `index` | string | No | Filter sources by a specific index name |
| `limit` | integer | No | Maximum number of results to return per page (default: 20) |
| `offset` | integer | No | Number of results to skip for pagination (default: 0) |

#### 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 Sources (with Environment)

**Slug:** `SHOTSTACK_LIST_SOURCES2`

Tool to list all ingested source files with environment selection. Use when you need to retrieve sources from stage (sandbox) or v1 (production) environment with optional pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `env` | string ("stage" | "v1") | Yes | Environment: 'stage' for sandbox testing or 'v1' for production |
| `index` | string | No | Filter sources by a specific index name |
| `limit` | integer | No | Maximum number of results to return per page (default: 20) |
| `offset` | integer | No | Number of results to skip for pagination (default: 0) |

#### 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 Templates

**Slug:** `SHOTSTACK_LIST_TEMPLATES`

Tool to list all Shotstack templates for the account. Use after creating or updating templates to view your available templates.

#### 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 Templates with Environment

**Slug:** `SHOTSTACK_LIST_TEMPLATES2`

Tool to list all Shotstack templates for the specified environment. Use when you need to retrieve templates from a specific environment (stage or production).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `env` | string ("stage" | "v1") | No | Environment to use: 'stage' for sandbox testing or 'v1' for production. Defaults to stage. |

#### 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 |

### Request Upload URL

**Slug:** `SHOTSTACK_POST_UPLOAD`

Tool to request a signed URL for direct file upload. Use when you need to upload a file to Shotstack storage. The response returns a signed URL that expires in one hour.

#### 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 |

### Render Video

**Slug:** `SHOTSTACK_RENDER_VIDEO`

Tool to initiate a new video render job. Use when you have defined a timeline and output settings and want to start rendering.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `output` | object | Yes | Output settings for rendering including format, resolution, frame rate, and destination |
| `callback` | string | No | Optional webhook URL to receive notifications when render status changes |
| `timeline` | object | Yes | Timeline definition describing the sequence of edits, tracks, clips, and transitions. Each track contains clips with assets. Clip properties include: 'asset' (required object with 'type' and type-specific fields), 'start' (number, start time in seconds), 'length' (number, duration in seconds), 'effect' (optional string, valid values: none, zoomIn, zoomInSlow, zoomInFast, zoomOut, zoomOutSlow, zoomOutFast, slideLeft, slideLeftSlow, slideLeftFast, slideRight, slideRightSlow, slideRightFast, slideUp, slideUpSlow, slideUpFast, slideDown, slideDownSlow, slideDownFast), 'transform' (optional object with rotate/skew/flip sub-properties - NOTE: use 'transform' NOT 'transformations'), 'filter' (optional string for color filters: boost, contrast, darken, greyscale, lighten, muted, negative), 'opacity' (optional number 0-1), 'transition' (optional object for transitions). Asset types: 'video' (requires 'src'), 'image' (requires 'src'), 'audio' (requires 'src'), 'title' (requires 'text'), 'html' (requires 'html'), 'luma' (requires 'src' - URL to a luma matte video/image, optional 'trim'). |

#### 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 |

### Transfer Asset

**Slug:** `SHOTSTACK_TRANSFER_ASSET`

Tool to transfer a file from any publicly available URL to one or more Serve API destinations. Use when you need to copy a file from an external source to Shotstack's hosting service or other configured destinations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier (UUID format recommended) for the asset. This identifier does not need to be globally unique but should be provided by the client. |
| `url` | string | Yes | The publicly accessible URL of the file to transfer. Must be a valid HTTP/HTTPS URL. |
| `destinations` | array | Yes | Array of destination objects specifying where to transfer the asset. At least one destination is required. |

#### 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 |

### Update Template

**Slug:** `SHOTSTACK_UPDATE_TEMPLATE`

Tool to update an existing template by its ID. Use when you need to modify a template's name or edit configuration. Both name and complete template definition must be provided.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the template to update in UUID format. |
| `name` | string | Yes | Display name for the template. |
| `template` | object | Yes | Complete edit configuration containing timeline and output settings. Must include both timeline (with tracks containing clips) and output (with format and resolution) properties. |

#### 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 |
