> ## Documentation Index
> Fetch the complete documentation index at: https://heygen-1fa696a7.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# List AI Clipping

> Returns a cursor-paginated list of AI clip jobs in the authenticated user's workspace, newest first.



## OpenAPI

````yaml /openapi/external-api.json get /v3/ai-clipping
openapi: 3.1.0
info:
  title: HeyGen External API
  version: 1.0.0
  description: >-
    HeyGen's external API for programmatic AI video creation. See
    https://docs.heygen.com for full documentation.
  contact:
    name: HeyGen Product Infra
    url: https://heygen.com
servers:
  - url: https://api.heygen.com
    description: Production
security:
  - ApiKeyAuth: []
  - BearerAuth: []
tags:
  - name: Video Agent
    description: Create videos from text prompts using AI
  - name: Videos
    description: Create, list, retrieve, and delete videos
  - name: Voices
    description: Text-to-speech and voice management
  - name: Audio
    description: Search the background-music and sound-effects catalog
  - name: Video Translate
    description: Translate videos into other languages
  - name: User
    description: Account information and billing
  - name: Avatars
    description: List and manage avatars and looks
  - name: Avatar Realtime
    description: >-
      Low-latency streaming avatar sessions — create a stream, poll for its HLS
      URL, push text, consume per-word timestamps
  - name: Assets
    description: Upload files for use in video creation
  - name: Webhooks
    description: Manage webhook endpoints and events
  - name: Lipsync
    description: Dub or replace audio on existing videos
  - name: Brand
    description: >-
      Brand-related resources — brand kits (colors, fonts, logos) and brand
      glossaries (custom term translations)
  - name: HyperFrames
    description: Render HyperFrames composition zips into video — separate from /v3/videos
  - name: AI Clipping
    description: Turn long-form videos into ready-to-share short clips with captions
