Bannerbear Videos API

Render videos from video templates.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/bannerbear-videos-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

bannerbear-videos-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Bannerbear Animated GIFs Videos API
  description: The Bannerbear API auto-generates images and videos from reusable templates. A request applies an array of modifications (text, image, and color layer changes) to a template and renders the output. Most create operations are asynchronous, returning 202 Accepted; results are delivered via webhook callback or retrieved by polling the resource endpoint. Synchronous variants are available on the sync host for images, collections, and screenshots.
  termsOfService: https://www.bannerbear.com/terms/
  contact:
    name: Bannerbear Support
    url: https://www.bannerbear.com/help/
  version: '2.0'
servers:
- url: https://api.bannerbear.com/v2
  description: Asynchronous API host
- url: https://sync.api.bannerbear.com/v2
  description: Synchronous API host (10-second timeout, 408 on timeout)
security:
- bearerAuth: []
tags:
- name: Videos
  description: Render videos from video templates.
paths:
  /videos:
    post:
      operationId: createVideo
      tags:
      - Videos
      summary: Create a video
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVideoRequest'
      responses:
        '202':
          description: Accepted; video is rendering.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Video'
    get:
      operationId: listVideos
      tags:
      - Videos
      summary: List videos
      parameters:
      - $ref: '#/components/parameters/Page'
      responses:
        '200':
          description: A page of Video objects.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Video'
    patch:
      operationId: updateVideo
      tags:
      - Videos
      summary: Update a video's transcription or approval status
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                uid:
                  type: string
                transcription:
                  type: array
                  items:
                    type: string
                approved:
                  type: boolean
      responses:
        '200':
          description: Updated Video object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Video'
  /videos/{uid}:
    get:
      operationId: getVideo
      tags:
      - Videos
      summary: Retrieve a video
      parameters:
      - $ref: '#/components/parameters/Uid'
      responses:
        '200':
          description: A Video object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Video'
components:
  schemas:
    Modification:
      type: object
      description: A single layer modification applied to a template.
      properties:
        name:
          type: string
          description: The name of the layer to modify.
        text:
          type: string
        color:
          type: string
        background:
          type: string
        image_url:
          type: string
        font_family:
          type: string
    CreateVideoRequest:
      type: object
      required:
      - video_template
      properties:
        video_template:
          type: string
        input_media_url:
          type: string
        modifications:
          type: array
          items:
            $ref: '#/components/schemas/Modification'
        webhook_url:
          type: string
        zoom:
          type: boolean
        zoom_factor:
          type: number
        blur:
          type: integer
          minimum: 1
          maximum: 10
        trim_start_time:
          type: string
          description: HH:MM:SS
        trim_end_time:
          type: string
          description: HH:MM:SS
        frames:
          type: array
          items:
            type: array
            items:
              $ref: '#/components/schemas/Modification'
        create_gif_preview:
          type: boolean
    Video:
      type: object
      properties:
        uid:
          type: string
        status:
          type: string
          enum:
          - pending
          - completed
          - failed
        self:
          type: string
        video_url:
          type: string
        video_template:
          type: string
        input_media_url:
          type: string
        approval_required:
          type: boolean
        approved:
          type: boolean
        webhook_url:
          type: string
        created_at:
          type: string
          format: date-time
  parameters:
    Page:
      name: page
      in: query
      description: Page number for paginated lists (25 per page).
      schema:
        type: integer
        default: 1
    Uid:
      name: uid
      in: path
      required: true
      description: The unique identifier of the resource.
      schema:
        type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Project or master API key passed as a Bearer token.