# Bannerbear integration

> Auto-generate images, videos, animated GIFs, PDFs and screenshots from templates via API.

- Authentication: apiKey

## Tools (124)

- **Add cover art to video (V5)**: Embed a still image as the video's poster thumbnail. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **Add image overlay (V5)**: Burn a logo, watermark, or badge onto a video. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **Add or replace audio (V5)**: Mix an audio track over a video, or replace it. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **Animate a template with a preset (V5)**: Applies a named preset to layers, optionally staggered. Deterministic and free: no model call, no AI credits, and the same request always produces the same keyframes — three layers at `stagger: 500` begin at 0, 500 and 1000ms exactly. Use this whenever the request already says what it wants. The tem
- **Apply colour filter (V5)**: Apply a named colour-grade preset to a video (Instagram-style filters). Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **Batch-check which asset hashes already exist (V5)**: Given a list of SHA-256 content hashes, returns a map of each hash to its existing asset record (or `null` if not stored in this workspace). Lets syncing clients skip the upload round-trip for content that's already been uploaded — compute the hash locally, batch-check, then only POST the missing on
- **Browse the public library (V5)**: Returns publications with `visibility=public_library` from every team, which is the same set the dashboard's template library shows. Legacy V3 publications are included and their `uid` carries a `v3_` prefix; they install as V5 image templates, converted on the way in. Publications are user-owned re
- **Check authentication**: Verify the API key is valid and return the project it belongs to.
- **Create a batch (V5)**: Create a batch
- **Create a collection**: Creating a collection on Bannerbear is achieved via this endpoint and behaves the same as creating a single Image except with a different response. This endpoint responds with 202 Accepted after which your collection will be queued to generate. Collections are usually rendered within a few seconds.
- **Create a diagnosis**: This endpoint responds with 202 Accepted after which your report will be queued to generate. When completed, the status changes to completed. Use the GET endpoint to retrieve the final report.
- **Create a movie**: You can combine up to 10 video clips into a movie. Video clips should be listed chronologically in the inputs parameter. Instead of a video clip you can also use a static image url in the asset_url parameter. When using a static image, it will be shown for 5 seconds by default in the final movie. Yo
- **Create an animated gif**: This endpoint responds with 202 Accepted after which your animated gif will be queued to generate. Animated gifs are usually rendered within a few seconds. When completed, the status changes to completed. You can poll the GET endpoint for status updates or use a webhook to get the final animated gif
- **Create an animation template (V5)**: Create an animation template. Send `config` to author layers and keyframes directly — see the Keyframes schema for the frame shape — or omit it and build the template in the dashboard editor. `duration_seconds` is derived from the keyframes rather than set.
- **Create an animation (V5)**: Render an animation from a template. Async — returns 202 with a queued animation; poll GET /animations/{uid} until `status` is `completed` or `failed`. Duration comes from the template's keyframes, so a template with no animation is rejected. Passing `modifications.template.transparent: true` render
- **Create an image**: Creating an image on Bannerbear is achieved via this endpoint. This endpoint responds with 202 Accepted after which your image will be queued to generate. Images are usually rendered within a few seconds. When completed, the status changes to completed. You can poll the GET endpoint for status updat
- **Create an image template (V5)**: Create a new image template in the workspace. Pass `config` to seed the canvas with layers; omit it to start from an empty template that can be edited later.
- **Create an image (V5)**: Create an image render. Async on api.bannerbear.com (returns 202 + pending record, poll via GET /images/{uid} or subscribe via webhook). Sync on sync.api.bannerbear.com (returns 200 + completed image inline, or 408 if the render exceeds the sync timeout).
- **Create an instant URL (V5)**: Create an instant URL
- **Create a project**: Create a project.
- **Create a screenshot**: This endpoint responds with 202 Accepted after which your screenshot will be queued to generate. Screenshots are usually rendered within a few seconds. When completed, the status changes to completed. You can poll the GET endpoint for status updates or use a webhook to get the final screenshot poste
- **Create a session**: Create a session.
- **Create a template**: This endpoint allows you create blank templates, which you can then use with the Sessions API to provide your users a blank canvas plus editor environment to design their own templates from scratch.
- **Create a template set**: Create a template set.
- **Create a video**: Creating a video on Bannerbear is achieved via this endpoint. This endpoint responds with 202 Accepted after which your video will be queued to generate. Video rendering time depends on length / complexity of the video. It can vary from a few seconds to a few minutes. When completed, the status chan
- **Create a video template**: Create a video template.
- **Create a webhook**: Create a webhook.
- **Create a webhook (V5)**: Create a webhook
- **Create a workflow (V5)**: Create a workflow with its inputs and steps in one call. Every step's `ref` is validated against its adapter — an unknown tool slug or a template UID outside this workspace is rejected — and a step may only reference steps before it.
- **Create GIF preview (V5)**: Turn a video into an animated GIF preview. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **Create multi-page PDF (V5)**: Stitch JPGs, PNGs and PDFs into one multi-page PDF. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **Create Signed Base**: Create Signed Base.
- **Create video slideshow (V5)**: Turn images into an mp4 slideshow with optional transitions. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **Crop video (V5)**: Crop a video to an explicit rectangle in pixels. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **Delete an animation template (V5)**: Soft-deletes the template. Animations already rendered from it stay intact, but the template no longer appears in list/get calls and can't be used for new renders.
- **Delete an image template (V5)**: Soft-deletes the template. Existing renders that reference it stay intact, but the template will no longer appear in list/get calls and can no longer be used for new renders.
- **Delete an instant URL (V5)**: Delete an instant URL
- **Delete a template**: Permanently delete a template from your project. This action cannot be undone.
- **Delete a webhook**: Delete a webhook.
- **Delete a webhook (V5)**: Delete a webhook
- **Delete a workflow (V5)**: Discards the workflow. Its past runs are kept.
- **Duplicate a template**: You can duplicate templates with this endpoint, which is useful if you are using the Sessions API. Let your users select templates from your custom library, then duplicate the template and create a Session so that they can customize it.
- **Flatten PDF for print (V5)**: Flatten transparency and form fields, and embed fonts for print. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **Generate AI image (V5)**: Generate an image from a text prompt with AI. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **Generate AI video (V5)**: Generate a video from a prompt or image with AI. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **Generate voiceover (V5)**: Turn text into spoken audio using a natural-sounding TTS voice. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **Get a batch (V5)**: Get a batch
- **Get account info**: To check your account status at any time you can use this endpoint. It will respond with your quota levels and current usage levels. Usage resets at the start of every month.
- **Get account info (V5)**: Get account info
- **Get an animation template (V5)**: Get an animation template
- **Get an animation (V5)**: Get an animation
- **Get an asset (V5)**: Get an asset
- **Get an image template (V5)**: Get an image template
- **Get an image (V5)**: Get an image
- **Get an instant URL (V5)**: Get an instant URL
- **Get a publication (V5)**: Public library publications are visible to any authenticated caller, including legacy V3 ones, whose uid carries a `v3_` prefix — a bare V3 uid resolves too. Published publications are only returned to the user who created them.
- **Get a tool job (V5)**: Poll the status and outputs of a tool run. The `outputs` object's shape depends on which tool created the job — refer to the tool's POST endpoint for the concrete keys.
- **Get a webhook (V5)**: Get a webhook
- **Get a workflow run (V5)**: Get a workflow run
- **Get a workflow (V5)**: Returns the workflow's definition — the inputs it accepts and the steps it runs, in order. Call this before POST /workflow_runs to learn what to send.
- **Hydrate a project**: Hydrating a project will copy all templates from a source project into the project with the specified uid. Both projects must be under the same account. Alternatively you can specify an array of template IDs if you want to import only specific templates into a project. Templates must all have the sa
- **Import templates**: You can import templates to a project from the public library, or any templates that have been shared publicly in your account or other accounts. The parameters in this request should be Publication IDs. These are the IDs of publicly-available templates either from the library or shared by other use
- **Install a publication into the workspace (V5)**: Clones the publication's snapshot into the API key's team. What it creates depends on the publication's `template_kind` — an image template, an animation template, or a workflow and the templates its steps use. A legacy V3 publication (uid prefixed `v3_`) is converted into a V5 image template on the
- **Join PDF files**: Join PDF files.
- **Join videos (V5)**: Join two or more videos end-to-end into a single file. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **List all animated gifs**: List all animated gifs.
- **List all collections**: List all collections.
- **List all images**: Lists images inside a project.
- **List all movies**: List all movies.
- **List all projects**: List all projects.
- **List all screenshots**: List all screenshots.
- **List all sessions**: List all sessions.
- **List all templates**: List all templates.
- **List all template sets**: List all template sets.
- **List all videos**: List all videos.
- **List all video templates**: List all video templates.
- **List animations (V5)**: List animations
- **List animation templates (V5)**: List animation templates
- **List assets (V5)**: List assets
- **List batches (V5)**: List batches
- **List effects**: Bannerbear has a number of built-in effects that you can apply to image containers at the template level. However, you can also set these on-the-fly when you make Image API requests using the effect property. This is useful if you need to make multiple variations from a template, but use different e
- **List fonts**: Fonts are set at the template level in Bannerbear. When you design a template and create a text box, you choose a font for that text box. So it is not necessary to set fonts when creating images via the API, as the defaults will be used. However, if you wish you can change fonts in your images on-th
- **List images (V5)**: List images
- **List image templates (V5)**: List image templates
- **List instant URLs (V5)**: List instant URLs
- **List Signed Bases**: List Signed Bases.
- **List tool jobs (V5)**: Newest first, 20 per page. Same polling shape /v5/images uses — Zapier / integration triggers can dedupe by `uid` and stop once they see a known one.
- **List webhooks (V5)**: List webhooks
- **List workflow runs (V5)**: List workflow runs
- **List workflows (V5)**: List workflows
- **Overlay video (V5)**: Layer one video on top of another as picture-in-picture. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **PDF to image (V5)**: Turn PDF pages into JPG or PNG images. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **Rasterize a PDF**: Rasterize a PDF.
- **Remove background (V5)**: Cut the subject out of an image onto transparency. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **Resize video (V5)**: Rescale a video to target dimensions, cover-crop or contain-letterbox. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **Retrieve a collection**: Retrieve a collection.
- **Retrieve a diagnosis**: Retrieve a diagnosis.
- **Retrieve a movie**: Retrieve a movie.
- **Retrieve an animated gif**: Retrieve an animated gif.
- **Retrieve an image**: Retrieves a single Image object referenced by its unique ID.
- **Retrieve a project**: Retrieve a project.
- **Retrieve a screenshot**: Retrieve a screenshot.
- **Retrieve a session**: Retrieve a session.
- **Retrieve a template**: Retrieve a template.
- **Retrieve a template set**: Retrieve a template set.
- **Retrieve a video**: Retrieve a video.
- **Retrieve a video template**: Retrieve a video template.
- **Retrieve a webhook**: Retrieve a webhook.
- **Retrieve joined PDF file**: Retrieve joined PDF file.
- **Retrieve rasterized PDF**: Retrieve rasterized PDF.
- **Run a workflow (V5)**: Start a workflow. Async — returns 202 immediately; poll GET /workflow_runs/{uid} until `status` is `completed` or `failed`. Steps run in order, each feeding the next. A run charges nothing itself: each step is billed as the resource it creates, so a run costs exactly what running its steps individua
- **Soften video (V5)**: Smooth skin and flat surfaces while keeping edges sharp. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **Transcribe and burn subtitles (V5)**: Auto-transcribe the audio and burn styled subtitles onto the video. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **Trim video (V5)**: Keep a slice of a video between two times. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.
- **Update an animation template (V5)**: Update metadata, or replace the whole canvas by sending `config`. Layers and keyframes both live in `config`, so a partial config replaces everything in it — read the template first and send back the full object with your changes applied.
- **Update an image template (V5)**: Update any subset of template attributes. Passing `config` fully replaces the template's canvas configuration.
- **Update an instant URL (V5)**: Update an instant URL
- **Update a template**: You can edit some basic attributes of a Template via the API.
- **Update a template set**: Update a template set.
- **Update a video**: Update a video.
- **Update a webhook (V5)**: Update a webhook
- **Update a workflow (V5)**: Change metadata, inputs or steps. Each of `inputs` and `steps` is replaced wholesale when present and left alone when omitted, so renaming a workflow does not disturb its definition. Read the workflow first and send back the full array with your changes applied.
- **Upload an asset (V5)**: Upload a file (max 5MB) to storage and get back a durable CDN URL. Send the raw file bytes as the request body with `Content-Type` set to one of the accepted mime types listed below.
- **Video thumbnails (V5)**: Grab still frames from a video at regular intervals. Async — returns 202 with a pending job; poll GET /tool_jobs/{uid} until `status` is `completed` or `failed`.

Connect Bannerbear in General Input: https://www.generalinput.com/apps/bannerbear