paths:
  /v3/ai-clipping:
    get:
      tags:
        - AI Clipping
      summary: List AI Clipping
      description: >-
        Returns a cursor-paginated list of AI clip jobs in the authenticated
        user's workspace, newest first.
      operationId: listAiClippingV3
      parameters:
        - name: limit
          in: query
          required: false
          description: >-
            Maximum number of items per page. Defaults to 10 (lower than other
            v3 lists) because each item embeds its full clips array.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
        - name: token
          in: query
          required: false
          description: Opaque cursor token for the next page.
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AiClippingDetail'
                  has_more:
                    type: boolean
                    description: Whether more pages are available
                  next_token:
                    type:
                      - string
                      - 'null'
                    description: Opaque cursor for the next page
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/StandardAPIError'
              example:
                error:
                  code: invalid_parameter
                  message: '''limit'' must be between 1 and 100.'
                  param: limit
                  doc_url: null
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/StandardAPIError'
              example:
                error:
                  code: authentication_failed
                  message: Invalid or expired API key. Verify your x-api-key header.
                  param: null
                  doc_url: null
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    $ref: '#/components/schemas/StandardAPIError'
              example:
                error:
                  code: rate_limit_exceeded
                  message: >-
                    Too many requests. Retry after the duration specified in the
                    Retry-After header.
                  param: null
                  doc_url: null
          headers:
            Retry-After:
              description: Seconds to wait before retrying
              schema:
                type: integer
      security:
        - ApiKeyAuth: []
        - BearerAuth: []
components:
  schemas:
    AiClippingDetail:
      description: |-
        Full job resource. Returned by Get / List / webhook payloads.

        Field naming mirrors ``VideoTranslationDetail``
        (movio/api_service/app/controller/video_translate_v3_dto.py).
      properties:
        id:
          description: Unique job identifier.
          title: Id
          type: string
        title:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: Display title.
          title: Title
        status:
          $ref: '#/components/schemas/JobStatus'
          description: Job lifecycle status.
        input_language:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: Detected or supplied source language code.
          title: Input Language
        source_duration:
          anyOf:
            - type: number
            - type: 'null'
          default: null
          description: Duration of the source video in seconds.
          title: Source Duration
        output_settings:
          anyOf:
            - $ref: '#/components/schemas/HighlightOutputSettings'
            - type: 'null'
          default: null
          description: >-
            Reserved. Not currently returned on read: the job row does not
            persist output_settings, so Get, List, and webhook responses always
            omit this field.
        clips:
          description: Produced clips. Empty until the job's first clip is rendered.
          items:
            $ref: '#/components/schemas/Clip'
          title: Clips
          type: array
        progress:
          default: 0
          description: >-
            Approximate progress (0-100). 100 when all clips completed. GET
            /v3/ai-clipping/{id} returns live in-flight progress; the list
            endpoint reports a coarse value (0 until completed, then 100) to
            avoid a per-row status query, so poll the single-get endpoint for
            granular progress.
          maximum: 100
          minimum: 0
          title: Progress
          type: integer
        callback_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: Client-provided callback ID.
          title: Callback Id
        created_at:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          description: Unix timestamp (seconds) of job creation.
          title: Created At
        failure_message:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: Error description. Only present when status=failed.
          title: Failure Message
      required:
        - id
        - status
      title: AiClippingDetail
      type: object
    StandardAPIError:
      type: object
      properties:
        code:
          type: string
          description: Machine-readable error code
          example: invalid_parameter
        message:
          type: string
          description: Human-readable error message
          example: Video not found
        param:
          type:
            - string
            - 'null'
          description: Which request field caused the error
        doc_url:
          type:
            - string
            - 'null'
          description: Link to error documentation
      required:
        - code
        - message
    JobStatus:
      description: |-
        Public job lifecycle. Mirrors the v3 video-translation status set plus a
        ``cancelled`` terminal state.
      enum:
        - pending
        - running
        - completed
        - failed
        - cancelled
      title: JobStatus
      type: string
    HighlightOutputSettings:
      additionalProperties: false
      description: >-
        Configuration for the clips the job will produce.


        Public projection of the internal ``HighlightOutputSettings``

        (heygen/temporal/workflow/model/instant_highlight.py:27),

        minus internal-only fields (``caption_config`` — internal StyleConfig
        from

        the frontend, not part of the public contract).
      properties:
        duration_types:
          description: >-
            One or more target clip durations to produce. Each produces a
            separate clip.
          items:
            $ref: '#/components/schemas/OutputDuration'
          maxItems: 4
          minItems: 1
          title: Duration Types
          type: array
        aspect_ratio:
          $ref: '#/components/schemas/OutputAspectRatio'
          default: portrait
          description: >-
            Aspect ratio for all produced clips. Default 'portrait' (9:16,
            social-ready).
        captions:
          default: true
          description: Burn captions into the clips. Set false to disable.
          title: Captions
          type: boolean
        caption_style:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: >-
            Named caption style preset (e.g. 'classic', 'bold'). Omit for the
            default style.
          title: Caption Style
        prompt:
          anyOf:
            - maxLength: 500
              type: string
            - type: 'null'
          default: null
          description: >-
            Optional editorial guidance for the highlight model. Max 500
            characters.
          title: Prompt
      title: HighlightOutputSettings
      type: object
    Clip:
      description: A single produced clip. Returned inline inside AiClippingDetail.
      properties:
        id:
          description: Unique clip identifier.
          title: Id
          type: string
        status:
          $ref: '#/components/schemas/ClipStatus'
          description: Per-clip status.
        duration_seconds:
          anyOf:
            - type: number
            - type: 'null'
          default: null
          description: Final clip duration in seconds. Null until status=completed.
          title: Duration Seconds
        aspect_ratio:
          anyOf:
            - $ref: '#/components/schemas/OutputAspectRatio'
            - type: 'null'
          default: null
          description: Clip aspect ratio. Null until status=completed.
        title:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: Model-generated clip title.
          title: Title
        virality_score:
          anyOf:
            - maximum: 100
              minimum: 0
              type: integer
            - type: 'null'
          default: null
          description: Model-predicted virality score (0-100). Null until status=completed.
          title: Virality Score
        thumbnail_url:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: Presigned thumbnail URL. Null until status=completed.
          title: Thumbnail Url
        video_url:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: Presigned MP4 download URL. Null until status=completed.
          title: Video Url
        failure_message:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: >-
            Reserved for future per-clip error surfacing. Currently always null;
            no per-clip failure reason is persisted.
          title: Failure Message
      required:
        - id
        - status
      title: Clip
      type: object
    OutputDuration:
      description: Target clip duration. ``long`` returns the model's choice >180s.
      enum:
        - '30'
        - '60'
        - '180'
        - long
      title: OutputDuration
      type: string
    OutputAspectRatio:
      description: Output aspect ratio for produced clips.
      enum:
        - landscape
        - portrait
        - square
      title: OutputAspectRatio
      type: string
    ClipStatus:
      description: >-
        Per-clip lifecycle. A job can produce N clips, each completing
        separately.
      enum:
        - pending
        - completed
        - failed
      title: ClipStatus
      type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: HeyGen API key. Obtain from your HeyGen dashboard.
    BearerAuth:
      type: http
      scheme: bearer
      description: OAuth2 bearer token.

````