BAMF.ai Video API

The Video API from BAMF.ai — 8 operation(s) for video.

Operations 8

POST /video/projects Create a Video Studio project #
GET /video/projects/{id}/generation-candidates List private generation candidates for an owned project #
GET /video/projects/{id}/generation-candidates/{jobId}/playback Get short-lived playback access for a private generation candidate #
POST /video/projects/{id}/script Read the video script brief or save the approved script #
POST /video/projects/{id}/narration Narrate a video project with the creator voice #
POST /video/projects/{id}/captions Transcribe or persist word-level video captions #
POST /video/projects/{id}/schedule Schedule or publish an exported video project #
GET /video/analytics/summary Video analytics summary #

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/bamf-ai:bamf-ai-video-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

bamf-ai-video-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: BAMF Developer Platform Video API
  version: 0.1.0
servers:
- url: https://api.bamf.ai/v1
security:
- BearerAuth: []
tags:
- name: Video
paths:
  /video/projects:
    post:
      summary: Create a Video Studio project
      responses:
        '201':
          description: Video project created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericDataResponse'
      tags:
      - Video
      operationId: postVideoProjects
      x-operation-id-source: derived
  /video/projects/{id}/generation-candidates:
    get:
      operationId: listVideoGenerationCandidates
      summary: List private generation candidates for an owned project
      description: Requires a signed-in JWT user who owns the project; API-key actors are not supported. Lists successful private video takes bound to this project, creator, workspace, and user, excluding takes already assigned in the current shot manifest. Results are candidates only; no automatic attachment or approval occurs. Only safe metadata is returned, with private no-store caching.
      security:
      - BearerAuth: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: limit
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 50
          default: 20
      - name: offset
        in: query
        schema:
          type: integer
          minimum: 0
          maximum: 10000
          default: 0
      responses:
        '200':
          description: Sanitized successful private generation candidates and bounded pagination state
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: object
                    required:
                    - items
                    - hasMore
                    - nextOffset
                    properties:
                      items:
                        type: array
                        items:
                          type: object
                          required:
                          - id
                          - createdAt
                          - completedAt
                          - requestedDurationSeconds
                          - outputSha256
                          - contentType
                          - byteSize
                          properties:
                            id:
                              type: string
                              format: uuid
                            createdAt:
                              type: string
                              format: date-time
                            completedAt:
                              type: string
                              format: date-time
                            requestedDurationSeconds:
                              type:
                              - number
                              - 'null'
                            outputSha256:
                              type: string
                              pattern: ^[0-9a-f]{64}$
                            contentType:
                              type: string
                              const: video/mp4
                            byteSize:
                              type: integer
                              minimum: 12
                              maximum: 262144000
                      hasMore:
                        type: boolean
                      nextOffset:
                        type:
                        - integer
                        - 'null'
        '400':
          description: Project ID or pagination parameters are invalid
        '401':
          description: Missing or invalid user session
        '403':
          description: API-key actor or unsupported actor type
        '404':
          description: Owned project not found
        '503':
          description: Candidate lookup unavailable
      tags:
      - Video
  /video/projects/{id}/generation-candidates/{jobId}/playback:
    get:
      operationId: getVideoGenerationCandidatePlayback
      summary: Get short-lived playback access for a private generation candidate
      description: Requires a signed-in JWT user who owns the project. Revalidates the take's project and source binding before returning a five-minute private playback URL. The response is private, no-store; do not persist the URL.
      security:
      - BearerAuth: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: jobId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Short-lived signed playback URL and verified private output metadata
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: object
                    required:
                    - url
                    - expiresInSeconds
                    - contentType
                    - byteSize
                    - sha256
                    properties:
                      url:
                        type: string
                        format: uri
                      expiresInSeconds:
                        type: integer
                        const: 300
                      contentType:
                        type: string
                        const: video/mp4
                      byteSize:
                        type: integer
                        minimum: 12
                        maximum: 262144000
                      sha256:
                        type: string
                        pattern: ^[0-9a-f]{64}$
        '400':
          description: Project or job ID is invalid
        '401':
          description: Missing or invalid user session
        '403':
          description: API-key actor or unsupported actor type
        '404':
          description: Owned project or eligible succeeded candidate not found
        '503':
          description: Private playback signing unavailable
      tags:
      - Video
  /video/projects/{id}/script:
    post:
      summary: Read the video script brief or save the approved script
      responses:
        '200':
          description: Video script brief or saved project
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericDataResponse'
      tags:
      - Video
      operationId: postVideoProjectsByIdScript
      x-operation-id-source: derived
  /video/projects/{id}/narration:
    post:
      summary: Narrate a video project with the creator voice
      responses:
        '202':
          description: Narration started
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericDataResponse'
      tags:
      - Video
      operationId: postVideoProjectsByIdNarration
      x-operation-id-source: derived
  /video/projects/{id}/captions:
    post:
      summary: Transcribe or persist word-level video captions
      responses:
        '202':
          description: Captions transcribed or saved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericDataResponse'
      tags:
      - Video
      operationId: postVideoProjectsByIdCaptions
      x-operation-id-source: derived
  /video/projects/{id}/schedule:
    post:
      summary: Schedule or publish an exported video project
      responses:
        '202':
          description: Video post scheduled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericDataResponse'
      tags:
      - Video
      operationId: postVideoProjectsByIdSchedule
      x-operation-id-source: derived
  /video/analytics/summary:
    get:
      summary: Video analytics summary
      responses:
        '200':
          description: Video analytics rollup
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericDataResponse'
      tags:
      - Video
      operationId: getVideoAnalyticsSummary
      x-operation-id-source: derived
components:
  schemas:
    GenericDataResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/JSONValue'
    JSONValue:
      description: Any JSON value returned by flexible workflow, analytics, context, or generation payloads.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer