# Create Animated Gif — Bannerbear

> Creates an Animated Gif. See the docs here.

- Key: `bannerbear-create-animated-gif`
- Type: Action (Write)
- Version: 0.0.2
- App: Bannerbear (`bannerbear`) — https://pipedream.com/apps/bannerbear.md
- This page (HTML): https://pipedream.com/apps/bannerbear/actions/create-animated-gif
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/bannerbear/actions/create-animated-gif/create-animated-gif.mjs

## Description

Creates an Animated Gif. [See the docs here](https://developers.bannerbear.com/#post-v2-animated_gifs).

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `template` | `string` | Yes | The template UID that you want to use. See the docs Options are loaded from the connected account. |
| `frames` | `string` | Yes | A list of modifications lists to apply in sequence. See Create an image for more details on the child parameters. Animated Gifs can have a maximum of 30 frames, for example: [[{"name":"layer1","text":"This is my text"},{"name":"photo","image_url":"https://www.pathtomyphoto.com/1.jpg"}],[{"name":"layer1","text":"This is my follow up text"},{"name":"photo","image_url":"https://www.pathtomyphoto.com/2.jpg"}]] |
| `inputMediaUrl` | `string` | No | An optional movie file that can be used as part of the gif. Depending on the number of frames you pass in, Bannerbear will generate thumbnails of this movie and place them sequentially into an image container in your template named video_frame. |
| `fps` | `integer` | No | Set the frame rate of gif (default is 1 frame per second). |
| `frameDurations` | `string[]` | No | Custom durations for each frame (overrides fps). |
| `loop` | `boolean` | No | Set the gif to loop or only play once. |
| `metadata` | `string` | No | Any metadata that you need to store e.g. ID of a record in your DB. |
| `webhookUrl` | `string` | No | A url to POST the full Animated Gif object to upon rendering completed. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "bannerbear",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "bannerbear-create-animated-gif",
  arguments: {
    template: "Template UID",
    frames: "Frames",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "bannerbear-create-animated-gif",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    bannerbear: { authProvisionId: "apn_xxxxxxx" },
    template: "Template UID",
    frames: "Frames",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "bannerbear-create-animated-gif",
    "configured_props": {
      "bannerbear": { "authProvisionId": "apn_xxxxxxx" },
      "template": "Template UID",
      "frames": "Frames"
    }
  }'
```

---

- App: https://pipedream.com/apps/bannerbear.md · All apps: https://pipedream.com/apps
