> ## Documentation Index
> Fetch the complete documentation index at: https://docs.argil.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a new Video

> Creates a new Video with the specified details



## OpenAPI

````yaml post /videos
openapi: 3.0.1
info:
  title: Argil API
  description: API for AI clone video generation
  version: 1.0.0
  license:
    name: MIT
servers:
  - url: https://api.argil.ai/v1
security:
  - ApiKeyAuth: []
paths:
  /videos:
    post:
      summary: Create a new Video
      description: Creates a new Video with the specified details
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VideoCreateArgs'
      responses:
        '201':
          description: Successfully created Video
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Video'
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    VideoCreateArgs:
      type: object
      required:
        - name
        - moments
      properties:
        name:
          type: string
        moments:
          type: array
          description: >-
            An array of Moment items, each representing a portion of the
            complete video.
          items:
            type: object
            description: >-
              A video moment. Exactly one of `transcript` or `audioUrl` must be
              provided — they are mutually exclusive.
            required:
              - avatarId
            properties:
              transcript:
                type: string
                description: >-
                  A portion of the complete transcript. Mutually exclusive with
                  `audioUrl` — provide one or the other, not both. Current
                  limit: 500 characters
              audioUrl:
                type: string
                description: >-
                  URL to an audio file for this moment, bypassing TTS
                  generation. Mutually exclusive with `transcript` — provide one
                  or the other, not both. Max duration: 40 seconds
              avatarId:
                type: string
                description: The id of the avatar to be used for this moment
              voiceId:
                type: string
                description: >-
                  The id of the voice to be used for this moment. Optional,
                  default is the avatar's voice.
              voiceModel:
                type: string
                description: >
                  Optional override for the voice's default TTS model. Must be
                  compatible with the voice's provider.

                  ElevenLabs voices: eleven_multilingual_v2,
                  eleven_multilingual_v1, eleven_monolingual_v1,
                  eleven_turbo_v2, eleven_turbo_v2_5, eleven_flash_v2_5,
                  eleven_v3

                  Minimax voices: speech-02-hd, speech-02-turbo, speech-2.5-hd,
                  speech-2.5-turbo, speech-2.6-hd, speech-2.6-turbo,
                  speech-2.8-hd, speech-2.8-turbo
              gestureSlug:
                type: string
                description: The slug identifier of the gesture to be used for this moment
              zoom:
                description: Zoom applied to the avatar in this moment.
                allOf:
                  - $ref: '#/components/schemas/Zoom'
              broll:
                $ref: '#/components/schemas/MomentBroll'
            additionalProperties: false
        subtitles:
          type: object
          properties:
            enable:
              type: boolean
            styleId:
              type: string
              description: >-
                ID of the subtitle style to apply. Styles can be fetched from
                the /subtitles endpoint.
            position:
              type: string
              enum:
                - Top
                - Middle
                - Bottom
              description: Position of subtitles on the video
            size:
              type: string
              enum:
                - Small
                - Medium
                - Large
              description: Size of the subtitle text
          required:
            - enable
          additionalProperties: false
          description: Subtitles settings for the video
        aspectRatio:
          type: string
          enum:
            - '16:9'
            - '9:16'
          description: >-
            Select desired output aspectRatio: 16:9 or 9:16. Optional, default
            depends on used avatar.
        enableAutoBrolls:
          type: boolean
          description: >-
            [DEPRECATED] Enable automatic B-roll generation and placement. When
            enabled, the system will analyze your content and automatically add
            relevant B-rolls to appropriate moments.
        autoBrolls:
          type: object
          description: Configuration for automatic B-roll generation and placement.
          properties:
            enable:
              type: boolean
              description: Enable or disable automatic B-roll generation.
            source:
              type: string
              enum:
                - GENERATION
                - GOOGLE_IMAGES
                - STOCKS_VIDEO
                - AVATAR_ACTION
              description: >-
                Source for B-rolls: 'GENERATION' for generated images or
                'GOOGLE_IMAGES' for images from Google, 'STOCKS_VIDEO' for
                GettyImages videos or 'AVATAR_ACTION' for generated videos
                including the avatar (only available with AI Influencer
                avatars).
            intensity:
              type: string
              enum:
                - LOW
                - MEDIUM
                - HIGH
              description: >-
                Intensity level of B-rolls: 'LOW', 'MEDIUM', or 'HIGH'. Not
                available for 'AVATAR_ACTION' source.
            layout:
              type: string
              enum:
                - FULLSCREEN
                - AVATAR_BOTTOM_LEFT
                - AVATAR_BOTTOM_RIGHT
                - AVATAR_TOP_LEFT
                - AVATAR_TOP_RIGHT
                - SPLIT_AVATAR_LEFT
                - SPLIT_AVATAR_RIGHT
                - SPLIT_AVATAR_TOP
                - SPLIT_AVATAR_BOTTOM
                - BACKGROUND
              description: >-
                Layout control for moments containing a B-roll. Controls how the
                B-rolls appears relative to the avatar.
          required:
            - enable
            - source
            - intensity
        extras:
          type: object
          description: >-
            Optional dictionary of custom key-value pairs to extend the video
            metadata. Maximum of 5 key-value pairs of 256 characters allowed
          additionalProperties:
            type: string
          maxProperties: 10
        backgroundMusic:
          type: object
          description: Optional configuration for background music
          properties:
            assetId:
              type: string
              description: ID of an audio asset to use as background music
            volume:
              type: number
              description: Volume level of the background music (0-1). Default is 0.14
              minimum: 0
              maximum: 1
          required:
            - assetId
        model:
          type: string
          enum:
            - ARGIL_V1
            - ARGIL_ATOM
          description: Model to use for the video generation.
    Video:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        status:
          type: string
          description: >-
            Can be either `IDLE`, `GENERATING_AUDIO`, `GENERATING_VIDEO`, `DONE`
            or `FAILED`.
        duration:
          type: number
          nullable: true
          description: >-
            Total video duration in seconds. `null` when audio hasn't been
            generated yet.
        moments:
          type: array
          description: >-
            An array of Moment items, each representing a portion of the
            complete video.
          items:
            type: object
            properties:
              transcript:
                type: string
                description: >-
                  A portion of the complete transcript. Current limit: 500
                  characters.
              avatarId:
                type: string
                description: The id of the avatar to be used for this moment.
              voiceId:
                type: string
                description: The id of the voice to be used for this moment.
              audioUrl:
                type: string
                description: >-
                  The audio that will be used for the video rendering.
                  Automatically generated from the transcript when not provided.
                  Current limit: 40 seconds.
              videoUrl:
                type: string
                description: The url of the avatar rendering video for this moment.
              gestureSlug:
                type: string
                description: The slug identifier of the gesture to be used for this moment.
              zoom:
                description: >-
                  Current zoom effect applied to the avatar. Present only when a
                  non-default zoom is set.
                type: object
              broll:
                type: object
                description: B-roll information for this moment.
                properties:
                  zoom:
                    description: >-
                      Current zoom effect applied to the B-roll. Present only
                      when a non-default zoom is set.
                    type: object
        videoUrl:
          type: string
          description: >-
            The url of the final avatar rendering video, containing all the
            moments merged.
        videoUrlSubtitled:
          type: string
          description: >-
            The url of the final avatar rendering video with subtitles. Only
            available if subtitles are enabled.
        previewUrl:
          type: string
          description: >-
            Url to the embedable preview of the video. Can be watched from web
            browsers or integrated in other websites before launching the
            generation. For embedable mode, add ?embed=true to the url.
        aspectRatio:
          type: string
          enum:
            - '16:9'
            - '9:16'
          description: 'The aspect ratio of the video output: 16:9 or 9:16.'
        subtitles:
          type: object
          properties:
            enable:
              type: boolean
          description: Subtitles settings for the video
        extras:
          type: object
          description: >-
            A dictionary of custom key-value pairs to extend the video metadata.
            Maximum of 5 key-value pairs of 256 characters allowed.
          additionalProperties:
            type: string
          maxProperties: 10
    Error:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
    Zoom:
      type: object
      description: >-
        Zoom animation defined by keyframes. A single keyframe applies a
        constant zoom. Multiple keyframes animate smoothly between values.
      required:
        - keyframes
      properties:
        keyframes:
          type: array
          description: List of zoom keyframes. Minimum 1, maximum 20.
          minItems: 1
          maxItems: 20
          items:
            type: object
            required:
              - time
              - scale
            properties:
              time:
                type: number
                minimum: 0
                maximum: 1
                description: >-
                  Position in the moment's timeline (0 = start, 1 = end).
                  Relative to moment duration.
              scale:
                type: number
                minimum: 1
                maximum: 3
                description: >-
                  Zoom scale factor. 1.0 = no zoom (100%), 2.0 = 200%, 3.0 =
                  300%.
              easing:
                type: array
                description: >-
                  Cubic bezier easing curve [x1, y1, x2, y2] (CSS convention).
                  Omit for linear interpolation. Ignored on the first keyframe.
                items:
                  type: number
                minItems: 4
                maxItems: 4
      example:
        keyframes:
          - time: 0
            scale: 1
          - time: 1
            scale: 1.5
            easing:
              - 0.42
              - 0
              - 0.58
              - 1
    MomentBroll:
      description: >
        Per-moment B-roll configuration. Specify the B-roll type and optional
        parameters for an individual moment.


        When `prompt` or `query` is omitted, it is auto-generated from the
        moment's transcript via LLM.
      oneOf:
        - type: object
          title: AVATAR_ACTION
          description: >-
            Generate a video B-roll featuring the avatar in action. Only
            available with AI Influencer (IMAGE-type) avatars. Costs 40 credits
            for image generation plus 4 credits/second for animation.
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - AVATAR_ACTION
            prompt:
              type: string
              description: >-
                Describes the scene/pose for the avatar image (first frame).
                Auto-generated from the moment's transcript when omitted.
            motionPrompt:
              type: string
              description: >-
                Describes how the avatar moves/animates in the video. When
                omitted, falls back to `prompt` value, or is auto-generated from
                the transcript.
            layout:
              $ref: '#/components/schemas/BrollLayout'
            zoom:
              description: Zoom applied to this B-roll.
              allOf:
                - $ref: '#/components/schemas/Zoom'
          additionalProperties: false
        - type: object
          title: GENERATION
          description: >-
            Generate an AI image as a B-roll. Consumes 10 image generation
            credits per moment.
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - GENERATION
            prompt:
              type: string
              description: >-
                Describes the image to generate. Auto-generated from the
                moment's transcript when omitted.
            animate:
              type: boolean
              description: 'Animate the generated image. Default: false.'
            layout:
              $ref: '#/components/schemas/BrollLayout'
            zoom:
              description: Zoom applied to this B-roll.
              allOf:
                - $ref: '#/components/schemas/Zoom'
          additionalProperties: false
        - type: object
          title: STOCKS_VIDEO
          description: Use a Getty Images stock video as a B-roll.
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - STOCKS_VIDEO
            query:
              type: string
              description: >-
                Search query for Getty Images. Auto-generated from the moment's
                transcript when omitted.
            layout:
              $ref: '#/components/schemas/BrollLayout'
            zoom:
              description: Zoom applied to this B-roll.
              allOf:
                - $ref: '#/components/schemas/Zoom'
          additionalProperties: false
        - type: object
          title: GOOGLE_IMAGES
          description: Use a Google Images result as a B-roll.
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - GOOGLE_IMAGES
            query:
              type: string
              description: >-
                Search query for Google Images. Auto-generated from the moment's
                transcript when omitted.
            animate:
              type: boolean
              description: 'Animate the found image. Default: false.'
            layout:
              $ref: '#/components/schemas/BrollLayout'
            zoom:
              description: Zoom applied to this B-roll.
              allOf:
                - $ref: '#/components/schemas/Zoom'
          additionalProperties: false
        - type: object
          title: UPLOAD
          description: >-
            Use a previously uploaded asset as B-roll. The asset must have
            status READY and be of type IMAGE or VIDEO. Upload assets via `POST
            /assets`.
          required:
            - type
            - assetId
          properties:
            type:
              type: string
              enum:
                - UPLOAD
            assetId:
              type: string
              format: uuid
              description: >-
                ID of the uploaded asset (from `POST /assets`). Must be READY
                status and IMAGE or VIDEO type.
            layout:
              $ref: '#/components/schemas/BrollLayout'
            zoom:
              description: Zoom applied to this B-roll.
              allOf:
                - $ref: '#/components/schemas/Zoom'
          additionalProperties: false
      discriminator:
        propertyName: type
    BrollLayout:
      type: string
      enum:
        - FULLSCREEN
        - AVATAR_BOTTOM_LEFT
        - AVATAR_BOTTOM_RIGHT
        - AVATAR_TOP_LEFT
        - AVATAR_TOP_RIGHT
        - SPLIT_AVATAR_LEFT
        - SPLIT_AVATAR_RIGHT
        - SPLIT_AVATAR_TOP
        - SPLIT_AVATAR_BOTTOM
        - BACKGROUND
      description: Layout controlling how the B-roll appears relative to the avatar.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key to be included in the x-api-key header

````