Wistia Remix API

The Remix API from Wistia — 5 operation(s) for remix.

Operations 5

POST /remixes Create Remix #
GET /remixes/{remixHashedId} Get Remix #
POST /remixes/{remixHashedId}/continue Continue Remix #
POST /remixes/{remixHashedId}/export Export Remix #
GET /remix_account_status Get Remix Account Status #

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/wistia-remix-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

wistia-remix-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Data Remix API
  description: Wistia Data API
  version: edge-version
servers:
- url: https://api.wistia.com/modern
tags:
- name: Remix
  x-displayName: Remix
paths:
  /remixes:
    post:
      x-readme-hidden: true
      summary: Create Remix
      x-wistia-mcp-annotations:
        read_only_hint: false
        read_only_hint_justification: This tool starts an AI-driven remix job, which creates new edit data on the account.
        open_world_hint: false
        open_world_hint_justification: This tool calls an external AI service to generate the remix edit tree.
        destructive_hint: false
        destructive_hint_justification: Only a new remix is created; existing media are not modified.
        idempotent_hint: false
        idempotent_hint_justification: Each call attempts to create an additional resource, so repeating the request may create duplicates.
      description: 'Start a new video remix job. The remix is processed asynchronously — poll

        the show endpoint to check status and get preview URLs when ready.


        Remix uses AI to analyze video transcripts and create edited versions

        (highlight reels, trailers, cut-downs, etc.) based on your instructions.


        The remix is automatically exported (rendered) upon completion. When the

        status reaches "completed", the output media is available in the

        destination folder. If no `folder_id` is provided, the remix is exported

        to the source media''s folder.


        ## Requires api token with one of the following permissions

        ```

        Read, update & delete anything

        ```'
      x-wistia-mcp-tool-name: create-remix
      x-wistia-mcp-description: 'Start, create, or generate a new AI video remix — an automated edit that

        transforms source videos using natural-language instructions (e.g. "create a

        60-second highlight reel", "cut the intro", "add captions"). Provide source

        media hashed IDs and a prompt. Use this when someone wants to auto-edit, make,

        or produce an edited video with AI. Runs asynchronously and auto-exports on

        completion; poll get-remix for status, continue-remix to refine it. Each job

        consumes a remix credit — check get-remix-account-status for remaining quota.

        '
      requestBody:
        content:
          application/json:
            schema:
              unevaluatedProperties: false
              type: object
              properties:
                media_hashed_ids:
                  description: Array of source media hashed IDs to remix from.
                  type: array
                  items:
                    type: string
                  examples:
                  - - abc123
                    - def456
                instructions:
                  description: Natural language instructions describing the desired remix (e.g., "create a 60-second highlight reel").
                  type: string
                  examples:
                  - Create a 60-second highlight reel focusing on the product demo section
                folder_id:
                  description: Hashed ID of the destination folder for the exported media. Defaults to the source media's folder if not specified.
                  type: string
              required:
              - media_hashed_ids
              - instructions
      responses:
        '201':
          description: Remix job successfully created.
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  remix_id:
                    description: Hashed ID of the created remix. Use this to poll for status.
                    type: string
                  conversation_id:
                    description: Hashed ID of the remix conversation (groups multiple remix iterations).
                    type: string
                  status:
                    description: Current status of the remix job.
                    type: string
                    enum:
                    - pending
                    - deferred
                  source_medias:
                    description: The source media used for this remix.
                    type: array
                    items:
                      unevaluatedProperties: false
                      type: object
                      properties:
                        hashed_id:
                          type: string
                        name:
                          type: string
        '401':
          description: Unauthorized, invalid or missing token
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  code:
                    description: A machine-readable identifier for the specific authorization failure.
                    type: string
                    enum:
                    - unauthorized_credentials
                    - account_inactive
                    - unauthorized_scope
                    - unauthorized_params
                  error:
                    type: string
                    examples:
                    - Invalid credentials.
        '403':
          description: Forbidden, token is valid but account does not have access to feature
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                    examples:
                    - Webinars are not available on your current plan
        '422':
          description: Unprocessable entity (e.g., credit limit reached, media not found).
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                  credits_renew_at:
                    description: When remix credits renew (ISO 8601), if the error is a credit limit.
                    type: string
                    format: date-time
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                    examples:
                    - Internal server error
      tags:
      - Remix
      security:
      - BearerAuth: []
      operationId: postRemixes
      x-operation-id-source: derived
  /remixes/{remixHashedId}:
    get:
      x-readme-hidden: true
      summary: Get Remix
      x-wistia-mcp-annotations:
        read_only_hint: true
        read_only_hint_justification: This tool only reads remix state and does not modify any data.
        open_world_hint: false
        open_world_hint_justification: This tool only queries records inside the account and does not reach external services.
        destructive_hint: false
        destructive_hint_justification: This tool is read-only and does not make any changes.
        idempotent_hint: true
        idempotent_hint_justification: Reading data does not change any state, so repeated calls have no additional effect.
      description: 'Get the current status of a remix job. When the status reaches

        "edit_tree_generated", preview URLs are included in the response.


        ## Requires api token with one of the following permissions

        ```

        Read all folder and media data

        ```'
      x-wistia-mcp-tool-name: get-remix
      x-wistia-mcp-description: 'Get, show, check, or poll the status of an AI video remix job. Poll this after

        create-remix or continue-remix to track progress of the asynchronous edit. When

        status reaches "edit_tree_generated", the remix is ready and preview URLs (video

        embed, thumbnail) are included. Use this when someone wants to know if a remix is

        done, see its preview, or check progress. Then use export-remix to save the

        result.

        '
      parameters:
      - name: remixHashedId
        in: path
        description: The hashed ID of the remix.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Remix status and details.
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  remix_id:
                    description: Hashed ID of the remix.
                    type: string
                  conversation_id:
                    description: Hashed ID of the parent conversation.
                    type: string
                  created_at:
                    description: The ISO 8601 timestamp when the remix was created.
                    type: string
                    format: date-time
                  status:
                    description: Current processing status.
                    type: string
                    enum:
                    - pending
                    - generating
                    - generating_scenes
                    - editable_scenes_generated
                    - edit_tree_generated
                    - exporting
                    - completed
                    - error
                  error_message:
                    description: Error details if status is "error".
                    type: string
                  preview:
                    unevaluatedProperties: false
                    description: Preview URLs, available when status is "edit_tree_generated" or later.
                    type: object
                    properties:
                      embed_url:
                        description: Iframe embed URL for video playback.
                        type: string
                        format: uri
                      thumbnail_url:
                        description: Thumbnail image URL.
                        type:
                        - string
                        - 'null'
                        format: uri
                      instant_hls_ready:
                        description: Whether the instant HLS preview is ready.
                        type: boolean
        '401':
          description: Unauthorized, invalid or missing token
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  code:
                    description: A machine-readable identifier for the specific authorization failure.
                    type: string
                    enum:
                    - unauthorized_credentials
                    - account_inactive
                    - unauthorized_scope
                    - unauthorized_params
                  error:
                    type: string
                    examples:
                    - Invalid credentials.
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                    examples:
                    - Folder with ID 'fakeid' not found.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                    examples:
                    - Internal server error
      tags:
      - Remix
      security:
      - BearerAuth: []
      operationId: getRemixesByRemixHashedId
      x-operation-id-source: derived
  /remixes/{remixHashedId}/continue:
    post:
      x-readme-hidden: true
      summary: Continue Remix
      x-wistia-mcp-annotations:
        read_only_hint: false
        read_only_hint_justification: This tool refines an existing remix, which updates remix data on the account.
        open_world_hint: false
        open_world_hint_justification: This tool calls an external AI service to refine the remix edit tree.
        destructive_hint: false
        destructive_hint_justification: Continuing only appends new instructions to the remix; the prior edit tree is preserved as a revision.
        idempotent_hint: false
        idempotent_hint_justification: Each call applies a further round of edits to the remix, so repeating the request changes the result again.
      description: 'Submit a follow-up edit to an existing remix. Creates a new remix version

        in the same conversation. The previous remix is preserved and can be

        referenced later.


        The new remix version is automatically exported (rendered) upon completion.

        If `folder_id` is provided, the output is exported to that folder. Otherwise,

        it defaults to the same folder as the previous remix version''s output.


        ## Requires api token with one of the following permissions

        ```

        Read, update & delete anything

        ```'
      x-wistia-mcp-tool-name: continue-remix
      x-wistia-mcp-description: 'Continue, refine, or revise an existing AI video remix with new natural-language

        instructions (e.g. "cut the intro", "add background music", "make it shorter").

        Creates a new edited version in the same remix conversation; the prior version is

        preserved as a revision. Use this when someone wants to further edit, adjust, or

        iterate on a remix. Runs asynchronously and auto-exports on completion; poll

        get-remix for status. See create-remix to start a new remix and

        get-remix-account-status for remaining credits.

        '
      parameters:
      - name: remixHashedId
        in: path
        description: The hashed ID of the current remix version to edit from.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              unevaluatedProperties: false
              type: object
              properties:
                instructions:
                  description: Natural language instructions for the edit (e.g., "cut the first 10 seconds").
                  type: string
                  examples:
                  - Cut the intro and add background music
                folder_id:
                  description: Hashed ID of the destination folder for the exported media. Defaults to the same folder as the previous remix version's output.
                  type: string
              required:
              - instructions
      responses:
        '201':
          description: New remix version created.
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  remix_id:
                    description: Hashed ID of the new remix version.
                    type: string
                  conversation_id:
                    description: Hashed ID of the conversation.
                    type: string
                  status:
                    description: Status of the new remix version.
                    type: string
                    enum:
                    - pending
                  previous_remix_id:
                    description: Hashed ID of the remix version this edit is based on.
                    type: string
        '401':
          description: Unauthorized, invalid or missing token
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  code:
                    description: A machine-readable identifier for the specific authorization failure.
                    type: string
                    enum:
                    - unauthorized_credentials
                    - account_inactive
                    - unauthorized_scope
                    - unauthorized_params
                  error:
                    type: string
                    examples:
                    - Invalid credentials.
        '403':
          description: Forbidden, token is valid but account does not have access to feature
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                    examples:
                    - Webinars are not available on your current plan
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                    examples:
                    - Folder with ID 'fakeid' not found.
        '422':
          description: Unprocessable entity (e.g., conversation not found).
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                    examples:
                    - Internal server error
      tags:
      - Remix
      security:
      - BearerAuth: []
      operationId: postRemixesByRemixHashedIdContinue
      x-operation-id-source: derived
  /remixes/{remixHashedId}/export:
    post:
      x-readme-hidden: true
      summary: Export Remix
      x-wistia-mcp-annotations:
        read_only_hint: false
        read_only_hint_justification: This tool exports a remix to a new media, which adds data to the account.
        open_world_hint: false
        open_world_hint_justification: This tool only operates on records inside the account and does not reach external services.
        destructive_hint: false
        destructive_hint_justification: Exporting creates a new media; the source remix and source media are not modified.
        idempotent_hint: false
        idempotent_hint_justification: Each call starts another export job.
      description: 'Export a completed remix to a folder in your account. Triggers the full

        render pipeline. The remix must have reached "edit_tree_generated" status.


        If no folder_id is provided, the remix is exported to the source media''s folder.


        ## Requires api token with one of the following permissions

        ```

        Read, update & delete anything

        ```'
      x-wistia-mcp-tool-name: export-remix
      x-wistia-mcp-description: 'Export, save, or render a finished AI video remix as a new media file in a

        folder in your Wistia account, triggering the full render pipeline. Optionally

        specify a destination folder and custom name. Use this when someone wants to

        save, render, or publish the result of a remix. The remix must have reached

        "edit_tree_generated" status (poll get-remix) before it can be exported. See

        create-remix to start a remix and continue-remix to refine one.

        '
      parameters:
      - name: remixHashedId
        in: path
        description: The hashed ID of the remix to export.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              unevaluatedProperties: false
              type: object
              properties:
                folder_id:
                  description: Hashed ID of the destination folder. Defaults to the source media's folder.
                  type: string
                name:
                  description: Custom name for the exported media.
                  type: string
      responses:
        '202':
          description: Export successfully queued.
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  remix_id:
                    description: Hashed ID of the exported remix.
                    type: string
                  media_hashed_id:
                    description: Hashed ID of the output media being rendered.
                    type: string
                  media_name:
                    description: Name of the output media.
                    type: string
                  folder_hashed_id:
                    description: Hashed ID of the destination folder.
                    type: string
                  status:
                    description: Export status.
                    type: string
                    enum:
                    - exporting
        '401':
          description: Unauthorized, invalid or missing token
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  code:
                    description: A machine-readable identifier for the specific authorization failure.
                    type: string
                    enum:
                    - unauthorized_credentials
                    - account_inactive
                    - unauthorized_scope
                    - unauthorized_params
                  error:
                    type: string
                    examples:
                    - Invalid credentials.
        '403':
          description: Forbidden, token is valid but account does not have access to feature
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                    examples:
                    - Webinars are not available on your current plan
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                    examples:
                    - Folder with ID 'fakeid' not found.
        '422':
          description: Unprocessable entity (e.g., remix not ready for export).
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                    examples:
                    - Internal server error
      tags:
      - Remix
      security:
      - BearerAuth: []
      operationId: postRemixesByRemixHashedIdExport
      x-operation-id-source: derived
  /remix_account_status:
    get:
      x-readme-hidden: true
      summary: Get Remix Account Status
      x-wistia-mcp-annotations:
        read_only_hint: true
        read_only_hint_justification: This tool only reads remix credit balance and does not modify any data.
        open_world_hint: false
        open_world_hint_justification: This tool only queries records inside the account and does not reach external services.
        destructive_hint: false
        destructive_hint_justification: This tool is read-only and does not make any changes.
        idempotent_hint: true
        idempotent_hint_justification: Reading data does not change any state, so repeated calls have no additional effect.
      description: 'Check the current account''s remix credit usage and limits.


        ## Requires api token with one of the following permissions

        ```

        Read all folder and media data

        ```'
      x-wistia-mcp-tool-name: get-remix-account-status
      x-wistia-mcp-description: 'Check remaining AI video remix credits, quota, and balance for the account

        this month. Returns the monthly limit, current usage, remaining credits, and

        whether the account can start a new remix. Use this when someone asks how many

        remixes are left, their remix quota/allowance, or before calling create-remix

        or continue-remix to confirm credits are available.

        '
      responses:
        '200':
          description: Remix account status.
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  monthly_limit:
                    description: Maximum number of remix credits per month.
                    type: integer
                  monthly_usage:
                    description: Number of remix credits used this month.
                    type: integer
                  remaining:
                    description: Number of remix credits remaining this month.
                    type: integer
                  can_create_remix:
                    description: Whether the account can create a new remix.
                    type: boolean
        '401':
          description: Unauthorized, invalid or missing token
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  code:
                    description: A machine-readable identifier for the specific authorization failure.
                    type: string
                    enum:
                    - unauthorized_credentials
                    - account_inactive
                    - unauthorized_scope
                    - unauthorized_params
                  error:
                    type: string
                    examples:
                    - Invalid credentials.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                    examples:
                    - Internal server error
      tags:
      - Remix
      security:
      - BearerAuth: []
      operationId: getRemixAccountStatus
      x-operation-id-source: derived
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
x-tagGroups:
- name: Data API
  tags:
  - Media
  - Customizations
  - Captions
  - Localizations
  - Trims
  - Extended Audio Descriptions
  - Brands
  - Tags
  - Taggings
  - Folders
  - Folder Sharings
  - Subfolders
  - Channels
  - Channel Collaborators
  - Channel Episodes
  - Webinars
  - Webinar Collaborators
  - Webinar Registrations
  - Account
  - Search
  - Resource URLs
  - Expiring Access Tokens
  - Background Job Status
  - Allowed Domains
  - Remix
  - Push Devices
  - Deleted Media
  - Review Bundles
  - Share Links
  - Bulk Actions
  - Custom Metadata Field Definitions
  - Custom Metadata Field Values
- name: Stats API
  tags:
  - Stats:Account
  - Stats:Events
  - Stats:Media
  - Stats:Projects
  - Stats:Visitors
- name: Analytics API
  tags:
  - Analytics:Account
  - Analytics:Media
  - Analytics:Webinar